系统要求
1.添加学生
2.删除学生
3.修改学生信息
4.查询学生
5.查看所有学生信息
6.学生信息数据的存储与读取
源码:student.py
#coding:utf-8 2 #定义学员类 3 class student(object): 4 #初始化实例对象的属性 5 def __init__(self,name,gender,tel): 6 self.name = name 7 self.sex = gender 8 self.tel = tel 9 10 def __str__(self): 11 return f"学员的名字:{self.name},学员的{self.sex},学 员的电话号码{self.tel}" 12 13
源码:maneger.py
#coding:utf-8 2 from student import * 3 class manager(object): 4 def __init__(self): 5 #存储学生数据的列表 6 self.student_list = [] 7 8 def show_menu(self): 9 print("功能菜单...") 10 print("1.添加学员") 11 print("2.删除学员") 12 print("3.修改学员信息") 13 print("4.查询学员信息") 14 print("5.显示所有学员") 15 print("6.保存学员信息.") 16 print("7.退出系统") 17 #程序入口 18 def run(self): 19 #加载学员信息 20 self.load_student() 21 while True: 22 self.show_menu() 23 #用户输入功能序号 24 number = int(input("请输入功能序号:")) 25 if number == 1: 26 #添加学员 27 self.add_student() 28 if number == 2: 29 #删除学员 30 self.del_student() 31 if number == 3: 32 #修改学生信息 33 self.change_student_info() 34 if number == 4: 35 #查询学生信息 36 self.seach_student() 37 if number == 5: 38 #显示所有学生信息 39 self.display_all_student() 40 if number == 6: 41 #保存学生信息 42 self.save_student_info() 43 if number == 7: 44 #退出系统 45 break 46 #系统功能函数 47 def show_menu(self): 48 print("功能菜单...") 49 print("1.添加学员") 50 print("2.删除学员") 51 print("3.修改学员信息") 52 print("4.查询学员信息") 53 print("5.显示所有学员") print("6.保存学员信息.") 55 print("7.退出系统") 56 57 def add_student(self): 58 name = input("请输入学生姓名:") 59 sex = input("请输入学生的性别:") 60 tel = input("请输入学生的电话号码:") 61 #创建学员对象 62 student1 = student(name,sex,tel) 63 self.student_list.append(student1) 64 print(self.student_list) 65 print(student1) 66 67 def del_student(self): 68 remove_name = input("请输入需要删除的学生的姓名:") 69 for i in self.student_list: 70 if i.name == remove_name: 71 #直接移除一个对象 72 self.student_list.remove(i) 73 break 74 else: 75 print("查无此人") 76 print(self.student_list) 77 78 def change_student_info(self): 79 change_name = input("请输入学生姓名:") 80 for i in self.student_list: 81 if i.name == change_name: 82 i.name = input("新的姓名:") 83 i.sex = input("新的性别:") 84 i.tel = input("新的电话号码:") 85 print(f"学员信息{i.name},{i.sex},{i.tel}") 86 break 87 else: 88 print("查无此人") 89 90 def seach_student(self): 91 seach_name = input("学生姓名:") 92 for i in self.student_list: 93 if i.name == seach_name: 94 print(f"学员信息{i.name},{i.sex},{i.tel}") 95 break 96 else: 97 print("查无此人") 98 99 def display_all_student(self): 100 print("姓名\t性别\t手机号") 101 for i in self.student_list: print(f"{i.name}\t{i.sex}\t{i.tel}") 103 104 def save_student_info(self): 105 f = open("student.data","w") 106 #文件写入学员数据 107 #注意:文件写入的数据不能是学员对象的内存地址,需要 把学员数据转化成列表字典数据再做存储 108 new_list = [i.__dict__ for i in self.student_list]# 列表解析 109 #[{"name":},{"sex":},{"tel":}] 110 f.write(str(new_list)) 111 #关闭文件 112 f.close() 113 114 def load_student(self): 115 #进行一个文件的检测,看文件是否存在 116 try: 117 f = open("student.data","r") 118 except: 119 f = open("student.data","w") 120 else: 121 data = f.read() 122 #文件中读取的数据都是字符串且字符串内部为字典,故需 要转换数据类型在转换字典为对象后从存储到学员列表 123 new_list = eval(data) 124 #字典转化为对象,类似与c语言中的类型强转 125 self.student_list = [student(i["name"],i["sex"] ,i["tel"]) for i in new_list]#列表解析 126 finally: 127 f.close()
源码:main.py
#conding:utf-8 2 #导入模块 3 from maneger import * 4 5 #程序入口 6 #保证当前文件运行才创建对象 7 if __name__ == "__main__": 8 student_manager = manager() 9 student_manager.run() 10
#运行截图 功能菜单... 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员 6.保存学员信息. 7.退出系统 请输入功能序号:
代码还有许多可以优化的地方,比如在添加学员时进行名字是否重复的扫描等等。大家可以尝试着去完善代码。