学生管理系统-面向对象版
设计思路如下:
分为三个部分, Student类负责定义创建对象和打印, ManagerSystem负责定义一个系统类里面有实现功能的方法, Main作为程序入口, 调用相关类使用。
Student.py
class Student(object):
def __init__(self, name, age, stu_id):
self.name = name
self.age = age
self.stu_id = stu_id
def __str__(self):
return f'学生的姓名是{self.name}, 年龄是{self.age}岁, 学号是{self.stu_id}'
ManagerSystem.py
from Student import Student
class ManagerSystem(object):
students_list = []
@staticmethod
def print_info():
"""打印功能列表"""
print("""==学生管理系统======
==1.添加学员=======
==2.删除学员=======
==3.修改学员=======
==4.查询学员=======
==5.展示所有学员====
==6.退出系统=======""")
@classmethod
def choose_option(cls, option):
if option == '1':
cls.add_student()
elif option == '2':
cls.delete_student()
elif option == '3':
cls.modify_student()
elif option == '4':
cls.search_student()
elif option == '5':
cls.show_students()
elif option == '6':
cls.exit_program()
@classmethod
def add_student(cls):
"""添加学员"""
# 获取要添加学员的学号
stu_id = input('请输入要添加学员的学号:')
# 循环遍历.判断该学员是否存在
for student_info in cls.students_list:
# 对比学号
if student_info.stu_id == stu_id:
# 如果该学员存在,则提示该学员已存在
print('该学员已经存在,请核对后再添加')
break
else:
# 如果该学员不存在,则继续添加姓名和年龄存储学员信息
name = input('请输入要添加学员的姓名:')
age = input('请输入要添加学员的年龄:')
cls.students_list.append(Student(name, age, stu_id))
@classmethod
def delete_student(cls):
"""删除学员"""
# 获取要删除学员的学号
stu_id = input('请输入您要删除学员的学号:')
# 循环遍历学员列表,查询该学员是否存在
for student_info in cls.students_list:
if student_info.stu_id == stu_id:
# 如果该学员存在,则删除该学员信息
cls.students_list.remove(student_info)
break
else:
# 如果该学员不存在,则提示重新确认后再删除
print('该学员不存在,请核对后再删除')
@classmethod
def modify_student(cls):
"""修改学员"""
# 获取要修改学员的学号
stu_id = input('请输入您要修改学员的学号:')
# 循环遍历学员列表,查询该学员是否存在
for student_info in cls.students_list:
if student_info.stu_id == stu_id:
# 如果该学员存在,则修改该学员对象的属性
student_info.name = input('请输入您要修改为的姓名:')
student_info.age = input('请输入您要修改为的年龄:')
break
else:
# 如果该学员不存在,则提示重新确认后再删除
print('该学员不存在,请核对后再修改')
@classmethod
def search_student(cls):
"""查询学员"""
# 获取要查询学员的学号
stu_id = input('请输入您要查询学员的学号:')
# 循环遍历学员列表,查询该学员是否存在
for student_info in cls.students_list:
if student_info.stu_id == stu_id:
# 如果该学员存在,则打印该学员的基本信息
print(student_info)
break
else:
# 如果该学员不存在,则提示重新确认后再删除
print('该学员不存在,请核对后再查询')
@classmethod
def show_students(cls):
"""展示所有学员"""
for student_info in cls.students_list:
print(student_info)
@staticmethod
def exit_program():
"""退出程序"""
exit()
Main.py
from ManagerSystem import ManagerSystem
class Main(object):
@staticmethod
def run():
# 将所有功能加入无限循环中
while True:
# 展示功能列表
ManagerSystem.print_info()
# 让用户键入要完成的功能序号
option = input('请输入您要完成的功能:')
# 根据键入的功能序号完成对应功能
ManagerSystem.choose_option(option)
Main.run()