需求:
一、电话本管理系统
1.主界面
2.添加
2.修改
1)无信息
2)正常修改
3 . 打印所有电话本
[图片上传失败...(image-9494fd-1578037644507)]
4.删除
再次选择4,查询所有,张三的信息已删除
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
}
}