首页 > 其他分享 >C语言基于二叉排序树的学生成绩管理系统

C语言基于二叉排序树的学生成绩管理系统

时间:2023-01-01 11:56:23浏览次数:59  
标签:二叉 查询 C语言 管理系统 信息 学生 离散数学 排序

C语言基于二叉排序树的学生成绩管理系统

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)存储结构:根据系统功能要求自行设计,但要求相关数据要及时追加和同步到数据文件中。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

标签:二叉,查询,C语言,管理系统,信息,学生,离散数学,排序
From: https://www.cnblogs.com/codewriter/p/17017907.html

相关文章

  • C语言江苏大学校园导航系统
    C语言江苏大学校园导航系统2江苏大学校园导航系统的设计与实现2.1题目简述本次课题要求针对江苏大学校园实现一个景点/地点导航系统,提供查看学校地图、查看地点信息查......
  • 13.二叉排序树
    引入需求:给定一个数列{7,3,10,12,5,1,9}要求能够高效的完成对数据的查询和添加......
  • 掌握二叉搜索树的双指针 + 公共祖先加深对后序遍历和递归的理解
    530.二叉搜索树的最小绝对差intmin=Integer.MAX_VALUE;TreeNodepre;/***<Ahref="https://leetcode.cn/problems/minimum-absolute-difference-in-......
  • C语言两结构体之间的成员互换
    今天在写一个通讯录实现程序的时候,遇到个让我突然卡壳的问题,不知道怎么进行两个结构体之间的成员互换......结构体成员有“姓名”,“性别”,“年龄”,“地址”,“电话”,目的就......
  • day41_0501.二叉搜索树中的众数
    我的思路递归法如果是二叉搜索树如果不是二叉搜索树迭代法我的思路classSolution{private:unordered_map<int,int>map;vector<int>res......
  • day40_0530.二叉搜索树的最小绝对差
    递归1----不用数组递归2------借助数组迭代classSolution{public:TreeNode*pre=NULL;intresult=INT_MAX;voidtraversal(TreeNode*root)......
  • leetcode-563. 二叉树的坡度
    563.二叉树的坡度-力扣(Leetcode)坡度的计算需要4个数左子树所有节点的和右子树所有结点的和左子树的坡度右子树的坡度左子树与右子树节点差值的绝对值为当前节点......
  • 基于Java+SpringBoot+vue等疫情期间在线网课管理系统详细设计实现
    目录​​一、前言介绍:​​​​1.1背景及意义      ​​​​1.2系统运行环境​​​​二、系统设计:​​​​2.1 系统架构设计​​​​2.2角色功能图​​​​2.3 登......
  • 用c语言将三个数字从大到小排列
    #include<stdio.h>intmain(){inta=0;intb=0;intc=0;scanf("%d%d%d",&a,&b,&c);//先确定最大值a,然后比较b和c的大小if(a<b){inttmp=a;a=b;b=......
  • C/C++杂志订阅管理系统[2022-12-31]
    C/C++杂志订阅管理系统[2022-12-31]题目26“杂志订阅管理系统设计”1、问题描述使用计算机对杂志进行管理,该杂志最多拥有订阅用户不超过50人,每个订户的信息包括:编......