企业培训管理系统(控制台程序)

Dagny ·
更新时间:2024-09-21
· 685 次阅读

企业培训管理系统,控制台程序培训管理系统拟实现功能程序代码生成exe文件 培训管理系统拟实现功能

1 录入学生信息
2 查找学生信息
3 删除学生信息
4 修改学生信息
5 排序
6 统计学生总人数
7 显示所有学生信息
0 退出系统

程序代码

由于程序较为简单,不做详细介绍

import re import os filename = 'staff.txt' def menu(): # 输出菜单 print(''' ╔———————运管部培训管理系统————————╗ │ │ │ =============== 功能菜单 =============== │ │ │ │ 1 录入员工信息 │ │ 2 查找员工信息 │ │ 3 删除员工信息 │ │ 4 修改员工信息 │ │ 5 排序 │ │ 6 统计员工总人数 │ │ 7 显示所有员工信息 │ │ 0 退出系统 │ │ ========================================== │ │ 说明:通过数字或↑↓方向键选择菜单 │ ╚———————————————————————╝ ''') def main(): ctrl = True while 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 = False elif 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() else: print('请重新选择:') def insert(): studentList = [] mark = True while mark: id = input('请输入学生ID:') if not id: break name = input('请输入学生姓名:') if not name: break try: jidian = int(input('请输入机电成绩:')) ruodian = int(input('请输入弱电成绩:')) gongdian = int(input('请输入供电成绩:')) except Exception as e: print("输入无效,不是整型数值....重新录入信息,错误原因为:",e) continue student = {'id':id, 'name':name, 'jidian':jidian, 'ruodian':ruodian, 'gongdian':gongdian} studentList.append(student) inputMark = input('是否继续添加(y/n):') if inputMark == 'y' or inputMark == 'Y': mark = True else: mark = False save(studentList) print('学生信息录入完毕') def save(studentList): try: staff_txt = open(filename, 'a') except Exception as e: staff_txt = open(filename, 'w') for info in studentList: staff_txt.write(str(info) + '\n') staff_txt.close() def search(): mark = True student_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 "": # 判断是否按ID查 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 = True else: mark = False else: print("暂未保存数据信息...") return def show_student(studentList): if not studentList: print("(o@.@o) 无数据信息 (o@.@o) \n") return format_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^10}" print(format_title.format("ID", "名字", "机电成绩", "弱电成绩", "供电成绩", "总成绩")) format_data = "{:^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("jidian")), str(info.get("ruodian")), str(info.get("gongdian")), str(info.get("jidian") + info.get("ruodian") + info.get("gongdian")).center(12))) def delete(): mark = True while mark: studentID = input('请输入要删除的学生的ID:') if studentID != '': if os.path.exists(filename): with open(filename, 'r') as rfile: student_old = rfile.readlines() else: student_old = [] ifdel = False if 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') print('1') else: ifdel = True if ifdel: print('ID为%s的学生信息已经删除'%studentID) else: print('没有找到ID为%s的学生信息'%studentID) else: print('无学生信息') break show() inputMark = input('是否继续删除(y/n)') if inputMark == 'y' or inputMark == 'Y': mark = True else: mark = False else: break def modify(): mark = True show() while mark: if os.path.exists(filename): with open(filename, 'r') as rfile: student_old = rfile.readlines() else: return studentID = input('请输入要修改的学生ID:') with open(filename, 'w') as wfile: for student in student_old: d = dict(eval(student)) if d['id'] == studentID: while True: try: d['name'] = input('请输入修改的姓名:') d['jidian'] = int(input('请输入要修改的机电成绩:')) d['ruodian'] = int(input('请输入要修改的弱电成绩:')) d['gongdian'] = int(input('请输入要修改的供电成绩:')) except: print('您的输入有误,请重新输入') else: break student = str(d) wfile.write(student + '\n') print('修改成功') else: wfile.write(student) inputMark = input('是否继续修改(y/n):') if inputMark == 'y' or inputMark == 'Y': mark = True else: mark = False def sort(): show() if os.path.exists(filename): with open(filename, 'r') as rfile: student_old = rfile.readlines() student_new = [] for list in student_old: d = dict(eval(list)) student_new.append(d) else: return ascORdesc = input('请选择升序还是降序:(0升序,1降序)') if ascORdesc == '0': ascORdescBool = False elif ascORdesc == '1': ascORdescBool = True else: print('您的输入有误,请重新输入') sort() mode = input('请输入排序方式:(1:按机电成绩;2:按弱电成绩;3:按供电成绩;4:按总成绩)') if mode == '1': student_new.sort(key = lambda x: x['jidian'], reverse = ascORdescBool) elif mode == '2': student_new.sort(key = lambda x: x['ruodian'], reverse=ascORdescBool) elif mode == '3': student_new.sort(key = lambda x: x['gongdian'], reverse=ascORdescBool) elif mode == '4': student_new.sort(key = lambda x: x['jidian'] + x['ruodian'] + x['gongdian'], reverse=ascORdescBool) else: print('您的输入有误,请重新输入') sort() show_student(student_new) def total(): if os.path.exists(filename): with open(filename, 'r') as rfile: student_old = rfile.readlines() if student_old: print('一共有 %d 个学生' % len(student_old)) else: print('还没有录入学生信息') else: print('暂未保存数据信息') 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('文件信息不存在') if __name__ == '__main__': main() 生成exe文件

若电脑未安装PyInstaller模块
在命令提示符窗口中输入"pip install pyinstaller"
安装模块后,在命令提示符模块中输入"pyinstaller --version"查看模块版本,验证模块是否正确安装
在命令提示符模块中输入"pyinstaller -F 要打包的py文件位置,例如:
pyinstaller -F C:\Users\ZLH\dist\student.py


作者:天使Python



企业培训 程序 系统 控制台程序 控制台

需要 登录 后方可回复, 如果你还没有账号请 注册新账号