Java面向对象练习-电话本管理系统

实现电话本的增删改查(存于对象数组)。
来个运行后的效果:
这里写图片描述
下面就是实现的代码(如有不对欢迎指正 O(∩_∩)O)

package jingshenxiaohuo.com.test;

import java.util.Scanner;

/**
 * @program: testApplication
 * @description:
 * @author: xiaoming
 * @version: V1
 **/
public class PhoneNumberTest {
    //控制台输入
    Scanner sc = new Scanner(System.in);

    //ConnecInfo为内部类,定义在代码最下方
    //存储联系信息等内容
    ConnectInfo[] connectInfos = new ConnectInfo[10];

    //空构造函数,可省略
    public PhoneNumberTest() {
    }

    //操作入口
    public void BeginOpt() {
        System.out.println("----------电话本管理系统----------");
        System.out.println("1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查询 0.退出");
        System.out.println("----------电话本管理系统----------\n 请选择操作:");
        String a = sc.next();
        //如果a处编译时报错,注意JDK使用1.7以上
        switch (a) {
            case "1":
                add();
                break;
            case "2":
                delete();
                break;
            case "3":
                update();
                break;
            case "4":
                selectAll();
                break;
            case "5":
                selectByName();
                break;
            case "0":
                exit();
                break;
            default:
                System.out.println("输入指令错误!请重新输入!");
                BeginOpt();
                break;
        }
    }

    public void add() {
        ConnectInfo b = new ConnectInfo();
        System.out.println("------添加电话本------");
        System.out.println("请输入相关信息:");
        System.out.print("姓名:");
        String name = sc.next();
        b.setName(name);
        System.out.print("性别:");
        String sex = sc.next();
        b.setSex(sex);
        System.out.print("年龄:");
        int age = sc.nextInt();
        b.setAge(age);
        System.out.print("电话:");
        String dianhua = sc.next();
        b.setPhoneNumber(dianhua);
        System.out.print("QQ:");
        String qq = sc.next();
        b.setQQ(qq);
        System.out.print("地址:");
        String dizhi = sc.next();
        b.setDizhi(dizhi);
        for (int i = 0; i < 10; i++) {
            if (connectInfos[i] == null) {
                connectInfos[i] = b;
                break;
            } else {
                continue;
            }
        }
        System.out.println("添加成功");
        System.out.println(b.toString());
        BeginOpt();
    }

    public void delete() {
        System.out.println("------删除电话本------");
        System.out.println("请输入你要删除的电话本:");
        String s = sc.next();
        for (int i = 0; i < 10; i++) {
            if (connectInfos[i] != null) {
                if (connectInfos[i].getName().equals(s)) {
                    System.out.println("你要删除的是:" + connectInfos[i].toString());
                    System.out.println("你确定要删除吗?\n [Y]确定,[N]取消");
                    String s2 = sc.next();
                    if (s2.equals("y")) {
                        connectInfos[i] = null;
                        System.out.println("删除成功!");
                        BeginOpt();
                    } else if (sc.next().equals("n")) {
                        BeginOpt();
                    } else {
                        System.out.println("输入指令不正确,请重新输入!");
                        delete();
                    }
                } else {
                    if (i != 9) {
                        continue;
                    } else {
                        System.out.println("你输入的账号不存在!请重新输入!");
                        delete();
                    }
                }
            }else {
                if (i != 9) {
                    continue;
                } else {
                    System.out.println("你输入的账号不存在!请重新输入!");
                    delete();
                }
            }
        }
    }

    public void update() {
        System.out.println("--------------修改电话本-------------");
        System.out.println("请输入你要修改的账号:");
        String s = sc.next();
        out: for (int i = 0; i < 10; i++) {
            if (connectInfos[i] != null) {
                if (connectInfos[i].getName().equals(s)) {
                    System.out.println("你要修改的是:" + connectInfos[i].toString());
                    System.out.println("请重新输入相关信息:");
                    System.out.print("姓名:");
                    String name = sc.next();
                    connectInfos[i].setName(name);
                    System.out.print("性别:");
                    String sex = sc.next();
                    connectInfos[i].setSex(sex);
                    System.out.print("年龄:");
                    int age = sc.nextInt();
                    connectInfos[i].setAge(age);
                    System.out.print("电话:");
                    String dianhua = sc.next();
                    connectInfos[i].setPhoneNumber(dianhua);
                    System.out.print("QQ:");
                    String qq = sc.next();
                    connectInfos[i].setQQ(qq);
                    System.out.print("地址:");
                    String dizhi = sc.next();
                    connectInfos[i].setDizhi(dizhi);
                    System.out.print("修改成功!");
                    System.out.println("修改后为:" + connectInfos[i].toString());
                    BeginOpt();
                } else {
                    if (i != 9) {
                        continue out;
                    } else {
                        System.out.println("你输入的账号不存在!请重新输入!");
                        update();
                    }
                }
            } else {
                if (i != 9) {
                    continue out;
                } else {
                    System.out.println("你输入的账号不存在!请重新输入!");
                    update();
                }
            }
        }
    }

    public void selectAll() {
        System.out.println("--------------所有电话信息---------------");
        for (int i = 0; i < 10; i++) {
            if (connectInfos[i] != null) {
                System.out.println(connectInfos[i].toString());
            }
        }
        BeginOpt();
    }

    public void selectByName() {
        System.out.println("------------------根据名字查询----------------");
        System.out.println("请输入你要查找的名字:");
        String s = sc.next();
        out: for (int i = 0; i < 10; i++) {
            if (connectInfos[i] != null) {
                if (connectInfos[i].getName().equals(s)) {
                    System.out.println("查询结果为:" + connectInfos[i].toString());
                    BeginOpt();
                    break;
                } else {
                    if (i != 9) {
                        continue out;
                    } else {
                        System.out.println("你输入的账号不存在!请重新输入!");
                        selectByName();
                    }
                }
            } else {
                if (i != 9) {
                    continue out;
                } else {
                    System.out.println("你输入的账号不存在!请重新输入!");
                    selectByName();
                }
            }
        }
    }

    public void exit() {
        System.out.println("谢谢使用! \n");
        System.gc();// 系统回收资源
        Runtime.getRuntime().runFinalization();// 没起作用;
    }

    public void finalize() {
        System.out.println("已回收资源,成功退出系统");
    }

    class ConnectInfo { // 写个内部类
        private String name;
        private String sex;
        private int age;
        private String phoneNumber;
        private String QQ;
        private String dizhi;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getSex() {
            return sex;
        }

        public void setSex(String sex) {
            this.sex = sex;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getPhoneNumber() {
            return phoneNumber;
        }

        public void setPhoneNumber(String phoneNumber) {
            this.phoneNumber = phoneNumber;
        }

        public String getQQ() {
            return QQ;
        }

        public void setQQ(String qQ) {
            QQ = qQ;
        }

        public String getDizhi() {
            return dizhi;
        }

        public void setDizhi(String dizhi) {
            this.dizhi = dizhi;
        }

        public String toString() {
            String s = "姓名:" + name + "性别:" + sex + "年龄:" + age + "电话:" + "QQ:"
                    + QQ + "地址:" + dizhi;
            return s;
        }
    }

    public static void main(String[] args) {
        //新建对象
        PhoneNumberTest phoneNumberTest = new PhoneNumberTest();
        //执行对象方法
        phoneNumberTest.BeginOpt();

    }

}

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值