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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++——通讯录管理系统

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

文章目錄

  • 前言
  • 一、系統中需要實現的功能
    • 1、添加聯系人
    • 2、顯示聯系人
    • 3、刪除聯系人
    • 4、查找聯系人
    • 5、修改聯系人
    • 6、清空聯系人
    • 7、退出通訊錄
  • 二、創建項目
    • 1、創建新項目
    • 2、添加文件
  • 三、菜單功能
    • 1、功能描述
    • 2、步驟
      • 2.1、封裝函數顯示該界面
      • 2.2、在main函數中調用封裝好的函數
  • 四、退出功能
    • 1、功能描述
    • 2、思路
    • 3、代碼實現
  • 五、添加聯系人功能
    • 1、功能描述
    • 2、步驟
      • 2.1、設計聯系人結構體
      • 2.2、設計通訊錄結構體
      • 2.3、main函數中創建通訊錄
      • 2.4、封裝添加聯系人函數
      • 2.5、測試添加聯系人函數
  • 六、顯示聯系人
    • 1、功能
    • 2、步驟
      • 2.1、封裝顯示聯系人函數
      • 2.2、測試顯示聯系人函數
  • 七、刪除聯系人
    • 1、功能
    • 2、步驟
      • 2.1、封裝檢測聯系人是否存在
      • 2.2、封裝刪除聯系人函數
      • 2.3、測試刪除聯系人函數
  • 八、查找聯系人
    • 1、功能
    • 2、步驟
      • 2.1、封裝查找聯系人的函數
      • 2.2、測試查找聯系人的函數
  • 九、修改聯系人
    • 1、功能
    • 2、步驟
      • 2.1、封裝修改聯系人的函數
      • 2.2、測試修改聯系人的函數
  • 十、清空聯系人
    • 1、功能
    • 2、步驟
      • 2.1、封裝清空聯系人的函數
      • 2.2、測試清空聯系人的函數
  • 附:完整代碼
    • 至此通訊錄管理系統完成
      • 本系統只是簡單的實現通訊錄管理,還有很多細節并沒有做,比如年齡的范圍判斷等,還有就是每次運行程序通訊錄都被清空了,不會保存,這點本人目前還不會做,后面學習了相關的知識再加上!


前言

通訊錄是一個可以記錄親人、好友信息的工具。
本文主要利用C++來實現一個通訊錄管理系統

一、系統中需要實現的功能

1、添加聯系人

向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯系電話、家庭住址)最多記錄1000人

2、顯示聯系人

顯示通訊錄中所有聯系人信息

3、刪除聯系人

按照姓名進行刪除指定聯系人

4、查找聯系人

按照姓名查看指定聯系人信息

5、修改聯系人

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

6、清空聯系人

清空通訊錄中所有信息

7、退出通訊錄

退出當前使用的通訊錄


二、創建項目

1、創建新項目

2、添加文件


三、菜單功能

1、功能描述

用戶選擇功能的界面

2、步驟

2.1、封裝函數顯示該界面

2.2、在main函數中調用封裝好的函數

#include<iostream> #include<string>using namespace std;//菜單界面 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; } int main() {//菜單的調用showMenu();system("pause");return 0; }

結果顯示:


四、退出功能

1、功能描述

退出通訊錄系統

2、思路

根據用戶不同的選擇,進入不同的功能,可以選擇switch分支結構,將整個架構進行搭建。當用戶選擇0時候,執行退出,選擇其他先不做操作,也不會退出程序。

3、代碼實現

//創建用戶選擇輸入的變量int select = 0; while (1){//菜單的調用showMenu();cin >> select;switch (select){case 1: //1、添加聯系人break;case 2: //2、顯示聯系人break;case 3: //3、刪除聯系人break;case 4: //4、查找聯系人break;case 5: //5、修改聯系人break;case 6: //6、清空聯系人break;case 0: //0、退出通訊錄cout << "歡迎下次使用" << endl;system("pause");return 0;break;}}


五、添加聯系人功能

1、功能描述

實現添加聯系人功能,向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯系電話、家庭住址),最多記錄1000人

2、步驟

2.1、設計聯系人結構體

