自我第一篇文章得到很多人的支持与关注,小白有些受宠若惊,但是我更加坚定在程序员的路上越走越远和坚持写博客记录与分享,谢谢支持!
最近在写一个对我来说代码量较大的小游戏,因为最近开始了网课,每天在pycharm上花费的时间会少一些,再过几天我应该就写完了,然后会发出来,在这之前,我把面向对象这块知识进行一个练习,参考着做了这一个学员管理系统(好像这个是许多程序员都做过的一个项目,但是一万个人眼中有一万个哈姆雷特,所以这是我做的你也可以看看,顺便提出你的建议,谢谢支持!)
这个程序分三个模块【主函数启动模块(main),管理系统模块(manageSystem),学生模块(student)】
就不再进行过多的赘述了,这篇文章精简一点,也是给我留些精力去做别的项目
# 1.导入管理系统模块
from manageSystem import *
# 2.启动管理系统:保证当前文件运行才启动管理系统:if __name__
if __name__ == '__main__':
student_manager = StudentManage()
student_manager.run()
from student import *
class StudentManage(object):
def __init__(self):
# 存储数据所用的列表
self.student_list = []
# 一 程序入口函数
def run(self):
# 1.加载学员信息
self.load_student()
while True:
# 用户输入功能序号
menu_num = int(input('请输入需要的功能序号(菜单序号为0):'))
# 功能
if menu_num == 0:
# 显示功能菜单
self.show_meun()
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('您输入的有误,请重新输入')
# 二,系统功能函数
# 2.1显示功能函数 需求:打印序号功能对应关系 静态
# @staticmethod
def show_meun(self):
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('请输入您的性别')
tel = input('请输入您的手机号')
# 2.创建学员对象
student = Student(name, gender, tel)
# 3.添加学员到列表
self.student_list.append(student)
print('\t添加成功')
# 2.3删除功能函数
def del_student(self):
# 删除指定姓名的学员
del_name = input('请输入学员姓名')
for i in self.student_list:
if i.name == del_name:
self.student_list.remove(i)
print('\t删除成功')
break
else:
print('\t查无此人,删除失败')
# 2.4修改功能函数
def modify_student(self):
# 1.用户输入目标学员姓名
modify_name = input('请输入要修改的学员姓名')
for i in self.student_list:
if i.name == modify_name:
i.name = input('请输入新的姓名')
i.gender = input('请输入新的性别')
i.tel = input('请输入新的手机号')
print('\t修改成功')
break
else:
print('\t查无此人,修改失败')
# 2.5查询学员功能函数
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('\t查询完成')
break
else:
print('查无此人,查询失败')
# 2.6显示所有学员功能函数
def show_student(self):
print('姓名\t性别\t电话')
for i in self.student_list:
print(f'{i.name}\t{i.gender}\t{i.tel}')
print('\t显示成功')
# 2.7保存学员功能函数
def save_student(self):
# 1.打开文件
f = open('student.data', 'w')
# 2.文件写入数据
# 2.1 [学员对象]转换成{字典}
new_list = [i.__dict__ for i in self.student_list]
# 2.2 文件写入 字符串数据
f.write(str(new_list))
# 3.关闭文件
f.close()
print('保存成功')
# 2.8加载学员信息功能函数
def load_student(self):
try:
f = open('student.date', '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()
# 下面是测试代码块
if __name__ == '__main__':
student = StudentManage()
student.run()
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}'
# 下方是当前文件测试代码块,可以进行测试
if __name__ == '__main__':
print(1)
代码就是这些,可以把这些代码放一块,为什么要制作模块呢?
我个人认为
一,思路清晰:
是一块一块去写和思路相匹配,修改改错也很方便,去调试代码,如果放在一起如果出现Error就会出现很多的地方,改错都不好找,单个模块测试通过再导入就会很方便。
二,分析方便:
当再去看代码,一个模块一个模块去看,就会很清晰
如果觉得我写的那里不足就请提出您的高见,感谢您的建议,如果觉得这篇文章还可以,那么请您点赞,评论,关注。您的支持就是我不断写下去的动力!