2025.1.17(寒假是十天)
第十天:学生成绩统计实验
学习任务
学习如何读取文件数据并解析为 Scala 数据结构。
使用函数式编程方式统计学生成绩,包括平均值、最小值和最大值。
按性别分组统计成绩。
学习内容
文件读取:
使用 scala.io.Source 读取文件。
数据解析:
解析文件内容为 List 或 Array。
成绩统计:
使用函数式编程方法统计成绩。
import scala.io.Source
object GradeStatistics {
def main(args: Array[String]): Unit = {
val data = Source.fromFile("grades.txt").getLines().toList.drop(1)
val grades = data.map(line => line.split("\\s+"))
val courseNames = grades.head.tail
val studentGrades = grades.tail.map(_.tail.map(_.toDouble))
val avg = studentGrades.transpose.map(scores => scores.sum / scores.size)
val min = studentGrades.transpose.map(_.min)
val max = studentGrades.transpose.map(_.max)
println(s"course average min max")
courseNames.zip(avg).zip(min).zip(max).foreach {
case ((((course, avg), min), max)) => println(s"$course: $avg $min $max")
}
}
}
学习总结
学会了如何读取文件数据并解析为 Scala 数据结构。
掌握了使用函数式编程方式统计成绩的方法。