Java lesson19homework
package com.xt.lesson19;
/**
* 已知如下:
下表为某班级四次考试成绩单,
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)查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。
(6) 使用TreeMap对学生总成绩进行排名输出
提示:
例如第一次考试成绩,应该存储为如下格式:
HashMap<String, Integer> m = new HashMap<String, Integer>();
m.put(“张三”, 80);
m.put(“李四”, 65);
m.put(“王五”, 35);
m.put(“薛六”, 90);
m.put(“赵七”, 70); */
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class StuScore {
Map<String,Integer> hm1=new HashMap<String,Integer>(5);
Map<String,Integer> hm2=new HashMap<String,Integer>(5);
Map<String,Integer> hm3=new HashMap<String,Integer>(5);
Map<String,Integer> hm4=new HashMap<String,Integer>(5);
LinkedList<Map<String,Integer>> llist=new LinkedList<Map<String,Integer>>();
TreeSet<Student> tset=new TreeSet<Student>(); public void addState(){ hm1.put("张三", 80);
hm1.put("李四", 65);
hm1.put("王五", 35);
hm1.put("薛六", 90);
hm1.put("赵七", 70); hm2.put("张三", 88);
hm2.put("李四", 75);
hm2.put("王五", 45);
hm2.put("薛六", 92);
hm2.put("赵七", 75); hm3.put("张三", 86);
hm3.put("李四", 67);
hm3.put("王五", 55);
hm3.put("薛六", 98);
hm3.put("赵七", 65); hm4.put("张三", 88);
hm4.put("李四", 80);
hm4.put("王五", 59);
hm4.put("薛六", 88);
hm4.put("赵七", 68); }
//查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。
public void oneExamTotolScore(){
System.out.println("\n\n----------------------以下是查询某次考试的总成绩-----------------------\n\n");
int totalScore=0;
Scanner scanner=new Scanner(System.in);
System.out.println("请您输入考试的次数:");
int examTimes=scanner.nextInt();
//算出这次考试总分
switch (examTimes){
case 1:{
totalScore=hm1.get("张三")+hm1.get("李四")+hm1.get("王五")
+hm1.get("薛六")+hm1.get("赵七");
break;//防止case穿透
}
case 2:{
totalScore=hm2.get("张三")+hm2.get("李四")+hm2.get("王五")
+hm2.get("薛六")+hm2.get("赵七");
break;//防止case穿透
}
case 3:{
totalScore=hm3.get("张三")+hm3.get("李四")+hm3.get("王五")
+hm3.get("薛六")+hm3.get("赵七");
break;//防止case穿透
}
case 4:{
totalScore=hm4.get("张三")+hm4.get("李四")+hm4.get("王五")
+hm4.get("薛六")+hm4.get("赵七");
break;//防止case穿透
}
}
System.out.println("第"+examTimes+"的考试总分数是:"+totalScore);
} //查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。
public void stuTotalScore(){
System.out.println("\n\n--------------------以下是查询某个学生的总成绩------------------\n\n");
System.out.println("\n\n请输入您想要查询的学生姓名:");
Scanner scanner=new Scanner(System.in);
String name1=scanner.next();
//得出这个学生的总分。
int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+
hm4.get(name1);
System.out.println("这个学生的考试总成绩是:"+totalScore);
} //查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。
public void averScore(){
System.out.println("\n\n----------------以下是查询某个学生的平均成绩-------------------\n\n");
System.out.println("\n\n请输入您想要查询的学生姓名:");
Scanner scanner=new Scanner(System.in);
String name1=scanner.next();
//得出这个学生的总分。
int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+
hm4.get(name1); double averScore=totalScore/4.0;
System.out.println("这个学生的考试平均成绩是:"+averScore); } //查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。
public void highAverageScoreTime(){
System.out.println("\n\n-------------------以下是查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值-----------------------\n\n");
double averScore1=(hm1.get("张三")+hm1.get("李四")+hm1.get("王五")
+hm1.get("薛六")+hm1.get("赵七"))/5.0;
double averScore2=(hm2.get("张三")+hm2.get("李四")+hm2.get("王五")
+hm2.get("薛六")+hm2.get("赵七"))/5.0;
double averScore3=(hm3.get("张三")+hm3.get("李四")+hm3.get("王五")
+hm3.get("薛六")+hm3.get("赵七"))/5.0;
double averScore4=(hm4.get("张三")+hm4.get("李四")+hm4.get("王五")
+hm4.get("薛六")+hm4.get("赵七"))/5.0;
//此方法求得最大平均分
/*double maxScore=averScore1;
maxScore=averScore2>maxScore?averScore2:maxScore;
maxScore=averScore3>maxScore?averScore3:maxScore;
maxScore=averScore4>maxScore?averScore4:maxScore;*/
double maxScore=averScore1;
int i=1;
if(averScore2>maxScore){
maxScore=averScore2;
i++;
}
if(averScore3>maxScore){
maxScore=averScore3;
i++;
}
if(averScore4>maxScore){
maxScore=averScore4;
i++;
}
System.out.println("全班平均分最高的一次考试成绩是"+i+"最高平均成绩为"+maxScore); } //查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。
public void stuAndTimeScore(){
System.out.println("\n\n--------------以下是查询某个学生的某次考试成绩---------------\n\n");
System.out.println("\n\n请输入您想要查询的学生姓名:");
Scanner scanner=new Scanner(System.in);
String name1=scanner.next(); Scanner scanner1=new Scanner(System.in);
System.out.println("请您输入考试的次数:");
int examTimes=scanner1.nextInt(); switch (examTimes){
case 1:{
System.out.println(name1+"的第1的考试成绩为:"+hm1.get(name1));
break;
} case 2:{
System.out.println(name1+"的第2的考试成绩为:"+hm2.get(name1));
break;
} case 3:{
System.out.println(name1+"的第3的考试成绩为:"+hm3.get(name1));
break;
} case 4:{
System.out.println(name1+"的第4的考试成绩为:"+hm4.get(name1));
break;
} } } public void sortStu(){
Map<String,Integer> tMap=new HashMap<String,Integer>();
tMap.put("张三", hm1.get("张三")+hm2.get("张三")+hm3.get("张三")+
hm4.get("张三"));
tMap.put("李四", hm1.get("李四")+hm2.get("李四")+hm3.get("李四")+
hm4.get("李四"));
tMap.put("王五", hm1.get("王五")+hm2.get("王五")+hm3.get("王五")+
hm4.get("王五"));
tMap.put("薛六", hm1.get("薛六")+hm2.get("薛六")+hm3.get("薛六")+
hm4.get("薛六"));
tMap.put("赵七", hm1.get("赵七")+hm2.get("赵七")+hm3.get("赵七")+
hm4.get("赵七"));
TreeMap tMap1=new TreeMap();
tMap1.putAll(tMap);
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
switch (a){
case 1:{
System.out.println("\n\n-----------------对学生总成绩进行排名输出------------------\n\n");
Set<Entry<String,Integer>> entrySet=tMap1.entrySet(); for(Entry<String,Integer> entry:entrySet){
System.out.println("姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩 总成绩");
System.out.println(entry.getKey()+" "+hm1.get(entry.getKey())+
" "+hm2.get(entry.getKey())+" "
+ hm3.get(entry.getKey())+" "+hm4.get(entry.getKey())+" "
+entry.getValue());
}
}
case 0:
System.exit(0);
} } public static void main(String[] args) {
StuScore ss=new StuScore(); ss.addState();
/*ss.oneExamTotolScore();
ss.stuTotalScore();
ss.averScore();
ss.highAverageScoreTime();
ss.stuAndTimeScore();*/
System.out.println("如果您想得到总成绩排名,请输入1,否则输入0!");
ss.sortStu();
}
}
Java lesson19homework的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
随机推荐
- LeetCode 简化路径(探索字节跳动)
题目描述 给定一个文档 (Unix-style) 的完全路径,请进行路径简化. 例如, path = "/home/", => "/home" path ...
- other备忘
wps CONCATENATE 只是因为格式 设置成了文本,把这列 格式 设置成 常规,双击下 结果就出来了 https://zhidao.baidu.com/question/21208668961 ...
- Android 网络请求Retrofit + RxJava
一.背景 经常看到项目用Retrofit+RxJava+RxAndroid的框架,为了看懂项目的结构.现在来了解一下,Retrofit: Retrofit是Square 公司开发的一款正对Androi ...
- 对于ssh服务的简单配置,似的自己的服务器更加安全
对于一台服务器,最大的问题莫过于安全.没有安全性的服务器即使再牛*,性能再好,作用再大,也是分分钟被人搞定,而且还是揉虐性的...当然万事没有绝对的安全,我们只是将危险降低而已.本文只针对于ssh服务 ...
- React Native中Navigator的安装与使用
一.安装Navigator 1.安装react-native-deprecated-custom-components npm install react-native-deprecated-cust ...
- 怎么去检测浏览器支不支持html5和css3?
HTML5, CSS3 以及其他相关技术例如 Canvas.WebSocket 等等将 Web 应用开发带到了一个新的高度. 该技术通过组合 HTML.CSS 和 JavaScript 可以开发出桌面 ...
- linux下的缓存机制buffer、cache、swap
一.缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果 ...
- shell脚本:DNS自检脚本
host.txt中信息,已配置DNS正反解. bigdata-hive-tidb005.bjthq.vivo.lan 10.20.94.5 bigdata-hive-tidb004.bjthq.viv ...
- Linux命令集锦:crontab命令
Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...
- jekins自动部署tomcat注意事项、连接tomcat报错
jekins自动部署tomcat注意事项 千万不要用下面插件推送,报错很多, 要用脚本,一篇博客说的:“我们都是用的脚本,插件报错太多,也不完善” Deploy to container Plugin ...