JAVA简易通讯录系统

注意: 此通讯录使用姓名查找,故联系人姓名不能重复。

1)文件名要与类名相同。

2)三个文件要放在同一个文件夹下。

3)包名(package com.lianxi.test;)需要删除或更改。

4)Ui.java是主函数文件,运行这个文件即可。

JAVA简易通讯录系统_第1张图片

 JAVA简易通讯录系统_第2张图片

 

1、Contacts.java

package com.lianxi.test;

public class Contacts {

    //联系人类

    private String name;

    private String gender;

    private int age;

    private String tel;

    private String qq;

    private String addr;

    //无参构造函数

    public Contacts() {

    }

    //有参构造函数

    public Contacts(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;

    }

    //get和set方法

    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 "联系人 [" +

                "姓名:" + name +

                "\t性别:" + gender +

                "\t年龄:" + age +

                "\t电话:" + tel +

                "\tQQ:" + qq +

                "\t地址:" + addr +

                ']';

    }

}

2、PhoneBook.java

package com.lianxi.test;

 

public class PhoneBook {

    //电话薄类,用于存放联系人并设置增删改查功能

    private Contacts[] contacts; //用联系人类创建一个数组 //contacts为一个存放联系人的数组

    //电话薄 构造方法

    public PhoneBook(){

        this.contacts = new Contacts[100]; //数组长度为100

    }

    //添加

    public boolean add(Contacts person){ //person为单个联系人的信息。包括姓名,性别,年龄等。。。

        for (int i = 0; i < contacts.length; i++) {

            if(contacts[i] == null ){ //数组为空,存放联系人信息

                contacts[i] = person;

                return true; //添加成功

            }

        }

        return false; //添加失败,数组没有位置

    }

    //删除

    public boolean del(String name){ //传入姓名,用来确定要删除的人

        for (int i = 0; i < contacts.length; i++) {

            if(contacts[i] != null && contacts[i].getName().equals(name)){ //此次数组不为空,姓名相同。

                contacts[i] = null;

                return true;

            }

        }

        return false;

    }

    //修改 name: 被修改者的姓名 person: 修改之后的信息

    public boolean chg(String name,Contacts person){

        for (int i = 0; i < contacts.length; i++) {

            if(contacts != null && contacts[i].getName().equals(name)){

                contacts[i] = person;

                return true;

            }

        }

        return false;

    }

    //查询所有

    public Contacts[] findAll(){

        return contacts;

    }

    //根据姓名查询

    public Contacts findByName(String name){

        for (int i = 0; i < contacts.length; i++) {

            if(contacts[i] != null && contacts[i].getName().equals(name)){

               return contacts[i]; //找到,返回联系人信息

            }

        }

        return null; //找不到,返回空

    }

}

3、Ui.java

package com.lianxi.test;

 

import java.util.Scanner;

public class Ui {
    public static void help() {   //帮助界面 方法
        System.out.println("\n");
        System.out.println("--------------------------------通讯录管理系统--------------------------------");
        System.out.println("1.添加\t2.删除\t3.修改\t4.查询所有\t5.根据姓名查询\t0.退出");
        System.out.println("--------------------------------通讯录管理系统--------------------------------");
        System.out.print("请选择业务:");
    }

    public static void main(String[] args) {    //主函数
        Scanner sc = new Scanner(System.in);  //调用用来输入的方法
        PhoneBook phoneBook = new PhoneBook();  //给电话薄的类创建对象

        while(true){
            help();
            int choose = sc.nextInt();   //获取用户输入
            if(choose == 1){  //1.添加
                System.out.println("-----添加通讯录-----");
                System.out.print("姓名:");
                String name = sc.next();   //获取输入的姓名
                if(phoneBook.findByName(name) != null){   //判断姓名是否存在
                    System.out.println("用户已经存在");
                    continue;  //进入下一次的循环
                }
                System.out.print("性别:");
                String gender = sc.next();
                System.out.print("年龄:");
                int age = sc.nextInt();
                System.out.print("电话:");
                String tel = sc.next();
                System.out.print("QQ:");
                String qq = sc.next();
                System.out.print("地址:");
                String addr = sc.next();
                Contacts person = new Contacts(name, gender, age, tel, qq, addr);  //创建单条信息的对象
                //添加
                boolean result =phoneBook.add(person);
                if(result == true) {
                    System.out.println(person);
                    System.out.println("添加成功");
                } else {
                    System.out.println("通讯录没有空间,添加失败");
                }

            }else if(choose == 2){  //2.删除
                System.out.println("-----删除通讯录-----");
                System.out.print("请输入要删除的姓名:");
                String name = sc.next();
                if(phoneBook.findByName(name) != null) {
                    System.out.print("确定要删除吗?y-确定 n-取消:");
                    String confirm = sc.next();
                    if(confirm.equals("y")) {
                        phoneBook.del(name);
                        System.out.println("删除成功");
                    } else if(confirm.equals("n")) {
                        System.out.println("取消删除...");
                        continue;
                    } else {
                        System.out.println("请根据提示输入...");
                        continue;
                    }
                } else {
                    System.out.println("该用户不存在...");
                }

 

            }else if(choose == 3){ //3.修改

                System.out.println("-----修改通讯录-----");

                System.out.print("请输入要修改的姓名:");

                String oldName = sc.next(); //想要修改的通讯录的姓名

                //根据姓名查询该通讯录是否存在

                Contacts oldItem = phoneBook.findByName(oldName);

                if(oldItem == null) {

                    //不存在

                    System.out.println("无信息...");

                    continue;

                } else {

                    System.out.println(oldItem);

                }

                //修改流程

                System.out.print("姓名:");

                String name = sc.next(); //修改之后的名字

                if(phoneBook.findByName(name) != null && !oldName.equals(name)) { //修改之后的名字和其他项名字重复

                    System.out.println("修改之后的名字和其他项名字重复,不允许修改");

                    continue;

                }

                System.out.print("性别:");

                String gender = sc.next();

                System.out.print("年龄:");

                int age = sc.nextInt();

                System.out.print("电话:");

                String tel = sc.next();

                System.out.print("QQ:");

                String qq = sc.next();

                System.out.print("地址:");

                String addr = sc.next();

                //修改之后的对象

                Contacts person = new Contacts(name, gender, age, tel, qq, addr);

                //修改

                phoneBook.chg(oldName, person);

                System.out.println("修改成功");

 

            }else if(choose == 4){ //4.查询所有

                Contacts[] person = phoneBook.findAll();

                System.out.println("-----打印所有通讯录-----");

                for (int i = 0; i < person.length; i++) {

                    if(person[i] != null) {

                        System.out.println(person[i]);

                    }

                }

 

            }else if(choose == 5){ //5.根据姓名查询

                System.out.println("-----根据姓名查询-----");

                System.out.print("姓名:");

                String name = sc.next();

                Contacts item = phoneBook.findByName(name);

                if(item != null) {

                    System.out.println(item);

                } else {

                    System.out.println("该条信息不存在...");

                }

            }else if(choose == 0){ //0.退出

                return; //退出

            }else{

                System.out.println("请根据提示输入。。。");

            }

        }

    }

}

 

 

你可能感兴趣的:(java)