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

一、实验内容

二、编程语言

编程语言: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]
经验分享 程序员 微信小程序 职场和发展