学生成绩管理系统(python实现)

学生成绩表信息包括学号、姓名、各科课程成绩(语文、数学、英语、政治)和总分。用带头结点的单链表管理学生成绩表,每个学生的信息依次从键盘输入,并根据需要进行插入、删除、排序、输出等操作。

import json# 初始化系统
students = []# 结构体
class Student:def __init__(self, ID, Name, Mark):self.ID = IDself.Name = Nameself.Mark = Markself.Total = sum(Mark)self.Average = self.Total / len(Mark)# 录入
def inputt():global studentsID = input("请输入学号:")Name = input("请输入姓名:")Marks = []for subject in ["数学", "英语", "语文"]:mark = float(input(f"请输入{subject}成绩:"))Marks.append(mark)student = Student(ID, Name, Marks)students.append(student)print("录入成功。")# 删除
def deletee():global studentsID = input("请输入要删除的学生学号:")found = Falsefor student in students:if student.ID == ID:students.remove(student)found = Trueprint("删除成功。")breakif not found:print(f"未找到学号为{ID}的学生。")# 修改
def modfiy():global studentsID = input("请输入要修改的学生学号:")found = Falsefor student in students:if student.ID == ID:Marks = []for subject in ["数学", "英语", "语文"]:mark = float(input(f"请输入新的{subject}成绩:"))Marks.append(mark)student.Mark = Marksstudent.Total = sum(Marks)student.Average = student.Total / len(Marks)found = Trueprint("修改成功。")breakif not found:print(f"未找到学号为{ID}的学生。")# 插入
def insert():global studentsposition = int(input("请输入要插入的位置(1-{}):".format(len(students) + 1)))if 1 <= position <= len(students) + 1:ID = input("请输入学号:")Name = input("请输入姓名:")Marks = []for subject in ["数学", "英语", "语文"]:mark = float(input(f"请输入{subject}成绩:"))Marks.append(mark)student = Student(ID, Name, Marks)students.insert(position - 1, student)print("插入成功。")else:print("插入位置无效。")# 排序
def sort():global studentsstudents.sort(key=lambda x: x.Average, reverse=True)print("排序完成。")# 显示
def display():global studentsif not students:print("暂无学生信息。")else:print("学号\t姓名\t数学\t英语\t语文\t总分\t平均分")for student in students:print(f"{student.ID}\t{student.Name}\t{student.Mark[0]}\t{student.Mark[1]}\t{student.Mark[2]}\t{student.Total:.2f}\t{student.Average:.2f}")# 查询
def Student_SearchByIndex():global studentsID = input("请输入要查询的学生学号:")found = Falsefor student in students:if student.ID == ID:print("学号\t姓名\t数学\t英语\t语文\t总分\t平均分")print(f"{student.ID}\t{student.Name}\t{student.Mark[0]}\t{student.Mark[1]}\t{student.Mark[2]}\t{student.Total:.2f}\t{student.Average:.2f}")found = Truebreakif not found:print(f"未找到学号为{ID}的学生。")# 主函数
def main():while True:print("\n学生成绩管理系统")print("1. 录入学生信息")print("2. 删除学生信息")print("3. 修改学生成绩")print("4. 插入学生成绩")print("5. 排序学生成绩")print("6. 显示学生成绩")print("7. 查询学生成绩")print("8. 退出系统")choice = input("请选择操作(1-8):")if choice == "1":inputt()elif choice == "2":deletee()elif choice == "3":modfiy()elif choice == "4":insert()elif choice == "5":sort()elif choice == "6":display()elif choice == "7":Student_SearchByIndex()elif choice == "8":breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud实用-OpenFeign整合okHttp

文章目录 前言正文一、OkHttpFeignConfiguration 的启用1.1 分析配置类1.2 得出结论&#xff0c;需要增加配置1.3 调试 二、OkHttpFeignLoadBalancerConfiguration 的启用2.1 分析配置类2.2 得出结论2.3 测试 附录附1&#xff1a;本系列文章链接附2&#xff1a;OkHttpClient 增…

10.打印楼梯图案和笑脸【2023.11.25】

1.问题描述 打印楼梯图案和笑脸 2.解决思路 3.代码实现 #include<stdio.h> int main(){printf("11\n");for(int i0;i<10;i){for(int j0;j<i;j){printf("FF"); }printf("\n");} return 0; }4.运行结果

《微信小程序开发从入门到实战》学习二十九

3.4 开发参与投票页面 3.4.4 使用label组件扩大单击区域 radio组件的单击区域很小&#xff0c;只有文字左侧的圆圈可以点击&#xff0c;实际使用者一般会期望点击文字也可以选中选项&#xff0c;用label组件包含radio组件&#xff0c;就可以实现点击文字也可以选项。 label组…

MySQL 基于成本的优化

其实在MySQL中⼀条查询语句的执⾏成本是由下边这两个⽅⾯组成的&#xff1a; I/O成本 我们的表经常使⽤的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的&#xff0c;当我们想查询表中的记录时&#xff0c;需要先把数据或者索引加载到内存中 然后再操作。这个从磁盘…

Linux的基本指令(二)

