C++ 通讯录管理系统
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C++ 通讯录管理系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                程序功能
通過C++設計的一個通訊錄管理系統,能實現對聯系人的添加,顯示,刪除,查找,修改,清空的作用。
源代碼
#include<iostream> #include<string> #include<cstdlib> #define MAX 1000 using namespace std; struct Person//聯系人結構體 {string name;int age;string sex;string phone;string addr; }; struct addreassbooks//通訊錄結構體 {struct Person personarry[MAX];//通訊錄中保存的聯系人數組 int m_Size;//通訊錄中當前記錄的聯系人數目 }; void mainMenu()//輸出菜單 {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; } void addPerson(addreassbooks* abs)//將聯系人的基本信息存入 {if (abs->m_Size == MAX)//如果指針指向了最大值,即聯系人已滿 { cout << "聯系人已滿,無法添加" << endl;return;}//聯系人未滿執行以下操作 string name;cout << "請輸入姓名" << endl;cin >> name;abs->personarry[abs->m_Size].name = name;string sex;cout << "請輸入性別" << endl;cin >> sex;abs->personarry[abs->m_Size].sex = sex;int age;cout << "請輸入年齡" << endl;cin >> age;abs->personarry[abs->m_Size].age = age;string phone;cout << "請輸入電話" << endl;cin >> phone;abs->personarry[abs->m_Size].phone = phone;string addr;cout << "請輸入地址" << endl;cin >> addr;abs->personarry[abs->m_Size].addr = addr;//更新通訊錄人數abs->m_Size++;cout << "添加成功" << endl;system("pause");system("cls"); } void printPerson(addreassbooks* abs)//顯示聯系人 {if (abs->m_Size == 0)//如果沒有存入聯系人,即 m_Size為0 {cout << "當前記錄為空" << endl;}else{for (int i = 0; i < abs->m_Size; i++)//用循環分別展示每個聯系人的詳細信息 {cout << "姓名\t" << abs->personarry[i].name << endl;cout << "性別\t" << abs->personarry[i].sex << endl;cout << "年齡\t" << abs->personarry[i].age << endl;cout << "電話\t" << abs->personarry[i].phone << endl;cout << "地址\t" << abs->personarry[i].addr << endl;cout << "\n";}}system("pause");system("cls"); } int checkPerson(addreassbooks* abs, string name)//查找聯系人 {for (int i = 0; i < abs->m_Size; i++)//遍歷整個電話本 {if (abs->personarry[i].name == name)//判斷聯系人的姓名與輸入的名字相{return i;//相同返回 i}}return -1;//不相同返回 -1 } void deletePerson(addreassbooks* abs)//刪除聯系人 { string dname;cout << "請輸入你要刪除的人名" << endl;cin >> dname;int ret = checkPerson(abs, dname);if (ret == -1){cout << "查無此人" << endl;}//刪除聯系人的操作,將指針往后移動一位 else{for (int i = ret; i < abs->m_Size; i++){abs->personarry[i] = abs->personarry[i + 1];}abs->m_Size--;cout << "刪除成功" << endl;}system("pause");system("cls"); } void findPerson(addreassbooks* abs)//查找聯系人 {string fname;cout << "請輸入要查找的聯系人姓名" << endl;cin >> fname;int result = checkPerson(abs, fname);if (result == -1){cout << "查無此人" << endl;}//輸出要查找的聯系人信息 else{cout << "姓名\t" << abs->personarry[result].name << endl;cout << "性別\t" << abs->personarry[result].sex << endl;cout << "年齡\t" << abs->personarry[result].age << endl;cout << "電話\t" << abs->personarry[result].phone << endl;cout << "地址\t" << abs->personarry[result].addr << endl;}system("pause");system("cls"); } void modifyPerson(addreassbooks* abs)//修改聯系人 {string mname;cout << "請輸入要修改的聯系人姓名" << endl;cin >> mname;int result = checkPerson(abs, mname);if (result == -1){cout << "查無此人" << endl;}//填入修改之后的信息 else{string name;cout << "請輸入姓名" << endl;cin >> name;abs->personarry[result].name = name;string sex;cout << "請輸入性別" << endl;cin >> sex;abs->personarry[result].sex = sex;int age;cout << "請輸入年齡" << endl;cin >> age;abs->personarry[result].age = age;string phone;cout << "請輸入電話" << endl;cin >> phone;abs->personarry[result].phone = phone;string addr;cout << "請輸入地址" << endl;cin >> addr;abs->personarry[result].addr = addr; cout << "修改成功" << endl;}system("pause");system("cls"); } void cleanPerson(addreassbooks*abs)//邏輯清空 {abs->m_Size = 0;cout << "通訊錄清空成功!" << endl;system("pause");system("cls"); } int main(void) {//創建通訊錄結構體變量addreassbooks abs;//初始化通訊錄中當前人員的個數abs.m_Size = 0;int select = 0;while (1){mainMenu();cin >> select;switch (select){case 1://添加聯系人addPerson(&abs);break;case 2://顯示聯系人printPerson(&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;system("pause");return 0;default:break;}} }程序總結
通過創建這個通訊錄管理系統讓我們把學過的所有知識都聯系在了一起,我感覺這一個通訊錄管理系統最重要的就是你要學會熟練的運用結構體和對函數的遞歸調用。在涉及到對聯系人的顯示,刪除,查找,修改功能時基本上每一步都需要用到查找聯系人的函數,先判斷聯系人是否存在,然后再對其進行操作。
 這一個通訊錄管理系統是一個很好的例子,要想掌握好一門語言就必須要能熟練的寫出這個基礎的通訊錄管理系統,我們要把這個程序的每一個步驟都弄懂,為更深層次的學習打下堅實的基礎。
總結
以上是生活随笔為你收集整理的C++ 通讯录管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 抄底绝招:底部大阳!
 - 下一篇: Django 2.1.7 MVT模型示例