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

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

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

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

1. 效果圖

2. 需要的知識(shí)

C++基礎(chǔ)知識(shí)(包括變量,運(yùn)算符,順序,分支,循環(huán))
數(shù)組
函數(shù)
指針
結(jié)構(gòu)體

3. 源碼

#include <iostream>
using namespace std;
#define MAX 1000 ?//最大聯(lián)系人個(gè)數(shù)?

struct Person {
?? ?string name;
?? ?string sex;
?? ?int age;
?? ?string tell;
?? ?string addr;
};

struct Books {
?? ?struct Person per[MAX];
?? ?int N;//通訊錄人數(shù)
};

//函數(shù)聲明
void initBooks(Books *books);
void showMenu();
void addPerson(Books *books);
void showPerson(Books *books);
int ?findPerson(Books *books,string name);
void findPerson(Books *books);
void deletePerson(Books *books);
void modifyPerson(Books *books);
void clearPerson(Books *books);

//初始化通訊錄,向其中加入聯(lián)系人
void initBooks(Books *books) {
?? ?books->per[books->N].name = "張三";
?? ?books->per[books->N].sex = "男";
?? ?books->per[books->N].age = 22;
?? ?books->per[books->N].tell = "123456789";
?? ?books->per[books->N].addr = "成都";
?? ?books->N++;
?? ?books->per[books->N].name = "李四";
?? ?books->per[books->N].sex = "男";
?? ?books->per[books->N].age = 23;
?? ?books->per[books->N].tell = "123456789";
?? ?books->per[books->N].addr = "深圳";
?? ?books->N++;
?? ?books->per[books->N].name = "王五";
?? ?books->per[books->N].sex = "男";
?? ?books->per[books->N].age = 25;
?? ?books->per[books->N].tell = "123456789";
?? ?books->per[books->N].addr = "北京";
?? ?books->N++;
}

//菜單
void showMenu() {
?? ?system("color a");
?? ?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;
}

//添加
void addPerson(Books *books) {
?? ?if(books->N == MAX) {
?? ??? ?cout<<"通訊錄已滿(mǎn),無(wú)法添加\n";
?? ??? ?return;
?? ?} else {
?? ??? ?string name;
?? ??? ?string sex;
?? ??? ?int age;
?? ??? ?string tell;
?? ??? ?string addr;
?? ??? ?cout<<"請(qǐng)輸入姓名,性別,年齡,電話(huà)以及地址:";
?? ??? ?cin>>name>>sex>>age>>tell>>addr;
?? ??? ?books->per[books->N].name = name;
?? ??? ?books->per[books->N].sex = sex;
?? ??? ?books->per[books->N].age = age;
?? ??? ?books->per[books->N].tell = tell;
?? ??? ?books->per[books->N].addr = addr;
?? ??? ?books->N++;
?? ??? ?cout<<"添加成功\n";
?? ?}
}

//輸出
void showPerson(Books *books) {
?? ?if(books->N == 0) {
?? ??? ?cout<<"當(dāng)前記錄為空\(chéng)n";
?? ?} else {
?? ??? ?cout<<"姓名\t性別\t年齡\t電話(huà)\t\t地址\n";
?? ??? ?for(int i=0; i<books->N; i++) {
?? ??? ??? ?cout<<books->per[i].name<<"\t"
?? ??? ??? ? ? ?<<books->per[i].sex<<"\t"
?? ??? ??? ? ? ?<<books->per[i].age<<"\t"
?? ??? ??? ? ? ?<<books->per[i].tell<<"\t"
?? ??? ??? ? ? ?<<books->per[i].addr<<"\n";
?? ??? ?}
?? ?}
}

//查詢(xún)并返回是否存在
int findPerson(Books *books,string name) {
?? ?for(int i=0; i<books->N; i++) {
?? ??? ?if(books->per[i].name== name) {
?? ??? ??? ?return i;
?? ??? ?}
?? ?}
?? ?return -1;
}

