python编写学生成绩管理系统的逻辑结构及功能怎么实现
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇"python编写学生成绩管理系统的逻辑结构及功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,
千家信息网最后更新 2025年11月09日python编写学生成绩管理系统的逻辑结构及功能怎么实现
这篇"python编写学生成绩管理系统的逻辑结构及功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"python编写学生成绩管理系统的逻辑结构及功能怎么实现"文章吧。
学生信息系统
提示:python编写的学生成绩管理系统,包括8个功能和打包教程
一、功能界面
def menum(): print('==================student_manger=================') print('---------------------功能界面---------------------') print('\t\t1.录入学生信息') print('\t\t2.查找学生信息') print('\t\t3.删除学生信息') print('\t\t4.修改学生成绩') print('\t\t5.排序') print('\t\t6.统计学生总人数') print('\t\t7.显示所有学生信息') print('\t\t8.显示功能介绍按钮') print('\t\t0.退出') print('================================================')二 、主函数
def main(): menum() while True: try: choice = int(input('请选择你想进行的操作: ')) except ValueError: print('输入的数据存在错误,只能输入0到7的整数!') try: choice = int(input('请重新输入: ')) except ValueError: print('重复输入错误,退出系统!') break if choice in [0, 1, 2, 3, 4, 5, 6, 7, 8]: if choice == 0: answer = input('你确定要退出系统吗?(Y/N): ') if answer == 'Y' or answer == 'y': print('谢谢使用!') break elif answer == 'N' or answer == 'n': print('即将返回上一步操作!') continue else: input('输入错误,即将返回主界面!') continue 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() else: menum() else: print('你选择的操作无效,请重新输入!:')三 、学生信息录入功能
逻辑结构图
def insert(): student_list = [] id_list = [] while True: id = input('请输入ID: ') if not id: break name = input('请输入姓名:') if not name: break try: english = float(input('请输入英语成绩:')) math = float(input('请输入数学成绩:')) python = float(input('请输入Python成绩:')) except ValueError: print('数据输入错误!') continue # 将录入的学生信息存放到字典中 student = {'id': id, 'name': name, 'english': english, 'math': math, 'Python': python} # 将每个学生的信息存放在列表中 if student['id'] in id_list: # student['id'] = value(id) print('已存在相同ID:') for i in range(len(student_list)): if student_list[i][id] == student[id]: # 输出重复id元素 print(student_list[i].items()) break print('请重新录入!') else: id_list.append(str(student['id'])) student_list.append(student) # 是否继续添加学生信息 answer = input('是否继续添加学生信息?(Y/N): ') if answer == 'Y' or answer == 'y': continue elif answer == 'N' or answer == 'n': # 存储学生信息 save(student_list, filename) print('学生信息录入完毕!') break else: print('输入错误,即将返回主界面!') break四 、学生信息查找功能
逻辑结构图
代码
def search(): while True: if os.path.exists(filename): with open(filename, 'r', encoding = 'utf-8') as s_file: student_qurey = s_file.readlines() # 将学生信息全部取出 id_list = [] name_list = [] for i in student_qurey: d = dict(eval(i)) id_list.append(d['id']) # 将所有学生的id存放在id_list中 name_list.append(d['name']) # 将所有学生的name存放在id_list中 try: mode = int(input('请选择查询模式: 1.按照ID查询 / 2.按照姓名查询 ')) except ValueError: print('数据类型输入错误!请重新输入!') else: if mode == 1: # 按照ID查询 id = input('请输入学生id: ') if id in id_list: print('已经查找到该名学生:') print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:') for item in student_qurey: if dict(eval(item))['id'] == id: p = dict(eval(item)) print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}'.format( p['id'], p['name'], p['english'], p['math'], p['Python'], float(p['english'])+float(p['math'])+float(p['Python']))) else: print('查无此人!') elif mode == 2: # 按照姓名查询 name = input('请输入学生姓名: ') if name in name_list: print('已经查找到该名学生:') print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:') for item in student_qurey: if dict(eval(item))['name'] == name: p = dict(eval(item)) print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}'.format( p['id'], p['name'], p['english'], p['math'], p['Python'], float(p['english']) + float(p['math']) + float(p['Python']))) else: print('查无此人!') else: print('输入错误,只能选择1/2两种模式!') answer = input('是否继续查询? (Y/N)') if answer == 'Y' or answer == 'y': continue elif answer == 'N' or answer == 'n': print('正在退出查询..') break else: print('输入错误,即将返回主界面!') break else: print('无学生信息文件!') return五 、删除学生信息
逻辑结构图
代码
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: 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 = input('是否继续删除学生信息?(Y/N): ') if answer == 'Y' or answer == 'y': continue elif answer == 'N' or answer == 'n': break else: print('输入错误,即将返回主界面!') break六 、学生信息修改功能
逻辑结构图
代码
def modify(): show() if os.path.exists(filename): with open(filename, 'r', encoding = 'utf-8') as rfile: student_old = rfile.readlines() # 直接将文本文件的内容整行读取到列表中 else: print('学生文件信息不存在!') student_id = input('请输入想要修改的学生的ID: ') with open(filename, 'w', encoding = 'utf-8') as just_file: # 判断学生是否在该系统中 id_list = [] for i in student_old: d = dict(eval(i)) id_list.append(d['id']) # 将所有学生的id存放在id_list中 if student_id in id_list: # 要修改的学生存在时 for item in student_old: e = dict(eval(item)) if e['id'] == student_id: print('已找到该名学生!') while True: try: e['name'] = input('请输入姓名: ') e['english'] = input('请输入英语成绩: ') e['math'] = input('请输入数学成绩: ') e['Python'] = input('请输入Python成绩: ') except ValueError: print('数据类型输入错误!请重新输入!') else: break # try...except..else: 输入为出错时,执行else语句 just_file.write(str(e) + '\n') print('修改成功!') else: just_file.write(str(e) + '\n') else: answer1 = input('查无此人!,是否执行插入操作? (Y/N)') if answer1 == 'Y' or answer1 == 'y': insert() else: print('结束当前操作') answer = input('是否继续修改其余学生信息?(Y/N): ') if answer == 'Y' or answer == 'y': modify() elif answer == 'N' or answer == 'n': print('结束修改,即将返回主界面..') else: print('输入错误,即将返回主界面!')七 、学生成绩排序
逻辑结构图
代码
def sort(): student_new = [] if os.path.exists(filename): with open(filename, 'r', encoding = 'utf-8') as sort_file: student_list = sort_file.readlines() # 无序的学生信息列表 for item in student_list: d = dict(eval(item)) student_new.append(d) # 列表元素转化为字典 while True: try: sort_choice = int(input('请选择排序方式: 0:升序 / 1:降序\t')) except ValueError: print('输入的数据类型错误,请重新输入') else: if sort_choice == 0: Flag = False break elif sort_choice == 1: Flag = True break else: print('输入错误,只能在0/1中选择!') continue while True: try: asc_choice = int(input('请选择按照哪一门成绩进行排序: 英语:0 / 数学:1 / python:2\t\t')) except ValueError: print('输入的数据类型错误,请重新输入') else: if asc_choice == 0: student_new.sort(key = lambda x: int(x['english']), reverse = Flag) # 根据列表中的元素进行排序 show() break elif asc_choice == 1: student_new.sort(key = lambda x: int(x['math']), reverse = Flag) show() break elif asc_choice == 2: student_new.sort(key = lambda x: int(x['Python']), reverse = Flag) show() break elif asc_choice == 3: student_new.sort(key = lambda x: int(x['Python'])+int(x['english'])+int(x['math']), reverse = Flag) show() break else: print('输入错误,只能在0/1/2中选择!') continue else: print('学生信息文件不存在!')八 、 学生人数统计
逻辑结构图
代码
def total(): nums = 0 if os.path.exists(filename): with open(filename, 'r', encoding = 'utf-8') as t_file: len_list = t_file.readlines() for i in range(len(len_list)): if len_list[i] != '': nums += 1 print('当前学生总人数为: ', nums) print('请选择你想进行的下一步操作: ') else: print('暂无学生信息文件')九 、显示所有学生信息
逻辑结构图
代码
def show(): if os.path.exists(filename): with open(filename, 'r', encoding = 'utf-8') as show_file: student_list = show_file.readlines() if student_list: print('----全部学生信息如下----') print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:') for item in student_list: p = dict(eval(item)) print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}'.format( p['id'], p['name'], p['english'], p['math'], p['Python'], float(p['english']) + float(p['math']) + float(p['Python']))) else: print('暂无学生信息!') else: print('暂无学生信息!')程序打包
在 pycharm 终端 或者 python命令界面, 使用:
pip install PyInstaller
下载python打包程序,下载完成后, 执行以下操作:
pyinstaller —F F:\xxxx\xxx\xx\x.py
其中:
-F 代表将程序打包为单个exe文件,
F:\xxx\xxx\xx.py 为你的学生成绩管理系统文件的绝对地址
打包完成后,提示信息倒数第二行:Appending语句后面即为exe文件位置,若无特殊显示,则在当前目录父文件下
以上就是关于"python编写学生成绩管理系统的逻辑结构及功能怎么实现"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
学生
输入
信息
成绩
错误
功能
结构
逻辑
文件
系统
界面
选择
姓名
结构图
查询
代码
内容
数学
数据
英语
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全就有
网络安全需求表
介绍兰博基尼网络技术
软件开发大神脑袋里放什么葫芦
南通创天软件开发
数据库管理系技术发展阶段
网络安全知识论文2000字
软件开发维护叫什么部门
巨山分布式数据库
neo2t续航小白测评数据库
怎么遍历数据库
中体柠檬网络技术有限公司
国内软件开发顶尖大学
泾河网络安全学院
推广ipv6网络安全
db2 启动数据库
幼儿园网络安全知识进校园
饥荒服务器质量
安卓开发软件开发费用标准
网络安全加密传输方式
java软件开发和前端开发
杭州鲲鹏服务器
数据库对应的操作系统
无线打印服务器怎么改密码
百度软件开发商是谁
消防大队做好节前网络安全工作
密码学与网络安全教育
海外 华为 软件开发 招聘
阿里云服务器反爬虫规则
数据库应用技术实验报告