TelephoneItem类
package com.qfedu.bean;
public class TelephoneItem {
private String name;
private String gender;
private int age;
private String tel;
private String qq;
private String addr;
//无参的构造方法
public TelephoneItem() {
}
//有参的构造方法
public TelephoneItem(String name, String gender, int age, String tel, String qq, String addr) {
this.name = name;
this.gender = gender;
this.age = age;
this.tel = tel;
this.qq = qq;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "TelephoneItem{" +
"姓名:'" + name + ''' +
", 性别:'" + gender + ''' +
", 年龄:" + age +
", 电话:'" + tel + ''' +
", QQ:'" + qq + ''' +
", 地址:'" + addr + ''' +
'}';
}
}
TelephoneBook类
package com.qfedu.bean;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class TelephoneBook {
//属性
private List items;
//构造方法
public TelephoneBook() {
this.items = new ArrayList<>();
}
//①读取配置文件
public void init() throws IOException {
BufferedReader in = new BufferedReader(new FileReader("C:/Asmoday/Apractice/00/Telephone_IO.txt"));
String line = null;
while ((line = in.readLine()) != null){
String[] arr = line.split("\|");
TelephoneItem item = new TelephoneItem(arr[0], arr[1], Integer.parseInt(arr[2]), arr[3], arr[4], arr[5]);
this.items.add(item);
}
in.close();//关闭资源
}
//②写配置文件
public void save() throws IOException {
//集合中的数据保存在文件中
BufferedWriter out = new BufferedWriter(new FileWriter("C:/Asmoday/Apractice/00/Telephone_IO.txt"));
for (TelephoneItem item : this.items) {
StringBuffer buffer = new StringBuffer();
buffer.append(item.getName());
buffer.append("|");
buffer.append(item.getGender());
buffer.append("|");
buffer.append(item.getAge());
buffer.append("|");
buffer.append(item.getTel());
buffer.append("|");
buffer.append(item.getQq());
buffer.append("|");
buffer.append(item.getAddr());
String line = buffer.toString();
out.write(line);
out.newline();
}
out.flush();//刷新
out.close();//关闭资源
}
//1.添加
public boolean add(TelephoneItem item) {
return this.items.add(item);
}
//2.删除
public boolean del(String name) {
for (int i = 0; i < this.items.size(); i++) {
if (this.items.get(i).getName().equals(name)) {
this.items.remove(i);
return true;
}
}
return false;
}
//3.修改
public boolean update(String name, TelephoneItem item) {
for (int i = 0; i < this.items.size(); i++) {
if (this.items.get(i).getName().equals(name)) {
this.items.set(i, item);
return true;
}
}
return false;
}
//4.查询所有
public List findAll() {
return this.items;
}
//5.按姓名查询
public TelephoneItem findByName(String name) {
for (int i = 0; i < this.items.size(); i++) {
TelephoneItem item = this.items.get(i);
if (item.getName().equals(name)){
return item;
}
}
return null;
}
}
UI类
package com.qfedu.bean;
import java.io.IOException;
import java.util.List;
import java.util.Scanner;
public class UI {
public static void help() {
System.out.println("------------------------------------通讯录管理系统------------------------------------");
System.out.println("1.添加t2.删除t3.修改t4.查询所有t5.按姓名查询t0.退出");
System.out.println("------------------------------------------------------------------------------------");
System.out.print("请选择要操作的内容:");
}
public static boolean login() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入密码:");
int count = 3;
while(true) {
String password = sc.next();
if(password.equals("admin")) {
System.out.println("登录成功!");
return true;
} else {
//③判断密码错误达到3次
count--;
if(count == 0) {
System.out.print("密码输入错误次数达到3次,程序退出...");
System.exit(0);
}
//②密码错误,重新输入
System.out.print("密码输入错误,还可再输入 " + count + " 次密码,请重新输入:");
}
}
}
public static void telephone() throws IOException {
TelephoneBook book = new TelephoneBook();
Scanner sc = new Scanner(System.in);
//初始化操作,读取配置文件
book.init();
while(true) {
//通讯录管理系统
while (true) {
help();
String function = sc.next();
switch (function) {
case "1"://添加
System.out.print("姓名:");
String nameAdd = sc.next();
//根据姓名判断用户是否存在
if (book.findByName(nameAdd) != null) {
System.out.println("用户已存在!");
break;
}
System.out.print("性别:");
String genderAdd = sc.next();
System.out.print("年龄:");
int ageAdd = sc.nextInt();
System.out.print("电话:");
String telAdd = sc.next();
System.out.print("QQ:");
String qqAdd = sc.next();
System.out.print("地址:");
String addrAdd = sc.next();
//创建表示通讯录单条信息的对象
TelephoneItem itemAdd = new TelephoneItem(nameAdd, genderAdd, ageAdd, telAdd, qqAdd, addrAdd);
if (book.add(itemAdd)) {
System.out.println(itemAdd);
System.out.println("添加成功");
} else {
System.out.println("通讯录已满,信息添加失败...");
}
break;
case "2"://删除
System.out.print("请输入要删除用户的姓名:");
String nameDel = sc.next();
//根据姓名查询通讯录是否存在 存在-删除 不存在-给用户提示
if (book.findByName(nameDel) == null) {
System.out.println("该用户不存在...");
break;
}
System.out.print("是否确认删除? y-确认 n-取消 ");
String funcDel = sc.next();
if (funcDel.equals("y")) {
book.del(nameDel);
System.out.println("删除成功");
} else if (funcDel.equals("n")) {
System.out.println("已取消删除");
} else {
System.out.println("输入不合法,请重新输入...");
}
break;
case "3"://修改
System.out.print("请输入要修改用户的姓名:");
String nameUpdate = sc.next();
TelephoneItem oldItem = book.findByName(nameUpdate);
if (oldItem == null) {
System.out.println("该用户不存在...");
break;
}
System.out.println(oldItem);
System.out.print("姓名:");
String nameNew = sc.next();
TelephoneItem itemAnothe = book.findByName(nameNew);
if (itemAnothe !=null && !nameUpdate.equals(nameNew)) {//不允许修改姓名
System.out.println("该姓名已存在,请输入其他姓名...");
break;
}
System.out.print("性别:");
String genderNew = sc.next();
System.out.print("年龄:");
int ageNew = sc.nextInt();
System.out.print("电话:");
String telNew = sc.next();
System.out.print("QQ:");
String qqNew = sc.next();
System.out.print("地址:");
String addrNew = sc.next();
TelephoneItem itemNew = new TelephoneItem(nameNew, genderNew, ageNew, telNew, qqNew, addrNew);
book.update(nameUpdate, itemNew);
System.out.println("用户信息修改成功!");
break;
case "4"://查询所有
List items = book.findAll();
for (TelephoneItem item : items) {
if (item != null) {
System.out.println(item);
}
}
break;
case "5"://按姓名查询
System.out.print("请输入要查找的用户:");
String nameFind = sc.next();
TelephoneItem findItem = book.findByName(nameFind);
if (findItem != null) {
System.out.println(findItem);
} else {
System.out.println("该用户不存在...");
}
break;
case "0"://退出
//写配置文件
book.save();
System.exit(0);
break;
default:
System.out.println("请按照所给出的提示信息来进行操作...");
}
}
}
}
public static void main(String[] args) throws IOException {
if (login()) {//如果登录成功调用telephone功能模块
telephone();
}
}
}