coding=utf-8
“”"
author:lei
function:
“”"
定义学生类
class Student(object):
def init(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
def __str__(self):
return "{}, {}, {}".format(self.name, self.gender, self.tel)
定义学生管理类
class StudentManager(object):
def init(self):
# 存储数据所用的列表
self.student_list = []
# 程序入口函数,启动程序后执行的函数
def run(self):
# 1、加载学院信息
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
# 二、定义功能函数
# 显示功能菜单
@staticmethod
def show_menu():
print("请选择如下功能----------")
print('1:添加学员')
print('2:删除学员')
print('3:修改学员信息')
print('4:查询学员信息')
print('5:显示所有学员信息')
print('6:保存学员信息')
print('7:退出系统')
# 添加学员
def add_student(self):
# 1、用户输入姓名,性别,手机号
name = input("请输入您的姓名:")
gender = input("请输入您的性别:")
tel = input("请输入您的手机号:")
# 创建学员对象
student = Student(name, gender, tel)
# 将学员对象添加到列表中
self.student_list.append(student)
# 打印信息
print(self.student_list)
print(student)
# 删除学员:删除指定姓名的学员
def del_student(self):
# 输入要删除学生的名字
del_name = input("请输入要删除的学员姓名:")
# 如果用户输入的目标学员存在则删除,否则提示学员不存在
for i in self.student_list:
if i.name == del_name:
# 打印删除人的信息
print(i)
self.student_list.remove(i)
break
else:
print("查无此人!")
# 打印删除后的学员列表
print("删除后的学员有:", self.student_list)
# 修改学员信息
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("学员信息修改成功:", i)
break
else:
print("查无此人!")
# 查询学员信息
def search_student(self):
# 用户输入目标学员姓名
search_name = input("请输入要查询的学员的姓名:")
# 如果用户输入的目标学员存在,则打印学员信息,否则提示不存在
for i in self.student_list:
if i.name == search_name:
print(i)
break
else:
print("查无此人!")
# 显示所有学员信息
def show_student(self):
print("姓名\t性别\t手机号")
for i in self.student_list:
print(i)
# 保存学员信息
def save_student(self):
# 将列表中的学生数据转换为字典格式进行存取
new_list = [i.__dict__ for i in self.student_list]
print(new_list)
# 打开文件
with open("student.data", "w") as f:
f.write(str(new_list))
# 加载学员信息
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()
if name == ‘main’:
stud_manager = StudentManager()
stud_manager.run()