C++實(shí)現(xiàn)通訊錄管理系統(tǒng)
本文實(shí)例為大家分享了C++通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#include<iostream> #include<string> using namespace std; #define 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 { string name; cout << "請輸入姓名:" << endl; 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 || sex == 2) { abs->personArray[abs->m_Size].m_Sex = sex; break; } cout << "輸入有誤,請重新輸入!" << endl; } cout << "請輸入年齡:" << endl; int age = 0; cin >> age; abs->personArray[abs->m_Size].m_Age = age; cout << "請輸入聯(lián)系電話:" << 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("pause"); system("cls"); } } void showPerson(Addressbooks * abs) { if (abs->m_Size == 0) { cout << "當(dāng)前記錄為空" << endl; } else { 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("pause"); system("cls"); } int isExist(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 << "請輸入要刪除的聯(lián)系人:" << endl; string name; cin >> name; 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; } system("pause"); system("cls"); } //查找聯(lián)系人 void findPerson(Addressbooks * abs) { cout << "請輸入要查找的聯(lián)系人:" << endl; string name; cin >> name; int ret = isExist(abs, name); if (ret != -1) { 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; } else { cout << "查無此人" << endl; } system("pause"); system("cls"); } //修改聯(lián)系人 void modifyPerson(Addressbooks * abs) { cout << "請輸入要修改的聯(lián)系人:" << endl; string name; cin >> name; int ret = isExist(abs, name); if (ret != -1) { string name; cout << "請輸入姓名:" << endl; cin >> name; abs->personArray[ret].m_Name = name; cout << "請輸入性別:" << endl; cout << "1 --- 男" << endl; cout << "2 --- 女" << endl; int sex = 0; while (true) { cin >> sex; if (sex == 1 || sex == 2) { abs->personArray[ret].m_Sex = sex; break; } cout << "輸入有誤,請重新輸入!" << endl; } cout << "請輸入年齡:" << endl; int age = 0; cin >> age; abs->personArray[ret].m_Age = age; cout << "請輸入聯(lián)系電話:" << endl; string phone; cin >> phone; abs->personArray[ret].m_Phone = phone; cout << "請輸入家庭住址:" << endl; string address; cin >> address; abs->personArray[ret].m_Addr = address; cout << "修改成功" << endl; } else { cout << "查無此人" << endl; } system("pause"); system("cls"); } //清空聯(lián)系人 void cleanPerson(Addressbooks * abs) { abs->m_Size = 0; cout << "通訊錄已清空" << endl; system("pause"); system("cls"); } //顯示菜單 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; } int main() { Addressbooks abs; abs.m_Size = 0; int select = 0; while (true) { showMenu(); cin >> select; switch (select) { case 1: //添加聯(lián)系人 addPerson(&abs); break; case 2: //顯示聯(lián)系人 showPerson(&abs); break; case 3: //刪除聯(lián)系人 /*{ cout << "請輸入刪除聯(lián)系人姓名:" << endl; string name; cin >> name; if (isExist(&abs, name) == -1) { cout << "查無此人" << endl; } else { cout << "找到此人" << endl; } }*/ deletePerson(&abs); break; case 4: //查找聯(lián)系人 findPerson(&abs); break; case 5: //修改聯(lián)系人 modifyPerson(&abs); break; case 6: //清空聯(lián)系人 cleanPerson(&abs); break; case 0: cout << "歡迎下次使用" << endl; system("pause"); return 0; break; default: break; } } system("pause"); return 0; }
更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言中棧和隊列實(shí)現(xiàn)表達(dá)式求值的實(shí)例
這篇文章主要介紹了C語言中棧和隊列實(shí)現(xiàn)表達(dá)式求值的實(shí)例的相關(guān)資料,這里主要是對數(shù)據(jù)結(jié)構(gòu)中棧和隊列的理解和應(yīng)用,需要的朋友可以參考下2017-08-08C語言實(shí)現(xiàn)數(shù)組移位、前移、后移與整體移動實(shí)例代碼
C語言中通常可以使用循環(huán)語句實(shí)現(xiàn)數(shù)組的移動,下面這篇文章主要給大家介紹了關(guān)于C語言實(shí)現(xiàn)數(shù)組移位、前移、后移與整體移動的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼
這篇文章主要介紹了C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-03-03數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組翻轉(zhuǎn)的實(shí)現(xiàn)方法
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組翻轉(zhuǎn)的實(shí)現(xiàn)方法的相關(guān)資料,這里用幾種實(shí)現(xiàn)方法來實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10C++ 流插入和流提取運(yùn)算符的重載的實(shí)現(xiàn)
這篇文章主要介紹了C++ 流插入和流提取運(yùn)算符的重載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12C語言實(shí)現(xiàn)簡易通訊錄(靜態(tài)版本)的代碼分享
這篇文章主要為大家詳細(xì)介紹了如何錄音C語言實(shí)現(xiàn)一個簡易的通訊錄(靜態(tài)版本),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-10-10C語言高效實(shí)現(xiàn)向量循環(huán)移位
這篇文章主要為大家詳細(xì)介紹了C語言高效實(shí)現(xiàn)向量循環(huán)移位,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03