Scala学习记录,统计成绩

统计成绩练习

1.计算每个同学的总分和平均分

2.统计每个科目的平均分

3.列出总分前三名和单科前三名,并保存结果到文件中

        解题思路如下:

        1.读入txt文件,按行读入

        2.处理数据

        (1)计算每个同学的总分平均分

import scala.collection.mutable.ListBuffer
import scala.io.Source
case class Student(name: String, yuwen: Double, shuxue: Double, yingyu: Double, total: Double, avg: Double)
//案例分析:统计成绩
object Test文件读写_成绩分析 {def main(args: Array[String]): Unit = {//可变List,保存索引的学生数据val studentList = ListBuffer[Student]()//1.按行读入val source = Source.fromFile("score.txt")val it = source.getLines()//迭代器it.next()//跳过第一行while (it.hasNext){val arr = it.next().split(",")//中文的逗号val name = arr(0)val yuwen = arr(1).toDoubleval shuxue = arr(2).toDoubleval yingyu = arr(3).toDoubleval total = yuwen + shuxue +yingyu //计算总分val avg = total / 3  //计算平均分//println(name,yuwen,shuxue,yingyu,total,avg)val s = Student(name,yuwen,shuxue,yingyu,total,avg)studentList +=s}source.close()studentList.foreach(println)}
}

        (2)每个科目的平均分

        (3)总分的前三名

        (4)单科的前三名

        3.把结果写入文件

      完整代码如下:

package Scala_CSDN.十一月import javafx.print.Printerimport java.io.PrintWriter
import scala.collection.mutable.ListBuffer
import scala.io.Source
case class Student(name:String, yuwen:Double, shuxue:Double, yingyu:Double, total:Double, avg:Double)
object 统计成绩 {def main(args: Array[String]): Unit = {//可变List,保存所有的学生数据val studentList = ListBuffer[Student]()//1.按行读入文件val source = Source.fromFile("score.txt")val it = source.getLines() //迭代器it.next()//跳过第一行while (it.hasNext){val arr = it.next().split(",")//中文逗号val name = arr(0)val yuwen = arr(1).toDoubleval shuxue = arr(2).toDoubleval yingyu = arr(3).toDoubleval total = yuwen + shuxue + yingyu //计算总分val avg = total / 3  //计算平均分val s = Student(name, yuwen, shuxue, yingyu, total, avg)studentList += s}source.close()//计算单科总分var avgyuwen:Double = 0var avgshuxue:Double = 0var avgyingyu:Double = 0studentList.foreach(s=>{avgyuwen += s.yuwenavgshuxue += s.shuxueavgyingyu += s.yingyu})println("语文平均分",avgyuwen / studentList.length)println("数学平均分",avgyuwen / studentList.length)println("英语平均分",avgyuwen / studentList.length)//总分的前三名//思路:1.对所有的同学按总分从高到低排名val list1 = studentList.sortWith((a,b)=>a.total > b.total).slice(0,3)println("总分从高到低排名前三:")list1.foreach(println)//单科的前三名val list2 = studentList.sortWith((a,b)=>a.yuwen > b.yuwen).slice(0,3)println("语文从高到低排名前三:")list2.foreach(println)val list3 = studentList.sortWith((c,d)=>c.shuxue > d.shuxue).slice(0,3)println("数学从高到低排名前三:")list3.foreach(println)val list4 = studentList.sortWith((c,d)=>c.yingyu > d.yingyu).slice(0,3)println("英语从高到低排名前三:")list4.foreach(println)//写入文件val writer = new PrintWriter("统计成绩的结果")writer.println("姓名,语文成绩,数学成绩,英语成绩,总分,平均分")studentList.foreach(s=>{val avg = f"${s.avg}%.1f" //只保留一位有效数字writer.println(s"${s.name},${s.yuwen},${s.shuxue},${s.yingyu},${s.total},${avg}")})writer.println("-"*40)//总分前三名list1.foreach(s=>{val avg = f"${s.avg}%.1f"writer.println(s"${s.name},${s.yuwen},${s.shuxue},${s.yingyu},${s.total},${avg}")})writer.println("-"*40)//语文前三名list2.foreach(s=>{val avg = f"${s.avg}%.1f" //只保留一位有效数字writer.println(s"${s.name},${s.yuwen},${s.shuxue},${s.yingyu},${s.total},${avg}")})writer.println("-"*40)//英语前三名list3.foreach(s=>{val avg = f"${s.avg}%.1f" //只保留一位有效数字writer.println(s"${s.name},${s.yuwen},${s.shuxue},${s.yingyu},${s.total},${avg}")})writer.println("-"*40)//数学前三名list4.foreach(s=>{val avg = f"${s.avg}%.1f" //只保留一位有效数字writer.println(s"${s.name},${s.yuwen},${s.shuxue},${s.yingyu},${s.total},${avg}")})writer.println("-"*40)writer.close()  //关闭文件}
}

身份证查询籍贯

根据身份证号码前两位,输出其所属籍贯:

