任务形貌
本关任务:设计一个步调,管理一个班级的若干学生(学生的姓名是唯一的),每个学生都修了若干门课程,没门课程都有了一个结果。但一个班的同学修的课程不完全一样。
要求:
该步调用聚集框架的Map接口来实现。学生用Map来存储,键用学生姓名,值是另一个存储课程的Map;每个同学修的若干门课程也用Map来存储,键是课程名称,值是该课程的结果。
将把完成的工作放在Class类中。 类名:Class public Class(String name) 构造函数,name为班级名称;
public void addCourseGrade(String stuname,String []Coursenames,Integer[] grades) 增加学生及课程的数据,stuname 学生姓名,Coursenames多个课程名,grades对应的多个分数;
public void addCourseGrade(String stuname,String Coursename,Integer grade) 增加学生及课程的数据,stuname 学生姓名,Coursename课程名,grade对应的分数;
public void delStudent(String stuname) 删出一个学生,stuname学生姓名;
public void delStuCourse(String stuname,String Coursename) 删出一个学生的一门课程,stuname学生姓名,Coursename课程名;
public double getPerAvgStudent(String stuname)返回一个学生的所有课程的匀称结果,stuname学生姓名;
``
public double getClassAvgCourse(String Coursename) 返回一个班某门课程的匀称结果,如果该班有同学没选修该门课程,匀称结果不盘算该同学,Coursename为课程名。
- package step1;import java.util.*;//在此写Class类public class Class { String classname = null; String stuname = null; HashMap nameprojects = new HashMap();//姓名、课程 public Class(String classname){ this.classname = classname; } public void addCourseGrade(String stuname,String Coursename,Integer grade){ ArrayList stuList = nameprojects.get(stuname); if(stuList == null) { stuList = new ArrayList(); nameprojects.put(stuname, stuList); } HashMap courseGrade = new HashMap(); courseGrade.put(Coursename, grade); stuList.add(courseGrade); } public void addCourseGrade(String stuname,String[] Coursenames,Integer[] grades){ for(int i = 0;i < Coursenames.length;i++){ ArrayList stuList = nameprojects.get(stuname); if(stuList == null) { stuList = new ArrayList(); nameprojects.put(stuname, stuList); } HashMap courseGrade = new HashMap(); courseGrade.put(Coursenames[i], grades[i]); stuList.add(courseGrade); } } public void delStudent(String stuname){ nameprojects.remove(stuname); } public void delStuCourse(String stuname,String Coursename) { for (Map.Entry delet : nameprojects.entrySet()) { if (delet.getKey().equals(stuname)) { for(HashMap deletCourse : delet.getValue()){ deletCourse.remove(Coursename); } } } } public double getPerAvgStudent(String stuname){ double sum = 0; int count = 0; for (Map.Entry find_name : nameprojects.entrySet()) { if(find_name.getKey().equals(stuname)){ for(HashMap SUM : find_name.getValue()){ for(Map.Entry Sum : SUM.entrySet()){ sum = sum + Sum.getValue(); count++; } } } } return sum/count; } public double getClassAvgCourse(String Coursename){ double sum = 0; int count = 0; for (Map.Entry find_name : nameprojects.entrySet()) { for(HashMap SUM : find_name.getValue()){ for(Map.Entry Sum : SUM.entrySet()){ if(Sum.getKey().equals(Coursename)){ sum = sum + Sum.getValue(); count++; } } } } return sum/count; }}
复制代码 来源:https://blog.csdn.net/qq_46197017/article/details/111995893
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |