【java】兴唐第二十三节课作业

2024-05-01 05:32

本文主要是介绍【java】兴唐第二十三节课作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

已知如下:
下表为某班级四次考试成绩单,

  1. 要求使用HashMap<String, Integer>存储每次考试的成绩(key键为姓名,value为成绩)。
  2. 要求使用LinkedList存储考试次数,有几次考试就有几个HashMap
  3. 注意:后台用户是知道学生姓名的

形式如:LinkedList<HashMap<String, Integer>>
姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩
张三 80 88 86 88
李四 65 75 67 80
王五 35 45 55 59
薛六 90 92 98 88
赵七 70 75 65 68

要求是实现的功能
(1)查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。
(2)查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。
(3)查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。
(4)查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。
(5)查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。

提示:
例如第一次考试成绩,应该存储为如下格式:
HashMap<String, Integer> m = new HashMap<String, Integer>();
m.put(“张三”, 80);
m.put(“李四”, 65);
m.put(“王五”, 35);
m.put(“薛六”, 90);
m.put(“赵七”, 70);
代码实现:

/***Main.java*/
package NewHomework23;import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;public class Main {public static void main(String[] args) {ScoreData date = new ScoreData();List<Map<String,Integer>> list = date.getList();Scanner scanner = new Scanner(System.in);ShowList();int a = scanner.nextInt();switch(a){case 1:CalcSumScor(list, scanner);break;case 2:	GetStuSum(list,scanner);break;case 3:GetStuAver(list,scanner);break;case 4:GetBestAver(list,scanner);break;case 5:GetStuScore(list,scanner);break;default:System.out.println("输入有误!!!");}}static void ShowList() {System.out.println("请选择要实现的功能:");System.out.println("1、查询某次考试的总成绩");System.out.println("2、查询某个学生的总成绩");System.out.println("3、查询某个学生的平均成绩");System.out.println("4、查询全班平均成绩最高的考试是哪一次,并输出平均成绩的具体值");System.out.println("5、查询某个学生某次考试的成绩");		}static void CalcSumScor(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询考试的次数");int n = scanner.nextInt();int score = 0;Set<Entry<String, Integer>> entry = list.get(n).entrySet();for(Entry<String, Integer>  entrySet: entry) {score += entrySet.getValue();}System.out.println("第" + n + "次的总成绩为" + score);}static void GetStuSum(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询学生的姓名");String stuName = scanner.next();int sum = 0;for(int i = 0; i < list.size(); i++) {sum += list.get(i).get(stuName);}System.out.println(stuName + "的总成绩为" + sum);}static void GetStuAver(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询学生的姓名");String stuName = new String();int sum = 0;for(int i = 0; i < list.size(); i++) {sum += list.get(i).get(stuName);System.out.println(stuName + "的平均成绩为" + sum/3);}}static void GetBestAver(List<Map<String,Integer>> list, Scanner scanner) {int num = 0;int sum = 0;int max = 0;for(int i = 0; i < list.size(); i++) {Set<Map.Entry<String, Integer>> entry = list.get(i).entrySet();for(Map.Entry<String, Integer> entrySet : entry) {sum += entrySet.getValue();}if (sum > max) {max = sum;num = i;}sum = 0;}System.out.println("平均成绩最高的是第 " + num + "次,平均成绩为" + max/5);}static void GetStuScore(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询考试的次数"); int n =scanner.nextInt();System.out.println("请输入要查询学生的姓名"); String StuName = scanner.next();int score = list.get(n).get(StuName);System.out.println("成绩为:" + score);}
}
/*** ScoreData.java*/
package NewHomework23;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ScoreData {private List<Map<String, Integer>> list = new ArrayList(4);{Map<String,Integer> map = new HashMap();map.put("张三", 80);map.put("李四", 65);map.put("王五", 35);map.put("薛六", 90);map.put("赵七", 70);list.add(map);map = new HashMap();map.put("张三", 88);map.put("李四", 75);map.put("王五", 45);map.put("薛六", 92);map.put("赵七", 75);list.add(map);map = new HashMap();map.put("张三", 86);map.put("李四", 67);map.put("王五", 55);map.put("薛六", 98);map.put("赵七", 65);list.add(map);map = new HashMap();map.put("张三", 88);map.put("李四", 80);map.put("王五", 59);map.put("薛六", 88);map.put("赵七", 68);list.add(map);}public List<Map<String, Integer>> getList() {return list;}
}

待完善:代码的健壮性

这篇关于【java】兴唐第二十三节课作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950823

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis