C++項目(一):通訊錄管理系統-創新互聯

文章目錄
  • 項目介紹
  • 實現步驟
    • 1. 菜單顯示
    • 2. 添加聯系人
    • 3.顯示聯系人
    • 4.刪除聯系人
    • 5.查找聯系人
    • 6.修改聯系人
    • 7.清空聯系人
  • 總結

創新互聯是一家專業提供路北企業網站建設,專注與網站建設、成都做網站、HTML5建站、小程序制作等業務。10年已為路北眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
項目介紹

用C++實現一個通訊錄管理系統,實現
1、添加聯系人
2、顯示聯系人
3、刪除聯系人
4、查找聯系人
5、修改聯系人
6、清空聯系人
0、退出通訊錄
以上七個功能。


提示:以下是本篇文章正文內容,下面案例可供參考

實現步驟 1. 菜單顯示
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];,將從下標(即需要刪除的聯系人)開始后的聯系人,依次覆蓋前一個下標,即完成了刪除操作。


5.查找聯系人

代碼如下:

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。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 无码国产69精品久久久久孕妇| 亚洲欧洲日产国码无码久久99| 亚洲桃色AV无码| 亚洲午夜国产精品无码| 久久精品成人无码观看56| 免费无码又爽又刺激毛片| 国产羞羞的视频在线观看 国产一级无码视频在线 | 无码国模国产在线观看| 亚洲AV永久青草无码精品| 无码熟熟妇丰满人妻啪啪软件| 中文字幕精品无码久久久久久3D日动漫| 亚洲AV无码久久久久网站蜜桃| 亚洲成av人片在线观看天堂无码| 精品日韩亚洲AV无码一区二区三区 | 伊人天堂av无码av日韩av| 本免费AV无码专区一区| 性饥渴少妇AV无码毛片| 亚洲AV无码乱码在线观看富二代| 久久久精品天堂无码中文字幕| 亚洲av无码精品网站| 国产在线无码不卡影视影院| 国产精品亚洲а∨无码播放麻豆 | 成人午夜精品无码区久久| 2019亚洲午夜无码天堂| 无码中文字幕日韩专区| 国产精品亚洲а∨无码播放| 国产精品无码素人福利不卡| 精品无码中出一区二区| 国产成人无码AV在线播放无广告| 久久精品无码专区免费青青| 国产乱人伦Av在线无码| 亚洲大尺度无码无码专区| 国产成人A亚洲精V品无码| 超清无码无卡中文字幕| 台湾无码AV一区二区三区| 国产成人无码精品久久久免费| 精选观看中文字幕高清无码| V一区无码内射国产| 免费无码又爽又刺激高潮软件| 国产精品无码免费专区午夜| 中文字幕无码不卡在线|