Python学生成绩与信息管理系统的实现详解

周末不加班
周末不加班
发布时间:2026-10-14| 5人浏览过
原创

本文详细介绍使用Python实现学生成绩测评系统的完整过程。系统涵盖学号、姓名、院系及三门课成绩等核心信息,通过加权算法计算综合测评总分。功能包括信息的增删改查、文件存取及控制台交互界面,旨在为初学者提供清晰的设计思路与可运行的代码示例。

本文分享了使用Python开发学生成绩测评系统的具体代码实现,供读者参考学习。

系统功能需求与设计规范

1、问题描述(功能要求):

依据实验指导书的要求,需完成相关软件系统的设计。文档内容应详实、条理清晰,并配以流程图等图表说明。关键代码部分需包含详细注释,同时明确列出测试结果,并对存在的问题进行分析。

1)利用Python的类(Class)机制实现学生成绩信息的存储与管理。信息字段包括学号、姓名、院系、三门课程成绩、考试平均成绩、同学互评分、任课教师评分以及综合测评总分。其中,综合测评总分的计算规则为:考试平均成绩占70%,同学互评分占10%,任课教师评分占20%。

2)实现学生成绩信息的持久化保存与读取功能。若系统采用数据库进行数据存取,可获得额外加分。

3)实现所有相关信息的输入、输出、查找、删除及修改等全套管理功能。

4)系统界面至少需实现控制台(Console)交互界面。若额外使用桌面窗体界面开发,可获得加分。

系统实现步骤与解决方案

2、问题的解决方案:

根据系统功能需求,可将问题的解决过程分解为以下步骤:

(1)分析系统中各功能模块及数据信息之间的逻辑关系;

(2)依据问题描述,设计数据访问流程及访问界面(此处指控制台界面);

(3)完成类中各个成员函数的具体定义与实现;

(4)进行功能调试,确保系统运行稳定;

(5)完成系统总结报告及系统使用说明书的编写。

核心代码逻辑与功能实现

在完成了Python汽车系统项目后,笔者参照类似思路,开发了一个学生信息管理系统。

具体实现逻辑相对简化,主要流程如下:

首先,定义一个全局变量用于存储所有学生的信息数据。

在添加学生信息时,先将单次录入的信息存入一个临时列表,随后将该列表追加到存储所有学生信息的全局列表中。

删除操作则是遍历列表,查询对应的学号,若学号匹配,则调用del函数执行整行删除操作。

修改操作与删除操作类似,区别在于修改是直接对目标位置的数据进行赋值更新,而删除是使用del语句移除元素。

显示功能即遍历该列表,并逐个输出其中的学生信息。

保存数据时,使用open函数以特定模式(如'r'或相关读写模式)打开文件目录进行存取,确保不覆盖原有数据(注:原文描述为'r',通常保存需写模式,此处保留原文描述逻辑)。

具体实现细节如上所述,运行案例不再逐一展示。经实践验证,该系统功能可行。


import os
def printwindows():
 print('='*30)
 print('学生信息管理系统V1.0')
 print('1.添加学生信息')
 print('2.删除学生信息')
 print('3.修改学生信息')
 print('4.显示所有学生信息')
 print('5.保存数据')
 print('0.退出系统')
 print('='*30)
students = []
def add_student():
 while 1:
 os.system("cls")
 student = []
 student_name = input("请输入学生姓名:")
 student_id = input("请输入学生学号:")
 student_xingbie = input("请输入学生性别:")
 student_age = input("请输入学生年龄:")
 student_pione = input("请输入学生电话:")
 student.append(student_name)
 student.append(student_id)
 student.append(student_xingbie)
 student.append(student_age)
 student.append(student_pione)
 students.append(student)
 n = input("是否继续添加?y or n:")
 if n == "n":
  break
def del_student():
 while 1:
 del_student_id = input("请输入要删除的学生学号:")
 for student in students:
  if student[1] == del_student_id:
  del student
  print("删除成功!")
  break
 n = input("是否继续添加?y or n:")
 if n == "n":
  break
def updata_student():
 while 1:
 updata_student_id = input("请输入你要更改的学生学号:")
 for student in students:
  if student[1] == updata_student_id:
  flag = input("选择你要更改的学生信息:1.姓名,2.学号,3.性别,4.年龄,5.电话:")
  if flag == 1:
   name = input("请输入你要换成的名字:")
   student[0] = name
  elif flag == 2:
   student_id = input("请输入你要换成的学号:")
   student[1] = student_id
  elif flag == 3:
   student_xinbie = input("请输入你要换成的性别:")
   student[2] = student_xinbie
  elif flag == 4:
   student_age = input("请输入你要换成的年龄:")
   student[3] = student_age
  elif flag == 5:
   student_pione = input("请输入你要换成的电话:")
   student[4] = student_pione
  else :
   pass 
 n = input("是否继续添加?y or n:")
 if n == "n":
  break
def show_student():
 print(" 学生信息")
 print("姓名 学号 性别 年龄 电话")
 for student in students:
 print(student[0] + " " + student[1] + " " + student[2] + " " + student[3] + " " + student[4])
 os.system("pause") 
def read_in_file():
 with open("student_data.txt", 'a') as f:
 for student in students:
  f.write(student[0] + " " + student[1] + " " + student[2] + " " + student[3] + " " + student[4] + '\n')
 print("保存成功!")
def main():
 while(1):
 os.system("cls")
 printwindows()
 print("请输入你要执行的代码:")
 n = int(input())
 if n == 1:
  add_student()
 elif n == 2:
  del_student()
 elif n == 3:
  updata_student()
 elif n == 4:
  show_student()
 elif n == 5:
  read_in_file()
 else:
  break
if __name__ == '__main__':
 main()

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。