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

    }

}

实现了以下要求说明的功能: 1.要求使用GUI,采用 Swing 技术数据存储采用文件系统(可以是文本 文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、 邮编、电话、传真 ( 3)网络信息:个人主页、即时通信工具及号码、备用邮箱 ( 4)家庭资料:国家、省份、城市、地址、邮编、电话 3 .通讯录数据的录入功能:输入并存储新的通讯录数据,输入时如果有同 名或同电话号码时,应该给出提示。 4 .通讯录数据的查询功能: ( 1)默认列出所有条目。 ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645”列出电话中有 该 4个数字的所有条目;输入“xl ”,列出声母为该 2 个字母的所有条目 ( 3)指定分组后,列出某分组的所有条目 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一 个汉语拼音的字母分类。 5 .删除和修改功能:查询到一个条目后,可以删除该条目或修改条目内容。 6 .通信录内容的导入和导出功能。要求能够以CSV 格式和 vCard 格式导入 和导出通讯录的全部内容。并能够与主流手机或其他通讯录软件交换数据。 7 .通讯录显示设置,可以设置在显示查询结果时,一个条目可以显示或不 显示哪些内容。 注意:本系统实现了读取和保存csv文件,同时csv文件中只保存了图片的路径。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值