1.代码
from prettytable import PrettyTable
class StudentInfo:
def __init__(self):
print("---------------------------")
print(" 学生管理系统 V1.0 ")
print(" 1:添加学生 ")
print(" 2:显示所有学生 ")
print(" 3:查询学生 ")
print(" 4:修改学生 ")
print(" 5:删除学生 ")
print(" 6:退出系统 ")
print("---------------------------")
self.student_list = [] # 定义一个列表用来存储所有的学生信息(每个学生是一个字典)
self.table = PrettyTable()
self.table.field_names = ["序号", "姓名", "性别", "年龄"]
def AddStudent(self):
"""添加学生信息"""
student = {} # 定义一个字典,用来存储用户的学生信息
name = input("请输入学生姓名>>>")
# 判断学生是否存在
for i in self.student_list:
if i['name'] == name:
print("学生已经存在!!")
return None
sex = input("请输入学生性别>>>")
age = input("请输入学生年龄>>>")
# 向字典中添加数据
student['name'] = name
student['sex'] = sex
student['age'] = age
# 向列表中添加这个字典
self.student_list.append(student)
# 向表格里添加一行
self.table.add_row([self.student_list.index(student)+1, name, sex, age])
print("添加成功!!!")
def UpdateTable(self):
'''更新表格'''
self.table.clear_rows()
for i, student in enumerate(self.student_list):
self.table.add_row([i + 1, student['name'], student['sex'], student['age']])
print(self.table)
def PrintTable(self):
"""打印表格"""
print(self.table)
def SearchStudent(self):
"""查询学生信息"""
index = int(input("请输入要查找学生的序号:"))
if 1 <= index <= len(self.student_list):
print(self.table[index-1]) # 打印该学生信息
else:
print("输入的学生序号有误,请重新输入")
def UpdateStudent(self):
'''修改学生信息'''
index = int(input("请输入要修改学生的序号:"))
if 1 <= index <= len(self.student_list):
print(self.table[index-1]) # 打印该学生信息
else:
print("输入的学生序号有误,请重新输入")
name = input("请输入学生姓名>>>")
# 判断学生是否存在
for student in self.student_list:
if student['name'] == name:
print("学生已经存在!!")
return None
self.student_list[index-1]['name'] = name
self.student_list[index-1]['sex'] = input("请输入学生性别>>>")
self.student_list[index-1]['age'] = input("请输入学生年龄>>>")
print("修改成功!")
print(self.student_list)
self.UpdateTable()
return None
def DeleteStudent(self):
"""删除学生信息"""
print(self.table)
index = int(input("请输入要删除学生的序号:"))
if 1 <= index <= len(self.student_list):
del_flag = input("你确定要删除么?[y/n]")
if del_flag == 'y':
self.student_list.pop(index-1)
print("删除成功!!!")
self.UpdateTable()
return None
else:
print("放弃删除!!!")
return None
else:
print("输入序号有误,请重新输入")
def main(self):
while True:
choose = int(input("请输入的您的选择>>>"))
if choose == 1:
self.AddStudent()
elif choose == 2:
self.PrintTable()
elif choose == 3:
self.SearchStudent()
elif choose == 4:
self.UpdateStudent()
elif choose == 5:
self.DeleteStudent()
elif choose == 6:
print("Bye~~")
break
else:
print("输入有误,请重新输入......")
if __name__ == '__main__':
stu = StudentInfo()
stu.main()
2.运行效果
