这几天闲着没事干给朋友写了个学生管理系统,这个管理系统是用基本的字典和列表做成的,功能有
1. 学生基本信息录入
2. 学生基本信息显示
3. 学生基本信息保存
4. 学生基本信息删除
5. 学生基本信息修改
6. 学生基本信息查询
0. -退出系统并保存-
废话不多说,上效果图
功能1:学生基本信息录入
功能2:学生基本信息显示
功能3:学生基本信息保存,这会保存到与文件同级目录的txt文件
功能4:学生基本信息删除
功能5:学生基本信息修改
功能6:学生基本信息查询
功能0:保存并退出,这会保存到与文件同级目录的txt文件
下面是代码
import random
#=============================全局变量=============================================#
total_student = []
chance = 5
passw = random.randint(0,99999)
#=============================全局变量=============================================#
def pwd():
global chance
global passw
print(passw)
while True:
try:
password = int(input('请输入秘密:'))
if password == passw:
print('密码正确')
print('-' * 30)
action()
break
if chance ==1:
print('无剩余次数,密码更换!')
passw = random.randint(0,99999)
print(passw)
chance +=4
print('-' * 30)
else:
chance-=1
print(f'密码错误,剩余次数{chance}')
print('-'*30)
except:
print('请输入有效字符!')
print('-' * 30)
def add_student():
student_name = input('请输入需要添加学生的名字:')
student_number = input('请输入需要添加学生的学号:')
student_sex = input('请输入需要添加学生的性别:')
student_age = input('请输入需要添加学生的年龄:')
if len(student_name)>=1 and len(student_number)>=1 and len(student_sex)>=1 and len(student_age)>=1 and not ' ' in student_name and not ' ' in student_number and not ' ' in student_sex and not ' ' in student_age:
addstudent = {'name':student_name,'number':student_number,'sex':student_sex,'age':student_age}
total_student.append(addstudent)
print(f'{student_name}的信息已添加!')
print('------目前有这些学生------' + '\n姓名:\t学号:\t性别:\t年龄:')
for student in total_student:
if len(student['name']) == 2:
print(f"{student['name']}\t\t{student['number']}\t{student['age']}\t\t{student['sex']}")
elif len(student['name']) == 3:
print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
elif len(student['name']) == 4:
print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
print('-'*30)
else:
print('-------请输入正确信息!-------')
def show_student():
print('--------目前有这些学生-----------' + '\n姓名:\t学号:\t性别:\t年龄:')
try:
for student in total_student:
if len(student['name']) ==2:
print(f"{student['name']}\t\t{student['number']}\t{student['age']}\t\t{student['sex']}")
elif len(student['name']) ==3:
print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
elif len(student['name']) ==4:
print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
print('-' * 30)
except:
print('')
def del_student():
student_name = input('请输入需要删除学生的名字:')
student_number = input('请输入需要删除学生的学号:')
for student in total_student:
if student_name == student['name'] and student_number == student['number']:
print(f'{"-" * 30}\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
print('-' * 30)
confirm = input('是否删除:')
if confirm =='是':
print(f'----{student["name"]}的信息已删除!----')
total_student.remove(student)
print('-' * 30)
break
elif confirm =='否':
print('-' * 30)
break
else:
print('-------请确认-------')
print('-' * 30)
break
else:
print('-------没找到该学生的信息------')
def search_student():
student_name = input('请输入需要查询学生的名字:')
student_number = input('请输入需要查询学生的学号:')
for search in total_student:
if student_name == search['name'] and student_number ==search['number']:
if len(search['name']) == 2:
print('------该学生的信息为:------' + '\n姓名:\t学号:\t性别:\t年龄:')
print(f"{search['name']}\t\t{search['number']}\t{search['age']}\t\t{search['sex']}")
elif len(search['name']) == 3:
print('------该学生的信息为:------' + '\n姓名:\t学号:\t性别:\t年龄:')
print(f"{search['name']}\t{search['number']}\t{search['age']}\t\t{search['sex']}")
elif len(search['name']) == 4:
print('--------该学生的信息为:-------' + '\n姓名:\t学号:\t性别:\t年龄:')
print(f"{search['name']}\t{search['number']}\t{search['age']}\t\t{search['sex']}")
print('-' * 30)
break
else:
print('----该学生的信息不存在----')
print('-' * 30)
def replace_student():
student_name = input('请输入需要修改学生的名字:')
student_number = input('请输入需要修改学生的学号:')
try:
for student in total_student:
if student_name == student['name'] and student_number == student['number']:
print('-'*30)
new_name = input('请输入需要修改成学生的名字:')
new_number = input('请输入需要修改成学生的学号:')
new_sex = input('请输入需要修改成学生的性别:')
new_age = input('请输入需要修改成学生的年龄:')
if len(new_name) >= 1 and len(new_number) >= 1 and len(new_sex) >= 1 and len(new_age) >= 1 and not ' ' in new_name and not ' ' in new_number and not ' ' in new_sex and not ' ' in new_age:
if len(student_name) == 2 and len(new_name) ==2:
print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
elif len(student_name) == 2 and len(new_name) ==3:
print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
elif len(student_name) ==3and len(new_name) ==3:
print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
elif len(student_name) ==4:
print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
confirm = input('是否修改:')
if confirm =='是':
student['name'] = new_name
student['number'] = new_number
student['sex'] = new_sex
student['age'] = new_age
print('--------修改成功--------')
elif confirm =='否':
print('-' * 30)
continue
else:
print('-------请确认是否修改-------')
print('-' * 30)
break
else:
print('-------请输入正确信息!-------')
break
else:
print('-------该学生信息不在记录中!-------')
print('-' * 30)
except:
print('-------该学生信息不在记录中!-------')
print('-' * 30)
def action():
load_info()
while True:
action_list = ['-------请选择需要执行的操作-------', '1.\t\t学生基本信息录入', '2.\t\t学生基本信息显示', '3.\t\t学生基本信息保存', '4.\t\t学生基本信息删除',
'5.\t\t学生基本信息修改', '6.\t\t学生基本信息查询', '0.\t\t-退出系统并保存-']
for action in action_list:
print(action,end='\n')
print('-'*30)
action_input = input('请选择:')
if action_input =='1':
print('-' * 30)
add_student()
elif action_input == '2':
print('-' * 30)
show_student()
elif action_input == '3':
print('-' * 30)
save_info()
elif action_input == '4':
print('-' * 30)
del_student()
elif action_input == '5':
print('-' * 30)
replace_student()
elif action_input == '6':
print('-' * 30)
search_student()
elif action_input == '0':
print('-' * 30)
save_info()
break
else:
print('------请选择你需要进行的操作------')
def save_info():
try:
with open('student_info.txt', 'w', encoding='utf-8') as f:
f.write(str(total_student))
print('==========数据保存成功===========')
except:
print('==========数据保存失败===========')
def load_info():
students = []
try:
with open('student_info.txt', 'r', encoding='utf-8') as w:
students.append(eval(w.read()))
for i in students:
for x in i:
total_student.append(x)
print('==========读取数据成功===========')
except:
print('==========读取数据失败==========')
if __name__ == '__main__':
pwd()