成绩分析

20 阅读1分钟
case class Stu(name:String, yuwen:Double,shuxue:Double,)

def main(args: Array[String]): Unit = {
  //1.读出项目根目录下的score.txt文件
  val lines = scala.io.Source.fromFile("score.txt").getLines()

  // 跳过第一行,它代表表示
  // 语文,数学,英语
  lines.next()

  val stuList = scala.collection.mutable.ListBuffer[Stu]()
  while (lines.hasNext) {
    val line = lines.next()
    val list = line.split(",")
    stuList += stu(list(0), list(1).toDouble, list(2).toDouble, list(3).toDouble)
  }

  // 3 写入结果到新的文件
  val fileWriter = new FileWriter("score_result.txt")

  stuList.foreach(stu => {
    val total = stu.yingyu + stu.shuxue + stu.yuwen
    val avg = total / 3
    fileWriter.write(s"${stu.name}, 语文: ${stu.yuwen}分 数学:${stu.shuxue}分 英语:${stu.yingyu}分 总分: ${total} 平均分: ${avg}\n")
  })

  // 输出英语学科平均分
  fileWriter.write(s"英语平均分:${stuList.map(_.yingyu).sum / stuList.length}  数学平均分: ${stuList.map(_.shuxue).sum / stuList.length}  语文平均分: ${stuList.map(_.yuwen).sum / stuList.length} \n")

  // 输出英语学科最高分
  fileWriter.write(s"英语最高分: ? 数学最高分: ?  语文最高分: ? \n")
  
  fileWriter.close()