scala统计学生成绩,读取csv文件,输出math、English、physics的平均值、最大值、最小值 
时间: 2023-05-12 08:05:55 浏览: 20
可以使用 Scala 的 CSV 库来读取 CSV 文件,然后使用 Scala 的集合框架来进行统计计算。以下是一个示例代码:
```scala
import com.github.tototoshi.csv._
val reader = CSVReader.open(new java.io.File("students.csv"))
val header = reader.readNext().get // 读取 CSV 文件的第一行作为表头
val mathIndex = header.indexOf("math")
val englishIndex = header.indexOf("English")
val physicsIndex = header.indexOf("physics")
var mathSum = 0.0
var englishSum = 0.0
var physicsSum = 0.0
var mathMax = Double.MinValue
var englishMax = Double.MinValue
var physicsMax = Double.MinValue
var mathMin = Double.MaxValue
var englishMin = Double.MaxValue
var physicsMin = Double.MaxValue
var count = 0
for (row <- reader) {
val mathScore = row(mathIndex).toDouble
val englishScore = row(englishIndex).toDouble
val physicsScore = row(physicsIndex).toDouble
mathSum += mathScore
englishSum += englishScore
physicsSum += physicsScore
mathMax = mathMax.max(mathScore)
englishMax = englishMax.max(englishScore)
physicsMax = physicsMax.max(physicsScore)
mathMin = mathMin.min(mathScore)
englishMin = englishMin.min(englishScore)
physicsMin = physicsMin.min(physicsScore)
count += 1
}
val mathAvg = mathSum / count
val englishAvg = englishSum / count
val physicsAvg = physicsSum / count
println(s"math: max=$mathMax, min=$mathMin, avg=$mathAvg")
println(s"English: max=$englishMax, min=$englishMin, avg=$englishAvg")
println(s"physics: max=$physicsMax, min=$physicsMin, avg=$physicsAvg")
```
其中,`students.csv` 是包含学生成绩的 CSV 文件,每行包含 math、English、physics 三个科目的成绩。以上代码会输出 math、English、physics 三个科目的最大值、最小值和平均值。
相关推荐

















