本文共 3614 字,大约阅读时间需要 12 分钟。
最近,我在PyCharm上花费的时间有所减少,因为最近开始了网课学习。为了保持对编程的熟练程度,我决定开发一个简单的学员管理系统作为练习项目。这是我个人对面向对象编程知识的实践,也是许多程序员常见的开发项目。
项目分为三个模块:主函数启动模块(main)、管理系统模块(manageSystem)、学生模块(student)。
# 1. 导入管理系统模块from manageSystem import *# 2. 启动管理系统if __name__ == '__main__': student_manager = StudentManage() student_manager.run()
class StudentManage(object): def __init__(self): self.student_list = [] def run(self): self.load_student() while True: menu_num = int(input('请输入需要的功能序号(菜单序号为0):')) if menu_num == 0: self.show_menu() elif 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 else: print('您输入的有误,请重新输入') def show_menu(self): 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('修改成功') 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}') print('查询完成') 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}') print('显示成功') 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() print('保存成功') 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()
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}'
我认为模块化编程有以下优势:
思路清晰
代码按功能模块分开,每个模块独立负责一个功能,修改和调试也变得更加方便。如果一个模块测试通过,再导入主程序就能快速定位问题。分析方便
阅读代码时,可以按模块逐一阅读,结构清晰,便于理解和维护。如果您对代码有任何建议或改进意见,欢迎在评论区留言。您的支持是我不断创作的动力!
转载地址:http://rixwz.baihongyu.com/