成绩的查询和排序功能实现

一、实验要求

使用数组对一个班的学生信息及考试成绩进行存储,学生信息包括学号、姓名、三门课(英语、数学、计算机)的成绩及总成绩。

  1. 设计合理的学生类和班级类。要求学生类中有两个不同的构造函数。
  2. 在班级类StudentClass中增加常用方法:如查找某个学生是否存在(find),增加一个学生(add),删除一个学生(del)等。
  3. 在班级类StudentClass中增加对学生排序的方法,排序依据为总成绩或各科成绩。
  4. 在测试类中,仅生成具有5名学生的班级,5名学生的信息从键盘输入,为了避免以后再重复输入,可将输入的学生信息保存到文件中。

二、实验总体设计方案

(1)在测试类中创建一个5名学生的班级
(2)在控制台中输入5个学生的个人信息,包括学号、姓名、各科成绩,输入结束后会在D盘下生成一个名为class.xls的文件,文件中保存了这个班级5位学生的初始化信息
(3)在控制台中按总分及各科成绩打印班级的学生信息

类说明
Student类:学生类,属性为学号、姓名、各科成绩及总分
StudentClass类:班级类,包含学生数量和学生列表,同时包含了查找学生、增加学生、删除学生、排序等方法。
TestClass类:主类,创建一个5名学生的班级,完成初始化班级、创建表格文件、按序打印学生信息等功能。

三、实验关键代码

TestClass中主函数如下:

四、实验结果

初始化学生信息

D盘下class.xls文件内容如下

控制台按序输出学生信息

五、实验总结

本次实验的内容不是很难,但是自己也没有写过有关文件的读写的代码,于是在网络上查找,最终决定用jxl包下的WritableWorkbook类和WritableSheet类创建Excel表格,然后将输入的数据写入表格,保存于D盘。
将学生组合成数组作为StudentClass类的属性,增加或删除一个元素的实现较为复杂,而使用ArrayList类实现起来比较简单。
自己对于Java中错误类Exception的使用还不是很熟悉,有时候编译器报错,我也不知道是自己的代码逻辑有错,还是应该抛出错误,这个的使用还需要积累一些经验。