文件读写-成绩分析

15 阅读1分钟
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 list=line.split(",")
    stuList+=Stu(list(0),list(1).toDouble,list(2).toDouble,list(3).toDouble)

  }
  //写入一个新的文件
  val filewriter=new FileWriter("score_result.txt")
  stuList.foreach(stu=>{
    val total=stu.yuwen+stu.shuxue+stu.yingyu
    filewriter.write(s"${stu.name},总分:${total}  平均分:${total/3}\n")
    println(s"${stu.name}写入成功")
  })
  //计算最高分
  filewriter.write("最高分 \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()
}