用C++實現一個通訊錄管理系統,實現
1、添加聯系人
2、顯示聯系人
3、刪除聯系人
4、查找聯系人
5、修改聯系人
6、清空聯系人
0、退出通訊錄
以上七個功能。
提示:以下是本篇文章正文內容,下面案例可供參考
void showMenu(){cout<< "***********************"<< endl;
cout<< "***** 1、添加聯系人 *****"<< endl;
cout<< "***** 2、顯示聯系人 *****"<< endl;
cout<< "***** 3、刪除聯系人 *****"<< endl;
cout<< "***** 4、查找聯系人 *****"<< endl;
cout<< "***** 5、修改聯系人 *****"<< endl;
cout<< "***** 6、清空聯系人 *****"<< endl;
cout<< "***** 0、退出通訊錄 *****"<< endl;
cout<< "***********************"<< endl;
}
2. 添加聯系人實現步驟:設計聯系人結構體,設計通訊錄結構體,main函數中創建通訊錄,封裝添加聯系人函數,測試添加聯系人功能。
#include#includeusing namespace std;
const int MAX = 1000;
//聯系人結構體
struct Person{string m_Name;
int m_Sex;
int m_Age;
string m_Phone;
string m_Addr;
};
//通訊錄結構體
struct AddressBooks{struct Person personArray[MAX];
int m_size;
};
//添加聯系人
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() {// 創建通訊錄
AddressBooks abs;
// 初始化通訊錄中人數
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.顯示聯系人代碼如下:
//顯示聯系人
void showPerson(AddressBooks * abs){if(abs->m_size == 0){cout<< "通信錄為空,請添加聯系人"<< 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.刪除聯系人實現步驟:先通過名字判斷該聯系人是否在通訊錄中存在,若存在,則刪除,若不存在,則提示不存在。
由于刪除聯系人、查找聯系人、修改聯系人都需要提前判斷聯系人是否存在,所以將判斷是否存在寫成一個函數isExit()
函數來進行判斷。
代碼如下:
//判斷聯系人是否存在
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;
}
//刪除聯系人
void deletePerson(AddressBooks * abs){cout<< "請輸入要刪除的聯系人姓名"<< 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()
函數輸入通信錄地址和查找的聯系人姓名,若聯系人存在,則返回聯系人所對應的下標,若不存在,則返回-1。
使用該語句:abs->personArray[i] = abs->personArray[i+1];
,將從下標(即需要刪除的聯系人)開始后的聯系人,依次覆蓋前一個下標,即完成了刪除操作。
代碼如下:
void findPerson(AddressBooks * abs){cout<< "請輸入要查找的聯系人姓名"<< 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.修改聯系人代碼如下:
//修改聯系人
void modifyPerson(AddressBooks * abs){cout<< "請輸入要修改的聯系人姓名"<< 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.清空聯系人代碼如下:
//清空聯系人
void cleanPerson(AddressBooks * abs){abs->m_size = 0;
system("cls"); //清空界面
}
將通信錄的size置為0,即完成清空操作。
以上則使用C++完成了一個簡單的通信錄管理系統。完整代碼見鏈接通信錄管理系統。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享名稱:C++項目(一):通訊錄管理系統-創新互聯
文章位置:http://m.kartarina.com/article8/ccgpip.html
成都網站建設公司_創新互聯,為您提供網站營銷、營銷型網站建設、App開發、網站設計、標簽優化、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