Scala的练习题(成绩计算)

//1.迭代器,跳过第一个元素
//2.把字符串转成数字
//3.如何判断一个正整数是否可以被三整除? (1+2+3) % 3 = 0
import wyyyy.Student

import scala.collection.mutable.ListBuffer
import scala.io.Source

case class Student(name: String, yuwen: Int, shuxue: Int, yingyu: Int, total: Int, avg: Int)
//成绩分析
object mjq {
  def main(args: Array[String]): Unit = {
      //0.定义一个空列表
     val list = ListBuffer[Student]()
     //1.读入成绩 换行去读取  跳过第一个元素
     val it = Source.fromFile("score.txt").getLines().drop(1)
    val shuxuezongfen = 0
     while (it.hasNext) {
      val content = it.next()
        //使用中文的逗号去拆分字符串
        var arr = content.split(",")
        val name = arr(0)
        val yuwen = arr(1).toInt
        val shuxue = arr(2).toInt
        val yingyu = arr(3).toInt
        val total = yuwen + shuxue + yingyu
        val avg = total / 3
        println("当前行是",name,yingyu,total,avg)
       list += Student(name,yuwen,shuxue,yingyu,total,avg)
      }
    //数学平均分
    println("数学平均分",shuxuezongfen/list.length)
    //根据总分进行排序
    val orderlist = list.sortWith((a,b) => a.total>b.total)
    //打印结束
    orderlist.foreach(s=>println(s"姓名:${s.name},总分:${s.total}"))

    //根据数学进行排序、
    list.sortWith((a,b) => a.shuxue>b.shuxue)
      .foreach(s=>println(s"姓名:${s.name},数学:${s.shuxue},总分:${s.total}"))

  }
}
姓名:张伟,数学:92,总分:267
姓名:林峰,数学:91,总分:264
姓名:王强,数学:90,总分:250
姓名:郑洁,数学:89,总分:274
姓名:赵敏,数学:88,总分:271
姓名:周梅,数学:87,总分:268
姓名:李娜,数学:85,总分:270
姓名:吴刚,数学:85,总分:251
姓名:陈晨,数学:84,总分:255
姓名:孙涛,数学:82,总分:256

进程已结束,退出代码0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值