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;
}
}
//沒有找到返回-1
return -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");
}
現在添加了一名聯繫人
刪除成功:
是不是真的刪除成功(當前記錄爲空):