C语言基于二叉排序树的学生成绩管理系统[2023-10-30]
1、基于二叉排序树的学生成绩管理系统
1.1 题目简述
本次课题要求基于二叉排序树设计和实现一个简易的学生成绩管理系统,功能包含对学生成绩信息的基本管理:成绩的录入、修改、删除、查询和统计等。试借助所学的二叉排序树结构及二叉排序树上的基本操作,实现上述管理功能。
1.2 系统的功能需求
每个学生信息由学号、姓名、高数、英语和离散数学等组成。从学生的基本信息中选择合适的数据项作为关键字,构建二叉排序树来组织和管理学生的基本信息,提高查询效率。
本次课程设计要求采用文本界面或图形界面下进行交互的工作方式,能提供一个友好的功能菜单,菜单中应至少包括(但不限于)以下几个基本功能:
(I)多种方式建立学生信息。
• 每个学生信息由学号、姓名、高数、英语和离散数学等组成;
• 可以通过手工录入每个学生信息,并在磁盘上以 StudentFile.txt 保存;
• 也可以导入某个路径下存放学生信息的文本文件。
(II)浏览所有学生信息。
(III)按照学号对所有学生信息进行升序、降序排列,并输出。不仅输出屏幕显示,还需要写入存放学生信息的文件。
(IV)按姓名、学号等方式,实现对学生信息精确查询、模糊查询,并输出屏幕显示。
• 精确查询结果演示;
查询“姓名是王五”同学信息,则输出:
学号 姓名 高数 英语 离散数学 …………
2007112011 王五 88 90 78 ………
• 模糊查询结果演示;
查询姓“刘”的同学信息(输入“刘”),则输出:
学号 姓名 高数 英语 离散数学 …………
2007112011 刘梅 88 90 78 ………
2007112011 刘强 87 80 98 ………
2007112011 刘星 86 70 58 ………
• 能够实现连续多次查询。
(V)学生信息的插入、删除、修改。
• 通过插入、删除和修改后,保持所有学生信息的有序性;
• 插入、删除和修改后,对存放所有学生信息的文件及时更新。
(VI)数据的统计功能。
• 统计每个学生的平均分和总分;
• 统计每个科目的平均分和最高分、最低分;
• 将上述统计结果,写入存放学生信息的文件。
1.3 系统的其他需求
(1)修改和增加信息时,需要考虑数据的有效性、约束性、完整性。
(2)存储结构:根据系统功能要求自行设计,但要求相关数据要及时追加和同步到数据文件中。