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