需求:
一、電話本管理系統(tǒng)
1.主界面

主界面.png
2.添加

添加.png
2.修改
1)無信息

修改.png
2)正常修改

正常修改.png
3 . 打印所有電話本
[圖片上傳失敗...(image-9494fd-1578037644507)]
4.刪除

刪除.png
再次選擇4,查詢所有,張三的信息已刪除

再次選擇.png
0.退出系統(tǒng)
分析:數(shù)組版電話本管理系統(tǒng)-----無法持久化(數(shù)組,集合ArrayList)-----如何持久化?文件--->數(shù)據(jù)庫MySQL...
需求:電話本信息進(jìn)行添加、刪除、修改、查詢的操作
數(shù)據(jù)如何存儲: 一維數(shù)組 數(shù)據(jù)類型[] 數(shù)組名;
|----數(shù)據(jù)類型和電話本每一條信息的數(shù)據(jù)類型一致----->自定義類型----->設(shè)計(jì)類TelephoneItem
|----TelephoneItem[] items = new TelephoneItem[100];
toString()方法
System.out.println(對象名)
System.out.println(對象名.toString()) 繼承
1.創(chuàng)建類TelephoneItem:屬性方法
package com.hpe.telephone;
/*
* 表示電話本單條記錄
*/
public class TelePhoneItem {
//屬性
private String name;
private String gender;
private int age;//基本數(shù)據(jù)類型的包裝類
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.創(chuàng)建類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;
}
//根據(jù)姓名查詢
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.主函數(shù)UI界面調(diào)用和邏輯
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("要添加的姓名和當(dāng)前電話本中的記錄重復(fù),不能添加...");
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("請輸入要刪除的記錄對應(yīng)的姓名:");
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":
/*
* 前提:電話本中的所有記錄的姓名不能重復(fù)
* 1.如果修改之后的名字和修改之前的名字相同,可以修改
* 2.修改之后的名字和其他項(xiàng)的名字相同,不能修改
* 3.如何知道修改后和其他項(xiàng)是否為同一項(xiàng)
*/
System.out.println("請輸入要修改的姓名:");
String nameWantChg=sc.next();
TelePhoneItem itemWantChg=book.findByName(nameWantChg);
if (itemWantChg==null) {
System.out.println("要修改的項(xiàng)不存在");
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("請根據(jù)提示選擇......");
}
}
}
public static void help() {
System.out.println("——————————————————————電話本管理系統(tǒng)———————————————————————");
System.out.println("1.添加\t2.刪除\t3.修改\t4.查詢所有\(zhòng)t5.根據(jù)姓名查詢\t0.退出");
System.out.println("——————————————————————電話本管理系統(tǒng)———————————————————————");
System.out.println("請選擇業(yè)務(wù):");//換行shift+enter
}
}