利用java,写一个身份证管理系统,要求能够增加信息、删除信息、查询信息、修改信息、将信息保存为文件等功能,信息包括人的名字、身份证号、出生日期、出生地、民族等信息
时间: 2023-06-20 12:03:49 浏览: 108
好的,以下是一个简单的身份证管理系统的Java实现,包括增加信息、删除信息、查询信息、修改信息、将信息保存为文件等功能。
```
import java.io.*;
import java.util.*;
public class IdCardSystem {
private static final String FILE_NAME = "idcard.txt"; // 保存信息的文件名
private static List<IdCard> idCards = new ArrayList<>(); // 存放身份证信息的列表
public static void main(String[] args) {
loadIdCardsFromFile(); // 从文件中加载已有的身份证信息
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. 退出");
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
switch (option) {
case 1:
addIdCard();
break;
case 2:
deleteIdCard();
break;
case 3:
queryIdCard();
break;
case 4:
modifyIdCard();
break;
case 5:
saveIdCardsToFile();
break;
case 6:
System.exit(0);
default:
System.out.println("无效的操作,请重新选择。");
}
}
}
private static void addIdCard() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入姓名:");
String name = scanner.nextLine();
System.out.println("请输入身份证号:");
String id = scanner.nextLine();
System.out.println("请输入出生日期(格式:yyyy-MM-dd):");
String birth = scanner.nextLine();
System.out.println("请输入出生地:");
String address = scanner.nextLine();
System.out.println("请输入民族:");
String nation = scanner.nextLine();
IdCard idCard = new IdCard(name, id, birth, address, nation);
idCards.add(idCard);
System.out.println("身份证信息已添加。");
}
private static void deleteIdCard() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要删除的身份证号:");
String id = scanner.nextLine();
boolean found = false;
for (IdCard idCard : idCards) {
if (idCard.getId().equals(id)) {
idCards.remove(idCard);
System.out.println("身份证信息已删除。");
found = true;
break;
}
}
if (!found) {
System.out.println("未找到该身份证信息。");
}
}
private static void queryIdCard() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询的身份证号:");
String id = scanner.nextLine();
boolean found = false;
for (IdCard idCard : idCards) {
if (idCard.getId().equals(id)) {
System.out.println("姓名:" + idCard.getName());
System.out.println("身份证号:" + idCard.getId());
System.out.println("出生日期:" + idCard.getBirth());
System.out.println("出生地:" + idCard.getAddress());
System.out.println("民族:" + idCard.getNation());
found = true;
break;
}
}
if (!found) {
System.out.println("未找到该身份证信息。");
}
}
private static void modifyIdCard() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的身份证号:");
String id = scanner.nextLine();
boolean found = false;
for (IdCard idCard : idCards) {
if (idCard.getId().equals(id)) {
System.out.println("请输入新的姓名(原值为:" + idCard.getName() + "):");
String name = scanner.nextLine();
System.out.println("请输入新的出生日期(原值为:" + idCard.getBirth() + "):");
String birth = scanner.nextLine();
System.out.println("请输入新的出生地(原值为:" + idCard.getAddress() + "):");
String address = scanner.nextLine();
System.out.println("请输入新的民族(原值为:" + idCard.getNation() + "):");
String nation = scanner.nextLine();
idCard.setName(name);
idCard.setBirth(birth);
idCard.setAddress(address);
idCard.setNation(nation);
System.out.println("身份证信息已修改。");
found = true;
break;
}
}
if (!found) {
System.out.println("未找到该身份证信息。");
}
}
private static void saveIdCardsToFile() {
try (PrintWriter writer = new PrintWriter(new FileWriter(FILE_NAME))) {
for (IdCard idCard : idCards) {
writer.println(idCard.getName() + "," + idCard.getId() + "," + idCard.getBirth() + "," + idCard.getAddress() + "," + idCard.getNation());
}
System.out.println("身份证信息已保存到文件 " + FILE_NAME + " 中。");
} catch (IOException e) {
System.out.println("保存身份证信息到文件 " + FILE_NAME + " 失败。");
}
}
private static void loadIdCardsFromFile() {
try (Scanner scanner = new Scanner(new File(FILE_NAME))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] fields = line.split(",");
String name = fields[0];
String id = fields[1];
String birth = fields[2];
String address = fields[3];
String nation = fields[4];
IdCard idCard = new IdCard(name, id, birth, address, nation);
idCards.add(idCard);
}
System.out.println("已从文件 " + FILE_NAME + " 中加载 " + idCards.size() + " 条身份证信息。");
} catch (FileNotFoundException e) {
System.out.println("找不到身份证信息保存文件 " + FILE_NAME + "。");
}
}
}
class IdCard {
private String name;
private String id;
private String birth;
private String address;
private String nation;
public IdCard(String name, String id, String birth, String address, String nation) {
this.name = name;
this.id = id;
this.birth = birth;
this.address = address;
this.nation = nation;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation;
}
}
```
在运行程序时,会显示一个菜单供用户选择操作。用户可以输入数字选择相应的操作。例如,输入1表示增加信息,输入2表示删除信息,以此类推。
在程序运行过程中,所有的身份证信息都会被存储在一个列表中。当用户选择保存信息到文件时,程序会将列表中的所有信息保存到一个文件中。当用户下次运行程序时,程序会从文件中加载已有的身份证信息。