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

Scala习题

姓名,语文,数学,英语
张伟,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

1.读入文件

2.计算总成绩,并排列前三名

3.对各科成绩进行排序,并排列出前三名

最后的结果写到一个新文件

package test5import java.io.PrintWriter
import scala.collection.mutable.ListBuffer
import scala.io.Source
case class Student(name:String,yuwen:Int,shuxue:Int,yingyu:Int,zongfen:Int,pingjunfen:Int,var mingci:Int)object test {def main(args: Array[String]): Unit = {//0.准备一个空的listval list = ListBuffer[Student]()//1.读入文件--按行读取//drop(1)让迭代器跳过一个元素,因为第一行是开头,把第一行跳过去val it = Source.fromFile("score.txt").getLines().drop(1)//跳过一个元素while (it.hasNext){
//      val content = it.next()
//      println(content)val arr = it.next().split(",")
//      println("姓名",arr(0))
//      println("语文",arr(1).toInt)
//      println("数学",arr(2).toInt)
//      println("英语",arr(3).toInt)val total = arr(1).toInt+arr(2).toInt+arr(3).toInt
//      println("总分",total)
//      println("平均分",total/3)//3.添加学生到listlist += Student(arr(0),arr(1).toInt,arr(2).toInt,arr(3).toInt,total,total/3,0)}val orderedList = list.sortWith((a,b)=>a.zongfen>b.zongfen)var mingci = 1;var curScore = -1;orderedList.foreach(s=>{if(s.zongfen != curScore){mingci += 1s.mingci = mingcicurScore = s.zongfen}else{s.mingci = mingci}})
//    list.foreach(println)//4.排名
//   根据总分排名,取前三val li1 = list.sortWith((a,b)=>a.zongfen>b.zongfen).slice(0,3)li1.foreach(println)println("--------------------")//按语文排名取前三val li2 = list.sortWith((a,b)=>a.yuwen>b.yuwen).slice(0,3)li2.foreach(println)println("-----------------")
//按数学排名取前三val li3 = list.sortWith((a,b)=>a.shuxue>b.shuxue).slice(0,3)li3.foreach(println)println("---------------")//按英语排名取前三val li4 = list.sortWith((a,b)=>a.yingyu>b.yingyu).slice(0,3)li4.foreach(println)//5.写入val write = new PrintWriter("排名之后的结果.txt")list.foreach(s=>{write.println(s"姓名${s.name},语文${s.yingyu},数学${s.shuxue},英语${s.yingyu},总分${s.zongfen},平均分${s.pingjunfen}")})write.println("-"*40)li1.foreach(s=>{write.println(s"姓名${s.name},总分${s.zongfen}")})write.println("-"*40+"语文前三名")li2.foreach(s=>{write.println(s"姓名:${s.name},语文${s.yuwen},总分${s.zongfen}")})write.close()//结束输出}}

完成之后目录之下会有新的文件

http://www.lryc.cn/news/492936.html

相关文章:

  • 结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用
  • OpenCV图像基础处理:通道分离与灰度转换
  • C++ 类和对象(类型转换、static成员)
  • 【网络安全设备系列】12、态势感知
  • Linux介绍与安装指南:从入门到精通
  • BGE-M3模型结合Milvus向量数据库强强联合实现混合检索
  • 鸿蒙NEXT开发案例:文字转拼音
  • CTF之密码学(栅栏加密)
  • 修改插槽样式,el-input 插槽 append 的样式
  • UPLOAD LABS | PASS 01 - 绕过前端 JS 限制
  • 【css实现收货地址下边的平行四边形彩色线条】
  • 缓存方案分享
  • 第四十篇 DDP模型并行
  • 软件测试面试之常规问题
  • 《图像形态学运算全解析:原理、语法及示例展示》
  • 双十一线上服务调用链路追踪SkyWalking实战分析
  • 网络安全究竟是什么? 如何做好网络安全
  • 【C++】入门【一】
  • 【ArcGIS Pro实操第11期】经纬度数据转化成平面坐标数据
  • python学opencv|读取图像
  • ffmpeg RTP PS推流
  • Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)
  • NUMA架构及在极速网络IO场景下的优化实践
  • Brain.js 用于浏览器的 GPU 加速神经网络
  • Linux——用户级缓存区及模拟实现fopen、fweite、fclose
  • 视觉感知与处理:解密计算机视觉的未来
  • 【大数据学习 | Spark-Core】广播变量和累加器
  • postgresql按照年月日统计历史数据
  • pywin32库 -- 读取word文档中的图形
  • GitLab使用示例