scala

import scala.Console.println
import scala.collection.mutable.ListBuffer
import scala.io.Source
case class  Student(name: String, yuwen: Double, shuxue: Double, yingyu: Double, total: Double,avg :Double)
object Test716 {
  def main(args: Array[String]): Unit = {
    val studentList = ListBuffer[Student]()
    val source = Source.fromFile("score.txt")
    val it = source.getLines()
    it.next()
    while (it.hasNext) {
      val arr = it.next().split(",")
      val name = arr(0)
      val yuwen = arr(1).toDouble
      val shuxue = arr(2).toDouble
      val yingyu = arr(3).toDouble
      val total = yingyu + yuwen + shuxue
      val avg = total / 3

      val s = Student(name, yuwen, shuxue, yuwen, total, avg)
      studentList += s

    }
    source.close()
    var avgYuwen:Double = 0
    var avgShuxue:Double = 0
      var avgYingyu:Double = 0
    studentList.foreach(s => {
     avgYuwen += s.yuwen
      avgShuxue += s.shuxue
      avgYingyu +=s.yingyu
    })
        println("语文平均分:",avgYuwen)
        println("数学平均分:",avgShuxue)
        println("英语平均分:",avgYingyu)

    val list1 = studentList.sortWith((a,b)=>a.total >b.total).slice(0,3)
    print("总分从高到低排名前三:")
    list1.foreach(println)

    val list2 =studentList.sortWith((a,b)=>a.yuwen >b.yuwen).slice(0,3)
    print("语文排名前三:")
    list2.foreach(println)

    val list3 = studentList.sortWith((a, b) => a.shuxue > b.shuxue).slice(0, 3)
    print("数学排名前三:")
    list3.foreach(println)
    val list4= studentList.sortWith((a, b) => a.yingyu > b.yingyu).slice(0, 3)
    print("英语排名前三:")
    list4.foreach(println)


    val writer = new printWriter("统计成绩结果:")
    writer println "姓名,语文,数学,英语,总分,平均分"
    studentList foreach(s=>{
      val avg =String.format("%.1f",s.avg)
      writer.println(s"${s.name},${s.avg},${s.shuxue},${s.yuwen},${s.yingyu},${s.total}")
    })


  }

    case class printWriter(fileName: String) {
      def println(str: String): Unit= ???


    }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值