Java lesson19homework
1 package com.xt.lesson19; 2 /** 3 * 已知如下: 4 下表为某班级四次考试成绩单, 5 1. 要求使用HashMap<String, Integer>存储每次考试的成绩(key键为姓名,value为成绩)。 6 2. 要求使用LinkedList存储考试次数,有几次考试就有几个HashMap 7 3. 注意:后台用户是知道学生姓名的 8 形式如:LinkedList<HashMap<String, Integer>> 9 姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩 10 张三 80 88 86 88 11 李四 65 75 67 80 12 王五 35 45 55 59 13 薛六 90 92 98 88 14 赵七 70 75 65 68 15 要求是实现的功能 16 (1)查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。 17 (2)查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。 18 (3)查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。 19 (4)查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。 20 (5)查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。 21 (6) 使用TreeMap对学生总成绩进行排名输出 22 提示: 23 例如第一次考试成绩,应该存储为如下格式: 24 HashMap<String, Integer> m = new HashMap<String, Integer>(); 25 m.put(“张三”, 80); 26 m.put(“李四”, 65); 27 m.put(“王五”, 35); 28 m.put(“薛六”, 90); 29 m.put(“赵七”, 70); 30 31 */ 32 import java.util.HashMap; 33 import java.util.LinkedList; 34 import java.util.Map; 35 import java.util.Map.Entry; 36 import java.util.Scanner; 37 import java.util.Set; 38 import java.util.TreeMap; 39 import java.util.TreeSet; 40 public class StuScore { 41 Map<String,Integer> hm1=new HashMap<String,Integer>(5); 42 Map<String,Integer> hm2=new HashMap<String,Integer>(5); 43 Map<String,Integer> hm3=new HashMap<String,Integer>(5); 44 Map<String,Integer> hm4=new HashMap<String,Integer>(5); 45 LinkedList<Map<String,Integer>> llist=new LinkedList<Map<String,Integer>>(); 46 TreeSet<Student> tset=new TreeSet<Student>(); 47 48 49 50 51 public void addState(){ 52 53 hm1.put("张三", 80); 54 hm1.put("李四", 65); 55 hm1.put("王五", 35); 56 hm1.put("薛六", 90); 57 hm1.put("赵七", 70); 58 59 hm2.put("张三", 88); 60 hm2.put("李四", 75); 61 hm2.put("王五", 45); 62 hm2.put("薛六", 92); 63 hm2.put("赵七", 75); 64 65 hm3.put("张三", 86); 66 hm3.put("李四", 67); 67 hm3.put("王五", 55); 68 hm3.put("薛六", 98); 69 hm3.put("赵七", 65); 70 71 hm4.put("张三", 88); 72 hm4.put("李四", 80); 73 hm4.put("王五", 59); 74 hm4.put("薛六", 88); 75 hm4.put("赵七", 68); 76 77 } 78 //查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。 79 public void oneExamTotolScore(){ 80 System.out.println("\n\n----------------------以下是查询某次考试的总成绩-----------------------\n\n"); 81 int totalScore=0; 82 Scanner scanner=new Scanner(System.in); 83 System.out.println("请您输入考试的次数:"); 84 int examTimes=scanner.nextInt(); 85 //算出这次考试总分 86 switch (examTimes){ 87 case 1:{ 88 totalScore=hm1.get("张三")+hm1.get("李四")+hm1.get("王五") 89 +hm1.get("薛六")+hm1.get("赵七"); 90 break;//防止case穿透 91 } 92 case 2:{ 93 totalScore=hm2.get("张三")+hm2.get("李四")+hm2.get("王五") 94 +hm2.get("薛六")+hm2.get("赵七"); 95 break;//防止case穿透 96 } 97 case 3:{ 98 totalScore=hm3.get("张三")+hm3.get("李四")+hm3.get("王五") 99 +hm3.get("薛六")+hm3.get("赵七"); 100 break;//防止case穿透 101 } 102 case 4:{ 103 totalScore=hm4.get("张三")+hm4.get("李四")+hm4.get("王五") 104 +hm4.get("薛六")+hm4.get("赵七"); 105 break;//防止case穿透 106 } 107 } 108 System.out.println("第"+examTimes+"的考试总分数是:"+totalScore); 109 } 110 111 112 113 114 //查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。 115 public void stuTotalScore(){ 116 System.out.println("\n\n--------------------以下是查询某个学生的总成绩------------------\n\n"); 117 System.out.println("\n\n请输入您想要查询的学生姓名:"); 118 Scanner scanner=new Scanner(System.in); 119 String name1=scanner.next(); 120 //得出这个学生的总分。 121 int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+ 122 hm4.get(name1); 123 System.out.println("这个学生的考试总成绩是:"+totalScore); 124 } 125 126 127 //查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。 128 public void averScore(){ 129 System.out.println("\n\n----------------以下是查询某个学生的平均成绩-------------------\n\n"); 130 System.out.println("\n\n请输入您想要查询的学生姓名:"); 131 Scanner scanner=new Scanner(System.in); 132 String name1=scanner.next(); 133 //得出这个学生的总分。 134 int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+ 135 hm4.get(name1); 136 137 double averScore=totalScore/4.0; 138 System.out.println("这个学生的考试平均成绩是:"+averScore); 139 140 } 141 142 143 144 //查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。 145 public void highAverageScoreTime(){ 146 System.out.println("\n\n-------------------以下是查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值-----------------------\n\n"); 147 double averScore1=(hm1.get("张三")+hm1.get("李四")+hm1.get("王五") 148 +hm1.get("薛六")+hm1.get("赵七"))/5.0; 149 double averScore2=(hm2.get("张三")+hm2.get("李四")+hm2.get("王五") 150 +hm2.get("薛六")+hm2.get("赵七"))/5.0; 151 double averScore3=(hm3.get("张三")+hm3.get("李四")+hm3.get("王五") 152 +hm3.get("薛六")+hm3.get("赵七"))/5.0; 153 double averScore4=(hm4.get("张三")+hm4.get("李四")+hm4.get("王五") 154 +hm4.get("薛六")+hm4.get("赵七"))/5.0; 155 //此方法求得最大平均分 156 /*double maxScore=averScore1; 157 maxScore=averScore2>maxScore?averScore2:maxScore; 158 maxScore=averScore3>maxScore?averScore3:maxScore; 159 maxScore=averScore4>maxScore?averScore4:maxScore;*/ 160 double maxScore=averScore1; 161 int i=1; 162 if(averScore2>maxScore){ 163 maxScore=averScore2; 164 i++; 165 } 166 if(averScore3>maxScore){ 167 maxScore=averScore3; 168 i++; 169 } 170 if(averScore4>maxScore){ 171 maxScore=averScore4; 172 i++; 173 } 174 System.out.println("全班平均分最高的一次考试成绩是"+i+"最高平均成绩为"+maxScore); 175 176 } 177 178 179 180 181 182 183 //查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。 184 public void stuAndTimeScore(){ 185 System.out.println("\n\n--------------以下是查询某个学生的某次考试成绩---------------\n\n"); 186 System.out.println("\n\n请输入您想要查询的学生姓名:"); 187 Scanner scanner=new Scanner(System.in); 188 String name1=scanner.next(); 189 190 Scanner scanner1=new Scanner(System.in); 191 System.out.println("请您输入考试的次数:"); 192 int examTimes=scanner1.nextInt(); 193 194 195 switch (examTimes){ 196 case 1:{ 197 System.out.println(name1+"的第1的考试成绩为:"+hm1.get(name1)); 198 break; 199 } 200 201 case 2:{ 202 System.out.println(name1+"的第2的考试成绩为:"+hm2.get(name1)); 203 break; 204 } 205 206 case 3:{ 207 System.out.println(name1+"的第3的考试成绩为:"+hm3.get(name1)); 208 break; 209 } 210 211 case 4:{ 212 System.out.println(name1+"的第4的考试成绩为:"+hm4.get(name1)); 213 break; 214 } 215 216 217 218 } 219 220 } 221 222 223 public void sortStu(){ 224 Map<String,Integer> tMap=new HashMap<String,Integer>(); 225 tMap.put("张三", hm1.get("张三")+hm2.get("张三")+hm3.get("张三")+ 226 hm4.get("张三")); 227 tMap.put("李四", hm1.get("李四")+hm2.get("李四")+hm3.get("李四")+ 228 hm4.get("李四")); 229 tMap.put("王五", hm1.get("王五")+hm2.get("王五")+hm3.get("王五")+ 230 hm4.get("王五")); 231 tMap.put("薛六", hm1.get("薛六")+hm2.get("薛六")+hm3.get("薛六")+ 232 hm4.get("薛六")); 233 tMap.put("赵七", hm1.get("赵七")+hm2.get("赵七")+hm3.get("赵七")+ 234 hm4.get("赵七")); 235 TreeMap tMap1=new TreeMap(); 236 tMap1.putAll(tMap); 237 Scanner scanner=new Scanner(System.in); 238 int a=scanner.nextInt(); 239 switch (a){ 240 case 1:{ 241 System.out.println("\n\n-----------------对学生总成绩进行排名输出------------------\n\n"); 242 Set<Entry<String,Integer>> entrySet=tMap1.entrySet(); 243 244 for(Entry<String,Integer> entry:entrySet){ 245 System.out.println("姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩 总成绩"); 246 System.out.println(entry.getKey()+" "+hm1.get(entry.getKey())+ 247 " "+hm2.get(entry.getKey())+" " 248 + hm3.get(entry.getKey())+" "+hm4.get(entry.getKey())+" " 249 +entry.getValue()); 250 } 251 } 252 case 0: 253 System.exit(0); 254 } 255 256 } 257 258 259 260 261 262 public static void main(String[] args) { 263 StuScore ss=new StuScore(); 264 265 ss.addState(); 266 /*ss.oneExamTotolScore(); 267 ss.stuTotalScore(); 268 ss.averScore(); 269 ss.highAverageScoreTime(); 270 ss.stuAndTimeScore();*/ 271 System.out.println("如果您想得到总成绩排名,请输入1,否则输入0!"); 272 ss.sortStu(); 273 } 274 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步