生活随笔
收集整理的這篇文章主要介紹了
C++ 通讯录设计(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、刪除聯系人
功能描述:按照姓名進行刪除指定聯系人
刪除聯系人實現步驟:
●封裝檢測聯系人是否存在
●封裝刪除聯系人函數
●測試刪除聯系人功能
1.1封裝檢測聯系人是否存在
設計思路:
刪除聯系人前,我們需要先判斷用戶輸入的聯系人是否存在,如果存在刪除,不存在提示用戶沒有要刪除的聯系人
因此我們可以把檢測聯系人是否存在封裝成一個函數中, 如果存在,返回聯系人在通訊錄中的位置,不存在返回-1
//檢測聯系人是否存在,如果存在,返回聯系人所在數組中的具體位置,不存在返回-1
//參數1 通訊錄參數2 對比姓名
int isExist(Addressbooks * abs, string name) {for (int i = 0; i < abs ->m_Size; i++){//找到了if (abs->personArray[i].m_Name == name){return i;}}//沒有找到返回-1return -1;
}
int main() {//創建通訊錄結構體變量Addressbooks abs;//初始化通訊錄中當前人員個數abs.m_Size = 0;int select = 0;//創建用戶選擇輸入菜單的變量while (true){showMenu();cin >> select;switch (select){case 1: //1、添加聯系人addPerson(&abs); //利用地址傳遞可以修飾形參break;case 2: //2、顯示聯系人showPerson(&abs);break;case 3: //3、刪除聯系人{cout << "請輸入刪除聯系人姓名 : " << endl;string name;cin >> name;if (isExist(&abs, name) == -1){cout << " 查無此人" << endl;}else{cout << "找到此人" << endl;}}break;case 4: //4、查找聯系人break;case 5: //5、修改聯系人break;case 6: //6、清空聯系人break;case 0: //0、退出通訊錄cout << "歡迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");}
測試
1.2封裝刪除聯系人函數
根據用戶輸入的聯系人判斷該通訊錄中是否有此人
查找到進行刪除,并提示刪除成功
查不到提示查無此人。
//3、刪除指定聯系人
void deletePerson(Addressbooks * abs){cout << " 請輸入您要刪除的聯系人" << endl;string name;cin >> name;//ret == -1未查到 .//ret != -1查到 了int ret = isExist(abs,name);if (ret != -1) {// 查找到人,要進行刪除操作for (int i = ret; i < abs->m_Size; i++) {//數據前移abs->personArray[i] = abs->personArray[i + 1];}abs->m_Size--; //更新通訊錄中的人員數cout << "刪除成功" <<endl;}else {cout << "未找到此人" << endl;}system("pause");system("cls");}
int main() {//創建通訊錄結構體變量Addressbooks abs;//初始化通訊錄中當前人員個數abs.m_Size = 0;int select = 0;//創建用戶選擇輸入菜單的變量while (true){showMenu();cin >> select;switch (select){case 1: //1、添加聯系人addPerson(&abs); //利用地址傳遞可以修飾形參break;case 2: //2、顯示聯系人showPerson(&abs);break;case 3: //3、刪除聯系人/**{cout << "請輸入刪除聯系人姓名 : " << endl;string name;cin >> name;if (isExist(&abs, name) == -1){cout << " 查無此人" << endl;}else{ cout << "找到此人" << endl;}}*/deletePerson(&abs);break;case 4: //4、查找聯系人break;case 5: //5、修改聯系人break;case 6: //6、清空聯系人break;case 0: //0、退出通訊錄cout << "歡迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");}
現在添加了一名聯系人
刪除成功:
是不是真的刪除成功(當前記錄為空):
?
?
總結
以上是生活随笔為你收集整理的C++ 通讯录设计(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。