python学生信息管理系统实现代码

python实现学生信息管理系统,供大家参考,具体内容如下

#!/usr/bin/env python# -*- coding:utf-8 -*-import reimport os# 主函数def main():ctrl = Truewhile (ctrl):menu()option = input("请选择:")option_str = re.sub("\D", "", option)if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:option_int = int(option_str)if option_int == 0:print("您已退出学生信息管理系统!")ctrl = Falseelif option_int == 1:insert()elif option_int == 2:search()elif option_int == 3:delete()elif option_int == 4:modify()elif option_int == 5:sort()elif option_int == 6:total()elif option_int == 7:show()# 显示主菜单def menu():print("""-------------------学生信息管理系统---------------------======================功能菜单=========================1 录入学生信息2 查找学生信息3 删除学生信息4 修改学生信息5 排序6 统计学生总人数7 显示所有学生信息0 退出系统======================================================说明:通过数字或上下方向键选择菜单------------------------------------------------------""")# 向指定文件写入指定内容的函数filename = "students.txt"def save(student):try:students_txt = open(filename, "a")except:students_txt = open(filename, "w")for info in student:students_txt.write(str(info) + "\n")students_txt.close()#1 录入学生信息def insert():studentList = []mark = Truewhile mark:id = input("请输入ID(如1001):")if not id:breakname = input("请输入名字:")if not name:breaktry:english = int(input("请输入英语成绩:"))python = int(input("请输入Python成绩:"))c = int(input("请输入C语言成绩:"))except:print("输入无效,不是整型数值....重新录入信息")continue# 信息保存到字典student = {"id": id, "name": name, "english": english, "python": python, "C语言": c}studentList.append(student)inputMark = input("是否继续添加?(y/n):")if inputMark == "y":mark = Trueelse:mark = Falsesave(studentList)print("学生信息录入完毕!")#2 查找学生信息def search():mark = Truestudent_query = []while mark: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') as file:student = file.readlines()for list in student:d = dict(eval(list))if id is not "":if d['id'] == id:student_query.append(d)elif name is not "":if d['name'] == name:student_query.append(d)show_student(student_query)student_query.clear()inputMark = input("是否继续查询?(y/n):")if inputMark == "y":mark = Trueelse:mark = Falseelse:print("暂未保存数据信息...")returndef show_student(studentList):if not studentList:print("无数据信息")returnformat_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^10}"print(format_title.format("ID", "名字", "英语成绩", "Python成绩", "C语言成绩", "总成绩"))format_data = "https://www.it610.com/article/{:^6}{:^12}/t{:^12}/t{:^12}/t{:^12}/t{:^12}"for info in studentList:print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),str(info.get("C语言")),str(info.get("english")+info.get("python")+info.get("C语言")).center(12)))#3 删除学生信息def delete():mark = Truewhile mark:studentId = input("请输入要删除的学生ID:")if studentId is not "":if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:student_old = []ifdel = Falseif student_old:with open(filename, 'w') as wfile:d = {}for list in student_old:d = dict(eval(list))if d['id'] != studentId:wfile.write(str(d) + "\n")else:ifdel = Trueif ifdel:print("ID为%s的学生信息已经被删除..." % studentId)else:print("没有找到ID为%s的学生信息..." % studentId)else:print("无学生信息...")breakshow()inputMark = input("是否继续删除?(y/n):")if inputMark == "y":mark = Trueelse:mark = False#4 修改学生信息def modify():show()if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:returnstudentid = input("请输入要修改的学生ID:")with open(filename, "w") as wfile:for student in student_old:d = dict(eval(student))if d["id"] == studentid:print("找到了这名学生,可以修改他的信息!")while True:try:d["name"] = input("请输入姓名:")d["english"] = int(input("请输入英语成绩:"))d["python"] = int(input("请输入Python成绩:"))d["C语言"] = int(input("请输入C语言成绩:"))except:print("输入信息有误,重新输入")else:breakstudent = str(d)wfile.write(student + "\n")print("修改成功!")else:wfile.write(student)mark = input("是否继续修改其他学生信息?(y/n):")if mark == "y":modify()#5 排序def sort():show()if os.path.exists(filename):with open(filename, 'r') as file:student_old = file.readlines()student_new = []for list in student_old:d = dict(eval(list))student_new.append(d)else:returnascOrDesc = input("请选择(0升序;1降序):")if ascOrDesc == "0":ascOrDescBool = Falseelif ascOrDesc == "1":ascOrDescBool = Trueelse:print("您的输入有误,请重新输入!")sort()mode = input("请选择排序方式(1按英语排序;2按Python排序;3按C语言排序;0按总成绩排序)")if mode == "1":student_new.sort(key=lambda x: x["english"], reverse=ascOrDescBool)elif mode == "2":student_new.sort(key=lambda x: x["python"], reverse=ascOrDescBool)elif mode == "3":student_new.sort(key=lambda x: x["C语言"], reverse=ascOrDescBool)elif mode == "0":student_new.sort(key=lambda x: x["english"] + x["python"] + x["C语言"], reverse=ascOrDescBool)else:print("您的输入有误,请重新输入!")sort()show_student(student_new)#6 统计学生总人数def total():if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()if student_old:print("一共有%s名学生" % len(student_old))else:print("还没有录入学生信息!")else:print("暂未保存数据信息...")#7 显示所有学生信息def show():student_new = []if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()for list in student_old:student_new.append(eval(list))if student_new:show_student(student_new)else:print("暂未保存数据信息...")#0 退出系统if __name__ == '__main__':main()

安装pyinstaller打包成可执行exe文件
pip install pyinstaller...(pydemo) D:\JavaProjects\PythonProject\01学生信息管理系统>pyinstaller --version4.3(pydemo) D:\JavaProjects\PythonProject\01学生信息管理系统>pyinstaller -F D:\JavaProjects\PythonProject\01学生信息管理系统\StuManagerSys.py

在下面的路径即可找到打包后的exe文件
python学生信息管理系统实现代码
文章图片

【python学生信息管理系统实现代码】以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读