编写学生管理系统,实现增删改查 输入数字1,添加学生信息(编号, 名字,年纪,性别) 第一个学生id为101 后续学生自动加1 输入数字2,查看所有学生信息 输入数字3,查看指定学生信息 输入学生id,显示对应学生信息 输入数字4,修改学生信息 输入学生id,输入学生新名字,新年纪,新性别 输入数字5,删除指定学生 输入学生id,删除指定学生 输入数字0,退出系统
class Student:
def __init__(self, sid, name, age, sex):
self.sid = sid
self.name = name
self.age = age
self.sex = sex
def __str__(self):
return f"id:{self.sid},name:{self.name},age:{self.age},sex:{self.sex}"
class StudentManage:
def __init__(self):
self.students = []
def save_data(self):
with open("学生管理系统.txt", 'wb') as f:
pickle.dump(self.students, f)
def load_data(self):
try:
with open("学生管理系统.txt", 'rb') as f:
self.students = pickle.load(f)
except FileNotFoundError:
self.students = []
def add_student_name(self):
while True:
name = input("请输入姓名")
if 2 <= len(name) <= 4:
return name
else:
print(f"输入不合法")
def add_student_age(self):
while True:
age = int(input("请输入年龄"))
if 2 <= age <= 80:
return age
else:
print(f"输入不合法")
def add_student_sex(self):
while True:
sex = input("请输入性别")
if sex in ["男", "女"]:
return sex
else:
print(f"输入不合法")
def continue_quit(self):
option2 = input("继续(Y)退出(N)")
if option2 == "Y" or option2 == "y":
return option2
if option2 == "n" or option2 == "N":
return option2
def add_student(self):
while True:
sid = 101 if not self.students else self.students[-1].sid + 1
name = self.add_student_name()
age = self.add_student_age()
sex = self.add_student_sex()
s = Student(sid, name, age, sex)
self.students.append(s)
print(f"添加成功,现在共有学生{len(self.students)}人")
self.save_data()
option2 = self.continue_quit()
if option2 == "Y" or option2 == "y":
pass
else:
break
def show_all_student(self):
if self.students:
for s in self.students:
print(s)
else:
print(f"还未添加学生")
def show_student(self):
while True:
if self.students:
uid = int(input("请输入要查看的学生的id"))
for s in self.students:
if s.sid == uid:
print(s)
else:
print(f"没有找到id为{uid}的学生")
option2 = self.continue_quit()
if option2 == "Y" or option2 == "y":
pass
else:
break
else:
print(f"还未添加学生")
def update_student(self):
while True:
if self.students:
uid = int(input("请输入要修改的学生的id"))
for s in self.students:
if s.sid == uid:
s.name = self.add_student_name()
s.age = self.add_student_age()
s.sex = self.add_student_sex()
print(f"修改成功")
break
else:
print(f"没找到id为:{uid}的学生")
option2 = self.continue_quit()
if option2 == "Y" or option2 == "y":
pass
else:
break
else:
print(f"还未添加学生")
def remove_student(self):
while True:
if self.students:
uid = int(input("请输入要删除的学生的id"))
for s in self.students:
if s.sid == uid:
self.students.remove(s)
print(f"删除成功")
break
else:
print(f"没找到id为:{uid}的学生")
option2 = self.continue_quit()
if option2 == "Y" or option2 == "y":
pass
else:
break
else:
print(f"还未添加学生")
class SystemManage(StudentManage):
def main_menu(self):
menu = """输入数字1,添加学生信息(编号, 名字,年纪,性别)
第一个学生id为101 后续学生自动加1
输入数字2,查看所有学生信息
输入数字3,查看指定学生信息
输入学生id,显示对应学生信息
输入数字4,修改学生信息
输入学生id,输入学生新名字,新年纪,新性别
输入数字5,删除指定学生
输入学生id,删除指定学生
输入数字0,退出系统"""
print(menu)
def main_option(self):
self.load_data()
while True:
self.main_menu()
option = input("请输入选项")
if option not in [str(i) for i in range(0, 6)]:
print(f"输入不合法")
elif option == "1":
self.add_student()
elif option == "2":
self.show_all_student()
elif option == "3":
self.show_student()
elif option == "4":
self.update_student()
elif option == "5":
self.remove_student()
elif option == "0":
self.save_data()
print(f"退出系统成功")
break
s = SystemManage()
s.main_option()