目录 前言 学前补充 touch指令 mkdir指令 rmdir指令 rm指令 通配符* man指令 cp指令 mv指令(重要) 补充内容&#xff1a; 1、如何快速在Linux中写出代码 2、如何看待如此多的Linux指令 cat指令 前言 关于Linux的基本指令我们会分三到四篇文章进行分析&#xff0c…

websocket,WebSocket与Socket的区别,HTTP与WebSocket区别,WebSocket特点

文章目录 websocket全双工通讯传输协议WebSocket与Socket的区别HTTP与WebSocket区别WebSocket特点 websocket 1.websocket简单介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单&…

软件设计先进性之虚拟化技术的应用

随着科技的进步&#xff0c;虚拟化技术深入到我们的生活的方方面面&#xff0c;虚拟化如何使用呢&#xff0c;下面我一下维度进行阐述&#xff0c;即服务器虚拟化、存储虚拟化、平台虚拟化&#xff0c;应用虚拟化和桌面虚拟化 导读&#xff1a;虚拟化(Virtualization)技术是云计…

RESTful

RestFul API 何为 API&#xff1f; API&#xff08;Application Programming Interface&#xff09; 翻译过来是应用程序编程接口的意思。 我们在进行后端开发的时候&#xff0c;主要的工作就是为前端或者其他后端服务提供 API 比如查询用户数据的 API 。 但是&#xff0c; …

SD卡选型参考

文档版本日期类型REV1.02023.11.25新建 SD卡对于大家来说&#xff0c;应该很熟悉了&#xff0c;都是我们在各类电子设备中经常使用的。不过大家在购买SD卡的时候都会关注哪些参数呢&#xff1f;可能大部分使用者&#xff0c;甚至包括我在内也只是会关注下容量&#xff0c;当然是…

某瓜数据app Sign

文章目录 声明目标加密参数定位算法还原声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 目标 之前也有写过pc端的飞瓜数据解密:JS逆向系列之某瓜数据解密 这次看一下某瓜数据app的达…

PIL.UnidentifiedImageError: cannot identify image file ...

按照网上搜的重新安装pillow库&#xff0c;对我这个不适用。我的解决方法是把有问题的图片删掉。

【后端卷前端】

为啥现在对后端要求这么高?为啥不要求前端会后端呢? 可能是后端人太多了,要求后端需要会前端的框架(vue react angular ), 这不我为了适应市场的需求来系统的学习vue了: 生成一个基础的vue项目 创建vue项目 vue create projectname 创建vitevue npm init vitelatest p…

element ui 上传组件实现手动上传

首先需要给上传组件增加http-request属性&#xff0c;这个方法中可以获取到文件&#xff0c;并按照自己的方式进行上传。 <el-uploadreffileUploadaction#:http-requesthttpRequest:on-preview"handlePreview":on-remove"handleRemove":limit"1&q…

科研/比赛必备工具及系列笔记集合

科研/比赛必备工具及系列笔记集合 零、前言一、常用工具系列1.1 笔记平台使用感受系列1.2 常用开发平台系列 二、论文系列2.1 检索工具系列2.2 投稿调研系列2.3 常见国际期刊/会议2.4 常见中文核心期刊/会议 三、文献系列3.1 画图工具系列3.2 翻译工具系列3.3 英文纠正系列3.4 …

手摸手Element-ui组件化开发

前端环境准备 编码工具: VSCode 依赖管理:NPM 项目构建: Vuecli NPM的全称是Node Package Manager&#xff0c;是一个NodeJS包管理和分发工具&#xff0c;已经成为了非官方的发布Node模块&#xff08;包&#xff09;的标准。2020年3月17日&#xff0c;Github宣布收购npm&am…

「Verilog学习笔记」数据累加输出

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 在data_out准备好&#xff0c;valid_b拉高时&#xff0c;如果下游的ready_b为低&#xff0c;表示下游此时不能接收本模块的数据&#xff0c;那么&#xff0c;将会拉低ready…

ImportError: No module named python_util.util

ImportError: No module named python_util.util 从师兄那里拷贝了一个python文件&#xff0c;运行报错ImportError: No module named python_util.util&#xff0c;python小白上网搜&#xff0c;并没有搜到有价值的答案。。。经过摸索&#xff0c;最后解决。 其实这就是缺少…

深刻理解MySQL8游标处理中not found

深刻理解MySQL8游标处理中not found 最近使用MySQL的游标&#xff0c;在fetch循环过程中&#xff0c;程序总是提前退出 &#xff0c;百思不得其解&#xff0c;经过测试&#xff0c;原来是对于游标处理中not found的定义理解有误&#xff0c;默认是视同Oracle的游标not found定…

肾合胶囊 | 修行人追求的“长生不老”,其实就是一个“增阳消阴”的过程!

关于生命的问题&#xff0c;在人们面前有两条路任你选择。 人的生命活动靠精气来维持&#xff0c;善于保养精气者长生&#xff0c;否则就是短寿。 长生或短寿&#xff0c;只能由你自己选择。 其实要想长生并不是很难的事情&#xff0c;长生药就在你自己身上&#xff0c;只不…

Exchange意外登录日志

最近在审计Exchange邮件系统的时候&#xff0c;发现大量用户半夜登录的日志。而且都是成功的&#xff0c;几乎没有失败的情况。其中Logon Type 8表示用户从网络登录。 Logon type 8: NetworkCleartext. A user logged on to this computer from the network. The user’s pas…