Python实现学生管理系统,用python写一个简单的学生管理系统
本文主要介绍了用python实现的简单易行的学生信息管理系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
00-1010一、系统功能二。系统开发环境。执行代码四。项目包和生成。exe可执行文件。本例分享python实现简单学生信息管理系统的具体代码,供大家参考。具体内容如下
目录
1.输入学生信息
2.查找学生信息
3.修改学生信息
4.删除学生信息
5.分级。
6.统计学生总数。
7.显示所有学生信息
0.退出系统。
一、系统功能
1.操作系统:win7
2.开发工具:PyCharm
3.Python内置模块:os,re
二、系统开发环境
导入操作系统
filename=students.txt
定义主():
而True:
菜单()
Choice=int(input(请选择函数:))
if选择在[0,1,2,3,4,5,6,7]:
if choice==0:
回答=输入(你确定要退出系统吗?(是/否))
如果答案==y 或答案==Y:
打印(感谢您的使用!)
Break #退出while循环并退出系统
else:
继续
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() #显示所有学生信息
定义插入():
Student_list=[] #用于存储学生信息,列表的每个元素都是一个字典。
而True:
ID=input(请输入学生ID:)
如果不是id:
破裂
Name=input(请输入学生的姓名:)
如果不命名:
破裂
尝试:
Englist=int(input (input(请输入英语分数:))
Python=int(input(请输入Python分数:))
Java=int(input(请输入Java分数:))
例外:
打印(输入无效,不是整数类型,请重新输入!)
继续
#将输入的学生信息保存到字典中。
student={id:id, name:name, English:Englist, Python:Python, Java:Java}
#向列表中添加学生信息
学生_列表.追加(学生)
回答=输入(要继续添加吗?(是/否))
如果答案==y 或答案==Y:
继续
else:
破裂
#保存学生信息
在文件中
save(student_list)
print(学生信息录入完毕!)
pass
def search():
student_query=[] #用列表存储,防止有同名学生。
while True:
id=
name=
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 item in student:
d=dict(eval(item))
if id!=:
if d[id]==id:
student_query.append(d)
elif name!=:
if d[name]==name:
student_query.append(d)
#显示查询结果
show_student(student_query)
student_query.clear() #清空列表
answer=input(是否要继续查询?(y/n))
if answer==y or answer==Y:
continue
else:
break
else:
print(暂未保存学生信息。)
return
pass
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:
d={}
for item in student_old: #遍历学生信息列表
d=dict(eval(item)) #将字符串转成字典
if d[id]!=student_id:
wfile.write(str(d)+\n)
else:
flag=True
if flag:
print(fid为{student_id}的学生信息已被删除)
else:
print(f没有找到ID为{student_id}的学生信息)
else:
print(无此学生信息)
break
show() #删完之后重新显示所有学生信息
answer=input(是否继续删除?(y/n))
if answer==y or answer==Y:
continue
else:
break
pass
def modify():
show()
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 item in student_old:
d=dict(eval(item))
if d[id]==student_id:
print(找到此学生信息,可以修改。)
while True:
try:
d[name]=input(请输入学生姓名:)
d[English]=input(请输入English成绩:)
d[Python]=input(请输入Python成绩:)
d[Java]=input(请输入Java成绩:)
except:
print(您的输入有误请重新输入!)
else:
break
wfile.write(str(d)+\n)
print(修改成功!)
else:
wfile.write(str(d)+\n)
answer=input(是否继续修改其他学生信息?(y/n))
if answer==y:
modify()
pass
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()
mode=input(请选择排序方式(0:按总成绩排序,1:按English成绩排序,2:按Python成绩排序,3:按Java成绩排序))
if mode==0:
student_new.sort(key=lambda x: int(x[English])+int(x[Python])+int(x[Java]), reverse=asc_or_desc_bool)
elif mode==1:
student_new.sort(key=lambda x:int(x[English]),reverse=asc_or_desc_bool)
elif mode==2:
student_new.sort(key=lambda x: int(x[Python]), reverse=asc_or_desc_bool)
elif mode==3:
student_new.sort(key=lambda x: int(x[Java]), reverse=asc_or_desc_bool)
else:
print(您的输入有误,请重新输入!)
sort()
show_student(student_new)
pass
def total():
if os.path.exists(filename):
with open(filename,r,encoding=utf-8) as rfile:
students=rfile.readlines()
if students:
print(f一共有{len(students)}名学生)
else:
print(还没有录入学生信息!)
else:
print(暂未保存学生信息......)
pass
def show():
student_lst=[]
if os.path.exists(filename):
with open(filename,r,encoding=utf-8) as rfile:
students=rfile.readlines()
for item in students:
student_lst.append(eval(item))
if student_lst:
show_student(student_lst)
else:
print(暂未保存过数据!)
pass
def save(stu_list):
try:
stu_txt=open(filename,a,encoding=utf=8)
except:
stu_txt=open(filename,w,encoding=utf-8)
for item in stu_list:
stu_txt.write(str(item)+\n)
stu_txt.close()
def show_student(lst):
if len(lst)==0:
print(没有查到学生信息,无数据显示!)
return
#定义标题显示格式
format_title={:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}
print(format_title.format(ID,姓名,English成绩,Python成绩,Java成绩,总成绩))
#定义内容显示格式
format_data={:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^14}\t{:^8}
for item in lst:
print(format_data.format(item.get(id),item.get(name),item.get(English),item.get(Python),item.get(Java),str(int(item.get(English))+int(item.get(Python))+int(item.get(Java)))))
pass
def menum():
print(-------------------学生信息管理系统--------------------)
print(-----------------------功能菜单------------------------)
print( 1.录入学生信息)
print( 2.查找学生信息)
print( 3.删除学生信息)
print( 4.修改学生信息)
print( 5.成绩排序)
print( 6.统计学生总人数)
print( 7.显示所有学生信息)
print( 0.退出系统)
print(------------------------------------------------------)
main()
四、项目打包并生成.exe可执行文件
1.安装第三方模块,打开dos窗口,输入:pip install PyInstaller并回车,
2.输入:pyinstaller -F 程序文件具体位置,
3.回车后即可在输出内容的倒数第二行看到.exe文件的位置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。