在scala中分析同学成绩

75aec95af9f446a9a17253a045ea69bc.png

929375b6265040c398d73863171c07eb.png 

 package test33
 
//1.迭代器
//2.把字符串转成数字
//3.如何判断一个正整数是否可以被3整除(1+2+3)%3 ==0
 
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 test1 {
 
  def main(args: Array[String]): Unit = {
    //0.定义一个空列表
    val list = ListBuffer[Student]()
    //1.读取成绩-按行去读-跳过第一个元素
    val it = Source.fromFile("score.txt").getLines().drop(1)
    var shuxuezongfen = 0
    var yuwenzongfen = 0
    var yingyuzongfen = 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
      
      shuxuezongfen += shuxue
      yuwenzongfen += yuwen
      yingyuzongfen += yingyu
      //创建一个对象
//      println("当前行是", name, yingyu, total, avg)
      list += Student(name,yuwen,shuxue,yingyu,total,avg)
    }
    //数学平均分
    println("数学平均分",shuxuezongfen/list.length)
    //语文平均分
    println("语文平均分",yuwenzongfen/list.length)
    //英语平均分
    println("英语平均分",yingyuzongfen/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}"))
  }
 
 
}
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值