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

news/2025/2/15 20:06:30/

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>>();
}

http://www.ppmy.cn/news/470146.html

相关文章

STM32 使用sprintf 导致死机的一个解决方法

我在使用sprintf 进行字符串格式化处理的时候&#xff0c;一执行到sprintf&#xff0c;STM32就死机&#xff08;必死&#xff09;&#xff0c;看了很多博客&#xff0c;包括 STM32硬件错误HardFault_Handler的处理方法 关于STM32 使用sprintf 死机问题&#xff01; 关于单片机…

煤矿智能更衣柜管理系统解决方案

1.总则 随着各煤矿对矿山智慧化发展方面要求的不断提高&#xff0c;建设高水准的智能更衣柜系统成为了员工工作环境和员工工作幸福度提高的建设重点之一&#xff0c;拓展更衣柜管理新模式&#xff0c;将电子化智能设备充分运用于更衣室日常工作中&#xff0c;提高更衣柜工作效…

量子计算(6)pyqpanda编程1:量子程序与量子线路

目录 一、概述 1、前言 2、构建量子程序前的几个步骤 ①导入pyqpanda包 ②创建量子虚拟机 ③申请量子比特和经典寄存器 二、QGate类 1、量子比特门 ①单量子比特无角度 ②单量子比特有角度 ③多量子比特无角度 ④多量子比特有角度 2、接口 ①对矩阵进行伴随…

输入10个学生5门课成绩,分别用函数实现下列功能

1、 计算每个学生平均分&#xff1b; 2、 计算每科平均分 &#xff1b; 3 、找出五十个分数中最高分&#xff0c;和对应的学生和课程&#xff1b; 4、求出平均分方差&#xff1a;σ1/n∑xi2-(∑xi/n)2&#xff0c;xi为某一学生的平均分。 #include<stdio.h> #include…

【数字电路基础】——逻辑门电路

数字电路基础——逻辑门电路 逻辑门电路 随着新技术的发展&#xff0c;集成数字电路类型层出不穷&#xff0c;大量使用大规模功能模块已成为现实。数字电路在众多领域已取代模拟电路&#xff0c;可以肯定&#xff0c;这一趋势将会继续发展下去。 一、逻辑门电路是什么&#…

python入门基础(14)

列表的最大与最小 描述 牛牛刚学循环语句&#xff0c;你能教他使用for语句创建一个从10到50的数字列表吗&#xff1f;请输出完整列表&#xff0c;并输出列表的首尾元素检验是否是从10到50. 输入描述&#xff1a; 无 输出描述&#xff1a; 第一行输出完整列表。 第二行输…

硬件设计中与门、或门、非门电路详解

目录 ​第一&#xff1a;与门电路 ​第二&#xff1a;或门电路 ​第三&#xff1a;非门电路 ​第四&#xff1a;门电路应用实例 ​第五&#xff1a;触摸键控电路 门电路是数字电路中最基本的逻辑单元。它可以使输出信号与输入信号之间产生一定的逻辑关系。在数字电路中&am…

木门工厂木门、门套、套线公式和算法

为了提高效率&#xff0c;节省成本&#xff0c;智点软件应邀为喻氏门厂建设企业信息化管理系统&#xff0c;主要解决木门、门套、窗套净尺寸计算&#xff1b;不同套线按不同公式计算不同价格&#xff0c;套线尺寸及数量计算&#xff1b;工人工序计件工资计算等。 门厂各参数&am…