Python 实现简易版成绩管理系统

本文介绍了如何使用Python实现一个简易版的成绩管理系统,基于单链表数据结构。系统包含增加、删除、修改、查找、显示学生信息及按ID排序等功能。在保存与读取信息时,系统会检查文件是否存在并按行读取或写入数据。增加学生信息时,系统会验证ID的唯一性和成绩的有效性。删除和修改信息则通过学生ID进行操作。查找信息时,找到对应ID则输出信息。排序功能实现了链表版冒泡排序,支持成绩和ID的正序和逆序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表的简单应用:在命令行,实现简易版成绩管理系统。

这次的简易版成绩管理系统,主要有六大功能:增加学生信息、删除学生信息、修改学生信息、查找学生信息、显示学生信息、按 ID 排序。

实现效果如下:
在这里插入图片描述

保存与读取信息

首先判断当前路径下,是否存在database.txt这个文件。如果不存在的话,就新建一个。如果存在的话,就按行读取数据。其中,eval函数将读取的字符床解析为字典。然后,将学生信息存储在单链表中。

try:
    with open('database.txt', 'r') as f:
        for data in f.readlines():
            SCS.append(eval(data))
except:
    with open('database.txt', 'w') as f:
        pass

接着,如果用户选择退出程序的话,就遍历学生信息,并且以字符串的形式按行存储学生信息。

elif item == 0:
	with open('database.txt', 'w') as f:
    	self.point = self.head
    	while self.point.next:
        	self.point = self.point.next
        	f.writelines('{}\n'.format(self.point.data))
	exit()

增加学生信息

由于本次实现的成绩管理系统比较简易,我们只对学生 id 和 成绩进行限制。

其一,我们要确保学生 id 不能重复。当我们希望向链表中添加数据时,首先要迭代整个链表,判断要添加元素的 id 是否已经在链表中存在。

def unique_id(self, std_id):
    self.point = self.head
    while self.point.next:
        self.point = self.point.next
        if self.point.data['id'] == std_id:
            return False
    return True

其二,我们要确保学生成绩在 0 ~ 100 分之间。当用户完成输入时,需要判断是否要保存数据,如果否,那么就不进行插入数据操作。为了降低用户误输入造成的影响,我们设定四种用户可能输入的字符:[‘y’, ‘yes’, ‘Y’, ‘Yes’]。

最后,我们以字典的形式插入学生信息。

# 增加信息
def add_info(self):
    # id 不能重复
    # 成绩不能超出范围
    name = input('姓名:')
    std_id = input(
1.学生成绩管理系统分为三个用户角色,登录界面可以选择三种不同的角色进行登录系统 2.管理员角色登录系统可以有以下功能: 管理考试信息:可以对考试批次信息进行增删改查操作 管理教师信息:可以对教师个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 管理班级信息:可以对班级名称信息进行增删改查操作 管理学生信息:可以对学生个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 查看学生成绩:可以查看学生的所属班级,考试批次,姓名,科目,成绩信息 管理课程信息:可以添加课程,也可以从编辑删除操作 管理专业信息:可以添加专业,也可以从编辑删除操作 注销退出系统 3.教师登录系统可以拥有以下功能: 教师个人信息:可以查看自己的个人信息,可以编辑修改自己的信息 教师录入成绩:可以录入学生的成绩:包含学生的所属班级,考试批次,姓名,科目,成绩,可以编辑删除操作 教师查看班级:可以查看现在的班级情况 教师查看专业:可以查看现在的专业情况 修改密码:可以修改个人的登录密码功能 注销退出系统 4.学生登录系统可以拥有以下功能: 学生个人信息:可以查看自己的个人信息,可以编辑自己的信息 学生查看成绩:可以查看学生的成绩,包含班级,考试批次,姓名成绩等属性,也可以按照考试批次快速检索学生信息 学生成绩排名:可以按照成绩高低排名进行查看 学生选择课程:可以添加学生自己的选课信息,可以编辑删除操作 修改密码:可以修改个人的登录密码功能 注销退出系统 备注:系统使用django+mysql进行开发,前端界面大方美观
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值