学生成绩档案管理系统—实验准备

目录

一、题目要求与需实现的功能
二、编程语言与软件
三、程序设计思想

一、题目要求与需实现的功能

(1)实验任务要求
●学生信息录入,信息包括学号、姓名、专业、四门课成绩、总分、名次;
●系统可对学生信息浏览、增加、删除和修改;
●按学生成绩确定名次及信息输出,双向冒泡排序、希尔排序、快速排序、堆排序。
●要求可对学生信息查询,根据学号或姓名进行查找;
●信息修改仅可修改四门课成绩;
●文件存取学生信息。

(2)需求分析
●新增学生信息(包括学号、姓名、专业、4门课成绩……)
●浏览学生信息(对学生排序后信息进行浏览)
●删除学生信息(删除指定学生的信息,可给用户选择检索指定项)
●查找学生信息(查找符合条件的某条记录)
●保存学生信息(保存学生成绩档案信息到文本文件)
●加载学生信息(登录系统后将磁盘文件中保存的学生成绩信息读取到内存中)

二、编程语言与软件

(1)编程语言:Java
(2)使用软件:IntelliJ IDEA

三、程序设计思想

(1)定义类
1.主类

所有类功能的实现

2.学生信息类

学生学号(number)
学生姓名(name)
学生专业(major)
学生成绩(score1、score2、score3、score4)
成绩总分(score)
成绩排名(ranking)

3.功能类

学生的录入(add)
学生的排序(sorting)
学生档案的修改(modify)
对学生档案的查询(Visit)

(2)算法的理解
1.双向冒泡排序

与冒泡排序的不同处在于排序时是以双向在序列中进行排序,外层比较左右边界
内层一个循环从左向右比,取高值置后;一个循环从右向左,取低值置前;
效率上,O(N^2), 不比普通的冒泡快

2.希尔排序

是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 =1(  …
一般的初次取序列的一半为增量,以后每次减半,直到增量为1

3.快速排序

通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

4.堆排序

将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了

猜你喜欢

转载自blog.csdn.net/cherry_tree1/article/details/114254435
今日推荐