最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)簡單的通訊錄管理系統(tǒng)

 更新時(shí)間:2022年06月20日 09:19:15   作者:石先森很瘋狂  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單的通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)簡單的通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

案例描述:

通訊錄是一個(gè)可以記錄親人、好友信息的工具。
本教程主要利用C++來實(shí)現(xiàn)一個(gè)通訊錄管理系統(tǒng)
系統(tǒng)中需要實(shí)現(xiàn)的功能如下:

  • 添加聯(lián)系人:向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯(lián)系電話、家庭住址)最多記錄1000人
  • 顯示聯(lián)系人:顯示通訊錄中所有聯(lián)系人信息
  • 刪除聯(lián)系人:按照姓名進(jìn)行刪除指定聯(lián)系人
  • 查找聯(lián)系人:按照姓名查看指定聯(lián)系人信息
  • 修改聯(lián)系人:按照姓名重新修改指定聯(lián)系人
  • 清空聯(lián)系人:清空通訊錄中所有信息
  • 退出通訊錄:退出當(dāng)前使用的通訊錄
#include<iostream>
#include<string>
using namespace std;
#define MAX ?1000 ? ?//通訊錄總?cè)藬?shù),可以修改

//聯(lián)系人信息結(jié)構(gòu)體
struct Person
{
?? ?string name;
?? ?string sex;
?? ?int ?age;
?? ?int number;
?? ?string address;
};
//通訊錄結(jié)構(gòu)體
struct addressbook
{
?? ?struct Person personArray[MAX]; //通訊錄中保存的聯(lián)系人數(shù)組
?? ?int m_Size; //通訊錄中人員個(gè)數(shù)
};

//菜單界面
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;
}

//查找聯(lián)系人
int findPerson(addressbook* abs, string name) {
?? ?//-1代表不存在該聯(lián)系人
?? ?int j = -1;
?? ?for (int i = 0; i < abs->m_Size; i++) {
?? ??? ?if (abs->personArray[i].name == name) {
?? ??? ??? ?cout << "姓名:" << abs->personArray[i].name << "?? ?"
?? ??? ??? ??? ?<< "性別:" << abs->personArray[i].sex << "?? ?"
?? ??? ??? ??? ?<< "年齡:" << abs->personArray[i].age << "?? ?"
?? ??? ??? ??? ?<< "聯(lián)系電話:" << abs->personArray[i].number << "?? ?"
?? ??? ??? ??? ?<< "家庭住址:" << abs->personArray[i].address << endl;
?? ??? ??? ?//獲得已存在聯(lián)系人的下標(biāo)
?? ??? ??? ?j = i;
?? ??? ?}
?? ?}
?? ?return j;
}

