本文主要是介绍【java】兴唐第二十三节课作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
已知如下:
下表为某班级四次考试成绩单,
- 要求使用HashMap<String, Integer>存储每次考试的成绩(key键为姓名,value为成绩)。
- 要求使用LinkedList存储考试次数,有几次考试就有几个HashMap
- 注意:后台用户是知道学生姓名的
形式如: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】兴唐第二十三节课作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!