2020-01-03电话本管理系统数组版

需求:
一、电话本管理系统

1.主界面

主界面.png

2.添加

添加.png

2.修改

1)无信息

修改.png

2)正常修改

正常修改.png

3 . 打印所有电话本

[图片上传失败...(image-9494fd-1578037644507)]

4.删除

删除.png

再次选择4,查询所有,张三的信息已删除

再次选择.png

0.退出系统

分析:数组版电话本管理系统-----无法持久化(数组,集合ArrayList)-----如何持久化?文件--->数据库MySQL...
需求:电话本信息进行添加、删除、修改、查询的操作
数据如何存储: 一维数组 数据类型[] 数组名;
|----数据类型和电话本每一条信息的数据类型一致----->自定义类型----->设计类TelephoneItem
|----TelephoneItem[] items = new TelephoneItem[100];

toString()方法
System.out.println(对象名)
System.out.println(对象名.toString()) 继承

1.创建类TelephoneItem:属性方法

package com.hpe.telephone;
/*
 * 表示电话本单条记录
 */
public class TelePhoneItem {
    //属性
    private String name;
    private String gender;
    private int age;//基本数据类型的包装类
    private String tel;
    private String qq;
    private String addr;
    //封装特性 private成员变量
    
    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=" + name + ", gender=" + gender + ", age=" + age + ", tel=" + tel + ", qq=" + qq
                + ", addr=" + addr + "]";
    }

    
    
}

2.创建类TelephoneBook:电话本的增删改差

package com.hpe.telephone;
/*
 * 表示电话本的类,最多能够存放100条记录
 */

import sun.net.www.content.text.plain;

public class TelephoneBook {
    private TelePhoneItem items[]=new TelePhoneItem[100];
    //查询所有
    public TelePhoneItem[] getItems() {
        return items;
    }

    public void setItems(TelePhoneItem[] items) {
        this.items = items;
    }
    //添加
    public boolean add(TelePhoneItem item) {
//      for ( TelePhoneItem telePhoneItem : items) {
//          System.out.println(telePhoneItem);
//      }
        for (int i = 0; i < items.length; i++) {
            if (items[i]==null) {
                items[i]=item;
                return true;
            }
        }
        return false;
    }
    
    
    //根据姓名查询
    public  TelePhoneItem findByName(String name) {
        for (int i = 0; i < items.length; i++) {
            if (items[i]!=null&&items[i].getName().equals(name)==true) {
                return items[i];
            }
        
        }
        return null;
    }
    
    //删除
    public boolean  del(String name) {
        for (int i = 0; i < items.length; i++) {
            if (items[i]!=null&&items[i].getName().equals(name)==true) {
                items[i]=null;
                return true;
            }
        }
        return false;
    }

    //修改
    public boolean  chg(String name,TelePhoneItem item) {
        for (int i = 0; i < items.length; i++) {
            if (items[i]!=null&&items[i].getName().equals(name)==true) {
                items[i]=item;
                return true;
            }
        }
        return false;
    }
}

3.主函数UI界面调用和逻辑

package com.hpe.telephone;
import java.util.Scanner;
public class Ui {
    