//添加聯(lián)系人
void addPerson(addressbook* abs, string name) {
?? ?int sex = 0;
?? ?int age;
?? ?int number;
?? ?string address;

?? ?abs->personArray[abs->m_Size].name = name;
?? ?cout << "請輸入性別:" << endl;
?? ?cout << "1 -- 男" << endl;
?? ?cout << "2 -- 女" << endl;
?? ?//性別
?? ?while (true)
?? ?{
?? ??? ?cin >> sex;
?? ??? ?if (sex == 1 || sex == 2)
?? ??? ?{
?? ??? ??? ?if (sex == 1) {
?? ??? ??? ??? ?abs->personArray[abs->m_Size].sex = "男";
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?abs->personArray[abs->m_Size].sex = "女";
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?cout << "輸入有誤,請重新輸入";
?? ?}

?? ?//年齡
?? ?cout << "請輸入年齡:" << endl;
?? ?cin >> age;
?? ?abs->personArray[abs->m_Size].age = age;

?? ?//聯(lián)系電話
?? ?cout << "請輸入聯(lián)系電話:" << endl;
?? ?cin >> number;
?? ?abs->personArray[abs->m_Size].number = number;

?? ?//家庭住址
?? ?cout << "請輸入家庭住址:" << endl;
?? ?cin >> address;
?? ?abs->personArray[abs->m_Size].address = address;

?? ?//更新通訊錄人數(shù)
?? ?abs->m_Size++;
?? ?cout << "添加成功" << endl;
?? ?system("pause");
?? ?//執(zhí)行清屏操作
?? ?system("cls");
}

//判斷聯(lián)系人受否存在
void existsPerson(addressbook* abs, string name) {
?? ?//判斷通訊錄是否已滿
?? ?if (abs->m_Size == 1000) {
?? ??? ?cout << "通訊錄已滿,不能添加聯(lián)系人!" << endl;
?? ?}
?? ?//未滿,則判斷聯(lián)系人是否已存在
?? ?else
?? ?{ ?//判斷用戶輸入的聯(lián)系人是否存在
?? ??? ?int p = findPerson(abs, name);
?? ??? ?//不存在執(zhí)行添加聯(lián)系人操作
?? ??? ?if (p == -1) {
?? ??? ??? ?addPerson(abs, name);
?? ??? ?}
?? ??? ?else
?? ??? ?{ ?//若存在,則輸出聯(lián)系人信息,并詢問用戶是否繼續(xù)添加
?? ??? ??? ?int i = p;
?? ??? ??? ?cout << "姓名:" << abs->personArray[i].name << "?? ?"
?? ??? ??? ??? ?<< "性別:" << abs->personArray[i].sex << "?? ?"
?? ??? ??? ??? ?<< "年齡:" << abs->personArray[i].age << "?? ?"
?? ??? ??? ??? ?<< "聯(lián)系電話:" << abs->personArray[i].address << "?? ?"
?? ??? ??? ??? ?<< "家庭住址:" << abs->personArray[i].address << endl;
?? ??? ??? ?cout << "聯(lián)系人已存在! " << endl;
?? ??? ??? ?system("pause");
?? ??? ??? ?//執(zhí)行清屏操作
?? ??? ??? ?system("cls");
?? ??? ?}
?? ?}
}

//刪除聯(lián)系人
void deletePerson(addressbook* abs) {
?? ?string name;
?? ?cout << "請輸入聯(lián)系人姓名" << endl;
?? ?cin >> name;
?? ?//判斷用戶輸入的聯(lián)系人是否存在
?? ?int p = findPerson(abs, name);
?? ?if (p != -1) {
?? ??? ?//進(jìn)行刪除聯(lián)系人操作
?? ??? ?for (int i = p; i < abs->m_Size; i++) {
?? ??? ??? ?abs->personArray[i] = abs->personArray[i + 1];
?? ??? ?}
?? ??? ?//更新通訊錄
?? ??? ?abs->m_Size--;
?? ??? ?cout << "刪除成功!" << endl;
?? ?}
?? ?else
?? ?{
?? ??? ?cout << "查無此人!" << endl;
?? ?}
?? ?system("pause");
?? ?//執(zhí)行清屏操作
?? ?system("cls");
}

//顯示聯(lián)系人
void showPerson(addressbook* abs) {
?? ?if (abs->m_Size == 0)
?? ?{
?? ??? ?cout << "當(dāng)前記錄為空" << endl;
?? ?}
?? ?else
?? ?{
?? ??? ?for (int i = 0; i < abs->m_Size; i++)
?? ??? ?{
?? ??? ??? ?cout << "姓名:" << abs->personArray[i].name << "\t";
?? ??? ??? ?cout << "性別:" << abs->personArray[i].sex << "\t";
?? ??? ??? ?cout << "年齡:" << abs->personArray[i].age << "\t";
?? ??? ??? ?cout << "電話:" << abs->personArray[i].number << "\t";
?? ??? ??? ?cout << "住址:" << abs->personArray[i].address << endl;
?? ??? ?}
?? ?}
?? ?system("pause");
?? ?system("cls");
}

//修改聯(lián)系人
void changePerson(addressbook* abs) {
?? ?string name;
?? ?int sex = 0;
?? ?int age;
?? ?int number;
?? ?string address;

?? ?cout << "請輸入聯(lián)系人姓名:" << endl;
?? ?cin >> name;
?? ?//判斷用戶輸入的聯(lián)系人是否存在
?? ?int ?p = findPerson(abs, name);
?? ?if (p != -1) {
?? ??? ?cout << "請輸入聯(lián)系人姓名:" << endl;
?? ??? ?cin >> name;
?? ??? ?abs->personArray[p].name = name;
?? ??? ?cout << "請輸入性別:" << endl;
?? ??? ?cout << "1 -- 男" << endl;
?? ??? ?cout << "2 -- 女" << endl;
?? ??? ?//性別
?? ??? ?while (true)
?? ??? ?{
?? ??? ??? ?cin >> sex;
?? ??? ??? ?if (sex == 1 || sex == 2)
?? ??? ??? ?{
?? ??? ??? ??? ?if (sex == 1) {
?? ??? ??? ??? ??? ?abs->personArray[p].sex = "男";
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?abs->personArray[p].sex = "女";
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?cout << "輸入有誤,請重新輸入";
?? ??? ?}

?? ??? ?//年齡
?? ??? ?cout << "請輸入年齡:" << endl;
?? ??? ?cin >> age;
?? ??? ?abs->personArray[p].age = age;

?? ??? ?//聯(lián)系電話
?? ??? ?cout << "請輸入聯(lián)系電話:" << endl;
?? ??? ?cin >> number;
?? ??? ?abs->personArray[p].number = number;

?? ??? ?//家庭住址
?? ??? ?cout << "請輸入家庭住址:" << endl;

?? ??? ?cin >> address;
?? ??? ?abs->personArray[p].address = address;

?? ??? ?cout << "修改成功" << endl;
?? ??? ?system("pause");
?? ??? ?//執(zhí)行清屏操作
?? ??? ?system("cls");
?? ?}
?? ?else
?? ?{
?? ??? ?cout << "該聯(lián)系人不存在!" << endl;
?? ??? ?system("pause");
?? ??? ?//執(zhí)行清屏操作
?? ??? ?system("cls");
?? ?}
}
//清空聯(lián)系人
void empty(addressbook* abs) {
?? ?abs->m_Size = 0;
?? ?cout << "通訊錄已清空" << endl;
?? ?system("pause");
?? ?system("cls");
}

int main() {
?? ?//初始化通訊錄
?? ?addressbook abs;
?? ?//初始化通訊錄人數(shù)為0
?? ?abs.m_Size = 0;

?? ?int flag = true;
?? ?int key = 0;
?? ?string name;
?? ?while (true)
?? ?{
?? ??? ?showMenu();
?? ??? ?cout << "請輸入要操作的功能" << endl;
?? ??? ?cin >> key;
?? ??? ?switch (key)
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?//先判斷判斷通訊錄是否已滿,在判斷聯(lián)系人是否已存在
?? ??? ??? ?//最后進(jìn)行聯(lián)系人添加操作addPerson(addressbook *abs)
?? ??? ??? ?cout << "請輸入聯(lián)系人姓名" << endl;
?? ??? ??? ?cin >> name;
?? ??? ??? ?existsPerson(&abs, name);
?? ??? ??? ?break;
?? ??? ?case 2:
?? ??? ??? ?showPerson(&abs);
?? ??? ??? ?break;
?? ??? ?case 3:
?? ??? ??? ?deletePerson(&abs);
?? ??? ??? ?break;
?? ??? ?case 4:
?? ??? ??? ?cout << "請輸入聯(lián)系人姓名" << endl;
?? ??? ??? ?cin >> name;
?? ??? ??? ?findPerson(&abs, name);
?? ??? ??? ?system("pause");
?? ??? ??? ?//執(zhí)行清屏操作
?? ??? ??? ?system("cls");
?? ??? ??? ?break;
?? ??? ?case 5:
?? ??? ??? ?changePerson(&abs);
?? ??? ??? ?break;
?? ??? ?case 6:
?? ??? ??? ?empty(&abs);
?? ??? ??? ?break;
?? ??? ?case 0:
?? ??? ??? ?cout << "歡迎下次使用!" << endl;
?? ??? ??? ?system("pause");
?? ??? ??? ?return 0;
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?cout << "請輸入正確的選項(xiàng)序號:" << endl;
?? ??? ??? ?break;
?? ??? ?}
?? ?}

?? ?system("pause");

?? ?return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • CreateCompatibleDC()函數(shù)案例詳解

    CreateCompatibleDC()函數(shù)案例詳解

    這篇文章主要介紹了CreateCompatibleDC()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 哈希表實(shí)驗(yàn)C語言版實(shí)現(xiàn)

    哈希表實(shí)驗(yàn)C語言版實(shí)現(xiàn)

    以下是對哈希表實(shí)驗(yàn)用C語言實(shí)現(xiàn)的代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++中?‘=default?’及‘?=delete?’的使用

    C++中?‘=default?’及‘?=delete?’的使用

    這篇文章主要介紹了C++中?=default?及?=delete?使用,使用=default和=delete可以控制編譯器默認(rèn)函數(shù)體的使用,下面我們就來看看具體的室友方法吧,需要的朋友也可以參考一下
    2021-12-12
  • C語言多種獲取字符串長度的方法

    C語言多種獲取字符串長度的方法

    這篇文章主要介紹了C語言多種獲取字符串長度的方法,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 使用matlab繪制七夕表白玫瑰花束

    使用matlab繪制七夕表白玫瑰花束

    又是一年七夕節(jié)要到了,每年一次直男審美MATLAB繪圖大賽開始了,于是今年對我之前寫的老代碼進(jìn)行了點(diǎn)優(yōu)化組合,整了個(gè)花球變花束,感興趣的小伙伴可以動手試一試
    2023-08-08
  • C++輸入流和輸出流 超級詳細(xì)

    C++輸入流和輸出流 超級詳細(xì)

    C++ 的開發(fā)者認(rèn)為數(shù)據(jù)輸入和輸出的過程也是數(shù)據(jù)傳輸?shù)倪^程,數(shù)據(jù)像水一樣從一個(gè)地方流動到另一個(gè)地方,所以 C++ 中將此過程稱為“流”,實(shí)現(xiàn)此過程的類稱為“流類”。下面小編將詳細(xì)介紹這個(gè)話題,需要的朋友可以參考一下
    2021-09-09
  • 利用Qt+opencv實(shí)現(xiàn)視頻分解為圖片

    利用Qt+opencv實(shí)現(xiàn)視頻分解為圖片

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt和opencv實(shí)現(xiàn)視頻分解為圖片,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • c++ 虛函數(shù)與純虛函數(shù)的區(qū)別(深入分析)

    c++ 虛函數(shù)與純虛函數(shù)的區(qū)別(深入分析)

    本篇文章是對c++中虛函數(shù)與純虛函數(shù)的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中String類常見題目分享

    C++中String類常見題目分享

    這篇文章主要為大家詳細(xì)介紹了一些C++中String類的常見題目,文中的示例代碼講解詳細(xì),對我們掌握C++有一定的幫助,感興趣的小伙伴可以了解一下
    2023-06-06
  • Qt調(diào)用MATLAB引擎混合編程的過程詳解

    Qt調(diào)用MATLAB引擎混合編程的過程詳解

    這篇文章給大家介紹了Qt調(diào)用MATLAB引擎混合編程的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01

最新評論

合肥市| 崇州市| 盐边县| 黄冈市| 樟树市| 南部县| 曲周县| 全州县| 华蓥市| 兴仁县| 红原县| 晋宁县| 蓬安县| 遵化市| 文化| 清水河县| 灵宝市| 平顶山市| 东方市| 恩施市| 广丰县| 尤溪县| 磴口县| 达孜县| 中牟县| 朝阳区| 油尖旺区| 嘉黎县| 肇州县| 清水县| 绥阳县| 睢宁县| 宽城| 韶山市| 应用必备| 垦利县| 靖边县| 洪泽县| 河池市| 望奎县| 新乡县|