内容
1.任务分析
2.按行读取文本文件
3.组装数据对象
4.分析数据
5.保存结果
现在需要对班级学生的成绩(姓名,语文,数学,英语)做统一的规范化处理,内容保存。任务如下:
1计算每个同学的总分和平均分
2 统计每个科目的平均分
3 列出总分前3名和单科前3名,并保存结果到文件中
学生的成绩示例:
姓名,语文,数学,英语
张伟,87,92,88
李娜,90,85,95
王强,78,90,82
任务分析
分成三步来完成按行读入,并拆分。
(1)组装对象数组
(2)对对象数组做数据处理
(3)保存结果到文件。
按行读取文本文件
由于一行表示一条数据,所以,我们可以一次读入一行。以下是读取文件并打印每一行的示例:
再次完善一下代码:
组装数据对象
思路:定义case class ,分别去new 对象,并赋值。
代码如下:
分析数据
任务1:计算每个人的总分和平均分
任务2:统计每个科目的平均分
思路:
(1)对List中的每个学生,使用foreach计算每门课程的成绩
(2)除以总数
代码如下:
任务3:列出总分前3名和单科前3名
【教师引导同学一起分析思路,并请同学上台操作演示】
思路:对数组进行三次不同的排序,对应得到三个不同的排序数组。
操作:使用sortBy函数进行排序
保存结果
就是把前面计算得到的结果,重新写入到一个全新的文件,这个功能在前面的课程中学习过,直接写出即可。