score.txt文件

14 阅读2分钟

任务

1.读入根目录下的score.txt文件

2.计算

(1)每个同学的总分

(2)品均分

3.把计算的结果写入到 score-result.txt中

package score
/*
任务
1.读入根目录下的score.txt文件
2.计算
(1)每个同学的总分
(2)品均分
3.把计算的结果写入到 score-result.txt中
 */
object score01 {
  case class Stu(name:String, yuwen:Double,shuxue:Double,yingyu:Double)
  def main(args: Array[String]): Unit = {

    //定义一个可变List
    val stuList = scala.collection.mutable.ListBuffer[Stu]()
    //1.按行为单位,一个一个去读入
    val lines = scala.io.Source.fromFile("score.txt").getLines()

    //跳过第一行,第一行是表头
    while(lines.hasNext){
      val line = lines.next()
      val list = line.split(",")

      stuList += Stu(list(0), list(1).toDouble,list(2).toDouble,list(3).toDouble)
    }

    ///读取信息结果
    stuList.foreach(stu =>{
      println(s"${stu.name},语文考了${stu.yuwen}")
    })
  }
}

3.写入一个新文件

package score

import java.io.FileWriter

/*
任务
1.读入根目录下的score.txt文件
2.计算
(1)每个同学的总分
(2)品均分
3.把计算的结果写入到 score-result.txt中
 */
object score01 {
  case class Stu(name:String, yuwen:Double,shuxue:Double,yingyu:Double)
  def main(args: Array[String]): Unit = {

    //定义一个可变List
    val stuList = scala.collection.mutable.ListBuffer[Stu]()
    //1.按行为单位,一个一个去读入
    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)
    }

    ///读取信息结果

    //3.写入一个新文件,内容会自动生成
    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.close
  }
}

计算单科最高分

package score

import java.io.FileWriter

/*
任务
1.读入根目录下的score.txt文件
2.计算
(1)每个同学的总分
(2)品均分
3.把计算的结果写入到 score-result.txt中
 */
object score01 {
  case class Stu(name:String, yuwen:Double,shuxue:Double,yingyu:Double)
  def main(args: Array[String]): Unit = {

    //定义一个可变List
    val stuList = scala.collection.mutable.ListBuffer[Stu]()
    //1.按行为单位,一个一个去读入
    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)
    }

    ///读取信息结果

    //3.写入一个新文件
    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")
    val yuwen_max = stuList.map(_.yuwen).max
    fileWriter.write(s"语文 :${yuwen_max} \n")
    fileWriter.write(s"   ${stuList.filter(_.yuwen == yuwen_max).map(_.name).mkString(",")} \n")
    //查找
    fileWriter.write(s"数学 :${stuList.map(_.shuxue).max} \n")

    fileWriter.write(s"英语 :${stuList.map(_.yingyu).max} \n")

    fileWriter.close()
  }
}