日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++入门项目——通讯管理系统

發布時間:2024/8/1 c/c++ 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++入门项目——通讯管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通訊管理系統

文章目錄

    • 通訊管理系統
      • 1、系統需求
      • 2、菜單功能
      • 3、退出功能
      • 4、添加聯系人
        • 4.1 設計聯系人結構體
        • 4.2 設計通訊錄結構體
        • 4.3 main函數創建通訊錄
        • 4.4 封裝添加聯系人函數
      • 5、顯示聯系人
      • 6、刪除聯系人
        • 6.1 檢測聯系人是否存在
        • 6.2 封裝刪除聯系人函數
      • 7、查找聯系人
      • 8、修改聯系人
      • 9 清空通訊錄
      • 10 全部代碼

1、系統需求

說明:通訊錄是一個可以記錄親人、好友信息的工具

系統所需要的功能:

  • (1)添加聯系人:向通訊錄添加新人,信息包括(姓名、性別、年齡、聯系電話、家庭住址).
  • (2)顯示聯系人:顯示通訊錄中記錄聯系人信息
  • (3)刪除聯系人:按照姓名進行刪除指定聯系人
  • (4)查找聯系人:按照姓名查看指定聯系人信息
  • (5)修改聯系人:按照姓名重新修改指定聯系人
  • (6)清空聯系人:清空通訊錄所有信息
  • (7)退出通訊錄:退出當前使用的通訊錄

2、菜單功能

作用:用戶選擇功能界面

步驟:

  • 封裝函數顯示該界面:showMenu()

  • 在main函數中調用

cout << "\t\t||-------------------------||"<< endl;cout << "\t\t|| 通訊錄管理系統 ||" << endl;cout << "\t\t||-------------------------||" << endl;cout << "\t\t*****************************" << endl;cout << "\t\t***** 1、添加聯系人 *****"<< endl;cout << "\t\t***** 2、顯示聯系人 *****" << endl;cout << "\t\t***** 3、刪除聯系人 *****" << endl;cout << "\t\t***** 4、查找聯系人 *****" << endl;cout << "\t\t***** 5、修改聯系人 *****" << endl;cout << "\t\t***** 6、清空聯系人 *****" << endl;cout << "\t\t***** 0、退出通訊錄 *****" << endl;cout << "\t\t*****************************" << endl;

3、退出功能

作用:退出通訊錄系統

//退出通訊錄case 0: cout << "歡迎下次再來,拜拜!!!" << endl;system("pause");return 0;break;

4、添加聯系人

作用:實現添加聯系人功能,聯系人上限為1000人,聯系人信息包括(姓名、性別、年齡、聯系電話、家庭住址)

添加聯系人步驟:

  • (1)設計聯系人結構體
  • (2)設計通訊錄結構體
  • (3)main函數創建通訊錄
  • (4)封裝添加聯系人函數
  • (5)測試添加聯系人功能

4.1 設計聯系人結構體

//聯系人結構體 struct Person {string m_Name;//姓名//1、男;2、女int m_Sex;//性別int m_Age;//年齡string m_phone;//電話string m_Addr;//住址 };

4.2 設計通訊錄結構體

//通訊錄結構體 struct Addressbooks {struct Person person[Max];int m_size;//通訊成員個數 };

4.3 main函數創建通訊錄

case 1: addPerson(&abs);//地址傳遞,修改形參break;

4.4 封裝添加聯系人函數

