主函數:
package www.telephone.java;
import java.util.Scanner;
/*
* 電話簿主要實現功能:
* 1.添加 2.刪除 3.修改 4.查詢所有 5.根據姓名查詢 6.退出
* */
public class TelephoneNumberMain {
public static void main(String[] args) {
TelephoneBook telephoneBook = new TelephoneBook();
telephoneBook.choose();
}
}
方法主體,電話本增刪改查:
package www.telephone.java;
import java.util.Scanner;
import com.sun.org.apache.bcel.internal.generic.INEG;
public class TelephoneBook {
Contacts[] c = new Contacts[50];
TelephoneNumberMain telephoneNumberMain = new TelephoneNumberMain();
int num; // 聯繫人個數
// 添加聯繫人
public void choose() {
Scanner sc = new Scanner(System.in);
System.out.println("----------------電話本管理系統----------------");
System.out.println("1.添加 2.刪除 3.修改 4.查詢所有 5.根據姓名查詢 0.退出");
System.out.println("----------------電話本管理系統----------------\n 請選擇操作:");
String a = sc.next();
switch (a) {
case "1":
pAdd();
break;
case "2":
pDelete();
break;
case "3":
pChange();
break;
case "4":
selectAll();
break;
case "5":
selectByName();
break;
case "0":
System.out.println("感謝你的使用。");
System.exit(0);
break;
default:
System.out.println("輸入指令錯誤!請重新輸入!");
break;
}
}
public void pAdd() {
System.out.println("------添加聯繫人------");
System.out.println("請輸入相關信息:");
Contacts con = new Contacts();
Scanner sc = new Scanner(System.in);
System.out.print("姓名:");
String name = sc.nextLine();
con.setName(name);
System.out.print("性別:");
String sex = sc.nextLine();
con.setSex(sex.charAt(0));
System.out.print("年齡:");
int age = sc.nextInt();
con.setAge(age);
sc = new Scanner(System.in);
System.out.print("電話:");
String phone = sc.nextLine();
con.setPhoneNumber(phone);
System.out.print("QQ:");
int qqNumber = sc.nextInt();
con.setQqNumber(qqNumber);
sc = new Scanner(System.in);
System.out.print("地址:");
String address = sc.nextLine();
con.setAddress(address);
System.out.println(con);
for (int num = 0; num < c.length; num++) {
if (c[num] == null) {
c[num] = con;
break;
} else {
continue;
}
}
// c[num++] = contacts;
System.out.println("插入成功");
System.out.println(con.toString());
choose();
}
// 刪除聯繫人
public void pDelete() {
System.out.println("------刪除聯繫人------");
System.out.println("請輸入你要刪除的聯繫人姓名:");
Scanner sc = new Scanner(System.in);
String s = sc.next();
for (int num = 0; num < c.length; num++) {
if (c[num] != null) {
if (c[num].getName().equals(s)) {
System.out.println("你要刪除的是:" + c[num].toString());
System.out.println("你確定要刪除嗎?\n [1]確定,[0]取消");
int s2 = sc.nextInt();
if (s2 == 1) {
c[num] = null;
System.out.println("刪除成功!");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
choose();
} else if (sc.next().equals("n")) {
choose();
} else {
System.out.println("輸入指令不正確,請重新輸入!");
pDelete();
}
} else {
if (num != c.length - 1) {
continue;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
pDelete();
}
}
} else {
if (num != c.length - 1) {
continue;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
pDelete();
}
}
}
}
public void pChange() {
Scanner sc = new Scanner(System.in);
System.out.println("--------------修改電話本-------------");
System.out.println("請輸入你要修改的姓名:");
String s = sc.next();
out: for (int num = 0; num < c.length; num++) {
if (c[num] != null) {
if (c[num].getName().equals(s)) {
System.out.println("你要修改的是:" + c[num].toString());
System.out.println("請重新輸入相關信息:");
System.out.print("姓名:");
String name = sc.next();
c[num].setName(name);
System.out.print("性別:");
String sex = sc.next();
c[num].setSex(sex.charAt(0));
System.out.print("年齡:");
int age = sc.nextInt();
c[num].setAge(age);
System.out.print("電話:");
String dianhua = sc.next();
c[num].setPhoneNumber(dianhua);
System.out.print("QQ:");
int qqNumber = sc.nextInt();
c[num].setQqNumber(qqNumber);
System.out.print("地址:");
String address = sc.next();
c[num].setAddress(address);
;
System.out.print("修改成功!");
System.out.println("修改後爲:" + c[num].toString());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
choose();
} else {
if (num != c.length - 1) {
continue out;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
pChange();
}
}
} else {
if (num != c.length - 1) {
continue out;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
pChange();
}
}
}
}
// 查詢所有方法
public void selectAll() {
System.out.println(c[1]);
System.out.println("--------------所有電話信息---------------");
for (int num = 0; num < c.length; num++) {
if (c[num] != null) {
System.out.println(c[num].toString());
}
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
choose();
}
public void selectByName() {
Scanner sc = new Scanner(System.in);
System.out.println("------------------根據名字查詢----------------");
System.out.println("請輸入你要查找的名字:");
String s = sc.next();
for (int num = 0; num < c.length; num++) {
if (c[num] != null) {
if (c[num].getName().equals(s)) {
System.out.println("查詢結果爲:" + c[num].toString());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
choose();
break;
} else {
if (num != c.length - 1) {
continue;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
selectByName();
}
}
} else {
if (num != c.length - 1) {
continue;
} else {
System.out.println("你輸入的姓名不存在!請重新輸入!");
selectByName();
}
}
}
}
}
構建內部類實現getset方法以及toString方法:
package www.telephone.java;
public class Contacts {
TelephoneBook telephoneBook = new TelephoneBook();
private String name;// 聯繫人姓名
private char sex;// 聯繫人性別
private int age; // 聯繫人年齡
private String phoneNumber; // 聯繫人電話
private int qqNumber;// 聯繫人QQ號
private String address;// 聯繫人地址
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
if (sex != '男' && sex != '女') {
System.out.println("請輸入‘男’或‘女’。");
telephoneBook.pAdd();
} else {
this.sex = sex;
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0 && age <= 150) {
this.age = age;
} else {
System.out.println("請輸入正確的年齡");
telephoneBook.pAdd();
}
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public int getQqNumber() {
return qqNumber;
}
public void setQqNumber(int qqNumber) {
this.qqNumber = qqNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "電話簿 [姓名=" + name + ", 性別=" + sex + ", 年齡=" + age + ", 電話號碼=" + phoneNumber + ", QQ號=" + qqNumber
+ ", 地址=" + address + "]";
}
}