
用C++實現(xiàn)一個通訊錄管理系統(tǒng),實現(xiàn)
1、添加聯(lián)系人
2、顯示聯(lián)系人
3、刪除聯(lián)系人
4、查找聯(lián)系人
5、修改聯(lián)系人
6、清空聯(lián)系人
0、退出通訊錄
以上七個功能。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
void showMenu(){cout<< "***********************"<< endl;
cout<< "***** 1、添加聯(lián)系人 *****"<< endl;
cout<< "***** 2、顯示聯(lián)系人 *****"<< endl;
cout<< "***** 3、刪除聯(lián)系人 *****"<< endl;
cout<< "***** 4、查找聯(lián)系人 *****"<< endl;
cout<< "***** 5、修改聯(lián)系人 *****"<< endl;
cout<< "***** 6、清空聯(lián)系人 *****"<< endl;
cout<< "***** 0、退出通訊錄 *****"<< endl;
cout<< "***********************"<< endl;
}2. 添加聯(lián)系人實現(xiàn)步驟:設(shè)計聯(lián)系人結(jié)構(gòu)體,設(shè)計通訊錄結(jié)構(gòu)體,main函數(shù)中創(chuàng)建通訊錄,封裝添加聯(lián)系人函數(shù),測試添加聯(lián)系人功能。
#include#includeusing namespace std;
const int MAX = 1000;
//聯(lián)系人結(jié)構(gòu)體
struct Person{string m_Name;
int m_Sex;
int m_Age;
string m_Phone;
string m_Addr;
};
//通訊錄結(jié)構(gòu)體
struct AddressBooks{struct Person personArray[MAX];
int m_size;
};
//添加聯(lián)系人
void addPerson(AddressBooks *abs){if(abs->m_size == MAX){cout<< "通訊錄已滿,無法添加"<< endl;
return;
}
else{cout<< "請輸入姓名: "<< endl;
string name;
cin >>name;
abs->personArray[abs->m_size].m_Name = name;
cout<< "請輸入性別: "<< endl;
cout<< "1:男 "<< endl;
cout<< "2:女 "<< endl;
int sex = 0;
while(true){cin >>sex;
if(sex == 1 or sex == 2){abs->personArray[abs->m_size].m_Sex = sex;
break;
}
else{cout<< "輸入有誤,請重新輸入"<< endl;
}
}
cout<< "請輸入年齡: "<< endl;
int age = 0;
while(true){cin >>age;
if(age >= 0 and age<= 200){abs->personArray[abs->m_size].m_Age = age;
break;
}
else{cout<< "輸入有誤,請重新輸入"<< endl;
}
}
cout<< "請輸入電話: "<< endl;
string phone;
cin >>phone;
abs->personArray[abs->m_size].m_Phone = phone;
cout<< "請輸入地址: "<< endl;
string address;
cin >>address;
abs->personArray[abs->m_size].m_Addr = address;
}
//更新通信錄
abs->m_size ++;
cout<< "添加成功!"<< endl;
system("cls"); //清空界面
} int main() {// 創(chuàng)建通訊錄
AddressBooks abs;
// 初始化通訊錄中人數(shù)
abs.m_size = 0;
while(true){showMenu();
int select = 0;
cin >>select;
switch(select){case 1:
addPerson(&abs);
break;
case 2:
showPerson(&abs);
break;
case 3:
deletePerson(&abs);
break;
case 4:
findPerson(&abs);
break;
case 5:
modifyPerson(&abs);
break;
case 6:
cleanPerson(&abs);
break;
case 0:
cout<< "歡迎下次使用"<< endl;
return 0;
break;
}
}
return 0;
}注意事項:通信錄大容量為MAX = 1000,且每次更新完需要將通信錄size加1.
3.顯示聯(lián)系人代碼如下:
//顯示聯(lián)系人
void showPerson(AddressBooks * abs){if(abs->m_size == 0){cout<< "通信錄為空,請?zhí)砑勇?lián)系人"<< endl;
}
for(int i = 0; i< abs->m_size; i ++){cout<< "姓名: "<< abs->personArray[i].m_Name<< "\t";
cout<< "性別: "<< (abs->personArray[i].m_Sex == 1 ? "男" : "女")<< "\t";
cout<< "年齡: "<< abs->personArray[i].m_Age<< "\t";
cout<< "電話: "<< abs->personArray[i].m_Phone<< "\t";
cout<< "住址: "<< abs->personArray[i].m_Addr<< endl;
}
system("cls"); //清空界面
}4.刪除聯(lián)系人實現(xiàn)步驟:先通過名字判斷該聯(lián)系人是否在通訊錄中存在,若存在,則刪除,若不存在,則提示不存在。
由于刪除聯(lián)系人、查找聯(lián)系人、修改聯(lián)系人都需要提前判斷聯(lián)系人是否存在,所以將判斷是否存在寫成一個函數(shù)isExit()函數(shù)來進行判斷。
代碼如下:
//判斷聯(lián)系人是否存在
int isExit(AddressBooks * abs, string name){for(int i = 0; i< abs->m_size; i ++){if(abs->personArray[i].m_Name == name){return i;
}
}
return -1;
}
//刪除聯(lián)系人
void deletePerson(AddressBooks * abs){cout<< "請輸入要刪除的聯(lián)系人姓名"<< endl;
string name;
cin >>name;
int ret = isExit(abs, name);
if(ret == -1){cout<< "通訊錄中此人不存在"<< endl;
}
else{for(int i = ret; i< abs->m_size; i ++){abs->personArray[i] = abs->personArray[i+1];
}
cout<< "查找到此人,刪除成功"<< endl;
}
abs->m_size--;
system("cls"); //清空界面
}注意事項:isExit()函數(shù)輸入通信錄地址和查找的聯(lián)系人姓名,若聯(lián)系人存在,則返回聯(lián)系人所對應(yīng)的下標,若不存在,則返回-1。
使用該語句:abs->personArray[i] = abs->personArray[i+1];,將從下標(即需要刪除的聯(lián)系人)開始后的聯(lián)系人,依次覆蓋前一個下標,即完成了刪除操作。
代碼如下:
void findPerson(AddressBooks * abs){cout<< "請輸入要查找的聯(lián)系人姓名"<< endl;
string name;
cin >>name;
int ret = isExit(abs, name);
if(ret == -1){cout<< "通訊錄中此人不存在"<< endl;
}
else{cout<< "查找到此人"<< endl;
cout<< "姓名: "<< abs->personArray[ret].m_Name<< "\t";
cout<< "性別: "<< (abs->personArray[ret].m_Sex == 1 ? "男" : "女")<< "\t";
cout<< "年齡: "<< abs->personArray[ret].m_Age<< "\t";
cout<< "電話: "<< abs->personArray[ret].m_Phone<< "\t";
cout<< "住址: "<< abs->personArray[ret].m_Addr<< endl;
}
system("cls"); //清空界面
}
6.修改聯(lián)系人代碼如下:
//修改聯(lián)系人
void modifyPerson(AddressBooks * abs){cout<< "請輸入要修改的聯(lián)系人姓名"<< endl;
string name;
cin >>name;
int ret = isExit(abs, name);
if(ret == -1){cout<< "通訊錄中此人不存在"<< endl;
}
else{cout<< "查找到此人"<< endl;
string name;
cout<< "請重新輸入姓名: "<< endl;
cin >>name;
abs->personArray[ret].m_Name = name;
int sex;
cout<< "請重新輸入性別: "<< endl;
cout<< "1:男 "<< endl;
cout<< "2:女 "<< endl;
cin >>sex;
abs->personArray[ret].m_Sex = sex;
int age;
cout<< "請重新輸入年齡: "<< endl;
cin >>age;
abs->personArray[ret].m_Age = age;
string phone;
cout<< "請重新輸入電話: "<< endl;
cin >>phone;
abs->personArray[ret].m_Phone = phone;
string address;
cout<< "請重新輸入地址: "<< endl;
cin >>address;
abs->personArray[ret].m_Addr = address;
}
system("cls"); //清空界面
}7.清空聯(lián)系人代碼如下:
//清空聯(lián)系人
void cleanPerson(AddressBooks * abs){abs->m_size = 0;
system("cls"); //清空界面
}將通信錄的size置為0,即完成清空操作。
以上則使用C++完成了一個簡單的通信錄管理系統(tǒng)。完整代碼見鏈接通信錄管理系統(tǒng)。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:C++項目(一):通訊錄管理系統(tǒng)-創(chuàng)新互聯(lián)
文章位置:http://chinadenli.net/article8/ccgpip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、營銷型網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站設(shè)計、標簽優(yōu)化、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容