前言:通訊錄非常適合前期需要練習(xí)語法的小伙伴,效果非常好。
水再渾濁,只要長久沉淀,依然會分外清澈。
人再愚鈍,只要足夠努力,一樣能改寫命運。
此通訊錄的功能包括:
1.刪除聯(lián)系人
2.增加聯(lián)系人
3.展示已有聯(lián)系人
4.查找聯(lián)系人
5.排序聯(lián)系人
6.退出通訊錄
public class Main {
public static IMainList func(){
AddressList.menu();//打印菜單
Scanner scanner=new Scanner(System.in);
System.out.println("請選擇->");
int k= scanner.nextInt();
if(k==1){
return new DeleatePerson();//刪除聯(lián)系人
}else if(k==2) {
return new AddPerson();//增加聯(lián)系人
}else if(k==3){
return new ShowPerson();//展示聯(lián)系人
}else if(k==4){
return new LookupPerson();//查詢聯(lián)系人
}else if(k==5){
return new SortPerson();//聯(lián)系人排序
}
return null;
}
public static void main(String[] args) {
//AddPerson addPerson=new AddPerson();//創(chuàng)建通信錄
AddressList addressList=new AddressList();
while(true) {
IMainList iMainList = func();//向上轉(zhuǎn)型,執(zhí)行通訊錄的相關(guān)操作
if(iMainList==null){
System.out.println("選擇錯誤,退出通訊錄系統(tǒng)!");
break;
}
iMainList.func(addressList);
}
}
}
聯(lián)系人包含姓名、電話號、出生年月信息。
public class Person1 implements Comparable<Person1>{
public String name;
private String Telephone;//電話號
private int year;//出生年月
private int month;
private int day;
public Person1(String name, String telephone, int year, int month, int day) {
this.name = name;
Telephone = telephone;
this.year = year;
this.month = month;
this.day = day;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return Telephone;
}
public void setTelephone(String telephone) {
Telephone = telephone;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
@Override
public String toString() {
return "Person1{" +
"name='" + name + '\'' +
", Telephone='" + Telephone + '\'' +
", year=" + year +
", month=" + month +
", day=" + day +
'}';
}
@Override
public int compareTo(Person1 o) {
return this.name.compareTo(o.name);
}
}
IMainList是一個接口主要實現(xiàn)通過向上轉(zhuǎn)型調(diào)用某個功能。
public interface IMainList {
public abstract void func(AddressList addressList);
}
定義了聯(lián)系人數(shù)組用于存放聯(lián)系人信息,和菜單功能。
public class AddressList {//通訊錄
Person1[] person=new Person1[100];
public static int count=0;
public AddressList() {
}
public static void menu(){
System.out.println("=================");
System.out.println("1.刪除聯(lián)系人");
System.out.println("2.增加聯(lián)系人");
System.out.println("3.展示已有聯(lián)系人");
System.out.println("4.查找聯(lián)系人");
System.out.println("5.排序聯(lián)系人");
System.out.println("6.退出通訊錄");
System.out.println("=================");
}
}
AddPerson類實現(xiàn)了IMainList接口,主要重寫方法,增加聯(lián)系人操作。
public class AddPerson implements IMainList {
@Override
public void func(AddressList addressList) {
Scanner scanner =new Scanner(System.in);
System.out.println("請輸入姓名");
String name= scanner.nextLine();
System.out.println("請輸入電話號");
String Telephone= scanner.nextLine();
System.out.println("請輸入年份");
int year= scanner.nextInt();
System.out.println("請輸入月份");
int month= scanner.nextInt();
System.out.println("請輸入日期");
int day= scanner.nextInt();
Person1 per=new Person1(name,Telephone,year,month,day);
addressList.person[addressList.count]=per;
System.out.println("添加聯(lián)系人成功");
addressList.count++;
}
}
刪除聯(lián)系人功能
public class DeleatePerson implements IMainList {
@Override
public void func(AddressList addressList) {
//刪除聯(lián)系人
Scanner scanner =new Scanner(System.in);
System.out.println("請輸入要刪除的聯(lián)系人姓名:");
String n= scanner.nextLine();
for(int i=0;i<AddressList.count;i++){
if(n.equals(addressList.person[i].getName())){
for(int j=i;j<AddressList.count-1;j++){
addressList.person[j]=addressList.person[j+1];
}
break;
}
}
addressList.person[AddressList.count-1]=null;
AddressList.count-=1;
System.out.println("刪除"+n+"聯(lián)系人成功");
}
}
查找聯(lián)系人功能
public class LookupPerson implements IMainList {
@Override
public void func(AddressList addressList) {
Scanner scanner =new Scanner(System.in);
System.out.println("請輸入要查找的聯(lián)系人->");
String n= scanner.nextLine();
int flag=0;
for(int i=0;i<=AddressList.count;i++){
if(n.equals(addressList.person[i].getName())){
System.out.println("找到了-->"+n+ " 聯(lián)系人");
flag=1;
break;
}
}
if(flag==0){
System.out.println("找不到此聯(lián)系人");
}
}
}
顯示已有聯(lián)系人的信息
public class ShowPerson implements IMainList {
@Override
public void func(AddressList addressList) {
for(int i=0;i<addressList.count;i++){
System.out.println(addressList.person[i].toString());
}
}
}
對聯(lián)系人進(jìn)行排序(通過年份排序)文章來源:http://www.zghlxwxcb.cn/news/detail-512751.html
public class SortPerson implements IMainList {
@Override
public void func(AddressList addressList) {
Person1 person1=new Person1("1","222",1,1,1);
for(int i=0;i<AddressList.count-1;i++){
for(int j=0;j<AddressList.count-1-i;j++){
if(addressList.person[j].getYear()>addressList.person[j+1].getYear()){
person1=addressList.person[j];
addressList.person[j]=addressList.person[j+1];
addressList.person[j+1]=person1;
}
}
}
System.out.println("排序完成!");
}
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-512751.html
到了這里,關(guān)于Java實現(xiàn)通訊錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!