好嘛,经过三天的复习python和三天的敲代码,用python写了个学生信息管理系统,功能不是很完善,大家图一乐。
import os
filename = 'student.txt'
def menu():
print("-------------------------------学生信息管理系统--------------------------------")
print("\t\t\t\t1.录入学生信息")
print("\t\t\t\t2.查找学生信息")
print("\t\t\t\t3.删除学生信息")
print("\t\t\t\t4.修改学生信息")
print("\t\t\t\t5.排序")
print("\t\t\t\t6.统计学生总人数")
print("\t\t\t\t7.显示所有学生总信息")
print("\t\t\t\t0.退出")
def save(lst):
stu_txt = open(filename,'a',encoding='utf-8')
for items in lst:
stu_txt.write(str(items) + '\n')
stu_txt.close()
def insert():
while True:
id = input("请输入ID(如1001) ")
if not id:
break
name = input("请输入姓名 ")
if not name:
break
English = input("请输入英语成绩 ")
if not English:
break
student = {'id':id,'name':name,'English score':English}
student_list = []
student_list.append(student)
answer = input("是否继续添加学生信息 ")
if answer == "y" or answer == "Y":
continue
else:
break
save(student_list)
def showstudent(lst):
if len(lst) == 0:
print("无此人信息")
return
else:
for items in lst:
print(items)
return
def delete():
while True:
student_id = input('请输入想要删除学生的id ')
if student_id:
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as file:
student_old = file.readlines()
else:
student_old = []
flag = False
if student_old:
with open(filename,'w',encoding='utf-8') as wfile:
for items in student_old:
d = eval(items)
if d['id'] != student_id:
wfile.write(str(d) + '\n')
else:
flag = True
if flag:
print('id为' + student_id +'的学生信息已被删除')
else:
print('没有找到id为' + student_id + '的学生信息')
else:
print("没有找到学生信息")
break
answer = input("是否继续删除学生信息 ")
if answer == "y" or answer == "Y":
continue
else:
print("删除完成")
return
def search():
id = ''
name = ''
while True:
student_query = []
if os.path.exists(filename):
mode = input("按照id查询请输入1,按照姓名查询请输入2 ")
if mode == '1':
id = input("请输入想要查询的学生的id ")
elif mode == '2':
name = input("请输入学生的姓名 ")
else:
print("您的输入有误,请重新输入 ")
search()
with open(filename,'r',encoding='utf-8') as rfile:
student = rfile.readlines()
for items in student:
d = eval(items)
if id != '':
if d['id'] == id:
student_query.append(d)
if name != '':
if d['name'] == name:
student_query.append(d)
showstudent(student_query)
answer = input("是否继续查询学生信息 ")
if answer == "y" or answer == "Y":
search()
else:
return
else:
print("查无此人")
return
def modify():
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
student_old = rfile.readlines()
else:
return
student_id = input('请输入想要修改的学员的id ')
with open(filename,'w',encoding='utf-8') as wfile:
for items in student_old:
d = dict(eval(items))
if d['id'] == student_id:
print("找到学生信息了,可以进行修改")
while True:
d['name'] = input("请输入姓名 ")
d['English score'] = input("请输入英语成绩 ")
wfile.write(str(d) + '\n')
print("修改成功!!")
showstudent(list(d.keys()))
showstudent(list(d.values()))
break
else:
wfile.write(str(d) + '\n')
answer = input("是否继续修改学生信息 ")
if answer == "y" or answer == "Y":
modify()
else:
return
def total():
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
students = rfile.readlines()
number = len(students)
if students:
print("共有" + str(number) + "名学生")
else:
print("还没有录入学生信息")
else:
print("暂未保存数据信息——————————")
def show():
student_list = []
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
students = rfile.readlines()
for items in students:
student_list.append(eval(items))
if student_list:
showstudent(student_list)
else:
print("暂未保存数据")
def sort():
show()
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
student_list = rfile.readlines()
student_new = []
for item in student_list:
d = dict(eval(item))
student_new.append(d)
else:
return
asc_or_desc = input("请选择排序方式 0为升序 1位降序")
if asc_or_desc == '0':
asc_or_desc_bool = False
elif asc_or_desc == '1':
asc_or_desc_bool = True
else:
print("您输入错误,请您重新输入")
sort()
student_new.sort(key=lambda student_new : student_new['English score'],reverse=asc_or_desc_bool)
showstudent(student_new)
def main():
while True:
menu();
choice = int(input("请选择 "))
if choice in range(0,8):
if choice == 0:
answer = input("您确定要退出系统吗?(y/n)")
if answer == 'y' or answer == 'Y':
print('感谢您的使用')
break
else:
continue
elif choice == 1:
insert()
elif choice == 2:
search()
elif choice == 3:
delete()
elif choice == 4:
modify()
elif choice == 5:
sort()
elif choice == 6:
total()
elif choice == 7:
show()
main()