package gatherBox.exercises.exercisesTest;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Map<String, Person> aMap = new HashMap<String, Person>();//实例化一个HashMap
for (;;) {//构建一个死循环
System.out.println("****************************");
System.out.println("\t\t1、信息录入");
System.out.println("\t\t2、信息查询");
System.out.println("\t\t3、信息修改");
System.out.println("\t\t4、信息删除");
System.out.println("\t\t5、退出");
System.out.println("****************************");
System.out.println("请输入你的选项");
// 其意思是 使用 Scanner 类中的 nextInt() 方法 输入一个整数,
// 该方法只是接受一个 整型的数据,如果输入的是非整数数据,
// 将会抛出 InputMismatchException 异常。
Scanner input = new Scanner(System.in);// 创建输入流对象 input
int num = input.nextInt();//
//选择一个Map集合封装数据
switch(num){
case 1:
System.out.println("开始录入公民信息:");
System.out.println("(1)请输入姓名:");
String name = input.next();//接收键盘输入的数据(名字)
System.out.println("(2)请输入身份证号:");
String idCard = input.next();//接收键盘输入的数据(ID)
System.out.println("(3)请输入性别:");
String gender = input.next();//接收键盘输入的数据(性别)
System.out.println("(4)请输入地址:");
String address = input.next();//接收键盘输入的数据(地址)
System.out.println("录入成功!");
//将数据分装成一个对象
Person person = new Person(name, idCard, gender, address);
//将封装好的key、value装到集合
aMap.put(idCard,person);
break;
case 2:
System.out.println("所有人信息列表如下:");
//遍历map集合
aMap.forEach((k,v)->{
System.out.println(v);
});
break;
case 3:
System.out.println("开始信息修改:");
System.out.println("请输入修改身份证:");
String idcard = input.next();//接收键盘输入的数据(ID)
System.out.println("(1)请输入姓名:");
String Name2 = input.next();//接收键盘输入的数据(名字)
System.out.println("(2)请输入身份证号:");
String IdCard2 = input.next();//接收键盘输入的数据(ID)
System.out.println("(3)请输入性别:");
String Gender2 = input.next();//接收键盘输入的数据(性别)
System.out.println("(4)请输入地址:");
String Address2 = input.next();//接收键盘输入的数据(地址)
//开始修改,更具身份证号寻找到aMap集合中对应的记录
Person p = aMap.get(idcard);
p.setName(Name2);//修改名字
p.setIdCard(IdCard2);//修改身份证
p.setGender(Gender2);//修改性别
p.setAddress(Address2);//修改地址
System.out.println("修改成功");
break;
case 4:
System.out.println("开始信息删除:");
System.out.println("请输入要删除人的身份证号:");
String deletionID = input.next();//身份证号
aMap.remove(deletionID);//删除
System.out.println("删除成功!");
break;
case 5:
System.exit(0);
break;
default:
System.out.println("输入错误");
}
}
}
}
class Person{
private String name;//名字
private String idCard;//身份证号
private String gender;//性别
private String address;//地址
//修改器set
public void setName(String name){//给某一个属性(name)赋值
this.name = name;
}
//阅读器get
public String getName(){//返回某一个属性(name)
return this.name;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Person() {
}
public Person(String name, String idCard, String gender, String address) {
this.name = name;
this.idCard = idCard;
this.gender = gender;
this.address = address;
}
@Override
public String toString() {
return this.name+"\t"+this.idCard+"\t"+this.gender+"\t"+this.address;
}
}