当前位置: 首页 > article >正文

Scala关于成绩的常规操作

 

 

score.txt中的数据:

姓名,语文,数学,英语
张伟,87,92,88
李娜,90,85,95
王强,78,90,82
赵敏,92,88,91
孙涛,85,82,89
周梅,88,87,93
吴刚,80,85,86
郑洁,91,89,94
陈晨,83,84,88
林峰,86,91,87

 

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

case class Student(name:String,yuwen:Int,shuxue:Int,yingyu:Int,total:Int,avg:Int)
//成绩分析
object Test {
  def main(args: Array[String]): Unit = {
    //0.定义一个空列表
    val list = ListBuffer[Student]()
    //1.读入成绩,按行读取,跳过第一个元素
    val it = Source.fromFile("score.txt").getLines().drop(1)
    var 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

      shuxuezongfen += shuxue
      //创建一个对象
      list += Student(name, yuwen, shuxue, yingyu, total, avg)
    }
    //数学平均分
    println("数学平均分",shuxuezongfen / list.length)
    //根据总分进行排序
    val orderList = list.sortWith((a,b)=>a.total>b.total).slice(0,3)
    //打印结果
    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}"))
  }
}


http://www.kler.cn/a/418563.html

相关文章:

  • TimeSpan和DateTime
  • 会议直击|美格智能亮相2024紫光展锐全球合作伙伴大会,融合5G+AI共拓全球市场
  • C++练级计划-> 《IO流》iostream fstream sstream详解
  • neo4j desktop版命令行中导入导出dump
  • spring导出多个文件,要求打包成压缩包
  • 微服务即时通讯系统的实现(服务端)----(2)
  • 华为云云连接+squid进行正向代理上网冲浪
  • 【RabbitMQ 消息列队测试之:调试技巧】
  • 【Python数据分析五十个小案例】使用自然语言处理(NLP)技术分析 Twitter 情感
  • 初级数据结构——邻接表
  • 使用图结构增强RAG架构,一文详解LightRAG
  • docker安装clickhouse(单机版)
  • 解决Qt堆栈窗口内子窗口大小不一致的问题
  • HTML5+JavaScript实现消消乐游戏
  • Flask项目入门—request以及Response
  • C与指针。
  • 深度解析MySQL的刷脏机制
  • 11. 名称空间
  • 深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用
  • 【iOS】《Effective Objective-C 2.0》阅读笔记(一)
  • 力扣103.二叉树的锯齿形层序遍历
  • git clone超大仓库时报错:fatal: early EOF
  • centos挂载ntfs或exFAT格式硬盘
  • 系统监控——分布式链路追踪系统
  • AJAX一、axios使用,url组成(协议,域名,资源路径)查询参数和化简,错误处理,请求/响应报文,状态码,接口文档,
  • 动态规划(c基础)