//1、添加聯系人 void addPerson(struct Addressbooks *abs)//利用指針接收地址 {//判斷通訊錄是否已滿,如果滿了就不要添加if (abs->m_size == Max){cout << "通訊錄已滿,添加失敗!" << endl;}else{//姓名string name;cout << "請輸入姓名:" << endl;cin >> name;abs->person[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->person[abs->m_size].m_Sex = sex;if (sex == 1)cout << "你輸入通訊錄聯系人的性別是-男" << endl;else if(sex==2)cout << "你輸入通訊錄聯系人的性別是-女" << endl;break;}else{cout << "性別輸入有誤,請重新輸入!!" << endl;}}//年齡cout << "請輸入年齡:" << endl;int age;while (true){cin >> age;if (age > 0 && age < 100){abs->person[abs->m_size].m_Age = age;break;} elsecout << "你輸入的年齡有誤,請重新輸入:" << endl;}//電話cout << "請輸入電話:" << endl;string phone;while (true){cin >> phone;if (phone[0] != '1'){cout << "你輸入的電話號碼不是1開頭,請重新輸入!" << endl;continue;}abs->person[abs->m_size].m_phone = phone;break;}//地址cout << "請輸入地址:" << endl;string add;cin >> add;abs->person[abs->m_size].m_Addr = add;//更新通訊錄人數abs->m_size++;cout << "通訊錄聯系人添加成功!!";system("pause");//按任意鍵繼續system("cls");//清屏操作} }

5、顯示聯系人

作用:顯示通訊錄已有的聯系人信息

顯示聯系人步驟:

  • 封裝顯示聯系人函數
  • 測試顯示聯系人功能
