当前位置: 首页 > news >正文

学生成绩管理系统(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.lryc.cn/news/243019.html

相关文章:

  • 【Leetcode合集】1410. HTML 实体解析器
  • 04-React脚手架 集成Axios
  • 时序预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost时间序列预测
  • 【nlp】3.6 Tansformer模型构建(编码器与解码器模块耦合)
  • 【【Linux系统下常用指令学习 之 二 】】
  • Git-将指定文件回退到指定版本
  • docker环境安装
  • 【Java】智慧工地云平台源码(APP+SaaS模式)
  • 2016年11月10日 Go生态洞察:七年的Go语言旅程
  • 深入了解Java中SQL优化的关键技巧与实践
  • 6.3.WebRTC中的SDP类的结构
  • ArcGis如何用点连线?
  • 自定义精美商品分类列表组件 侧边栏商品分类组件 category组件(适配vue3)
  • 造一个float类型二维矩阵,并将二维矩阵存快速储到一个float*中(memcpy)
  • python通过继承、组合、委托组织类
  • OSG粒子系统与阴影-自定义粒子系统示例<1>(4)
  • 激活函数与其导数:神经网络中的关键元素
  • 微信公众号对接获取用户openid预约项目心路全历程
  • 大中小协作 共筑科学梦——华中科技大学附属花城中学举办首届科技节
  • ElasticSearch之Health API
  • 图的建立基本操作
  • 影响语音芯片识别率的因素概述
  • 操作系统的主要功能--处理机、存储器、设备、文件
  • PDF 批量处理软件BatchOutput PDF mac中文版介绍
  • oracle安装的肘腋之疾小合集
  • django(千锋教育)
  • Python 前后端分离项目Vue部署应用
  • Linux中安装MySQ-合集
  • elk 简单操作手册
  • CSS画一条线