Scala的文件读写-成绩分析

20 阅读2分钟

内容

1.任务分析

2.按行读取文本文件

3.组装数据对象

4.分析数据

5.保存结果

现在需要对班级学生的成绩(姓名,语文,数学,英语)做统一的规范化处理,内容保存。任务如下:

1计算每个同学的总分和平均分

2 统计每个科目的平均分

3 列出总分前3名和单科前3名,并保存结果到文件中

学生的成绩示例:

姓名,语文,数学,英语
张伟,87,92,88
李娜,90,85,95
王强,78,90,82

任务分析

分成三步来完成按行读入,并拆分。

(1)组装对象数组

(2)对对象数组做数据处理

(3)保存结果到文件。

按行读取文本文件

由于一行表示一条数据,所以,我们可以一次读入一行。以下是读取文件并打印每一行的示例:

image.png

再次完善一下代码:

image.png

组装数据对象

思路:定义case class ,分别去new 对象,并赋值。

代码如下:

image.png

分析数据

任务1:计算每个人的总分和平均分

任务2:统计每个科目的平均分

思路:

(1)对List中的每个学生,使用foreach计算每门课程的成绩

(2)除以总数

代码如下:

image.png

任务3:列出总分前3名和单科前3名

【教师引导同学一起分析思路,并请同学上台操作演示】

思路:对数组进行三次不同的排序,对应得到三个不同的排序数组。

操作:使用sortBy函数进行排序

保存结果

就是把前面计算得到的结果,重新写入到一个全新的文件,这个功能在前面的课程中学习过,直接写出即可。

image.png