2.在上机练习4第1、2题的基础上,设计一个简单的成绩管理系统(GradeManager)。主要功能包括:
(1)每个学生可以选修多门课程,每门课程也可以有多个学生选修。
(2)记录每个学生每门课程的成绩,以百分制计算,保留1位小数。
(3)学生可以查询自己单门课程或所有课程的成绩。
(4)合理选择数据结构以提高查询效率。
设计时,采用层次化设计法,将类分为界面层(ui)、功能层(business)和持久层(persistence)3层,放在不同子包中。整个系统的代码放在exe6_2包中
business.java
package exe6_2.business;import java.util.Collection;
import java.util.HashMap;
import java.util.Scanner;import java.util.Iterator ;public class business {exe6_2.persistence.persistence test = new exe6_2.persistence.persistence();Scanner in = new Scanner(System.in);public void xuanxiu(){String xuehao = new String(in.nextLine());String kecheng = new String(in.nextLine());String chengji = new String("0.0");test.HashCourse.put(kecheng, chengji);test.yingshe.put(xuehao, test.HashCourse);}public void jiluchengji(){String xuehao = new String(in.nextLine());String kecheng = new String(in.nextLine());String chengji = new String(in.nextLine());test.HashCourse.put(kecheng, chengji);test.yingshe.put(xuehao, test.HashCourse);}public static String getKey(HashMap<String,String> map,String keys){String key = null;for(String getKey: map.keySet()){if(map.get(getKey).equals(keys)){key = getKey;}}return key;//这个key肯定是最后一个满足该条件的key.}public void chaxundanke(){String xuehao = new String(in.nextLine());String kecheng = new String(in.nextLine());System.out.println(test.yingshe.get(xuehao).get(kecheng));}public void chaxunsuoyou(){String xuehao = new String(in.nextLine());Collection<String> values = test.yingshe.get(xuehao).values() ;// 得到全部的valueIterator<String> iter = values.iterator() ;while(iter.hasNext()){String str = iter.next() ;System.out.println(getKey(test.yingshe.get(xuehao),str)+":"+str) ;}}
}
persistence.java
package exe6_2.persistence;import java.util.HashMap;public class persistence {public HashMap<String,String> HashCourse = new HashMap<String,String>();public HashMap<String,HashMap<String,String>>yingshe=new HashMap<String,HashMap<String,String>>();
}