当前位置: 首页 > 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()//结束输出}}

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

相关文章:

Scala习题

姓名,语文,数学,英语 张伟,87,92,88 李娜,90,85,95 王强,78,90,82 赵敏,92,88,91 孙涛&#xff0c…...

结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用

目录 第一章 夯实基础 R/Rstudio简介及入门 第二章 结构方程模型(SEM)介绍 第三章 R语言SEM分析入门:lavaan VS piecewiseSEM 第四章 SEM全局估计(lavaan)在生态学领域高阶应用 第五章 SEM潜变量分析在生态学领域…...

OpenCV图像基础处理:通道分离与灰度转换

在计算机视觉处理中,理解图像的颜色通道和灰度表示是非常重要的基础知识。今天我们通过Python和OpenCV来探索图像的基本组成。 ## 1. 图像的基本组成 在数字图像处理中,彩色图像通常由三个基本颜色通道组成: - 蓝色(Blue&#x…...

C++ 类和对象(类型转换、static成员)

目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好,我们又见面了。昨天我们已经分享了初始化列表:https://blog.c…...

【网络安全设备系列】12、态势感知

0x00 定义: 态势感知(Situation Awareness,SA)能够检测出超过20大类的云上安全风险,包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术,态势感…...

Linux介绍与安装指南:从入门到精通

1. Linux简介 1.1 什么是Linux? Linux是一种基于Unix的操作系统,由Linus Torvalds于1991年首次发布。Linux的核心(Kernel)是开源的,允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…...

BGE-M3模型结合Milvus向量数据库强强联合实现混合检索

在基于生成式人工智能的应用开发中,通过关键词或语义匹配的方式对用户提问意图进行识别是一个很重要的步骤,因为识别的精准与否会影响后续大语言模型能否检索出合适的内容作为推理的上下文信息(或选择合适的工具)以给出用户最符合…...

鸿蒙NEXT开发案例:文字转拼音

【引言】 在鸿蒙NEXT开发中,文字转拼音是一个常见的需求,本文将介绍如何利用鸿蒙系统和pinyin-pro库实现文字转拼音的功能。 【环境准备】 • 操作系统:Windows 10 • 开发工具:DevEco Studio NEXT Beta1 Build Version: 5.0.…...

CTF之密码学(栅栏加密)

