Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」

Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」这篇博客主要就是把学生管理系统进行源码分享,这段源码很好的将前面所学的全部串在一起。就我个人而言真的是非常有价值。就算你python前面的基础不好,学完这个系统你会有重获新生的感觉。本文适合需要用python完成课程大作业、python爱好者、python路上的学习者、初学python者、需要将python知识点串在一起的人、上进的人。manageSystem.py#TODO鸟欲高飞,必先展翅#TODO向前的人:Jhon

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

这篇博客主要就是把学生管理系统进行源码分享,这段源码很好的将前面所学的全部串在一起。就我个人而言真的是非常有价值。就算你python前面的基础不好,学完这个系统你会有重获新生的感觉。


本文适合需要用python完成课程大作业、python爱好者、python路上的学习者、初学python者、需要将python知识点串在一起的人、上进的人。
**


以下代码看懂我认为python基础就没什么问题了
manageSystem.py

# TODO 鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon
from Crawler.XM.student import *
class StudentMange(object):
def __init__(self):
#列表方式存储学生信息
self.Student_list=[]
# TODO 程序的入口函数
def run(self):
# 1、加载文件里面的学员数据
self.load_student()
while True:
#2、显示功能菜单
self.show_menu()
# 3、输入目标功能序号
menu_num=int(input("请输入需要的功能需序号:"))
#4、根据用户输入的需要执行不同的功能
if menu_num==1:
# 添加学员
self.add_Student()
elif menu_num==2:
self.del_Student()
elif menu_num==3:
self.modify_student()
elif menu_num==4:
self.search_student()
elif menu_num==5:
self.show_student()
elif menu_num==6:
self.save_student()
elif menu_num==7:
break
# 系统菜单功能
@staticmethod    #类、对象都可以调用
# 2.1、显示功能菜单-------打印序号的功能对应的关系
def show_menu():
print("请选择如下功能")
print("1、添加学员")
print("2、删除学员")
print("3、修改学员信息")
print("4、查询学员信息")
print("5、显示所有的学院信息")
print("6、保存学员信息")
print("7、退出系统")
# 2.2、添加学员
def add_Student(self):
# 1、学员输入对应的姓名、性别、手机号
name=input("请输入您的姓名:")
gender=input("请输入您的性别:")
tell=input("请输入您的手机号:")
# 2、创建学员的对象------类 Student 在Studnet 文件里面,先导入Student模块再创建对象
students=Student(name,gender,tell)
# 3、对象添加到学员列表中
self.Student_list.append(students)
print(self.Student_list)
print(students)
# 2.3、删除新学员信息
def del_Student(self):
#1、用户输入目标学员姓名
del_name=input("亲输入需要删除的学员姓名:")
#2、遍历学员的列表,用户输入的学员存在则删除学员对象,否则提示不存在
for i in self.Student_list:
if del_name==i.name:
self.Student_list.remove(i)
break
else:
#循环正常结束,循环结束没有删除任何一个人,说明用户输入的目标学员不存在
print("查无此人")
print(self.Student_list)
# 2.4、修改学员信息
def modify_student(self):
# 1、输入目标学员姓名
modify_name=input("请输入要修改的学员性别:")
#2、遍历列表数据,如果学员存在修改姓名、性别、手机号,否则提示学员不存在
for i in self.Student_list:
if modify_name==i.name:
i.name=input("姓名:")
i.gender=input("性别:")
i.tell=input("号码:")
print(f"修改学员的信息成功,姓名{ 
i.name},性别{ 
i.gender},号码{ 
i.tell}")
break
else:
print("查无此人")
#2.5、查询学员信息
def search_student(self):
# 1、用户输入目标学员姓名
search_name=input("要搜索的学员姓名")
# 2、遍历列表,有就打印学员信息,否则提示学员不存在
for i in self.Student_list:
if search_name==i.name:
print("姓名是{i.name},性别是{i.gender},号码是{i.tell}")
print(f"姓名是{ 
i.name},性别是{ 
i.gender},号码是{ 
i.tell}")
break
else:
print("查无此人")
# 2.6 、显示所有的学员信息
def show_student(self):
# 1、打印我们的表头
print("姓名:\t性别:\t手机号;")
# 2、打印学员数据
for i in self.Student_list:
print(f"{ 
i.name}\t{ 
i.gender}\t{ 
i.tell}")
# 2.7 、保存学员信息
def save_student(self):
# 1、打开文件
f=open("student.data","w")
# 2.1、文件写入数据 学员对象转换为字典
new_list=[i.__dict__ for i in self.Student_list]
# 2.2、文件写入字符串数据
f.write(str(new_list))
# 3、关闭文件
f.close()
# 2.8 加载学员信息
def load_student(self):
# 1、打开文件,尝试r打开 有异常就用w
try:
f=open("student.data","r")
except:
f=open("student.data","w")
else:
# 2、读取数据 读取的数据是字符串还原列表类型[{}],转换成学员对象[]
data=f.read()  #必然是个字符串
new_list=eval(data)  #转换成字典数据
self.Student_list=[Student(i["name"],i["gender"],i["tell"]) for i in new_list]
finally:
# 3、关闭文件
f.close()
if __name__ == "__main__":
Student_manage=StudentMange()
StudentMange().run()

