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 ...
随机推荐
- centos-Hadoop集群 安装同步时间
1.安装 yum search cache ntpdate xcall.sh "yum install -y ntpdate.x86_64" 2.同步 xcall.sh " ...
- 移动端——link标签
meta标签中提到了部分功能要结合link标签进行使用,link标签主要是存放CSS文件的地方,同时还有一些专属的移动端设置. <meta http-equiv="Content-Ty ...
- 移动端——meta标签
meta标签主要辅助HTML结构层的.meta标签不管在互联网前端还是在移动端都起了很重要的作用. <meta http-equiv="Content-type" conte ...
- 【Webscraper】不懂编程也能爬虫
一.配置环境 在浏览器中安装web scraper插件. 所有安装包下载链接: https://pan.baidu.com/s/1CfAWf0wMO6WqicoUgdYgkg 提取码: nn2e 安装 ...
- Linux下 安装jdk8
一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...
- Scrapy教程——搭建环境、创建项目、爬取内容、保存文件
1.创建项目 在开始爬取之前,您必须创建一个新的Scrapy项目.进入您打算存储代码的目录中,运行新建命令. 例如,我需要在D:\00Coding\Python\scrapy目录下存放该项目,打开命令 ...
- Dubbo架构与底层实现
一.Dubbo的设计角色 (1)系统角色Provider: 暴露服务的服务提供方.Consumer: 调用远程服务的服务消费方.Registry: 服务注册与发现的注册中心.1Monitor: 统计服 ...
- iOS创建带删除线和价钱符号的Label
效果显示如下: 只需要子类化Label,重写DrawRect()方法即可: #import "MyLabel.h" @implementation MyLabel - (insta ...
- Daily in Ipin
Friday, October 23 1. [道高一尺,墙高一丈:互联网封锁是如何升级的] Monday, October 12 1. 晕死,忘了ubuntu的登录密码,鼓捣了半个小时,终于成功进入系 ...
- STS中MyBatis的基本实现
本文采用的是<深浅spring boot 2.x>中第5章的例子,用一个接口实现对一个表项的读取. 数据库:mysql下建立user数据库,表名为t_usr 1. 数据源设置 在appli ...