实验任务
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210224185256138.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dkbm1kX2JpZ19xaWU=,size_16,color_FFFFFF,t_70)
需求分析
需要用文件存储学生数据
单个存储对象包含以下属性
- 学号
- 姓名
- 专业
- 四门学科的成绩,我这里就以数学、英语、政治、专业课为例
- 总分
- 名次
需要一个学生管理系统,实现增、删、改、查及排序功能
学生名次应该是是按照总分排序,而且我觉得这是个变动的数值
每次进行增、删、改的操作时都会影响每个同学的排名
排序方法
需要使用双向冒泡排序、希尔排序、快速排序、堆排序来分别实现此功能
双向冒泡排序
普通冒泡排序就是从左往右,逐个比对当前数字与后一个数字大小,如果需求是降序(此处成绩排序就是降序排列)那么碰到比自己大的数字就交换
比如以下数组
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210224210726298.png)
在一次冒泡排序(降