scala 计算3
题目:
1、统计学生的总分
2、统计总分年级排名前十学生各科的分数
3、统计总分大于年级平均分的学生
package scala import scala.io.Source object Demo25Score { def main(args: Array[String]): Unit = { /** * 2、统计学生的总分 * */ //读取分数表 val scores: List[String] = Source.fromFile("data/score.txt").getLines().toList //取出学号和分数 val idAndScore: List[(String, Double)] = scores.map(score => { val split: Array[String] = score.split(",") (split(0), split(2).toDouble) }) //按照学号分组 val group: Map[String, List[(String, Double)]] = idAndScore.groupBy(kv => kv._1) //统计学生的总分 val sumScores: Map[String, Double] = group.map(kv => { val id: String = kv._1 //取出一个人所有的分数 val ss: List[Double] = kv._2.map(kv1 => kv1._2) //计算总分 val sumScore: Double = ss.sum (id, sumScore) }) sumScores.foreach(println) println("=" * 100) /** * 1、统计总分年级排名前十学生各科的分数 * */ //将map 转换成list map 不能排序 val sumScoreList: List[(String, Double)] = sumScores.toList //按照分数降序排序,取前十 val sortByScore: List[(String, Double)] = sumScoreList.sortBy(kv => -kv._2) //取前十 val top10: List[(String, Double)] = sortByScore.take(10) //取出id val ids: List[String] = top10.map(kv => kv._1) //从分数表中取出前十的学生 val top10Score: List[String] = scores.filter(score => { val split: Array[String] = score.split(",") val id: String = split(0) //判断id 是否在ids 中存在 ids.contains(id) }) top10Score.foreach(println) println("=" * 100) /** * * 2、统计总分大于年级平均分的学生 * */ //计算年级平均分 val ssScore: Double = sumScores.values.sum //年级平均分 val avgScore: Double = ssScore / sumScores.size println(avgScore) //过滤总分打印年级平均分的学生 val sumScoGtAvgSco: Map[String, Double] = sumScores.filter(kv => { val sumSco: Double = kv._2 sumSco > avgScore }) sumScoGtAvgSco.foreach(println) } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能