Java之Map学校管理练习

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

猜你喜欢

转载自blog.csdn.net/qq_34361514/article/details/81662174