栅栏密码是古典密码的一种,其原理是将一组要加密的明文划分为n个一组(n通常根据加密需求确定,且一般不会太大,以保证密码的复杂性和安全性),然后取每个组的第一个字符(有时也涉及取其他位置的字…...

修改插槽样式,el-input 插槽 append 的样式

需缩少插槽 append 的 宽度 方法1、使用内联样式直接修改&#xff0c;指定 width 为 30px <el-input v-model"props.applyBasicInfo.outerApplyId" :disabled"props.operateCommandType input-modify"><template #append><el-button click…...

UPLOAD LABS | PASS 01 - 绕过前端 JS 限制

关注这个靶场的其它相关笔记&#xff1a;UPLOAD LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 本关的目标是上传一个 WebShell 到目标服务器上&#xff0c;并成功访问&#xff1a; 我们直接尝试上传后缀为 .php 的一句话木马&#xff1a; 如上&#xff0c;靶场弹…...

【css实现收货地址下边的平行四边形彩色线条】

废话不多说&#xff0c;直接上代码&#xff1a; <div class"address-block" ><!-- 其他内容... --><div class"checked-ar"></div> </div> .address-block{height:120px;position: relative;overflow: hidden;width: 500p…...

缓存方案分享

不知道大家平常更新缓存是怎么做的&#xff0c;但是大部分时候都是更新数据的同时更新缓存&#xff0c;今天和同事一起聊到一个缓存方案的问题&#xff0c;感觉很有趣、非常精妙&#xff0c;记录一下。 基于此本文将介绍几种常见的缓存更新策略&#xff0c;包括简单的缓存覆盖…...

第四十篇 DDP模型并行

摘要 分布式数据并行(DDP)技术是深度学习领域中的一项重要技术,它通过将数据和计算任务分布在多个计算节点上,实现了大规模模型的并行训练。 DDP技术的基本原理是将数据和模型参数分割成多个部分,每个部分由一个计算节点负责处理。在训练过程中,每个节点独立计算梯度,…...

软件测试面试之常规问题

1.描述一下测试过程 类似题目:测试的生命周期 思路:这是一个“范围”很大的题目&#xff0c;而且回答时间一般在3分钟之内&#xff0c;不可能非常详细的描述整个过程&#xff0c;因此答题的思路要从整体结构入手&#xff0c;不要过细。为了保证答案的准确性&#xff0c;可以引…...

《图像形态学运算全解析:原理、语法及示例展示》

简介&#xff1a; 本文详细介绍了图像形态学中的多种运算&#xff0c;包括腐蚀、膨胀、开运算、闭运算、形态学梯度运算、礼帽运算以及黑帽运算。分别阐述了各运算的原理、语法格式&#xff0c;并通过 Python 代码结合具体示例图片&#xff08;如erode.JPG、dilate.JPG、close.…...

双十一线上服务调用链路追踪SkyWalking实战分析

序言 随着电商行业的飞速发展&#xff0c;双十一购物节已成为全球最大的购物狂欢节之一。在双十一期间&#xff0c;电商平台需要处理海量的用户请求和订单&#xff0c;这对系统的稳定性和性能提出了极高的要求。为了确保系统在高并发环境下的稳定运行&#xff0c;对线上服务的…...

网络安全究竟是什么? 如何做好网络安全

网络安全是如何工作的呢? 网络安全结合多层防御的优势和网络。每个网络安全层实现政策和控制。授权用户访问网络资源,但恶意参与者不得进行攻击和威胁。 我如何受益于网络安全? 数字化改变了我们的世界。我们的生活方式、工作、玩耍,和学习都发生了变化。每个组织希望提供…...

【C++】入门【一】

本节目标 一、C关键字&#xff08;C98&#xff09; 二、命名空间 三、C的输入输出 四、缺省函数 五、函数重载 六、引用 七、内联函数 八、auto关键字&#xff08;C11&#xff09; 九、范围for&#xff08;C11&#xff09; 十、指针空值nullptr&#xff08;C11&#xff09; 一.…...

【ArcGIS Pro实操第11期】经纬度数据转化成平面坐标数据

经纬度数据转化成平面坐标数据 数据准备ArcGIS操作步骤-投影转换为 Sinusoidal1 投影2 计算几何Python 示例 另&#xff1a;Sinusoidal (World) 和 Sinusoidal (Sphere) 的主要区别参考 数据准备 数据投影&#xff1a; 目标投影&#xff1a;与MODIS数据相同&#xff08;Sinu…...

AI工作流自动化实践:Claude数据同步工具架构与实现

1. 项目概述与核心价值 最近在折腾AI应用集成的时候&#xff0c;发现一个挺有意思的项目&#xff0c;叫 cam901051/claude-sync 。乍一看这个标题&#xff0c;你可能会有点懵&#xff0c;这到底是干嘛的&#xff1f;简单来说&#xff0c;这是一个旨在实现Claude&#xff08;…...

为AI编码助手集成aislop-skill:实时代码质量检测与修复

1. 项目概述&#xff1a;为AI编码助手装上“质检员”如果你和我一样&#xff0c;日常重度依赖Cursor、Windsurf这类AI驱动的IDE&#xff0c;或者频繁使用Claude Code、Gemini CLI等代码生成工具&#xff0c;那你一定遇到过这样的场景&#xff1a;AI助手生成的代码&#xff0c;功…...

OpenSceneGraph 3.6.5 源码编译实战:从依赖配置到项目集成的完整指南

1. 环境准备&#xff1a;搭建编译OSG的基础舞台 在开始编译OpenSceneGraph 3.6.5之前&#xff0c;我们需要先搭建好开发环境。就像盖房子需要打好地基一样&#xff0c;环境配置决定了后续编译过程的顺利程度。我曾在多个项目中编译过不同版本的OSG&#xff0c;发现环境配置不当…...

BLE技术解析:物联网低功耗无线通信核心

1. BLE技术概述&#xff1a;物联网的无线连接基石蓝牙低功耗技术&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;自2010年作为蓝牙4.0核心规范的一部分推出以来&#xff0c;已成为物联网设备无线通信的事实标准。与经典蓝牙技术相比&#xff0c;BLE在保持相似…...

别再写循环了!ABAP SQL聚合函数COUNT/AVG/MAX实战指南,5分钟搞定数据统计

ABAP SQL聚合函数实战&#xff1a;告别低效循环&#xff0c;5分钟掌握高阶统计技巧 每次看到ABAP报表里那些嵌套三层的LOOP和SORT语句&#xff0c;我的血压就会悄悄升高。上周review同事代码时&#xff0c;发现一个统计物料库存的报表竟然用了三个嵌套循环——外层遍历工厂、中…...

Google Maps路线响应延迟超800ms?Gemini边缘推理加速方案上线即降为112ms(附可复用TensorRT优化脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini Google Maps路线优化 Google Maps 与 Gemini 的深度集成正在重塑企业级物流与出行服务的智能边界。通过 Gemini 的多模态推理能力&#xff0c;开发者可将自然语言查询&#xff08;如“避开施工路…...

HandheldCompanion:解锁Windows掌机游戏体验的终极钥匙

HandheldCompanion&#xff1a;解锁Windows掌机游戏体验的终极钥匙 【免费下载链接】HandheldCompanion ControllerService 项目地址: https://gitcode.com/gh_mirrors/ha/HandheldCompanion 你是否曾为Windows掌机的游戏兼容性而烦恼&#xff1f;是否梦想着在便携设备上…...

Vulkan学习笔记

顺序很重要&#xff1a;#define 必须在 #include <GLFW/glfw3.h> 之前出现&#xff0c;否则不起作用。作用&#xff1a;当 GLFW 的头文件看到这个宏被定义后&#xff0c;它就会知道你需要 Vulkan 支持&#xff0c;并自动执行 #include <vulkan/vulkan.h>&#xff0…...

研发交付管理:资源化与项目制的实践思考

说明&#xff08;阅读前&#xff09;&#xff1a;本文系 方法论层面的归纳&#xff0c;依据常见软件研发组织实践整理&#xff0c;不涉及任何特定企业的内部制度、人数或薪酬细节&#xff1b;文中角色名称&#xff08;如研发经理、项目发起人&#xff09;为 通用称谓&#xff0…...

英雄联盟终极助手:League Akari 完整使用指南

英雄联盟终极助手&#xff1a;League Akari 完整使用指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是一个文章写手&#xff0c;你负责…...