学生管理系统Python版本
student.py
'''
这个是学生模块,用来实现学生模型类的定义
保存学生信息
'''
class Student(object):
def __init__(self, stu_id, stu_name, stu_age):
self.stu_id = stu_id
self.stu_name = stu_name
self.stu_age = stu_age
def __str__(self):
return '| ' + self.stu_id.ljust(5) + self.stu_name.center(10) + self.stu_age.rjust(3) + ' |'
if __name__ == '__main__':
tom = Student('1', 'Tom', '12')
print(tom)
main.py
'''
主程序文件,用来实现程序的入口
'''
from student_manager import *
if __name__ == '__main__':
sms = StudentManagerSystem()
sms.start()
StudentManagerSystem.py
'''
这个模块用来实现学生管理类
主要负责学生管理的增删改查等操作的逻辑实现
'''
from student import Student
class StudentManagerSystem(object):
def __init__(self):
self.students = {}
self.__load_data()
def start(self):
print('系统启动成功')
while True:
self.__print_menu()
selecd_id = input('请输入要选择功能的ID:')
if selecd_id.isdigit():
n = int(selecd_id)
if n >= 0 and n <= 5:
self.__operator(selecd_id)
else:
print('超出功能ID范围,重新输入')
else:
print('输入了非法功能,请重新输入')
def __print_menu(self):
print("*" * 30)
print("欢迎使用【学生管理系统】 V1.0")
print("1.添加学生")
print("2.显示全部")
print("3.查询学生")
print("4.修改学生")
print("5.删除学生")
print("0.退出系统")
print("*" * 30)
def __operator(self, selecd_id):
print('选择了功能 ', selecd_id)
method_dict = {'1': self.__add_student,
'3': self.__search_stu_with_id,
'4': self.__modify_student_with_id,
'2': self.__show_all_info,
'5': self.__remove_student_with_id,
'0': exit}
method = method_dict[selecd_id]
if selecd_id == '3' or selecd_id == '4' or selecd_id == '5':
stu_id = input('请输入要操作的学生ID:')
method(stu_id)
else:
if selecd_id == '0':
self.__save_data()
method()
def __add_student(self):
print('添加学生')
stu_info = self.__input_stu_info()
stu = Student(stu_info[0], stu_info[1], stu_info[2])
self.students[stu.stu_id] = stu
def __search_stu_with_id(self, stu_id):
print(stu_id)
stu = None
if stu_id in self.students:
stu = self.students[stu_id]
self.__show_stu_info(stu)
else:
print(f'ID为 {stu_id} 的学生不存在')
return stu
def __modify_student_with_id(self, stu_id):
print('要修改的学生是 ', stu_id)
stu = self.__search_stu_with_id(stu_id)
if stu != None:
new_stu_info = self.__input_stu_info()
stu.stu_id = new_stu_info[0]
stu.stu_name = new_stu_info[1]
stu.stu_age = new_stu_info[2]
print('修改完成')
self.__show_stu_info(stu)
else:
print('要修改的学生', stu_id, '不存在')
def __remove_student_with_id(self, stu_id):
stu = self.__search_stu_with_id(stu_id)
if stu:
self.students.pop(stu_id)
def __show_stu_info(self, stu):
print(stu)
def __show_all_info(self):
for stu in self.students.values():
self.__show_stu_info(stu)
def __input_stu_info(self):
stu_id = input('请输入学生的ID:')
stu_name = input('请输入学生的姓名:')
stu_age = input('请输入学生的年龄:')
return stu_id, stu_name, stu_age
def __save_data(self):
print('保存数据')
file_w = open('data', 'w')
for stu in self.students.values():
stu_s = stu.stu_id + ' ' + stu.stu_name + ' ' + stu.stu_age + '\n'
file_w.write(stu_s)
file_w.close()
def __load_data(self):
print('加载数据')
file_r = None
try:
file_r = open('data', 'r')
except Exception as e:
print(e, '文件不存在')
else:
content = file_r.readlines()
for stu_s in content:
split_info = stu_s.split()
stu = Student(split_info[0], split_info[1], split_info[2])
self.students[stu.stu_id] = stu
finally:
if file_r != None:
file_r.close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架