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

一、实验内容

在这里插入图片描述

二、编程语言

编程语言:java
开发环境:IDE使用的是idea,jdk版本为1.8

三、项目思路

1. 创建学生类Public class Student

学生类中的数据及其类型:

int ID;//学号
Sting name;//姓名
Sting major;//专业
Double grade1,grade2,grade3,grade4;//成绩
Double grade;//总分
int rank;//排名

2. 创建学生信息数据库

(1. 创建列表List student存储学生信息
(2. 初始化列表
(3. 创建返回值为学生信息的方法Public List getStudent()
和向数据库中写入学生信息的方法
Public void setStudent(List student)

3.创建数据访问对象Dao

(1.根据学号返回学生信息
Public Student FindByID(int n);
使用for循环遍历储存学生信息的列表,通过参数n找到符合条件的学生信息并返回
(2.根据姓名返回学生信息
Public Student FindByName(String name)
使用for循环遍历储存学生信息的列表,通过参数name找到符合条件的学生信息并返回
(3.修改成绩
Public void modify(int ID, int gradenumber, Double grade)
使用for循环遍历储存学生信息的列表,通过参数ID找到符合条件的学生信息,gradenumber为所要修改的成绩编号(1-4),找到对应成绩,然后将grade的值赋给要修改的成绩
(4. 增加
Public void insert(Student student)
创建新的列表存储数据库中的学生信息,加入新的信息student,利用Dao中的setStudent(List student)方法把新的列表写入数据库
(5. 删除
Public void delete(int ID)
创建新的列表存储数据库中的学生信息,使用for循环遍历列表,找到对应的学生信息并删除,利用Dao中的setStudent(List student)方法把新的列表写入数据库
(6. 排名
利用学生类中的getGrade()方法得到所有学生的成绩,利用冒泡排序进行排名,再使用学生类中的 setRank(int rank)方法对学生信息中的排名进行赋值

四、算法

1.双向冒泡排序

1.比较相邻两个元素的大小。如果前一个元素比后一个元素大,则两元素位置交换
2.对数组中所有元素的组合进行第1步的比较
3.奇数趟时从左向右进行比较和交换
4.偶数趟时从右向左进行比较和交换
5.当从左端开始遍历的指针与从右端开始遍历的指针相遇时,排序结束

2.希尔排序

它通过比较相距一定间隔的元素来工作, 各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止, 由于这个原因, 希尔排序有时也叫做 缩小增量排序

3.快速排序

1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。

4.堆排序

1.初始化数组,创建大顶堆。
2.交换根节点和倒数第一个数据,现在倒数第一个数据就是最大的。
3.重新建立大顶堆。
4.重复2.2、2.3的步骤,直到只剩根节点 array[0]

猜你喜欢

转载自blog.csdn.net/qmfszzx/article/details/114262653