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
                
    }

}

你可能感兴趣的:(2020-01-03电话本管理系统数组版)