栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

学生信息管理系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学生信息管理系统

print( **************欢迎使用学生信息管理系统**************** ) print( --------功能菜单-------- ) print( 1. 录入学生信息 ) print( 2. 查找学生信息 ) print( 3. 删除学生信息 ) print( 4. 修改学生信息 ) print( 5. 排序 ) print( 6. 统计学生总人数 ) print( 7. 显示所有学生信息 ) print( 0. 退出系统 ) print( ------------------------------------------------------- ) def insert(): student_list [] while True: id input( 请输入学号(如1001) ) if not id: break name input( 请输入姓名 ) if not name: break try: english_gade int(input( 请输入英语成绩(成绩在0~100之间 )) if english_gade 0 or english_gade 100: print( 输入有误请重新输入 ) english_gade int(input( 请输入英语成绩(成绩在0~100之间 )) python_gade int(input( 请输入pyton成绩(成绩在0~100之间 )) if python_gade 0 or python_gade 100: print( 输入有误请重新输入 ) python_gade int(input( 请输入pyton成绩(成绩在0~100之间 )) java_gade int(input( 请输入java成绩(成绩在0~100之间 )) if java_gade 0 or java_gade 100: print( 输入有误请重新输入 ) java_gade int(input( 请输入java成绩(成绩在0~100之间 )) except: print( 输入无效 请重新输入 ) continue #将录入的学生信息保存到字典中 student { id :id, name :name, english :english_gade, python :python_gade, java :java_gade} #将学生信息添加到列表中 student_list.append(student) answer input( 是否继续添加 ,是/否n ) if answer 是 : continue else: break #调用save函数保存学生信息 save(student_list) print( 学生信息录入完全 ) def save(list): try: stu_txt open(filename, a ,encoding utf-8 ) except: stu_txt open(filename, w ,encoding utf-8 ) for item in list: stu_txt.write(str(item) n ) stu_txt.close() def search(): student_query [] while True: name if os.path.exists(filename): #判断磁盘文件是否存在 id input( 请输入想要查询的学生的学号 ) 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) #显示查询结果 show_student(student_query) #清空列表 student_query.clear() answer input( 请问是否继续查询 是/否n ) if answer 是 : continue else: break else: print( 没有此学生信息 ) return def show_student(list): if len(list) 0: print( 没有查到学生信息 ) return format_title {:^6}t{:^12}t{:^8}{:^8}{:^8} print(format_title.format( id , 姓名 , 英语成绩 , python成绩 , java成绩 )) format_data {:^6}t{:^12}t{:^8}{:^13}{:^11} for item in list: print(format_data.format(item.get( id ), item.get( name ), item.get( english ), item.get( python ), item.get( java ), def delete(): while True: student_id input( 请输入要删除 的学生的学号 ) 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(f id为{student_id}的学生信息已被删除 ) else: print(f 没有找到id为{student_id}的学生信息 ) else: print( 无学生信息 ) break show() #删除之后显示学生信息 answer ( 是否继续删除 是/否 ) if answer 是 : continue else: break 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( 请输入要修改的学生的学号 ) with open(filename, w , encoding utf-8 )as wfile: for item in student_old: d dict(eval(item)) if d[ id ] student_id: print( 找到学生信息 请修改 ) answer input( 请输入要修改的属性 ) while True: try: if answer id : d[ id ] input( 请输入修改的学号(如1001) ) elif answer name : d[ name ] input( 请输入修改的姓名 ) elif answer english : d[ english ] int(input( 请输入修改的英语成绩(成绩在0~100之间 )) if d[ english ] 0 or d[ english ] 100: print( 输入有误请重新输入 ) d[ english ] int(input( 请输入英语成绩(成绩在0~100之间 )) elif answer python : d[ python ] int(input( 请输入修改的pyton成绩(成绩在0~100之间 )) if d[ python ] 0 or d[ python ] 100: print( 输入有误请重新输入 ) d[ python ] int(input( 请输入python成绩(成绩在0~100之间 )) elif answer java : d[ java ] int(input( 请输入修改的java成绩(成绩在0~100之间 )) if d[ java ] 0 or d[ java ] 100: print( 输入有误请重新输入 ) d[ java ] int(input( 请输入java成绩(成绩在0~100之间 )) except: print( 您输入有误 请重新输入 ) else: break wfile.write(str(d) n ) print( 修改成功 ) # while True: # try: # d[ name ] input( 请输入姓名 ) # d[ english ] input( 请输入英语成绩 ) # d[ python ] input( 请输入pyton成 ) # d[ java ] input( 请输入java成绩 ) # except: # print( 您输入有误 请重新输入 ) # else: # break # wfile.write(str(d) n ) # print( 修改成功 ) else: wfile.write(str(d) n ) answer input( 是否修改其他学生信息 是/否n ) if answer 是 : modify() 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_des input( 请选择(0.升序 1.降序) ) if asc_or_des 0 : asc_or_des_bool False elif asc_or_des 1 : asc_or_des_bool True else: print( 您的输入有误 请重新输入 ) sort() mode input( 请选择排序方式(1.按英语成绩排序 2.按python成绩排序 3.按java成绩排序) ) if mode 1 : student_new.sort(key lambda x: int(x[ english ]),reverse asc_or_des_bool) elif mode 2 : student_new.sort(key lambda x: int(x[ python ]),reverse asc_or_des_bool) elif mode 3 : student_new.sort(key lambda x: int(x[ java ]),reverse asc_or_des_bool) else: print( 您的输入有误 请重新输入 ) sort() show_student(student_new) 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( 没有数据信息 ) def show(): student_list [] if os.path.exists(filename): with open(filename, r , encoding utf-8 )as rfile: students rfile.readlines() for item in students: student_list.append(eval(item)) if student_list: show_student(student_list) else: print( 没有数据信息 ) main()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号