//查詢(xún)并輸出
void findPerson(Books *books) {
?? ?cout<<"請(qǐng)輸入你要查找的聯(lián)系人的姓名:";
?? ?string name;
?? ?cin>>name;
?? ?int ret = findPerson(books,name);
?? ?if(ret!=-1) {
?? ??? ?cout<<books->per[ret].name<<"\t"
?? ??? ? ? ?<<books->per[ret].sex<<"\t"
?? ??? ? ? ?<<books->per[ret].age<<"\t"
?? ??? ? ? ?<<books->per[ret].tell<<"\t"
?? ??? ? ? ?<<books->per[ret].addr<<"\n";
?? ?} else {
?? ??? ?cout<<"查無(wú)此人\n";
?? ?}
}

//刪除
void deletePerson(Books *books) {
?? ?cout<<"請(qǐng)輸入你要?jiǎng)h除的聯(lián)系人的姓名:";
?? ?string name;
?? ?cin>>name;
?? ?int ret = findPerson(books, name);
?? ?if(ret!=-1) {
?? ??? ?for(int i=ret; i<books->N; i++) {
?? ??? ??? ?if(books->per[i].name== name) {
?? ??? ??? ??? ?books->per[i] = books->per[i+1];
?? ??? ??? ?}
?? ??? ?}
?? ??? ?books->N--;
?? ?} else {
?? ??? ?cout<<"查無(wú)此人\n";
?? ?}
}

//修改
void modifyPerson(Books *books) {
?? ?cout<<"請(qǐng)輸入你要修改的聯(lián)系人的姓名:";
?? ?string name;
?? ?cin>>name;
?? ?int ret = findPerson(books, name);
?? ?if(ret!=-1) {
?? ??? ?string name;
?? ??? ?string sex;
?? ??? ?int age;
?? ??? ?string tell;
?? ??? ?string addr;
?? ??? ?cout<<"請(qǐng)輸入姓名,性別,年齡,電話(huà)以及地址:";
?? ??? ?cin>>name>>sex>>age>>tell>>addr;
?? ??? ?books->per[ret].name = name;
?? ??? ?books->per[ret].sex = sex;
?? ??? ?books->per[ret].age = age;
?? ??? ?books->per[ret].tell = tell;
?? ??? ?books->per[ret].addr = addr;
?? ??? ?cout<<"修改成功\n";
?? ?} else {
?? ??? ?cout<<"查無(wú)此人,是否選擇新增(Y/N):\n";
?? ??? ?char flag;
?? ??? ?cin>>flag;
?? ??? ?if(flag=='Y') {
?? ??? ??? ?addPerson(books);
?? ??? ?}
?? ?}
}

//清空
void clearPerson(Books *books) {
?? ?books->N = 0;
?? ?cout<<"通訊錄已清空\(chéng)n";
}

