Map<String, Map<String,List<String>>>
一个key=学生/老师,value=Map(key=班级,List集合(元素为姓名))的Map集合。完成对其学生老师的增、删、查、输出功能
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import org.junit.Test;
public class SchoolManage {
private static final String GRADE_1_CLASS_1="一年级一班";
private static final String GRADE_1_CLASS_2="一年级二班";
private static final String GRADE_1_CLASS_3="一年级三班";
private static final String GRADE_2_CLASS_1="二年级一班";
private static final String GRADE_2_CLASS_2="二年级二班";
private static final String GRADE_2_CLASS_3="二年级三班";
Scanner in=new Scanner(System.in);
Map<String, Map<String,List<String>>> school=new HashMap<String, Map<String,List<String>>>();
Map<String, List<String>> stu = new HashMap<String,List<String>>();
Map<String, List<String>> teach = new HashMap<String,List<String>>();
List<String> list=new ArrayList<String>();
@Test
public void test() {//程序入口
school.put("学生",stu );
school.put("老师",teach );
stu = school.get("学生");
teach=school.get("老师");
while(true) {
switch (init()) {
case 1://学生信息管理
stuManage();
break;
case 2://老师信息管理
teachManage();
break;
case 0://退出系统
System.out.println("退出系统成功");
in.close();
System.exit(0);
break;
default:
break;
}
}
}
private int init() {
// TODO Auto-generated method stub
int n=0;
while(true) {
System.out.println("------------------欢迎进入学校信息管理系统------------------");
System.out.println("------------------1.学生信息管理------------------");
System.out.println("------------------2.老师信息管理------------------");
System.out.println("------------------0.退出系统------------------");
System.out.print("请输入您的选择:");
String str=in.next();
if(str.matches("\\d")) {
n=Integer.parseInt(str);
break;
}
else {
System.out.println("输入有误,请重新输入:");
}
}
return n;
}
private void stuManage() {
// TODO Auto-generated method stub
while(true) {
int n=0;
while(true) {
System.out.println("------------------欢迎进入学生信息管理系统------------------");
System.out.println("------------------1.增加学生------------------");
System.out.println("------------------2.删除学生------------------");
System.out.println("------------------3.查询学生------------------");
System.out.println("------------------4.输出学生------------------");
System.out.println("------------------0.返回上一层------------------");
System.out.print("请输入您的选择:");
String str=in.next();
if(str.matches("\\d")) {
n=Integer.parseInt(str);
break;
}
else {
System.out.println("输入有误,请重新输入:");
}
}
if(n==0)
break;
switch (n) {
case 1://增加学生
add("学生");
break;
case 2://删除学生
delete("学生");
break;
case 3://查询学生
find("学生");
break;
case 4://输出学生
showAll("学生");
break;
default:
break;
}
}
}
private void teachManage() {
// TODO Auto-generated method stub
while(true) {
int n=0;
while(true) {
System.out.println("------------------欢迎进入教师信息管理系统----------");
System.out.println("------------------1.增加老师------------------");
System.out.println("------------------2.删除老师------------------");
System.out.println("------------------3.查询老师------------------");
System.out.println("------------------4.输出老师------------------");
System.out.println("------------------0.返回上一层------------------");
System.out.print("请输入您的选择:");
String str=in.next();
if(str.matches("\\d")) {
n=Integer.parseInt(str);
break;
}
else {
System.out.println("输入有误,请重新输入:");
}
}
if(n==0)
break;
switch (n) {
case 1://增加老师
add("老师");
break;
case 2://删除老师
delete("老师");
break;
case 3://查询老师
find("老师");
break;
case 4://输出老师
showAll("老师");
break;
default:
break;
}
}
}
private String inputClass() {
// TODO Auto-generated method stub
String class_=null;
int n=0;
while(true) {
System.out.println("------------------可选班级如下------------------");
System.out.println("------------------1.一年级一班------------------");
System.out.println("------------------2.一年级二班------------------");
System.out.println("------------------3.一年级三班------------------");
System.out.println("------------------4.二年级一班------------------");
System.out.println("------------------5.二年级二班------------------");
System.out.println("------------------6.二年级三班------------------");
System.out.print("请选择班级:");
class_=in.next();
if(class_.matches("\\d")) {
n=Integer.parseInt(class_);
break;
}
else {
System.out.println("班级输入有误,请重新输入:");
}
}
switch (n) {
case 1://
class_=GRADE_1_CLASS_1;
break;
case 2://
class_=GRADE_1_CLASS_2;
break;
case 3://
class_=GRADE_1_CLASS_3;
break;
case 4://
class_=GRADE_2_CLASS_1;
break;
case 5://
class_=GRADE_2_CLASS_2;
break;
case 6://
class_=GRADE_2_CLASS_3;
break;
default:
break;
}
return class_;
}
private void add(String str) {
// TODO Auto-generated method stub
String class_=inputClass();
if(str.equals("学生")) {
System.out.print("请输入学生姓名:");
String name=in.next();
list=stu.get(class_);
if(list==null)
list=new ArrayList<String>();
list.add(name);
stu.put(class_, list);
}
else {
System.out.print("请输入老师姓名:");
String name=in.next();
list=teach.get(class_);
if(list==null)
list=new ArrayList<String>();
list.add(name);
teach.put(class_, list);
}
}
private void find(String str) {
// TODO Auto-generated method stub
String class_=inputClass();
if(str.equals("学生")) {
System.out.print("请输入学生姓名:");
String name=in.next();
list=stu.get(class_);
if(list==null)
System.out.println(class_+"班不存在叫"+name+"的学生");
else {
boolean flag=false;//查寻学生是否存在标志
for(String li:list) {
if(li.equals(name)) {
flag=true;
break;
}
}
if(flag)
System.out.println(class_+"班叫"+name+"的学生存在");
else
System.out.println(class_+"班不存在叫"+name+"的学生");
/*if(list.size()==0)
stu.remove(class_);*/
}
}
else {
System.out.print("请输入老师姓名:");
String name=in.next();
list=teach.get(class_);
if(list==null)
System.out.println(class_+"班不存在叫"+name+"的老师");
else {
boolean flag=false;//查询老师是否存在标志
for(String li:list) {
if(li.equals(name)) {
flag=true;
break;
}
}
if(flag)
System.out.println(class_+"班叫"+name+"的老师存在");
else
System.out.println(class_+"班不存在叫"+name+"的老师");
/*if(list.size()==0)
teach.remove(class_);*/
}
}
}
private void delete(String str) {
// TODO Auto-generated method stub
String class_=inputClass();
if(str.equals("学生")) {
System.out.print("请输入学生姓名:");
String name=in.next();
list=stu.get(class_);
if(list==null)
System.out.println(class_+"不存在叫"+name+"的学生");
else {
boolean flag=false;//删除学生是否存在标志
for(String li:list) {
if(li.equals(name)) {
flag=true;
break;
}
}
if(flag)
list.remove(name);
else
System.out.println(class_+"不存在叫"+name+"的学生");
if(list.size()==0)
stu.remove(class_);
}
}
else {
System.out.print("请输入老师姓名:");
String name=in.next();
list=teach.get(class_);
if(list==null)
System.out.println(class_+"班不存在叫"+name+"的老师");
else {
boolean flag=false;//删除老师是否存在标志
for(String li:list) {
if(li.equals(name)) {
flag=true;
break;
}
}
if(flag)
list.remove(name);
else
System.out.println(class_+"班不存在叫"+name+"的老师");
if(list.size()==0)
teach.remove(class_);
}
}
}
private void showAll(String str) {
// TODO Auto-generated method stub
Set<String> stu_keyset = stu.keySet();
Set<String> teach_keyset = teach.keySet();
if(str.equals("学生")) {
if(stu_keyset.isEmpty())
System.out.println("系统中无学生信息");
for (String key : stu_keyset) {
System.out.println(key+"\t"+stu.get(key));
}
}
else {
if(teach_keyset.isEmpty())
System.out.println("系统中无老师信息");
for (String key : teach_keyset) {
System.out.println(key+"\t"+teach.get(key));
}
}
}
}