欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)簡單通訊錄系統(tǒng)

 更新時間:2022年06月22日 10:08:47   作者:hypnumberone  
這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單通訊錄系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

需求分析:

1.通訊錄可以添加聯(lián)系人。

2.通訊錄可以顯示所有聯(lián)系人。

3.通訊錄可以查找聯(lián)系人。

4.通訊錄可以刪除聯(lián)系人。

5.通訊錄可以修改聯(lián)系人。

6.可以清空通訊錄。

7.退出通訊錄。

項目代碼:

#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
#define MAX 1000
typedef struct person { ? ? ? ? ? ? ? ? ? ? //定義一個聯(lián)系人的結(jié)構(gòu)體
? ? string name;
? ? string sex;
? ? int age;
? ? int telnumber;
? ? string addr;
}person;
typedef struct Addressbooks { ? ? ? ? ? ? ? ? //定義一個通訊錄,自帶一個聯(lián)系人數(shù)組,里面可以存放MAX個聯(lián)系人
? ? struct person personArray[MAX];
? ? int m_size=0;
}Addressbooks;
void Menu() { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//菜單函數(shù)
? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?通訊錄管理系統(tǒng)" << endl;
? ? cout << "" << endl;
? ? 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 << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?7--退出聯(lián)系人" << endl;
}
void addPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? //添加聯(lián)系人的函數(shù)實現(xiàn)
? ? if (abs->m_size == MAX) {
? ? ? ? cout << "此通訊錄已滿,不能添加\n" << endl;
? ? }
? ? else {
? ? ? ? string name;
? ? ? ? string sex;
? ? ? ? int age;
? ? ? ? int telnumber;
? ? ? ? string addr;
? ? ? ? cout << "請輸入聯(lián)系人姓名:" << endl;
? ? ? ? cin >> name;
? ? ? ? abs->personArray[abs->m_size].name = name;
? ? ? ? cout << "請輸入聯(lián)系人性別:" << endl;
? ? ? ? cin >> sex;
? ? ? ? abs->personArray[abs->m_size].sex = sex;
? ? ? ? cout << "請輸入聯(lián)系人年齡:" << endl;
? ? ? ? cin >> age;
? ? ? ? abs->personArray[abs->m_size].age = age;
? ? ? ? cout << "請輸入聯(lián)系人電話號碼:" << endl;
? ? ? ? cin >> telnumber;
? ? ? ? abs->personArray[abs->m_size].telnumber = telnumber;
? ? ? ? cout << "請輸入聯(lián)系人家庭住址:" << endl;
? ? ? ? cin >> addr;
? ? ? ? abs->personArray[abs->m_size].addr = addr;
? ? ? ? abs->m_size++;
? ? ? ? cout << "添加成功!!!" << endl;
? ? ? ? system("pause"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//利用這行語句達到一個顯示按任意鍵繼續(xù)的效果
? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//清空整個屏幕,刷新屏幕
? ? }
}
void showPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ?//顯示整個通訊錄中聯(lián)系人的函數(shù)實現(xiàn)
? ? for (int i = 0; i < abs->m_size; i++) {
? ? ? ? cout << abs->personArray[i].name << " " << abs->personArray[i].sex << " " << abs->personArray[i].age << " " << abs->personArray[i].telnumber << " " << abs->personArray[i].addr << endl;
? ? }
? ? system("pause");
? ? system("cls");
}
int selectPerson(Addressbooks* abs,string name) { ? ? ? ? ? ? ? ? ? //查詢輸入的聯(lián)系人是否存在,存在返回聯(lián)系人坐在的下標(biāo)值,不存在則返回-1
? ? for (int i = 0; i < abs->m_size; i++) {
? ? ? ? if (abs->personArray[i].name == name) {
? ? ? ? ? ? return i;
? ? ? ? }
? ? }
? ? return -1;
}
void deletePerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//刪除聯(lián)系人的函數(shù)實現(xiàn)
? ? string name;
? ? cout << "請輸入刪除聯(lián)系人的名字:" << endl;
? ? cin >> name;
? ? if (selectPerson(abs, name) != -1) {
? ? ? ? for (int i = selectPerson(abs, name); i < abs->m_size;i++) {
? ? ? ? ? ? abs->personArray[i] = abs->personArray[i + 1];
? ? ? ? }
? ? ? ? abs->m_size--;
? ? ? ? cout << "刪除成功" << endl;
? ? }
? ? else {
? ? ? ? cout << "查無此人" << endl;
? ? }
? ? system("pause");
? ? system("cls");
}
void searchPerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ?//查詢聯(lián)系人并輸出相關(guān)信息的函數(shù)實現(xiàn)
? ? string name;
? ? cout << "請輸入聯(lián)系人姓名:" << endl;
? ? cin >> name;
? ? int ret = selectPerson(abs, name);
? ? if (ret != -1) {
? ? ? ? cout << abs->personArray[ret].name << " " << abs->personArray[ret].sex << " " << abs->personArray[ret].age << " " << abs->personArray[ret].telnumber << " " << abs->personArray[ret].addr << endl;
? ? }
? ? else {
? ? ? ? cout << "查無此人" << endl;
? ? }
? ? system("pause");
? ? system("cls");
}
void revisePerson(Addressbooks* abs) { ? ? ? ? ? ? ? ? ? ? ?//修改聯(lián)系人的函數(shù)實現(xiàn)
? ? string name;
? ? cout << "請選擇聯(lián)系人 :" << endl;
? ? cin >> name;
? ? int ret;
? ? ret = selectPerson(abs, name);
? ? if (ret != -1) {
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1--修改姓名" << endl;
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2--修改性別" << endl;
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3--修改年齡" << endl;
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4--修改電話號碼" << endl;
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5--修改家庭住址" << endl;
? ? ? ? cout << " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0--退出" << endl;
? ? ? ? int chosen;
? ? ? ? while (1) {?
? ? ? ? cout << "選擇:"<<endl;
? ? ? ? cin >> chosen;
? ? ? ? ? ? switch (chosen)
? ? ? ? ? ? {
? ? ? ? ? ? case 1:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string name2;
? ? ? ? ? ? ? ? cout << "修改名字:" << endl;
? ? ? ? ? ? ? ? cin >> name2;
? ? ? ? ? ? ? ? abs->personArray[ret].name = name2;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case 2:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string sex;
? ? ? ? ? ? ? ? cout << "修改性別:" << endl;
? ? ? ? ? ? ? ? cin >> sex;
? ? ? ? ? ? ? ? abs->personArray[ret].sex = sex;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case 3:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int age;
? ? ? ? ? ? ? ? cout << "修改年齡:" << endl;
? ? ? ? ? ? ? ? cin >> age;
? ? ? ? ? ? ? ? abs->personArray[ret].age = age;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case 4:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int tel;
? ? ? ? ? ? ? ? cout << "修改電話號碼:" << endl;
? ? ? ? ? ? ? ? cin >> tel;
? ? ? ? ? ? ? ? abs->personArray[ret].telnumber = tel;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case 5:
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string addr;
? ? ? ? ? ? ? ? cout << "修改住址:" << endl;
? ? ? ? ? ? ? ? cin >> addr;
? ? ? ? ? ? ? ? abs->personArray[ret].addr = addr;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? ? ? case 0:
? ? ? ? ? ? goto FLAG1;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? else {
? ? ? ? cout << "查無此人!!!" << endl;
? ? }
? ? FLAG1:
? ? system("pause");
? ? system("cls");
}
void clear(Addressbooks* abs) {
? ? abs->m_size = 0;
? ? cout << "此通訊錄已清空!!!" << endl;
? ? system("pause");
? ? system("cls");
}
int main() {
? ? Addressbooks book1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? //先定義一個通訊錄,并添加一個聯(lián)系人hyp
? ? book1.personArray[0].name = "hyp"; ? ? ? ? ? ? ?
? ? book1.personArray[0].sex = "man";
? ? book1.personArray[0].age = 21;
? ? book1.personArray[0].telnumber = 76766767;
? ? book1.personArray[0].addr = "重慶";
? ? book1.m_size = 1;
? ? int chosen; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? while (1) {
? ? ? ? Menu();
? ? ? ? cout << "選擇:" ;
? ? ? ? cin >> chosen;
? ? ? ? switch (chosen)
? ? ? ? {
? ? ? ? case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加聯(lián)系人
? ? ? ? ? ? addPerson(&book1);
? ? ? ? ? ? break;
? ? ? ? case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //顯示聯(lián)系人
? ? ? ? ? ? showPerson(&book1);
? ? ? ? ? ? break;
? ? ? ? case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //刪除聯(lián)系人
? ? ? ? ? ? deletePerson(&book1);
? ? ? ? ? ? break;
? ? ? ? case 4: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查找聯(lián)系人
? ? ? ? ? ? searchPerson(&book1);
? ? ? ? ? ? break;
? ? ? ? case 5: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //修改聯(lián)系人
? ? ? ? ? ? revisePerson(&book1);
? ? ? ? ? ? break;
? ? ? ? case 6: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //清空聯(lián)系人
? ? ? ? ? ? clear(&book1);
? ? ? ? ? ? break;
? ? ? ? case 7: ? ? ? ? ? ? ? ? ? ? ? ? ? ? //退出通訊錄
? ? ? ? ? ? return 0;
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? break;
? ? ? ? }
?
? ? }
? ? return 0;
}

效果:

顯示聯(lián)系人

添加聯(lián)系人

后面效果就不一一顯示了

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

相關(guān)文章

  • C語言中多樣式的格式控制符的使用詳解

    C語言中多樣式的格式控制符的使用詳解

    C語言中的格式控制符類型繁多,雖然格式字符可能就那么幾個,但組合起來使得格式控制符變得多樣化,這對于C語言初學(xué)者來說無疑是一種痛苦,為此我將常見的格式控制符類型及意義總結(jié)一下,希望對大家有所幫助
    2023-03-03
  • C++日歷拼圖的解法你了解嗎

    C++日歷拼圖的解法你了解嗎

    這篇文章主要為大家詳細介紹了日歷拼圖C++的解法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言判斷一個數(shù)是否為素數(shù)方法解析

    C語言判斷一個數(shù)是否為素數(shù)方法解析

    這篇文章主要介紹了C語言判斷一個數(shù)是否為素數(shù)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 超級詳細講解C++中的多態(tài)

    超級詳細講解C++中的多態(tài)

    多態(tài)是在不同繼承關(guān)系的類對象,去調(diào)同一函數(shù),產(chǎn)生了不同的行為,下面這篇文章主要給大家介紹了關(guān)于C++中多態(tài)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • DOS簡易版C語言貪吃蛇

    DOS簡易版C語言貪吃蛇

    這篇文章主要為大家詳細介紹了DOS簡易版C語言貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C++ 轉(zhuǎn)換函數(shù)用法案例詳解

    C++ 轉(zhuǎn)換函數(shù)用法案例詳解

    這篇文章主要介紹了C++ 轉(zhuǎn)換函數(shù)用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++使用遞歸方法求n階勒讓德多項式完整實例

    C++使用遞歸方法求n階勒讓德多項式完整實例

    這篇文章主要介紹了C++使用遞歸方法求n階勒讓德多項式,涉及C++遞歸算法與浮點數(shù)運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • 詳解桶排序算法的思路及C++編程中的代碼實現(xiàn)

    詳解桶排序算法的思路及C++編程中的代碼實現(xiàn)

    桶排序即是先把每個桶中的元素進行排序然后遍歷桶依次列出元素的算法,桶排序在元素較少的情況下很高效,以下我們就來詳解桶排序算法的思路及C++編程中的代碼實現(xiàn):
    2016-07-07
  • C++利用用埃式篩法求解素數(shù)

    C++利用用埃式篩法求解素數(shù)

    埃拉托斯特尼篩法,簡稱埃氏篩或愛氏篩,是一種由希臘數(shù)學(xué)家埃拉托斯特尼所提出的一種簡單檢定素數(shù)的算法。本文將利用這一算法實現(xiàn)求解素數(shù),感興趣的可以了解一下
    2023-01-01
  • C++基于棧實現(xiàn)鐵軌問題

    C++基于棧實現(xiàn)鐵軌問題

    這篇文章主要介紹了C++基于棧實現(xiàn)鐵軌問題,實例分析了C++使用棧實現(xiàn)鐵軌問題的思路與解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04

最新評論