int main(int argc, char** argv) {
?? ?showMenu();
?? ?Books books;
?? ?books.N = 0;
?? ?initBooks(&books);
?? ?showPerson(&books);

?? ?while(true) {
?? ??? ?showMenu();
?? ??? ?cout<<"請(qǐng)輸入功能前的序號(hào):\n";
?? ??? ?int select=0;
?? ??? ?cin>>select;
?? ??? ?switch(select) {
?? ??? ??? ?case 1:
?? ??? ??? ??? ?addPerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 2:
?? ??? ??? ??? ?showPerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?deletePerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?findPerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 5:
?? ??? ??? ??? ?modifyPerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 6:
?? ??? ??? ??? ?clearPerson(&books);
?? ??? ??? ??? ?break;
?? ??? ??? ?case 0:
?? ??? ??? ??? ?cout<<"歡迎下次使用\n";
?? ??? ??? ??? ?exit(0);
?? ??? ??? ?default:
?? ??? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?return 0;
}

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

相關(guān)文章

  • 詳解C++編程中的變量相關(guān)知識(shí)

    詳解C++編程中的變量相關(guān)知識(shí)

    這篇文章主要介紹了詳解C++編程中的變量相關(guān)知識(shí),是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • c語(yǔ)言中如何修改文件中間的幾個(gè)字節(jié)

    c語(yǔ)言中如何修改文件中間的幾個(gè)字節(jié)

    工作中碰到一個(gè)問(wèn)題,如何只修改文件中間的幾個(gè)字節(jié),而其他的內(nèi)容不變。這個(gè)問(wèn)題看似簡(jiǎn)單,但是很多人估計(jì)都不知道怎么做。我開(kāi)始seek到文件的特定的位置,然后寫(xiě)文件,但是使用的文件打開(kāi)模式不對(duì),文件不是被清空,就是被截?cái)啵_(dá)不到效果
    2020-10-10
  • c++中struct和class的區(qū)別小結(jié)

    c++中struct和class的區(qū)別小結(jié)

    在C++中,class和struct都是用于定義自定義數(shù)據(jù)類(lèi)型的關(guān)鍵字,本文主要介紹了c++中struct和class的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • C++針對(duì)bmp格式解析實(shí)例

    C++針對(duì)bmp格式解析實(shí)例

    這篇文章主要介紹了C++針對(duì)bmp格式解析實(shí)例,設(shè)計(jì)CWnd框架的使用及位圖的操作,需要的朋友可以參考下
    2014-10-10
  • C++ opencv霍夫圓檢測(cè)使用案例詳解

    C++ opencv霍夫圓檢測(cè)使用案例詳解

    這篇文章主要介紹了C++ opencv霍夫圓檢測(cè)使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++中BitBlt的使用方法詳解

    C++中BitBlt的使用方法詳解

    這篇文章主要介紹了C++中BitBlt的使用方法詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • C++深入分析講解鏈表

    C++深入分析講解鏈表

    當(dāng)我們?cè)趯?xiě)一段代碼時(shí),如果要頻繁的在一塊區(qū)域進(jìn)行插入或者刪除操作時(shí),會(huì)發(fā)現(xiàn)用數(shù)組實(shí)現(xiàn)會(huì)比較復(fù)雜,這時(shí)候我們就要用另一種數(shù)據(jù)結(jié)構(gòu),鏈表來(lái)實(shí)現(xiàn)
    2022-06-06
  • 詳解C++?OpenCV實(shí)現(xiàn)圖像拼接的原理及方法

    詳解C++?OpenCV實(shí)現(xiàn)圖像拼接的原理及方法

    本文以實(shí)現(xiàn)圖像拼接為目標(biāo),把分割開(kāi)的圖像進(jìn)行拼接還原,核心的內(nèi)容包括:OpenCV圖像拼接相關(guān)原理以及OpenCV圖像拼接案例的實(shí)現(xiàn),感興趣的可以了解一下
    2022-07-07
  • C語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)井字棋及電腦落子優(yōu)化示例詳解

    C語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)井字棋及電腦落子優(yōu)化示例詳解

    以前上課經(jīng)常和同桌玩起井字棋,那么我們就當(dāng)我們回憶童年,現(xiàn)在也用C語(yǔ)言來(lái)實(shí)現(xiàn)井字棋,本次代碼相對(duì)于初階的井字棋,在電腦下棋代碼部分做了優(yōu)化,使得電腦更加具有威脅
    2021-11-11
  • 深入淺出理解C語(yǔ)言指針的綜合應(yīng)用

    深入淺出理解C語(yǔ)言指針的綜合應(yīng)用

    指針是指向另一個(gè)變量的變量。意思是一個(gè)指針保存的是另一個(gè)變量的內(nèi)存地址。換句話(huà)說(shuō),指針保存的并不是普通意義上的數(shù)值,而是另一個(gè)變量的地址值。一個(gè)指針保存了另一個(gè)變量的地址值,就說(shuō)這個(gè)指針“指向”了那個(gè)變量
    2022-02-02

最新評(píng)論