(一)从文件中读出内容
格式:scala.io.Source.formFile(文件名)
作用:读入一个文件
(二)组装数据对象
思路:定义case class ,分别去new 对象,并赋值
(三)分析数据
计算每个人的总分和平均分
(1)对List中的每个学生,使用foreach计算每门课程的成绩
(2)除以总数
(四)总结:字符串拆分,字符串转成数 字,数组排序,case class,数组计算等等内容。
package score
import java.io.FileWriter
object score01 {
case class Stu(name:String, yuwen:Double,shuxue:Double,yingyu :Double)
def main(args: Array[String]): Unit = {
val stuList = scala.collection.mutable.ListBuffer[Stu]()
val lines = scala.io.Source.fromFile("score.txt").getLines()
lines.next()
while(lines.hasNext){
val line = lines.next()
val li = line.split(",")
stuList += Stu(li(0),li(1).toDouble,li(2).toDouble,li(3).toDouble)
}
println("读入数据结束")
println("计算结束,开始写入")
val fileWriter = new FileWriter("score_result.txt")
fileWriter.write("熊出没成绩单 \n")
stuList.foreach(stu =>{
val total = stu.yuwen +stu.shuxue +stu.yingyu
val avg =total/3
fileWriter.write(s"${stu.name},总分:${total} 平均分: ${avg}\n")
})
fileWriter.write(s"语文最高分:${stuList.map(_.yuwen).max}\n")
fileWriter.write(s"数学最高分:${stuList.map(_.shuxue).max}\n")
fileWriter.write(s"英语最高分:${stuList.map(_.yingyu).max}\n")
fileWriter.close()
}
}
文件
姓名,语文,英语,数学
光头强,90,98,100
熊大,100,99,93
熊二,20,40,50
吉吉国王,90,10,2
毛毛,30,40,20
文件
熊出没成绩单
光头强,总分:288.0 平均分: 96.0
熊大,总分:292.0 平均分: 97.33333333333333
熊二,总分:110.0 平均分: 36.666666666666664
吉吉国王,总分:102.0 平均分: 34.0
毛毛,总分:90.0 平均分: 30.0
语文最高分:100.0
数学最高分:99.0
英语最高分:100.0