import os
class Student(object):
def __init__(self,_name,_age,_tel):
self.name = _name
self.age = _age
self.tel = _tel
def __str__(self):
return f'学生的姓名:{self.name},学生的年龄{self.age},学生的学号{self.tel}'
class SysManger(object):
def __init__(self):
self.list = []
@staticmethod
def menu():
print('='*25)
print('1.添加学生')
print('2.查询所有学生信息')
print('3.查询某个学生')
print('4.修改学生')
print('5.删除某个学生')
print('6.保存信息')
print('7.退出系统')
print('=' * 25)
def add_student(self):
name = input('请输入学生姓名')
for user in self.list:
if user.name == name:
print('该学生已存在,不能重复添加!')
break
else:
age = input('请输入学生年龄:')
tel = input('请输入学生学号:')
stu = Student(name,age,tel)
self.list.append(stu)
def search_allstu(self):
print(f'序号\t\t学号\t\t姓名\t\t\t年龄')
for i,user in enumerate(self.list):
print(f'{i + 1}\t\t{user.tel}\t\t{user.name}\t\t{user.age}')
def search_onestu(self):
name = input('请输入学生姓名:')
print(f'序号\t\t学号\t\t姓名\t\t\t年龄')
for i,user in enumerate(self.list):
if user.name == name:
print(f'{i + 1}\t\t{user.tel}\t\t{user.name}\t\t{user.age}')
break
else:
print('该学生信息不存在!')
def modify_onestu(self):
name = input('请输入要修改信息的学生姓名:')
for i,user in enumerate(self.list):
if user.name == name:
user.name = input('请输入修改后的姓名:')
user.age = input('请输入修改后的年龄:')
user.tel = input('请输入修改后的学号:')
print(f'序号\t\t学号\t\t姓名\t\t\t年龄')
print(f'{i + 1}\t\t{user.tel}\t\t{user.name}\t\t{user.age}')
break
else:
print('该学生信息不存在!')
def del_onestu(self):
name = input('请输入要删除的学生姓名:')
for user in self.list:
if user.name == name:
self.list.remove(user)
break
else:
print('该学生信息不存在!')
def save_info(self):
stu_list = []
with open('stu.txt','w',encoding='utf-8') as f:
for user in self.list:
dict = {'name':user.name,'age':user.age,'tel':user.tel}
stu_list.append(dict)
f.write(str(stu_list))
def load_data(self):
if not os.path.exists('stu.txt'):
file = open('stu.txt','w',encoding='utf-8')
file.close()
else:
with open('stu.txt','r',encoding = 'utf-8') as f:
stu_list = f.read()
stu_list = eval(stu_list)
for dict in stu_list:
_name = dict['name']
_age = dict['age']
_tel = dict['tel']
stu = Student(_name,_age,_tel)
self.list.append(stu)
print('学生数据加载完成!')
def start(self):
self.load_data()
while True:
print(self.list)
self.menu()
cmd = input('请输入要进行的操作')
#添加学生信息
if cmd == '1':
self.add_student()
elif cmd == '2':
#查询所有学生
self.search_allstu()
elif cmd == '3':
#查询某个学生
self.search_onestu()
elif cmd == '4':
#修改某个学生
self.modify_onestu()
elif cmd == '5':
#删除某个学生
self.del_onestu()
elif cmd == '6':
#保存信息
self.save_info()
elif cmd == '7':
break
else:
print('输入有误,请重新输入')
manger = SysManger()
manger.start()
python面向对象版学生管理系统
最新推荐文章于 2024-05-19 23:31:32 发布