• Java实现简单的通讯录


    每日一言

    泪眼问花花不语,乱红飞过秋千去。 —欧阳修-


    简单的通讯录实现,跟写Java实现图书管理系统差不多,用到的知识也差不多,就当个小练习,练习一下写Java程序的手感。

    Java实现图书管理系统

    关于通讯录的代码都写在下面了

    1. 代码

    1.1 contact 包

    1.1.1 Contact

    package contact;
    
    public class Contact {
        private int size;//当前占用容量
        private Person[] people = new Person[3];
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    
        public Person getPerson(int pos) {
            return people[pos];
        }
    
        public void setPerson(Person person,int pos) {
            this.people[pos] = person;
        }
    
        public Boolean isFull(Contact contact) {
            return contact.getSize() == people.length;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    1.1.2 Person

    package contact;
    
    public class Person {
        private String name;
        private String sex;
        private int age;
        private String telephone;
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "名字='" + name + '\'' +
                    ", 性别='" + sex + '\'' +
                    ", 年龄=" + age +
                    ", 电话='" + telephone + '\'' +
                    '}';
        }
    
        public Person(String name, String sex, int age, String telephone) {
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.telephone = telephone;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    1.2 option 包

    1.2.1 AddContact

    package option;
    
    import contact.Contact;
    import contact.Person;
    
    import java.util.Scanner;
    
    public class AddContact implements IOperation{
        @Override
        public void work(Contact contact) {
            if(contact.isFull(contact)) {
                System.out.println("通讯录已满,无法添加!");
                return;
            }else {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入联系人姓名:>");
                String name = scanner.nextLine();
                System.out.println("请输入联系人性别:>");
                String sex = scanner.nextLine();
                System.out.println("请输入联系人年龄:>");
                int age = scanner.nextInt();
                System.out.println("请输入联系人电话:>");
                String telephone = scanner.next();
                Person person = new Person(name,sex,age,telephone);
    
                int size = contact.getSize();
                contact.setPerson(person,size);
                contact.setSize(size+1);
                System.out.println("添加成功!");
            }
        }
    
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    1.2.2 DelContact

    package option;
    
    import contact.Contact;
    
    import java.util.Scanner;
    
    public class DelContact implements IOperation{
        @Override
        public void work(Contact contact) {
            int size = contact.getSize();
            if(0 == size) {
                System.out.println("通讯录为空,无法删除!");
                return;
            }else {
                System.out.println("请输入要删除的联系人姓名");
                Scanner scanner = new Scanner(System.in);
                String name = scanner.nextLine();
    
                for (int i = 0; i < size; i++) {
                    if(name.equals(contact.getPerson(i).getName())) {
                        //删除
                        for (int j = i; j < size-1; j++) {
                            contact.setPerson(contact.getPerson(j+1),j);
                        }
                        contact.setSize(size-1);
                        System.out.println("删除成功!");
                        return;
                    }
                }
    
                System.out.println("没有你要删除的联系人!");
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    1.2.3 ExitContact

    package option;
    
    import contact.Contact;
    
    public class ExitContact implements IOperation{
        @Override
        public void work(Contact contact) {
            //释放占用内存
            for (int i = 0; i < contact.getSize(); i++) {
                contact.setPerson(null,i);
            }
            System.out.println("退出成功!");
            System.exit(0);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    1.2.4 FindContact

    package option;
    
    import contact.Contact;
    
    import java.util.Scanner;
    
    public class FindContact implements IOperation{
        @Override
        public void work(Contact contact) {
            int size = contact.getSize();
            System.out.println("请输入要查找的联系人姓名");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
    
            for (int i = 0; i < size; i++) {
                if(name.equals(contact.getPerson(i).getName())) {
                    System.out.println(contact.getPerson(i).toString());
                    return;
                }
            }
    
            System.out.println("没有你要查找的联系人!");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    1.2.5 IOperation 接口

    package option;
    
    import contact.Contact;
    
    public interface IOperation {
        void work(Contact contact);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.2.6 ModifyContact

    package option;
    
    import contact.Contact;
    import contact.Person;
    
    import java.util.Scanner;
    
    public class ModifyContact implements IOperation{
        @Override
        public void work(Contact contact) {
            int size = contact.getSize();
            System.out.println("请输入要修改的联系人姓名");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
    
            for (int i = 0; i < size; i++) {
                if(name.equals(contact.getPerson(i).getName())) {
                    //修改
                    System.out.println("请输入联系人姓名:>");
                    String name1 = scanner.nextLine();
                    System.out.println("请输入联系人性别:>");
                    String sex = scanner.nextLine();
                    System.out.println("请输入联系人年龄:>");
                    int age = scanner.nextInt();
                    System.out.println("请输入联系人电话:>");
                    String telephone = scanner.next();
                    Person person = new Person(name1,sex,age,telephone);
    
                    contact.setPerson(person,i);
                    System.out.println("修改成功!");
                    return;
                }
            }
    
            System.out.println("没有你要修改的联系人!");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    1.2.7 ShowContact

    package option;
    
    import contact.Contact;
    
    public class ShowContact implements IOperation{
        @Override
        public void work(Contact contact) {
            if(0 == contact.getSize()) {
                System.out.println("通讯录为空");
                return;
            }else {
                for (int i = 0; i < contact.getSize(); i++) {
                    System.out.println(contact.getPerson(i).toString());
                }
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    1.3 Main

    import contact.Contact;
    import option.AddContact;
    
    import java.util.Scanner;
    
    public class Main {
        public static int menu() {
            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("0.退出通讯录");
            System.out.println("*********************");
            System.out.println("请输入选项:>");
    
            Scanner scanner = new Scanner(System.in);
            return scanner.nextInt();
        }
        public static void main(String[] args) {
            int op;
            User user = new User();
            Contact contact = new Contact();
            do {
                op = menu();
                if(op > user.iOperation.length || op < 0) {
                    System.out.println("输入错误!");
                    continue;
                }
                user.doOperation(contact,op);
            }while (0 != op);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    1.4 User

    import contact.Contact;
    import option.*;
    
    public class User {
        IOperation[] iOperation = new IOperation[]{
                new ExitContact(),
                new AddContact(),
                new DelContact(),
                new ShowContact(),
                new FindContact(),
                new ModifyContact(),
        };
        public void doOperation(Contact contact,int op) {
            this.iOperation[op].work(contact);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2. 效果

    2.1 添加联系人

    在这里插入图片描述

    2.2 展示联系人

    在这里插入图片描述

    2.3 删除联系人

    在这里插入图片描述

    2.4 查找联系人

    在这里插入图片描述

    2.5 修改联系人

    在这里插入图片描述

    2.6 退出通讯录

    在这里插入图片描述


    结语

    请给自己些耐心,一口吃不成胖子。
    山外青山楼外楼,莫把百尺当尽头。
    保持空杯心态加油努力吧!


    都看到这里啦!真棒(*^▽^*)

    可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

    编程小白写作,如有纰漏或错误,欢迎指正


  • 相关阅读:
    无胁科技-TVD每日漏洞情报-2022-8-10
    【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
    嵌入式工程师,用好C语言这一利器的三要素
    Java虚拟机(JVM)-- Dump内存快照
    Linux篇【5】:Linux 进程概念(二)
    Java数据类型详细介绍
    Java集合面试题&知识点总结(上篇)
    低代码平台选型(五)性能篇
    MySQL——表的约束
    [NLP]LLM---FineTune自己的Llama2模型
  • 原文地址:https://blog.csdn.net/qrwitu142857/article/details/136744841