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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

c++小项目:通讯录管理系统

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

該項目非常適合新手c++的同學來做(當然也包括我),先看一個通訊錄管理系統需要寫什么東西。

學習于:https://www.bilibili.com/video/BV1et411b73Z?p=75(自我感覺講的超級棒)

其中值得注意的是調用函數需要傳值時,如果不需要改變實參 直接傳值就好了,如果需要改變實參,必須得傳指針(也就是傳址)

然后還有個注意的點就是結構體和結構體指針變量的使用,剩下的就敲代碼了!

?得達到上圖這些功能,成功之后菜單欄顯示如下所示

?

下面就是各個小塊的代碼:

主函數,頭文件和結構體的構造函數的代碼會放在最后面

菜單欄的代碼

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;
}

1.添加聯系人

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 << "請輸入電話:" << 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_Adds = address;}//更新通訊錄人數abs->m_size++;cout << "添加成功!!!" << endl;system("pause");     //請按任意鍵繼續system("cls");       //清屏操作
}

2.顯示聯系人

void showPerson(Addressbooks* abs)
{assert(abs != NULL);if (abs->m_size == 0){cout << "當前記錄為空" << endl;}else{for (int i = 0; i < abs->m_size; i++){cout << "姓名:" << abs->personArray[i].m_Name << "\t";cout << "性別:" << abs->personArray[i].m_Sex << "\t";cout << "年齡:" << abs->personArray[i].m_Age << "\t";cout << "電話:" << abs->personArray[i].m_Phone << "\t";cout << "住址:" << abs->personArray[i].m_Adds << 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;
}            //查找到的話  返回的是該名字在數組中的下標

3.刪除指定聯系人

void deletePerson(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(Addressbooks* abs)
{cout << "請輸入您要查找的聯系人:" << 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 << "\t";cout << "年齡:" << abs->personArray[ret].m_Age << "\t";cout << "電話:" << abs->personArray[ret].m_Phone << "\t";cout << "住址:" << abs->personArray[ret].m_Adds << endl;}else{cout << "查無此人" << endl;}system("pause");     //請按任意鍵繼續system("cls");       //清屏操作
}

5.修改聯系人

void modifyPerson(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;//性別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 << "請輸入電話:" << endl;string phone;cin >> phone;abs->personArray[ret].m_Phone = phone;//住址cout << "請輸入地址:" << endl;string address;cin >> address;abs->personArray[ret].m_Adds = address;cout << "修改成功" << endl;}else{cout << "查無此人" << endl;}system("pause");     //請按任意鍵繼續system("cls");       //清屏操作
}

6.清空通訊錄列表

void clearPerson(Addressbooks* abs)
{abs->m_size = 0;cout << "清除成功" << endl;system("pause");     //請按任意鍵繼續system("cls");       //清屏操作
}

??

主函數:

int main()
{int select = 0;   //創建用戶輸入的選擇Addressbooks abs;abs.m_size = 0;//初始化聯系人個數while (true){//菜單調用ShowMenu();cin >> select;switch (select){case 1://showPerson(&abs);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:break;case 0:cout << "歡迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");return 0;
}		

頭文件包含和結構體設計:

#include<iostream>
using namespace std;
#include<string>
#include<assert.h>
#define MAX 1000//設計聯系人結構體
struct Person
{string m_Name;int m_Sex;//1.男,2.女int m_Age;string m_Phone;string m_Adds;
};//設計通訊錄結構體
struct Addressbooks
{struct Person personArray[MAX];  //聯系人數組int m_size;  //記錄通訊錄中聯系人個數
};

不要一天天的把自己菜當作理由,菜是你懶的結果,而不是自己逃避的理由!!!加油!!!

總結

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

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