注:
- 学员信息:姓名、性别和手机号
- 添加str魔法方法,方便查看学员对象信息 “””
class Students(object): def init(self, name, gender, tel): self.name = name self.gender = gender self.tel = tel
def __str__(self):return f"该学员信息是:{self.name}\t{self.gender}\t{self.tel}"
test
if name == “main“: result = Students(“xiaoming”, “male”, 10086) print(result)
```python# ManagerSystem.py"""1. 存储数据的位置:文件(students.data)2. 存储数据的形式:列表存储学员对象3. 系统功能:3.1 添加学员信息3.2 删除学员信息3.3 修改学员信息3.4 查询学员信息3.5 显示所有学员信息3.6 保存学员信息3.7 退出系统"""from Students import *class ManagerSystem(object):def __init__(self):self.student_list = [] # 存储列表def run(self):# 加载原文件信息self.load_data()while True:# 显示功能菜单self.show_menu()# 捕获用户输入menu_num = int(input("请输入你要执行的功能序号:"))# 根据用户输入执行功能# 添加学员信息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_all()# 保存学员信息elif menu_num == 6:self.save_data()# 退出系统elif menu_num == 7:print("----系统退出!")break@staticmethod # 静态类方法显示def show_menu():print("以下是系统功能菜单:")print("1.添加学员信息")print("2.删除学员信息")print("3.修改学员信息")print("4.查询学员信息")print("5.显示所有学员信息")print("6.保存学员信息")print("7.退出系统")@staticmethod # 静态类方法显示def student_modify_info_menu():print("以下是修改的功能菜单:")print("1.修改学员姓名")print("2.修改学员性别")print("3.修改学员手机号码")def add_student(self):name = input("请输入学生名字:")gender = input("请输入学生性别:")tel = input("请输入学生电话:")# 将获取的数据用来创建对象student = Students(name, gender, tel)# 将对象追加到学生列表self.student_list.append(student)def del_student(self):name = input("请输入要删除的学生姓名:")if len(self.student_list) == 0:print("文件数据为空,功能自动退出!")returnfor i in self.student_list:if i.name == name:self.student_list.remove(i)breakelse:print("Error,该学生不存在!")def modify_student(self):name = input("请输入要修改的学生姓名:")if len(self.student_list) == 0:print("文件数据为空,功能自动退出!")returnfor i in self.student_list: # 遍历出来的是对象类型if i.name == name:self.student_modify_info_menu()num = int(input("请输入需要修改的功能编号:"))if num == 1:i.name = input("请输入要修改的名字:")elif num == 2:i.gender = input("请输入要修改的性别:")elif num == 3:i.tel = input("请输入要修改的tel:")breakelse:print("Error,该学生不存在!")def search_student(self):name = input("请输入要查询的学生姓名:")if len(self.student_list) == 0:print("文件数据为空,功能自动退出!")returnfor i in self.student_list:if i.name == name:print(f"姓名:{i.name},性别:{i.gender},tel:{i.tel}")breakelse:print("Error,该学生不存在!")def show_all(self):print("姓名\t\t性别\t\ttel")for i in self.student_list:print(f"{i.name}\t\t{i.gender}\t\t{i.tel}")def save_data(self):fo = open("students.data", "w")# 将类属性转换成字典形式new_list = [i.__dict__ for i in self.student_list]# test# print(new_list)# 以字符串的形式写入文件fo.write(str(new_list))fo.close()def load_data(self):# 打开文件try:fo = open("students.data", "r")except:fo = open("students.data", "w")else:# 读取文件data = fo.read()# test# print(data)if len(data) != 0: # 防止文件数据为空时,再次读取时,系统报错# 字符串转字典对象new_list = eval(data)# test# print(new_list)# 提取字典中的值传入学生类属性并保存在学生信息列表self.student_list = [Students(i["name"], i["gender"], i["tel"]) for i in new_list]# 关闭文件finally:fo.close()
# main.pyfrom ManagerSystem import ManagerSystemif __name__ == "__main__":student_manager = ManagerSystem()student_manager.run()