     eg:42湖北,33浙江,11北京,31上海

object Test_身份证查询籍贯 {def main(args: Array[String]): Unit = {val code = "42005200210030051".substring(0,2)println(code)//判断42是哪个省的//湖北
//    if(code == "42"){
//      println("42对应省份为:湖北")
//    }else if(code =="33"){
//      println("浙江")
//    }else{
//      println()
//    }val province = code match {case "11" => "北京"case "12" => "天津"case "13" => "河北"case "14" => "山西"case "15" => "内蒙古"case "21" => "辽宁"case "22" => "吉林"case "23" => "黑龙江"case "31" => "上海"case "32" => "上海"case "33" => "浙江"case "34" => "安徽"case "35" => "福建"case "36" => "江西"case "37" => "山东"case "41" => "河南"case "42" => "湖北"case "43" => "湖南"case "44" => "广东"case "45" => "广西"case "46" => "海南"case "50" => "重庆"case "51" => "四川"case "52" => "贵州"case "53" => "云南"case "54" => "西藏"case "61" => "陕西"case "62" => "甘肃"case "63" => "青海"case "64" => "宁夏"case "65" => "新疆"case "71" => "台湾"case "81" => "香港"case "82" => "澳门"case "91" => "国外"case "_" => "未知"}println(province)}
}

根据输出的数字输出对应 的星期的英文

算出正方形,长方形,梯形面积

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/480770.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路由策略与路由控制实验

AR1、AR2、AR3在互联接口、Loopback0接口上激活OSPF。AR3、AR4属于IS-IS Area 49.0001,这两者都是Level-1路由器,AR3、AR4的系统ID采用0000.0000.000x格式,其中x为设备编号 AR1上存在三个业务网段A、B、C(分别用Loopback1、2、3接…

第J7周:对于RenseNeXt-50算法的思考

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 文章目录 一、前言1、导入包2、分组卷积模块3、残差单元4、堆叠残差单元5、搭建ResNeXt-50网络 二、问题思考 电脑环境: 语言环境:Pyth…

某充电桩业务服务内存监控和程序行为分析

原作者:展贝 原文地址:https://mp.weixin.qq.com/s/nnYCcVtwowvmj7Zn9XLIUg 在当今数据驱动的环境中,理解内存指标和程序行为对于确保应用程序的性能和可靠性至关重要。在依赖实时数据处理和高可用性的行业中尤其如此。通过利用可观测工具&am…

基于SpringBoot共享汽车管理系统【附源码】

基于SpringBoot共享汽车管理系统 效果如下: 系统注册页面 系统登陆页面 系统管理员主页面 用户信息管理页面 汽车投放管理页面 使用订单页面 汽车归还管理页面 研究背景 随着计算机技术和计算机网络的逐渐普及,互联网成为人们查找信息的重要场所。二十…

计算机网络基础(2):网络安全/ 网络通信介质

1. 网络安全威胁 网络安全:目的就是要让网络入侵者进不了网络系统,及时强行攻入网络,也拿不走信息,改不了数据,看不懂信息。 事发后能审查追踪到破坏者,让破坏者跑不掉。 网络威胁来自多方面&#xff1a…

Cesium K-means自动聚合点的原理

Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库,用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据,并允许开发者对大规模的地理数据进行可视化展示。在一些应用中,尤其是当处理大量地理坐标点时&#…

JAVA:Spring Boot 3 实现 Gzip 压缩优化的技术指南

1、简述 随着 Web 应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈。为了减少数据传输量,提高用户体验,我们可以使用 Gzip 压缩 HTTP 响应。本文将介绍如何在 Spring Boot 3 中实现 Gzip 压缩优化。 2、配置 Spring Boot 3 对…

TsingtaoAI具身智能高校实训方案通过华为昇腾技术认证

日前,TsingtaoAI推出的“具身智能高校实训解决方案-从AI大模型机器人到通用具身智能”基于华为技术有限公司AI框架昇思MindSpore,完成并通过昇腾相互兼容性技术认证。 TsingtaoAI&华为昇腾联合解决方案 本项目“具身智能高校实训解决方案”以实现高…

vitess使用记录:vtctldclient,设置分表规则

继续探索未完成的事情。 vitess使用记录系列已经写了好几篇了,记录了在测试过程中遇到的各种问题。《vitess使用:从部署到go客户端连接查询》、《vitess使用记录:vtctldclient》、《vitess使用:基于源码运行vtctldclient工具》整…

houdini肌肉刷pin点的方法

目标:产生gluetoanimation这个属性 主要节点:attribute paint(或者muscle paint) 步骤1: 导入肌肉资产 导入的是rest shape的肌肉 在有侧边栏可以打开display group and attribute list,方便查看group。不同的肌肉块按照muscl…

10个Word自动化办公脚本

在日常工作和学习中,我们常常需要处理Word文档(.docx)。 Python提供了强大的库,如python-docx,使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本,帮助新…

在开发环境中,前端(手机端),后端(电脑端),那么应该如何设置iisExpress

首先,要想手机端应用能成功请求后端,两个设备至少需在同一个局域网内,且IP地址互通; 因为ajax是http(s)://IP地址端口号的方式请求,但是iisExpress默认是localhost如何解决,并没有IP地址,所以手…

嵌入式硬件面试题【经验】总结----会不断添加更新

目录 引言 一、电阻 1、电阻选型时一般从那几个方面考虑 2、上拉电阻的作用 3、PTC热敏电阻作为电源电路保险丝的工作原理 4、如果阻抗不匹配,有哪些后果 二、电容 1、电容选型一般从哪些方面进行考虑? 2、1uf的电容通常来滤除什么频率的信号 三、三极管…

初识java(4)

今天给大家分享一下java中内置类型定义时的一些要点,我已经整理成笔记,现在分享给大家。 整型变量: 注:在定义int变量时,所赋值不能超过int的范围; 了 intd:1234567890127411编译时报错,初值超过胃int 当你赋值的过而值大于这个变量能够保存的最大值…

计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

初窥 HTTP 缓存

引言 对于前端来说, 你肯定听说过 HTTP 缓存。 当然不管你知不知道它, 对于提高网站性能和用户体验, 它都扮演着重要的角色! 它通过在客户端和服务器之间存储和重用先前获取的资源副本, 来减少网络流量和降低资源加载时间, 从而提升用户体验! 以下是 HTTP 缓存的重要性: 减少…

02_Django路由Router

二、Django路由Router 在实际开发过程中,一个Django 项目会包含很多的 app ,这时候如果我们只在主路由里进行配置就会显得杂乱无章,所以通常会在每个 app 里,创建各自的urls.py路由模块,然后从根路由出发,…

110页PPT战略指南:剖析Cross SWOT分析、市场洞察与内部优化方案

您看到的是一个非常全面的通过Cross SWOT制定战略方案的框架。以下是对每个部分的简要解释和补充,以帮助您更好地理解和应用这个框架: 一、通过Cross SWOT制定战略方案 1. 宏观环境 (1) PEST分析:评估政治(Political&#xff0…

ArcGIS 软件中路网数据的制作

内容导读 路网数据是进行网络分析的基础,它是建立网络数据集的数据来源。 本文我们以OSM路网数据为例,详细介绍OSM路网数据从下载,到数据处理,添加属性,完成符合网络分析的网络数据集的全部过程。 01 数据获取 比较…

JMeter实时性能压测可视化系统整合

一、相关工具简介: JMeter、Grafana 和 InfluxDB 结合实时地收集、分析和展示性能测试数据,进行更好地理解系统的性能表现,及时发现潜在问题并进行优化。 1,JMeter 实时生成性能数据,并将其发送到 InfluxDB 进行存储。2,InfluxDB 存储的数据。3,通过Grafana的仪表板,用…