struct Person {string m_Name;int m_Sex; //性別,1-男 2-女int m_Age;string m_Phone;string m_Addr;};

2.2、設計通訊錄結構體

#define MAX 1000 //最大值 //通訊錄結構體 struct AddressBooks {struct Person personArray[MAX]; //通訊錄保存的聯系人數組int m_size; //通訊錄人員個數 };

2.3、main函數中創建通訊錄

//創建通訊錄struct AddressBooks abs;abs.m_size = 0;

2.4、封裝添加聯系人函數

void addPerson(struct 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;//性別int sex = 0;cout << "請輸入性別:1-男生 2-女生" << endl;cout << "1-男生" << endl;cout << "2-女生" << endl;while (1){//輸入1、2可退出循環,其余的則重新輸入cin >> sex;if (sex == 1 || sex == 2){abs->personArray[abs->m_size].m_Sex = sex;break;}cout << "輸入有誤,請重新輸入!" << endl;}//年齡int age;cout << "請輸入年齡:" << endl;cin >> age;abs->personArray[abs->m_size].m_Age = age;//電話string Phone;cout << "請輸入聯系電話:" << endl;cin >> Phone;abs->personArray[abs->m_size].m_Phone = Phone;//家庭住址string Address;cout << "請輸入家庭住址:" << endl;cin >> Address;abs->personArray[abs->m_size].m_Addr= Address;//更新人數abs->m_size++;cout << "添加成功!" << endl;system("pause");system("cls");} }

2.5、測試添加聯系人函數

case 1: //1、添加聯系人addPerson(&abs);break;


六、顯示聯系人

1、功能

顯示通訊錄中已有聯系人的信息

2、步驟

2.1、封裝顯示聯系人函數

void showPerson(struct AddressBooks * abs) {//判斷通訊錄中人數是否為0,為0,提示記錄為空//如果不為0,則顯示聯系人的信息if (abs->m_size == 0){cout << "當前通訊錄為空!" << endl;}else{for (int i = 0; i < abs->m_size; i++){cout << "姓名:" << abs->personArray[i].m_Name << "\t"<< "性別:" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t"<< "年齡:" << abs->personArray[i].m_Age << "\t"<< "電話:" << abs->personArray[i].m_Phone << "\t"<< "家庭住址:" << abs->personArray[i].m_Addr << endl;}}system("pause");system("cls"); }

2.2、測試顯示聯系人函數

case 2: //2、顯示聯系人showPerson(&abs);break;


七、刪除聯系人

1、功能

按照姓名進行刪除指定聯系人

2、步驟

2.1、封裝檢測聯系人是否存在

int isExist(struct AddressBooks * abs, string name) {for (int i = 0; i < abs->m_size; i++){if (abs->personArray[i].m_Name == name){return i;//找到了,返回編號}}return -1; //如果遍歷完都沒有找到,返回-1 }

2.2、封裝刪除聯系人函數

void deletePerson(struct AddressBooks * abs) {cout << "請輸入您要刪除的聯系人:" << 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; }else{cout << "查無此人" << endl;}system("pause");system("cls"); }

2.3、測試刪除聯系人函數



八、查找聯系人

1、功能

按照姓名查看指定聯系人的信息

2、步驟

2.1、封裝查找聯系人的函數

void findPerson(struct AddressBooks * abs) {cout << "請輸入您要查找的聯系人:" << endl;string name;cin >> name;//判斷指定的聯系人是否在通訊錄中int ret = isExist(abs, name);if (ret != -1) //找到聯系人{cout << "姓名:" << abs->personArray[ret].m_Name << "\t"<< "性別:" << (abs->personArray[ret].m_Sex == 1 ? "男" : "女") << "\t"<< "年齡:" << abs->personArray[ret].m_Age << "\t"<< "電話:" << abs->personArray[ret].m_Phone << "\t"<< "家庭住址:" << abs->personArray[ret].m_Addr << endl;}else //未找到聯系人{cout << "查無此人!" << endl;}system("pause");system("cls"); }

2.2、測試查找聯系人的函數


九、修改聯系人

1、功能

按照姓名重新修改指定聯系人的信息

2、步驟

2.1、封裝修改聯系人的函數

void modifyPerson(struct AddressBooks * abs) {cout << "請輸入您要修改的聯系人:" << 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;//性別int sex = 0;cout << "請輸入修改后的性別:1-男生 2-女生" << endl;cout << "1-男生" << endl;cout << "2-女生" << endl;while (1){//輸入1、2可退出循環,其余的則重新輸入cin >> sex;if (sex == 1 || sex == 2){abs->personArray[ret].m_Sex = sex;break;}cout << "輸入有誤,請重新輸入!" << endl;}//年齡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;cout << "修改成功!" << endl;}else //未找到聯系人{cout << "查無此人!" << endl;}system("pause");system("cls"); }

2.2、測試修改聯系人的函數

修改前

修改過程

修改后


十、清空聯系人

1、功能

清空所有聯系人的信息

2、步驟

2.1、封裝清空聯系人的函數

實現思路:將通界錄所有聯系人信息清除掉,只要將通訊錄記錄的聯系人數量置為0,做邏輯清空即可。

void cleanPerson(struct AddressBooks * abs) {cout << "請問您是否真的要清空通訊錄?" << endl;cout << "1-是" << endl;cout << "2-否" << endl;int ret = 0;cin >> ret;if (ret == 1){abs->m_size = 0;cout << "通訊錄已清空!" << endl;}system("pause");system("cls"); }

2.2、測試清空聯系人的函數

清空前

清空操作:程序會讓用戶確認下是否真的要清空。

清空后


附:完整代碼

#include<iostream> #include<string>using namespace std; #define MAX 1000 //最大值 //聯系人結構體 struct Person {string m_Name;int m_Sex; //性別,1-男 2-女int m_Age;string m_Phone;string m_Addr;}; //通訊錄結構體 struct AddressBooks {struct Person personArray[MAX]; //通訊錄保存的聯系人數組int m_size; //通訊錄人員個數 }; //1、添加聯系人 void addPerson(struct 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;//性別int sex = 0;cout << "請輸入性別:1-男生 2-女生" << endl;cout << "1-男生" << endl;cout << "2-女生" << endl;while (1){//輸入1、2可退出循環,其余的則重新輸入cin >> sex;if (sex == 1 || sex == 2){abs->personArray[abs->m_size].m_Sex = sex;break;}cout << "輸入有誤,請重新輸入!" << endl;}//年齡int age;cout << "請輸入年齡:" << endl;cin >> age;abs->personArray[abs->m_size].m_Age = age;//電話string Phone;cout << "請輸入聯系電話:" << endl;cin >> Phone;abs->personArray[abs->m_size].m_Phone = Phone;//家庭住址string Address;cout << "請輸入家庭住址:" << endl;cin >> Address;abs->personArray[abs->m_size].m_Addr= Address;//更新人數abs->m_size++;cout << "添加成功!" << endl;system("pause");system("cls");} } //2、顯示聯系人 void showPerson(struct AddressBooks * abs) {//判斷通訊錄中人數是否為0,為0,提示記錄為空//如果不為0,則顯示聯系人的信息if (abs->m_size == 0){cout << "當前通訊錄為空!" << endl;}else{for (int i = 0; i < abs->m_size; i++){cout << "姓名:" << abs->personArray[i].m_Name << "\t"<< "性別:" << (abs->personArray[i].m_Sex == 1 ? "男" : "女") << "\t"<< "年齡:" << abs->personArray[i].m_Age << "\t"<< "電話:" << abs->personArray[i].m_Phone << "\t"<< "家庭住址:" << abs->personArray[i].m_Addr << endl;}}system("pause");system("cls"); } //檢測聯系人是否存在,如果存在,返回聯系人所在數組中的具體位置,不存在返回-1 int isExist(struct AddressBooks * abs, string name) {for (int i = 0; i < abs->m_size; i++){if (abs->personArray[i].m_Name == name){return i;//找到了,返回編號}}return -1; //如果遍歷完都沒有找到,返回-1 } //3、刪除指定的聯系人 void deletePerson(struct AddressBooks * abs) {cout << "請輸入您要刪除的聯系人:" << 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; }else{cout << "查無此人" << endl;}system("pause");system("cls"); } //4、查找指定的聯系人 void findPerson(struct AddressBooks * abs) {cout << "請輸入您要查找的聯系人:" << endl;string name;cin >> name;//判斷指定的聯系人是否在通訊錄中int ret = isExist(abs, name);if (ret != -1) //找到聯系人{cout << "姓名:" << abs->personArray[ret].m_Name << "\t"<< "性別:" << (abs->personArray[ret].m_Sex == 1 ? "男" : "女") << "\t"<< "年齡:" << abs->personArray[ret].m_Age << "\t"<< "電話:" << abs->personArray[ret].m_Phone << "\t"<< "家庭住址:" << abs->personArray[ret].m_Addr << endl;}else //未找到聯系人{cout << "查無此人!" << endl;}system("pause");system("cls"); } //5、修改指定的聯系人 void modifyPerson(struct AddressBooks * abs) {cout << "請輸入您要修改的聯系人:" << 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;//性別int sex = 0;cout << "請輸入修改后的性別:1-男生 2-女生" << endl;cout << "1-男生" << endl;cout << "2-女生" << endl;while (1){//輸入1、2可退出循環,其余的則重新輸入cin >> sex;if (sex == 1 || sex == 2){abs->personArray[ret].m_Sex = sex;break;}cout << "輸入有誤,請重新輸入!" << endl;}//年齡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;cout << "修改成功!" << endl;}else //未找到聯系人{cout << "查無此人!" << endl;}system("pause");system("cls"); } //6、清空聯系人 void cleanPerson(struct AddressBooks * abs) {cout << "請問您是否真的要清空通訊錄?" << endl;cout << "1-是" << endl;cout << "2-否" << endl;int ret = 0;cin >> ret;if (ret == 1){abs->m_size = 0;cout << "通訊錄已清空!" << endl;}system("pause");system("cls"); } //菜單界面 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; }int main() {//創建用戶選擇輸入的變量int select = 0; //創建通訊錄struct AddressBooks abs;abs.m_size = 0;while (1){//菜單的調用showMenu();cin >> select;switch (select){case 1: //1、添加聯系人addPerson(&abs);break;case 2: //2、顯示聯系人showPerson(&abs);break;case 3: //3、刪除聯系人deletePerson(&abs);break;case 4: //4、查找聯系人findPerson(&abs);break;case 5: //5、修改聯系人modifyPerson(&abs);break;case 6: //6、清空聯系人cleanPerson(&abs);break;case 0: //0、退出通訊錄cout << "歡迎下次使用!" << endl;system("pause");return 0;break;}}system("pause");return 0; }

至此通訊錄管理系統完成

本系統只是簡單的實現通訊錄管理,還有很多細節并沒有做,比如年齡的范圍判斷等,還有就是每次運行程序通訊錄都被清空了,不會保存,這點本人目前還不會做,后面學習了相關的知識再加上!


總結

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

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