Java作业:多级映射,HashMap的多级嵌套

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() ;// 得到全部的value
		Iterator<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>>();
}

猜你喜欢

转载自blog.csdn.net/FZUMRWANG/article/details/85238664