package com.xt.lesson19;
/**
* 已知如下:
下表为某班级四次考试成绩单,
要求使用HashMap
要求使用LinkedList存储考试次数,有几次考试就有几个HashMap
注意:后台用户是知道学生姓名的
形式如:LinkedList
姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩
张三 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
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
Map
Map
Map
LinkedList
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
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
for(Entry
System.out.println("姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩 总成绩");
System.out.println(entry.getKey()+" "+hm1.get(entry.getKey())+
" "+hm2.get(entry.getKey())+" "
}
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();
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章