    public static void main(String[] args) {
        TelephoneBook book=new TelephoneBook();
        Scanner sc=new Scanner(System.in);
        while (true) {
            help();
            String choose=sc.next();
            switch(choose){
            case "1":
                System.out.println("————————————添加电话本——————————————");
                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();
                itemAdd.setName(nameAdd);
                itemAdd.setGender(genderAdd);
                itemAdd.setAge(ageAdd);
                itemAdd.setTel(telAdd);
                itemAdd.setQq(qqAdd);
                itemAdd.setAddr(addrAdd);
                boolean addResult=book.add(itemAdd);
                if (addResult==true) {
                    System.out.println(itemAdd);
                    System.out.println("添加成功");
                }else {
                    System.out.println("电话本已满,添加失败");
                }
                break;
            case "2":
                System.out.println("请输入要删除的记录对应的姓名:");
                String nameDel=sc.next();
                TelePhoneItem itemDel=book.findByName(nameDel);
                if(itemDel==null){
                    System.out.println("要删除的信息不存在...");
                    break;
                }else {
                    System.out.println(itemDel);
                }
                book.del(nameDel);
                System.out.println("删除成功");
                break;
            case "3":
                /*
                 * 前提:电话本中的所有记录的姓名不能重复
                 * 1.如果修改之后的名字和修改之前的名字相同,可以修改
                 * 2.修改之后的名字和其他项的名字相同,不能修改
                 * 3.如何知道修改后和其他项是否为同一项
                 */
                System.out.println("请输入要修改的姓名:");
                String nameWantChg=sc.next();
                TelePhoneItem itemWantChg=book.findByName(nameWantChg);
                if (itemWantChg==null) {
                    System.out.println("要修改的项不存在");
                    break;
                }
                System.out.print("姓名:");
                //修改后的名字
                String nameChg=sc.next();
                TelePhoneItem itemOther=book.findByName(nameChg);
                if (itemOther!=null&&itemOther!=itemWantChg){
                    System.out.println("修改后有重名,不能修改...");
                    break;
                }
                System.out.print("性别:");
                String genderChg=sc.next();
                System.out.print("年龄:");
                int ageChg=sc.nextInt();
                System.out.print("电话:");
                String telChg=sc.next();
                System.out.print("qq:");
                String qqChg=sc.next();
                System.out.print("地址:");
                String addrChg=sc.next();
                
                
                itemWantChg.setName(nameChg);
                itemWantChg.setGender(genderChg);
                itemWantChg.setAge(ageChg);
                itemWantChg.setTel(telChg);
                itemWantChg.setQq(qqChg);
                itemWantChg.setAddr(addrChg);
                
                break;
            case "4":
                TelePhoneItem[]allItem=book.getItems();
                for (TelePhoneItem item : allItem) {
                    if (item!=null) {
                        System.out.println(item);
                    }
                    
                }
                break;
            case "5":
                System.out.print("请输入姓名");
                String nameFind=sc.next();
                
                TelePhoneItem itemFind=book.findByName(nameFind);
                if(itemFind!=null){
                    System.out.println(itemFind);
                    
                }else {
                    System.out.println("您要查询的信息不存在...");
                }
                break;
            case "0":
                System.out.println("退出");
                System.exit(0);
                break;
            default:
                System.out.println("请根据提示选择......");
            
            }
        }

    }

    
    
    
    public static void help() {
        System.out.println("——————————————————————电话本管理系统———————————————————————");
        System.out.println("1.添加\t2.删除\t3.修改\t4.查询所有\t5.根据姓名查询\t0.退出");
        System.out.println("——————————————————————电话本管理系统———————————————————————");
        System.out.println("请选择业务:");//换行shift+enter
                
    }

}

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,368评论 0 9
  • 我是一个java初学者,所以很多地方都写的很糟,首先谢谢 “唐”给我的练习题,这是完成所有功能后第一时间发的,所以...
    猿学阅读 662评论 0 0
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,133评论 1 114
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 505评论 0 0
  • 一、为什么会出现集合类 1.集合是一个容器,为了方便的对多个对象进行操作。 2.集合容器同数组容器的...
    大禹编程扛把子阅读 428评论 0 0
  • 君子有所为有所不为。 凉薄的天性就是如此了。 一个两个三个四个五六七八个,把朋友圈精简了再精简。减去婆娑,清成一枝...
    铭玥清丘阅读 228评论 0 2
  • 我二十岁那年还在大学里读书时,父母亲就强逼着我与一个郊区农村的女孩订了婚。我父母亲说,看见那些大学生男的不想娶女的...
    Mr_稻香老农阅读 393评论 12 7
  • 软件测试是软件质量保证的重要手段之一,软件测试模型则是软件测试的工作框架,用于指导软件测试过程。今天,我们就来介绍...
    一角钱技术阅读 1,834评论 0 0
  • 活着就要记住,人生最痛苦最绝望的那一刻是最难熬的一刻,但不是生命结束的最后一刻;熬过去挣过去就会开始体验呼唤未来的...
    吃吗带走阅读 4,405评论 0 0