写着玩意会让人回想起大一下期末被C语言课设——HN大学图书管理系统折磨的日子,虽然现在文件那章还是不会哈哈哈。
Python断断续续学了几天,今天试着写了下类似于图书馆的学生管理系统,依旧不是很轻松,(交互一度想用switch-case写xs),列表元组字典。。。。学的时候小简单,用起来是有点大乱。
啊,20:36了,今天还没运动,我的2.17-3.20 31天年后极速恢复计划!!!
跳绳去!
运动完看龙叔去!
886!
没空写
import time
#全局变量->学生信息库
stu_info=[]
#time库及格式输出
#台湾腔卡吉玛进度条效果
def StayWithMe():
scale1=50
start1=time.perf_counter()
for i in range(scale1+1):
a='*'*i
b='.'*(scale1-i)
c=(i/scale1)*100
dur1=time.perf_counter()-start1
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur1),end=" ")
time.sleep(0.13)
time.sleep(1.5)
#主菜单界面
def Menu():
print("欢迎来到海南大学学生管理系统".center(28,'*'))
print("请选择功能".center(35,'-'))
print("1.添加学员 2.删除学员".center(33,'.'))
print("3.修改学员 4.查找学员".center(33, '.'))
print("5.显示所有学员 6.退出系统".center(31, '.'))
print('*'*40)
#添加学员->append(单个)、extend([多,个,])、insert(index,‘data’)
def AddStudent():
#新增信息录入
new_id=eval(input("请输入新增学生学号:"))
new_name=input("请输入新增学生姓名:")
#全局变量声明
global stu_info
#查重->与stu_info列表内查重
for saved_info in stu_info:
# 已存在->退出
if new_name == saved_info['name'] or new_id==saved_info['ID'] :
if new_name != saved_info['name'] or new_id != saved_info['ID']:
print("学生部分信息重复,可能存在录入错误!")
return
if new_name == saved_info['name'] and new_id==saved_info['ID'] :
print("该学生信息已存在!")
return
#不存在 学生信息入库
stu_dict = {}
stu_dict['ID'] = new_id
stu_dict['name'] = new_name
stu_info.append(stu_dict)
print(f'{new_name}同学信息已成功录入!')
print(stu_info)
#删除学员-> pop(默认最后)、remove('指定删除') del函数
def DeleteStudent():
del_name=input("请输入删除学生姓名:")
global stu_info
for saved_info in stu_info:
if del_name==saved_info['name']:
#之前写成了remove(del_name),不匹配类型报错
stu_info.remove(saved_info)
print(f'{del_name}同学信息已删除')
break
#循环正常结束执行else 区别于C
#如果此else与if配对,因break的存在就会出现逻辑错误
else:
print(f'未查找到{del_name}同学信息,无法删除')
#修改学员->
def ModifyStudent():
modify_name = input("请输入修改学生姓名:")
global stu_info
for saved_info in stu_info:
if modify_name == saved_info['name']:
saved_info['ID']=eval(input("请输入修改后学生的ID:"))
print(f'{modify_name}同学信息已修改')
break
else:
print(f'未查找到{modify_name}同学信息,无法修改')
#查找学员->学号查找或姓名查找
def SearchStudent():
choice=eval(input("姓名查找请按'1',学号查找请按'2':"))
global stu_info
if choice==1:
search_name1 = input("请输入查找学生姓名:")
for saved_info in stu_info:
if search_name1 == saved_info['name']:
search_id1=saved_info['ID']
print(f'{search_name1}同学学号为{search_id1}')
break
else:
print(f'未查找到{search_name1}同学信息')
if choice==2:
#没写eval搞成字符型的了 吐血
search_id2 = eval(input("请输入查找学生ID:"))
for saved_info in stu_info:
if search_id2 == saved_info['ID']:
search_name2=saved_info['name']
print(f'{search_name2}同学学号为{search_id2}')
break
else:
print(f'未查找到学号为{search_id2}同学的个人信息')
#显示所有学员->遍历 enumerate()的使用
def BrowseAllStudent():
for index, item in enumerate(stu_info, 1):
print(f" 序号 姓名 学号")
print(f" {index} {item['name']} {item['ID']}")
#交互界面
def FuncSelcet():
while True:
Menu()
user_choice = eval(input("请输入您的选择:"))
if user_choice not in range(1, 6):
if user_choice==6:
time.sleep(0.5)
print("森么?您要退出?55555")
time.sleep(1.5)
print("不要酱紫啦,给您6.99s重新考虑一下下,不要离开我555!")
time.sleep(3)
StayWithMe()
print()
reply=eval(input("仍要残忍离开请按'0',心太软请按'1':"))
if reply==0:
time.sleep(0.5)
print("哼!您很机车诶!")
time.sleep(0.5)
print("安全退出了啦!")
time.sleep(0.5)
print("hetui!真的很烦內")
time.sleep(0.5)
print("不爱我就拉倒了啦!")
break
elif reply==1:
continue
elif user_choice!=6:
print(f'无{user_choice}选项,请从1-6中重新选择')
elif user_choice == 1:
print("添加成员信息")
AddStudent()
elif user_choice == 2:
print("删除学员信息")
DeleteStudent()
elif user_choice == 3:
print("修改学员信息")
ModifyStudent()
elif user_choice == 4:
print("查找学员信息")
SearchStudent()
elif user_choice == 5:
print("显示所有学员")
BrowseAllStudent()
#int main(){} hhh C语言起来了
FuncSelcet()