面向对象版学员管理系统

定义学生类

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}‘

功能类
from Student import *
# - 系统功能
# - 添加学员
# - 删除学员
# - 修改学员
# - 查询学员信息
# - 显示所有学员信息
# - 保存学员信息
# - 退出系统

class StudentManager(object):
def __init__(self):
#存储数据所用的列表
self.student_list = []
#1.程序入口函数,启动函数后执行的函数
def run(self):
self.load_student()
while True:
#2.显示功能菜单
self.show_menu()
#3.用户输入功能序号
menu_num = int(input("请输入您需要的功能序号:"))
#4.根据用户输入的功能序号执行不同的功能
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
else:
print("序号输入错误,请重新输入!")
#系统功能函数
#2.1显示功能菜单
@staticmethod
def show_menu():
print(‘请选择如下功能-----------------‘)
print(‘1:添加学员‘)
print(‘2:删除学员‘)
print(‘3:修改学员信息‘)
print(‘4:查询学员信息‘)
print(‘5:显示所有学员信息‘)
print(‘6:保存学员信息‘)
print(‘7:退出系统‘)
#2.2添加学员
def add_student(self):
name = input("请输入您的姓名:")
gender = input("请输入您的性别:")
tel = input("请输入您的手机号:")
student = Student(name,gender,tel)
self.student_list.append(student)

print(self.student_list)
#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)
break
else:
print("查无此人!")

print(self.student_list)
#2.4修改学员信息
def modify_student(self):
modify_name = input("请输入要修改的学员姓名:")
for i in self.student_list:
if i.name == modify_name:
new_name = input("请输入要修改的姓名:")
new_gender = input("请输入要修改的性别:")
new_tel = input("请输入要修改的电话号码:")
i.name = new_name
i.gender = new_gender
i.tel = new_tel
print(f"修改该学员信息成功,姓名:{i.name},性别:{i.gender},电话号码:{i.tel}")
break
else:
print("查无此人!")

#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}")
break
else:
print("查无此人!")
#2.6 显示所有学员信息
def show_student(self):
for i in self.student_list:
print(f"该学员姓名为{i.name},性别为{i.gender},电话号码为{i.tel}")
#2.7 保存学员信息

def save_student(self):
f = open(‘student_data.txt‘,‘w‘)
#文件写入的数据不能是对象的内存地址,而是要把数据转换成列表字典数据再作存储
new_list = [i.__dict__ for i in self.student_list]
# [{‘name‘: ‘aa‘, ‘gender‘: ‘nv‘, ‘tel‘: ‘111‘}]
print(new_list)
#文件类数据要求为字符串
f.write(str(new_list))
f.close()
#2.8 加载学员信息
def load_student(self):
#尝试以"r"模式打开数据文件,文件不存在则提示用户;存在则读取数
try:
f = open(‘student_data.txt‘,‘r‘)
except:
f = open(‘student_data.txt‘,‘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()
主函数

# 1. 导入managerSystem模块
from managerSystem import *

# 2. 启动学员管理系统
#只有在当前文件才可以使用 __name__当前文件的名字
if __name__ == ‘__main__‘:
student_manager = StudentManager()

student_manager.run()

面向对象版学员管理系统

上一篇:openlayers和leaflet


下一篇:手写下拉菜单