void showPerson(Addressbooks *abs) {//判斷通訊錄人數是否為0,如果是0,提示為空//如果不為0顯示聯系人if (abs->m_size == 0){cout << "當前記錄為空!!" << endl;}else{for (int i = 0; i < abs->m_size; i++){cout << "姓名: " << abs->person[i].m_Name << "\t";cout << "性別: " << (abs->person[i].m_Sex==1?"男":"女") << "\t";cout << "年齡: " << abs->person[i].m_Age << "\t";cout << "電話: " << abs->person[i].m_phone << "\t";cout << "住址: " << abs->person[i].m_Addr << endl;}}system("pause");system("cls"); }

6、刪除聯系人

作用:按照姓名刪除聯系人

步驟:

  • (1)封裝檢測聯系人是否存在
  • (2)封裝刪除聯系人函數
  • (3)測試刪除聯系人功能

6.1 檢測聯系人是否存在

說明:檢測聯系人是否存在,如果存在,返回聯系人所在數組具體位置,不存在返-1

int isExist(Addressbooks *abs, string name) {for (int i = 0; i < abs->m_size; i++){//找到用戶的姓名if (abs->person[i].m_Name == name){return i;}}return -1; }

6.2 封裝刪除聯系人函數

void deletePerson(Addressbooks * abs) {cout << "請輸入要刪除聯系人的姓名:" << endl;string name;cin >> name;int ret=isExist(abs, name);if (ret == -1){cout << "通訊錄無該聯系人記錄!!" << endl;}else{for (int i = ret; i < abs->m_size; i++){//數據前移abs->person[i] = abs->person[i + 1];}abs->m_size--;cout << "刪除成功!!!" << endl;}system("pause");system("cls"); }

7、查找聯系人

作用:按照姓名查找指定聯系人信息

void findPerson(Addressbooks *abs) {cout << "請輸入你要查找的聯系人:" << endl;string name;cin >> name;//判斷聯系人是否存在通訊錄int ret = isExist(abs, name);if (ret == -1){cout << "對不起,通訊錄無此人!!" << endl;}else{cout << "姓名: " << abs->person[ret].m_Name << "\t";cout << "性別: " << (abs->person[ret].m_Sex==1?"男":"女") << "\t";cout << "年齡: " << abs->person[ret].m_Age << "\t";cout << "電話: " << abs->person[ret].m_phone << "\t";cout << "住址: " << abs->person[ret].m_Addr << endl;}system("pause");system("cls"); }

8、修改聯系人

作用:按照姓名重新修改指定聯系人

void modifyPerson(Addressbooks * abs) {cout << "請輸入要修改聯系人的姓名:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret == -1){cout << "對不起,你所要修改的聯系人并不在此通訊錄!!" << endl;}else{string name;cout << "請重新輸入要修改的姓名:" << endl;cin >> name;abs->person[ret].m_Name = name;int sex;cout << "請重新輸入要修改的性別:" << endl;while (true){cin >> sex;if (sex == 1 || sex == 2){abs->person[ret].m_Sex = sex;break;}else{cout << "你輸入的有誤,請重新輸入:" << endl;}}int age;cout << "請重新輸入要修改的年齡:" << endl;cin >> age;abs->person[ret].m_Age = age;string phone;cout << "請重新輸入要修改的電話:" << endl;cin >> phone;abs->person[ret].m_phone = phone;string addre;cout << "請重新輸入要修改的地址:" << endl;cin >> addre;abs->person[ret].m_Addr = addre;cout << "修改成功了!!" << endl;}system("pause");system("cls"); }

添加信息:

修改聯系人:

修改之后聯系人:

9 清空通訊錄

void cleanPerson(Addressbooks * abs) {cout << "你是否一定要清空:是輸入:Y/y,否輸入:N/n" << endl;char ch;while (true){cin >> ch;if (ch == 'Y' || ch == 'y'){//將當期記錄聯系人數量置為0,做邏輯清空操作abs->m_size = 0;cout << "通訊錄已經清空!" << endl;break;}else if (ch == 'N' || ch == 'n'){cout << "請重新操作:" << endl;break;}else{cout << "輸入錯誤,請重新輸入:" << endl;}}system("pause");system("cls"); }

10 全部代碼

#include<iostream> #include<string> #define Max 10000 using namespace std; //聯系人結構體 struct Person {string m_Name;//姓名//1、男;2、女int m_Sex;//性別int m_Age;//年齡string m_phone;//電話string m_Addr;//住址 }; //通訊錄結構體 struct Addressbooks {struct Person person[Max];int m_size;//通訊成員個數 }; //1、添加聯系人 void addPerson(struct Addressbooks *abs)//利用指針接收地址 {//判斷通訊錄是否已滿,如果滿了就不要添加if (abs->m_size == Max){cout << "通訊錄已滿,添加失敗!" << endl;}else{//姓名string name;cout << "請輸入姓名:" << endl;cin >> name;abs->person[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->person[abs->m_size].m_Sex = sex;if (sex == 1)cout << "你輸入通訊錄聯系人的性別是-男" << endl;else if(sex==2)cout << "你輸入通訊錄聯系人的性別是-女" << endl;break;}else{cout << "性別輸入有誤,請重新輸入!!" << endl;}}//年齡cout << "請輸入年齡:" << endl;int age;while (true){cin >> age;if (age > 0 && age < 100){abs->person[abs->m_size].m_Age = age;break;} elsecout << "你輸入的年齡有誤,請重新輸入:" << endl;}//電話cout << "請輸入電話:" << endl;string phone;while (true){cin >> phone;if (phone[0] != '1'){cout << "你輸入的電話號碼不是1開頭,請重新輸入!" << endl;continue;}abs->person[abs->m_size].m_phone = phone;break;}//地址cout << "請輸入地址:" << endl;string add;cin >> add;abs->person[abs->m_size].m_Addr = add;//更新通訊錄人數abs->m_size++;cout << "通訊錄聯系人添加成功!!";system("pause");//按任意鍵繼續system("cls");//清屏操作} } // 2、顯示聯系人 void showPerson(Addressbooks *abs) {//判斷通訊錄人數是否為0,如果是0,提示為空//如果不為0顯示聯系人cout <<"編號\t"<< "姓名\t" << "性別\t" << "年齡\t" << "電話\t" << "住址\t" << endl << endl;if (abs->m_size == 0){cout << "當前記錄為空!!" << endl;}else{for (int i = 0; i < abs->m_size; i++){cout << i+1<<"\t"<<abs->person[i].m_Name << "\t" << (abs->person[i].m_Sex == 1 ? "男" : "女") << "\t" << abs->person[i].m_Age << "\t" << abs->person[i].m_phone << "\t" << abs->person[i].m_Addr << endl;}}system("pause");system("cls"); } //菜單界面 void showMenu() {cout << "\t\t||-------------------------||"<< endl;cout << "\t\t|| 通訊錄管理系統 ||" << endl;cout << "\t\t||-------------------------||" << endl;cout << "\t\t*****************************" << endl;cout << "\t\t***** 1、添加聯系人 *****"<< endl;cout << "\t\t***** 2、顯示聯系人 *****" << endl;cout << "\t\t***** 3、刪除聯系人 *****" << endl;cout << "\t\t***** 4、查找聯系人 *****" << endl;cout << "\t\t***** 5、修改聯系人 *****" << endl;cout << "\t\t***** 6、清空聯系人 *****" << endl;cout << "\t\t***** 0、退出通訊錄 *****" << endl;cout << "\t\t*****************************" << endl; } //檢測聯系人是否存在,如果存在,返回聯系人所在數組具體位置,不存在返-1 int isExist(Addressbooks *abs, string name) {for (int i = 0; i < abs->m_size; i++){//找到用戶的姓名if (abs->person[i].m_Name == name){return i;}}return -1; } //刪除指定聯系人 void deletePerson(Addressbooks * abs) {cout << "請輸入要刪除聯系人的姓名:" << endl;string name;cin >> name;int ret=isExist(abs, name);if (ret == -1){cout << "通訊錄無該聯系人記錄!!" << endl;}else{for (int i = ret; i < abs->m_size; i++){//數據前移abs->person[i] = abs->person[i + 1];}abs->m_size--;cout << "刪除成功!!!" << endl;}system("pause");system("cls"); } //查找指定聯系人 void findPerson(Addressbooks *abs) {cout << "請輸入你要查找的聯系人:" << endl;string name;cin >> name;//判斷聯系人是否存在通訊錄int ret = isExist(abs, name);if (ret == -1){cout << "對不起,通訊錄無此人!!" << endl;}else{cout << "姓名: " << abs->person[ret].m_Name << "\t";cout << "性別: " << (abs->person[ret].m_Sex==1?"男":"女") << "\t";cout << "年齡: " << abs->person[ret].m_Age << "\t";cout << "電話: " << abs->person[ret].m_phone << "\t";cout << "住址: " << abs->person[ret].m_Addr << endl;}system("pause");system("cls"); } //修改指定的聯系人的信息 void modifyPerson(Addressbooks * abs) {cout << "請輸入要修改聯系人的姓名:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret == -1){cout << "對不起,你所要修改的聯系人并不在此通訊錄!!" << endl;}else{string name;cout << "請重新輸入要修改的姓名:" << endl;cin >> name;abs->person[ret].m_Name = name;int sex;cout << "請重新輸入要修改的性別:" << endl;while (true){cin >> sex;if (sex == 1 || sex == 2){abs->person[ret].m_Sex = sex;break;}else{cout << "你輸入的有誤,請重新輸入:" << endl;}}int age;cout << "請重新輸入要修改的年齡:" << endl;cin >> age;abs->person[ret].m_Age = age;string phone;cout << "請重新輸入要修改的電話:" << endl;cin >> phone;abs->person[ret].m_phone = phone;string addre;cout << "請重新輸入要修改的地址:" << endl;cin >> addre;abs->person[ret].m_Addr = addre;cout << "修改成功了!!" << endl;}system("pause");system("cls"); } //清空所有聯系人 void cleanPerson(Addressbooks * abs) {cout << "你是否一定要清空:是輸入:Y/y,否輸入:N/n" << endl;char ch;while (true){cin >> ch;if (ch == 'Y' || ch == 'y'){//將當期記錄聯系人數量置為0,做邏輯清空操作abs->m_size = 0;cout << "通訊錄已經清空!" << endl;break;}else if (ch == 'N' || ch == 'n'){cout << "請重新操作:" << endl;break;}else{cout << "輸入錯誤,請重新輸入:" << endl;}}system("pause");system("cls"); } int main() {system("color 5E");int select;//創建通訊錄結構體變量Addressbooks abs;//初始化通訊錄中的個數abs.m_size = 0;cout << "我是賈維斯,歡迎來到通訊管理系統!" << endl;while (true){//顯示菜單showMenu();//輸入需要選擇的功能cout << "請輸入你要選擇的操作:" << endl;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;system("pause");return 0;break;default: cout << "你輸入的不規范,請重新輸入" << endl;break;}}system("pause");return 0; }

總結

以上是生活随笔為你收集整理的C++入门项目——通讯管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。