首先我們現(xiàn)在這里放一串簡(jiǎn)單的數(shù)組代碼
import java.util.Scanner;
class Phonenumber {
private String name;
private char sex;
private int age;
private String phonenumber;
private long qq;
private String address;
private static int row=0;
private String phonenum[][] = new String[100][6];
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex=sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public long getQq() {
return qq;
}
public void setQq(long qq) {
this.qq = qq;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public void Name(){
Scanner sc=new Scanner(System.in);
System.out.println("請(qǐng)輸入姓名:");
String name = sc.next();
setName(name);
System.out.println("請(qǐng)輸入性別:");
while(true){
char sex = sc.next().charAt(0);
if(sex == '男'||sex == '女'){
setSex(sex);
break;
}
else{
System.out.println("性別格式錯(cuò)誤請(qǐng)重新輸入性別:");
}
}
System.out.println("請(qǐng)輸入年齡:");
int age=sc.nextInt();
setAge(age);
System.out.println("請(qǐng)輸入電話號(hào)碼:");
String Phonenum=sc.next();
setPhonenumber(Phonenum);
System.out.println("請(qǐng)輸入QQ:");
long qq=sc.nextLong();
setQq(qq);
System.out.println("請(qǐng)輸入地址:");
String address=sc.next();
setAddress(address);
}
public void add(){
Name();
phonenum[row][0] = getName();
phonenum[row][1] = String.valueOf(getSex());
phonenum[row][2] = String.valueOf(getAge());
phonenum[row][3] = getPhonenumber();
phonenum[row][4] = String.valueOf(getQq());
phonenum[row][5] = getAddress();
row++;
}
public void del(){
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入要?jiǎng)h除聯(lián)系人的姓名");
String name = scanner.next();
System.out.println("確認(rèn)要?jiǎng)h除該聯(lián)系人携悯?Y/N获询?");
String yes_or_no = scanner.next();
if(yes_or_no.equals("Y")){
for(int i=0;phonenum[i][0]!=null;i++){
if(i<100){
if(phonenum[i][0].equals(name)){
for(int j=i;j<99;j++){
for(int k=0;k<6;k++){
phonenum[j][k]=phonenum[j+1][k];
phonenum[99][k]=null;
}
}
}
}
else if(i==99){
for(int j=0;j<6;j++){
phonenum[99][j] = null;
}
}
}
System.out.println("已刪除該聯(lián)系人");
}
else if(yes_or_no.equals("N")){
}
}
public void edit(){
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入要編輯的聯(lián)系人的姓名");
String name = scanner.next();
for(int i=0;phonenum[i][0]!=null;i++){
if(phonenum[i][0].equals(name)){
System.out.println("請(qǐng)輸入修改的內(nèi)容:1.姓名 2.性別 3.年齡 4.電話號(hào)碼 5.qq 6.地址");
int edit = scanner.nextInt();
switch(edit){
case 1:{
System.out.println("請(qǐng)重新輸入聯(lián)系人的姓名");
String nameedit=scanner.next();
setName(nameedit);
phonenum[i][0] = getName();
};break;
case 2:{
System.out.println("請(qǐng)重新輸入聯(lián)系人的性別");
while(true){
char sexedit=scanner.next().charAt(0);
if(sexedit=='男'||sexedit=='女'){
setSex(sexedit);
phonenum[i][1] = String.valueOf(getSex());
break;
}
else{
System.out.println("輸入格式有誤雳灾,請(qǐng)重新輸入:");
}
}
};break;
case 3:{
System.out.println("請(qǐng)重新輸入聯(lián)系人的年齡");
int ageedit=scanner.nextInt();
setAge(ageedit);
phonenum[i][2] = String.valueOf(getAge());
};break;
case 4:{
System.out.println("請(qǐng)重新輸入聯(lián)系人的電話號(hào)碼");
String phonenumberedit=scanner.next();
setPhonenumber(phonenumberedit);
phonenum[i][3] = getPhonenumber();
};break;
case 5:{
System.out.println("請(qǐng)重新輸入聯(lián)系的QQ");
long qqedit=scanner.nextLong();
setQq(qqedit);
phonenum[i][4] = String.valueOf(getQq());
};break;
case 6:{
System.out.println("請(qǐng)重新輸入聯(lián)系人的地址");
String addressedit=scanner.next();
setAddress(addressedit);
phonenum[i][5] = getAddress();
};break;
}
}
}
}
public int bool(boolean b){
int b1 = 0;
if(b==true){
b1=1;
}
else if(b==false){
b1=0;
}
return b1;
}
public void findname(){
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入要查找的聯(lián)系人的姓名");
String name = scanner.next();
int b1=0;
int i=0;
for(i=0;phonenum[i][0]!=null;i++){
boolean b = phonenum[i][0].equals(name);
b1=bool(b);
if(b1==1)break;
}
if(b1==1){
for(int j=0;j<6;j++)
System.out.print(phonenum[i][j]+",");
System.out.println();
}
else if(b1==0){
System.out.println("對(duì)不起漠酿,您所輸入的用戶不存在");
System.out.println();
}
}
public void findall(){
for(int i=0;phonenum[i][0]!=null;i++){
for(int j=0;j<6;j++){
System.out.print(phonenum[i][j]+",");
}
System.out.println();
}
}
}
class Testphonenum {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
Phonenumber pn = new Phonenumber();
while(true){
System.out.println("--------------電話本管理系統(tǒng)--------------");
System.out.println("1.添加 2.刪除 3.修改 4.查詢所有 5.根據(jù)姓名查詢 0.退出");
System.out.println("--------------電話本管理系統(tǒng)--------------");
System.out.println("請(qǐng)選擇業(yè)務(wù):");
int num=s.nextInt();
if(num==0)break;
else{
switch(num){
case 1:pn.add();break;
case 2:pn.del();break;
case 3:pn.edit();break;
case 4:pn.findall();break;
case 5:pn.findname();break;
}
}
}
}
}
大家看到了代碼以后冯凹,可能就知道是什么東西了谎亩,沒錯(cuò),我們通過數(shù)組來存儲(chǔ)聯(lián)系人信息宇姚,當(dāng)然這里的代碼是我最初的代碼匈庭,沒有經(jīng)過優(yōu)化,所以有很多代碼相對(duì)是冗余的浑劳,浪費(fèi)了資源阱持,因筆者優(yōu)化后的代碼不在自己電腦上,所以就先發(fā)布一個(gè)復(fù)雜版本分享給大家魔熏,代碼的優(yōu)化就交給大家了衷咽。
首先我們需要定義一個(gè)數(shù)組鸽扁,這里考慮到查詢的節(jié)省時(shí)間,將數(shù)組定義為二維數(shù)組镶骗,定義100行6列桶现,基本上來說是夠用的,那么我們來分析一下鼎姊,如果說我們定義第一列全部都是姓名的話骡和,那么在進(jìn)行查詢操作的時(shí)候只需要全部查詢第一行就好了。
這樣我們來簡(jiǎn)單的說一下剩下的幾個(gè)方法的定義吧相寇,首先getXXX()和setXXX()方法慰于,用來設(shè)置我們要存放的數(shù)據(jù),然后定義了幾個(gè)方法唤衫,包括添加婆赠、修改、刪除战授、查詢页藻、查詢所有,通過創(chuàng)建對(duì)象調(diào)用不同的方法植兰,即可實(shí)現(xiàn)不同的功能份帐,目前優(yōu)化的只有年齡的輸入可以進(jìn)行格式識(shí)別,其他的成員變量沒有添加格式的判斷楣导。
因本人水平有限废境,后續(xù)還會(huì)不斷完善,謝謝大家的瀏覽