【通讯录管理系统 - Telephone

【通讯录管理系统 - Telephone,第1张

通讯录管理系统 - Telephone

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

}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5686293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存