当前位置:   article > 正文

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

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

上一次,公众号介绍了如何使用 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

增加学生信息

由于本次实现的成绩管理系统比较简易,我们只对学生 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

# 增加信息
def add_info(self):
    # id 不能重复
    # 成绩不能超出范围
    name = input('姓名:')
  • 1
  • 2
  • 3
  • 4
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号