本文共 4141 字,大约阅读时间需要 13 分钟。
本项目采用面向对象编程思想,完成学员管理系统的开发。系统要求学员数据存储在文件中,提供以下功能:
StudentManagerSystem/├── main.py # 主程序入口├── student.py # 学员类├── managerSystem.py # 管理系统主类
class Student(object): def __init__(self, name, gender, tel): self.name = name self.gender = gender self.tel = tel def __str__(self): return f"{self.name}, {self.gender}, {self.tel}" class StudentManager(object): def __init__(self): self.student_list = [] def run(self): self.load_student() 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_student() elif menu_num == 6: self.save_student() elif menu_num == 7: break @staticmethod def show_menu(): print('请选择如下功能-----------------') print('1: 添加学员') print('2: 删除学员') print('3: 修改学员信息') print('4: 查询学员信息') print('5: 显示所有学员信息') print('6: 保存学员信息') print('7: 退出系统') def add_student(self): name = input('请输入您的姓名:') gender = input('请输入您的性别:') tel = input('请输入您的手机号:') student = Student(name, gender, tel) self.student_list.append(student) print('添加学员成功!') def del_student(self): del_name = input('请输入要删除的学员姓名:') for i in self.student_list: if i.name == del_name: self.student_list.remove(i) print('删除学员成功!') break else: print('查无此人!') def modify_student(self): modify_name = input('请输入要修改的学员姓名:') for i in self.student_list: if i.name == modify_name: i.name = input('请输入学员姓名:') i.gender = input('请输入学员性别:') i.tel = input('请输入学员手机号:') print(f'修改该学员信息成功,姓名{i.name},性别{i.gender},手机号{i.tel}') break else: print('查无此人!') def search_student(self): search_name = input('请输入要查询的学员姓名:') for i in self.student_list: if i.name == search_name: print(f'姓名{i.name},性别{i.gender},手机号{i.tel}') break else: print('查无此人!') def show_student(self): print('姓名\t性别\t手机号') for i in self.student_list: print(f'{i.name}\t{i.gender}\t{i.tel}') def save_student(self): f = open('student.data', 'w') new_list = [i.__dict__ for i in self.student_list] f.write(str(new_list)) f.close() def load_student(self): try: f = open('student.data', 'r') except: f = open('student.data', 'w') else: data = f.read() new_list = eval(data) self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list] finally: f.close() from managerSystem import *if __name__ == '__main__': student_manager = StudentManager() student_manager.run()
Student 类,用于存储和管理学员信息。包含初始化方法和 __str__ 方法,方便输出学员信息。StudentManager 类,负责系统的核心逻辑。包括加载数据、显示功能菜单、执行各种操作等。managerSystem 模块并启动程序。student.data,如果文件不存在则创建新文件。Student 对象并存储到列表中。7 后系统退出。通过 __dict__ 展示实例属性:
class A(object): a = 0 def __init__(self): self.b = 1aa = A()print(A.__dict__) # 类内部属性和方法对应的字典print(aa.__dict__) # 实例属性和值组成的字典
转载地址:http://qitkz.baihongyu.com/