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
                
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容