上面的manageSystem.py是此程序的主程序,包含了静态方法、闭包、函数封装、输入输出判断、初始化属性、调用模块等等。。。。。。


student.py

# TODO 鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon
class Student(object):
def __init__(self,name,gender,tell):
self.name=name
self.gender=gender
self.tell=tell
def __str__(self):
return f"{ 
self.name},{ 
self.gender},{ 
self.tell}"

student.py主要是初始化学生的初始化属性,包括名字(name)、性别(gender)、电话号码(tell)。方便上面manageSystem.py调用,使得代码更加简洁。


本文上传纯属是为了带大家分享,记录代码,方便以后查看
在这里插入图片描述
以上截图是文件所属目录,目录不对调用的时候是会报错的,所以要注意文件目录。
以上代码看懂我认为python基础就没什么问题了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172376.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 测试数据增强_预测模型最佳cutoff值

    测试数据增强_预测模型最佳cutoff值cutout是2017年提出的一种数据增强方法,想法比较简单,即在训练时随机裁剪掉图像的一部分,也可以看作是一种类似dropout的正则化方法。ImprovedRegularizationofConvolutionalNeuralNetworkswithCutoutpaper:https://arxiv.org/pdf/1708.04552.pdfcode:https://github.com/uoguelph-mlrg/Cutoutcutout采用的操作是随机裁剪掉图像中..

  • 使用awk数组进行求和[通俗易懂]

    使用awk数组进行求和[通俗易懂]使用awk求出三个人消费的累计金额

  • matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹

    matlab导入文件夹里所有图片_如何创建快捷方式到指定文件夹在matlab中,直接imwrite()保存图片,会保存到当前工作目录文件夹或其子文件夹。%直接保存imwrite(picture,’test1.png’)%在当前工作目录下新建文件夹并保存mkdirimage%如果文件夹已存在,会有警告,但不影响运行imwrite(picture,’image/test1.png’)如果要把图片保存到其他指定的文件夹,…

  • iReport 分组统计[通俗易懂]

    iReport 分组统计[通俗易懂]参考http://jaspereport.group.iteye.com/group/wiki/3401-jaspereport-ireport做出了分组统计的效果。1、在报表中新建一个group2、新建一个变量,设置属性3、在报表中插入一个TextField,设置相关分组属性。

  • 【SpringBoot】34、SpringBoot整合Redis实现序列化存储Java对象

    【SpringBoot】34、SpringBoot整合Redis实现序列化存储Java对象前面我们已经介绍过【SpringBoot】十七、SpringBoot中整合Redis,我们可以看出,在SpringBoot对Redis做了一系列的自动装配,使用还是非常方便的一、背景1、思考‘通过我们前面的学习,我们已经可以往Redis中存入字符串,那么我们要往Redis中存入Java对象该怎么办呢?2、方案我们可以将Java对象转化为JSON对象,然后转为JSON字符串,存入Redis,那么我们从Redis中取出该数据的时候,我们也只能取出字符串,并转

  • linux命令行与shell脚本编程大全和鸟哥的私房菜_linux进入命令行

    linux命令行与shell脚本编程大全和鸟哥的私房菜_linux进入命令行一、基本bashshell命令创建文件:touch链接文件:符号链接:是一个实实在在的文件,两个通过符号链接在一起的文件,彼此的内容并不相同。使用ln-s命令。硬链接:会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但他们从根本上而言是同一个文件。原始文件必须事先存在,使用ln命令。查看文件类型:file查看整个文件:cat,more,less…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号