通訊錄管理系統(tǒng)C++-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:自適應(yīng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、成都全網(wǎng)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

一、前言

二、設(shè)計(jì)要求

三、概要設(shè)計(jì)

3.1 主界面設(shè)計(jì)

3.1.1 設(shè)計(jì)圖

3.1.2設(shè)計(jì)代碼

3.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)

3.3 系統(tǒng)功能設(shè)計(jì)

3.3.1 系統(tǒng)流程圖?編輯

3.3.2 系統(tǒng)子程序及功能介紹?

四、詳細(xì)設(shè)計(jì)

4.1 頭文件

4.2?數(shù)據(jù)定義

4.3 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)

4.3.1 主函數(shù)

4.3.2 添加聯(lián)系人

4.3.3 顯示聯(lián)系人

4.3.4 以姓名查找聯(lián)系人(返回聯(lián)系人編號(hào))

4.3.5 以電話號(hào)碼查找聯(lián)系人(返回聯(lián)系人編號(hào))

4.3.6 以住址查找聯(lián)系人(并返回聯(lián)系人編號(hào))

4.3.7 刪除聯(lián)系人

4.3.8 查找聯(lián)系人

4.3.9 修改聯(lián)系人

4.3.10 備份通訊錄

4.3.11 恢復(fù)通訊錄

4.3.12 清空通訊錄

4.3.13 退出程序

五、源代碼清單


一、前言

通訊錄管理系統(tǒng)是一個(gè)比較實(shí)用的小型管理系統(tǒng)。隨著生活節(jié)奏的加快,人們追求豐富便捷的電子產(chǎn)品體驗(yàn),因此也提高對(duì)便捷方式的喜愛。當(dāng)今社會(huì)下人們的交際范圍越來越廣泛,通訊錄系統(tǒng)的出現(xiàn),給人們的生活帶來了極大便利和幫助,幫助人們處理繁瑣復(fù)雜的工作,可以幫人們高效的處理和存儲(chǔ)信息。

二、設(shè)計(jì)要求

使用C++實(shí)現(xiàn)一個(gè)通訊錄管理系統(tǒng),具有實(shí)現(xiàn)通訊錄聯(lián)系人的添加、 刪除、查找、修改以及通訊錄的清空、備份與還原等功能。

添加聯(lián)系人:向通訊錄中添加聯(lián)系人,信息包括(姓名、性別、年齡、聯(lián)系方式、住址)最多記錄1000人。

顯示聯(lián)系人:顯示通訊錄中所有聯(lián)系人信息。

刪除聯(lián)系人:按照用戶需求進(jìn)行刪除指定聯(lián)系人。

查找聯(lián)系人:按照用戶需求查看指定聯(lián)系人信息。

修改聯(lián)系人:按照用戶需求重新修改指定聯(lián)系人。

備份通訊錄:將通訊錄數(shù)據(jù)備份到文件中。

恢復(fù)通訊錄:將備份的數(shù)據(jù)恢復(fù)到通訊錄中。

清空通訊錄:清空通訊錄中所有信息。

退出通訊錄:退出當(dāng)前使用的通訊錄。

三、概要設(shè)計(jì) 3.1 主界面設(shè)計(jì) 3.1.1 設(shè)計(jì)圖

cbc8edc0a1d1401b819febd9d9601b4a.png

3.1.2設(shè)計(jì)代碼
void showMenu()
{
    cout<< "***********************"<< endl<< "*****1、添加聯(lián)系人*****"<< endl<< "*****2、顯示聯(lián)系人*****"<< endl<< "*****3、刪除聯(lián)系人*****"<< endl<< "*****4、查找聯(lián)系人*****"<< endl<< "*****5、修改聯(lián)系人*****"<< endl<< "*****6、備份通訊錄*****"<< endl<< "*****7、恢復(fù)通訊錄*****"<< endl<< "*****8、清空通訊錄*****"<< endl<< "*****0、退出通訊錄*****"<< endl<< "***********************"<< endl;
}
3.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)

? 聲明一個(gè)通訊錄結(jié)構(gòu)體,存儲(chǔ)聯(lián)系人結(jié)構(gòu)體和人數(shù)。聯(lián)系人結(jié)構(gòu)體存儲(chǔ)的內(nèi)容有姓名、性別、年齡、電話號(hào)碼、住址。?

d7e9addcf9ce4146aaa723415beb38bc.png

3.3 系統(tǒng)功能設(shè)計(jì) 3.3.1 系統(tǒng)流程圖328fbdc11a744cacb3280cd971427a92.png3.3.2 系統(tǒng)子程序及功能介紹?

函數(shù)名

功能

int main()

主函數(shù)

void showMenu()

菜單調(diào)用

void addPerson(addressbook *abs)

添加聯(lián)系人

void showPerson(const addressbook *abs)

顯示聯(lián)系人

int namefind(addressbook *abs)

int phonefind(addressbook *abs)

int addressfind(addressbook *abs)

按需求查找聯(lián)系人

(姓名、電話號(hào)碼、住址)

返回聯(lián)系人編號(hào)

void deletePerson(addressbook *abs)

刪除聯(lián)系人

void findPerson(addressbook *abs)

查找聯(lián)系人

void modifyPerson(addressbook *abs)

修改聯(lián)系人

void ofaddressbook(const addressbook *abs)

備份通訊錄

void ifaddressbook(addressbook *abs)

恢復(fù)通訊錄

void cleanPerson(addressbook *abs)

清空聯(lián)系人

void end()

退出通訊錄

四、詳細(xì)設(shè)計(jì) 4.1 頭文件
#include#include#includeusing namespace std;
4.2?數(shù)據(jù)定義
#define MAX 1000 //大人數(shù)

struct Person
{
    string name;    //姓名
    string sex;     //性別
    int age;        //年齡
    string phone;   //電話號(hào)碼
    string address; //住址
};

struct addressbook
{
    Person personarray[MAX]; //通訊錄中保存的聯(lián)系人數(shù)組
    int size;                //通訊錄中人員個(gè)數(shù)
};
4.3 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì) 4.3.1 主函數(shù)
int main()
{
    int select;
    addressbook abs;
    abs.size = 0;
    while (true)
    {
        showMenu(); //菜單調(diào)用
        cin >>select;
        system("clear");
        switch (select)
        {
        case 0: //退出通訊錄
            end();
            break;
        case 1: //添加聯(lián)系人
            addPerson(&abs);
            break;
        case 2: //顯示聯(lián)系人
            showPerson(&abs);
            break;
        case 3: //刪除聯(lián)系人
            deletePerson(&abs);
            break;
        case 4: //查找聯(lián)系人
            findPerson(&abs);
            break;
        case 5: //修改聯(lián)系人
            modifyPerson(&abs);
            break;
        case 6: //備份通訊錄
            ofaddressbook(&abs);
            break;
        case 7: //恢復(fù)通訊錄
            ifaddressbook(&abs);
            break;
        case 8: //清空通訊錄
            cleanPerson(&abs);
            break;
        default:
            cout<< "輸入錯(cuò)誤,請(qǐng)重新輸入"<< endl;
            cout<< "請(qǐng)按任意鍵并回車?yán)^續(xù)"<< endl; // MAC系統(tǒng)
            cin >>select;                          // MAC系統(tǒng)
            system("clear");                        // MAC系統(tǒng)
            // system("pause");WINDOWS系統(tǒng)
            // system("cls");WINDOWS系統(tǒng)
            continue;
        }
        cout<< "請(qǐng)按任意鍵并回車?yán)^續(xù)"<< endl; // MAC系統(tǒng)
        cin >>select;                          // MAC系統(tǒng)
        system("clear");                        // MAC系統(tǒng)
        // system("pause");WINDOWS系統(tǒng)
        // system("cls");WINDOWS系統(tǒng)
    }
    return 0;
}
4.3.2 添加聯(lián)系人

在主菜單按“1”運(yùn)行,分別輸入姓名、性別、年齡、電話、住址。

void addPerson(addressbook *abs)
{
    if (abs->size == MAX) //判斷通訊錄人數(shù)是否已滿
    {
        cout<< "通訊錄人數(shù)已滿"<< endl;
    }
    else
    {
        cout<< "請(qǐng)輸入姓名:";
        cin >>abs->personarray[abs->size].name;
        cout<< "請(qǐng)輸入性別:";
        cin >>abs->personarray[abs->size].sex;
        cout<< "請(qǐng)輸入年齡:";
        cin >>abs->personarray[abs->size].age;
        cout<< "請(qǐng)輸入電話號(hào)碼:";
        cin >>abs->personarray[abs->size].phone;
        cout<< "請(qǐng)輸入住址:";
        cin >>abs->personarray[abs->size].address;
        cout<< "修改成功"<< endl;
        abs->size++;
        cout<< "聯(lián)系人添加成功"<< endl;
    }
}
4.3.3 顯示聯(lián)系人

在主菜單按“2”運(yùn)行,分別顯示輸入的所有聯(lián)系人信息。

void showPerson(const addressbook *abs)
{
    if (abs->size) //判斷人數(shù)是否為零
    {
        for (int i = 0; i< abs->size; i++)
        {
            cout<< "姓名:"<< abs->personarray[i].name
      << "\t性別:"<< abs->personarray[i].sex
      << "\t年齡:"<< abs->personarray[i].age
      << "\t電話號(hào)碼:"<< abs->personarray[i].phone
      << "\t住址:"<< abs->personarray[i].address
      << endl;
        }
    }
    else
    {
        cout<< "通訊錄為空"<< endl;
    }
}
4.3.4 以姓名查找聯(lián)系人(返回聯(lián)系人編號(hào))
int namefind(addressbook *abs)
{
    string name;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人的姓名"<< endl;
    cin >>name;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (name.compare(abs->personarray[i].name) == 0)
        {
            return i;
        }
    }
    return -1;
}
4.3.5 以電話號(hào)碼查找聯(lián)系人(返回聯(lián)系人編號(hào))
int phonefind(addressbook *abs)
{
    string phone;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人的電話號(hào)碼"<< endl;
    cin >>phone;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (phone.compare(abs->personarray[i].phone) == 0)
        {
            return i;
        }
    }
    return -1;
}
4.3.6 以住址查找聯(lián)系人(并返回聯(lián)系人編號(hào))
int addressfind(addressbook *abs)
{
    string address;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人住址"<< endl;
    cin >>address;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (address.compare(abs->personarray[i].address) == 0)
        {
            return i;
        }
    }
    return -1;
}
4.3.7 刪除聯(lián)系人

在主菜單按“3”運(yùn)行,選擇按1.姓名2.電話號(hào)碼3.住址,然后輸入一定的數(shù)據(jù),通訊錄有該聯(lián)系人則刪除,沒有則輸出查無此人。

void deletePerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        abs->personarray[n] = abs->personarray[abs->size - 1]; //替換將刪除的聯(lián)系人
        abs->size--;                                           //通訊錄人數(shù)-1
        cout<< "刪除成功"<< endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}
4.3.8 查找聯(lián)系人

在主菜單按“4”運(yùn)行,選擇按1.姓名2.電話號(hào)碼3.住址,然后輸入一定的數(shù)據(jù),通訊錄有該聯(lián)系人則顯示,沒有則輸出查無此人。

void findPerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        cout<< "姓名:"<< abs->personarray[n].name
  << "\t性別:"<< abs->personarray[n].sex
  << "\t年齡:"<< abs->personarray[n].age
  << "\t電話號(hào)碼:"<< abs->personarray[n].phone
  << "\t住址:"<< abs->personarray[n].address
  << endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}
4.3.9 修改聯(lián)系人

在主菜單按“5”運(yùn)行,選擇按1.姓名2.電話號(hào)碼3.住址,然后輸入一定的數(shù)據(jù),通訊錄有該聯(lián)系人提示用戶輸入數(shù)據(jù)并修改,沒有則輸出查無此人。

void modifyPerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        cout<< "請(qǐng)輸入修改后的姓名:";
        cin >>abs->personarray[n].name;
        cout<< "請(qǐng)輸入修改后的性別:";
        cin >>abs->personarray[n].sex;
        cout<< "請(qǐng)輸入修改后的年齡:";
        cin >>abs->personarray[n].age;
        cout<< "請(qǐng)輸入修改后的電話號(hào)碼:";
        cin >>abs->personarray[n].phone;
        cout<< "請(qǐng)輸入修改后的住址:";
        cin >>abs->personarray[n].address;
        cout<< "修改成功"<< endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}
4.3.10 備份通訊錄

在主菜單按“6”運(yùn)行,將通訊錄數(shù)據(jù)備份到文件中。

void ofaddressbook(const addressbook *abs)
{
    ofstream ofs;
    ofs.open("addressbook.txt", ios::out); //打開文件
    ofs<< "姓名\t性別\t年齡\t電話號(hào)碼\t住址"<< endl;
    for (int i = 0; i< abs->size; i++)
    {
        ofs<< abs->personarray[i].name
 << "\t\t"<< abs->personarray[i].sex
 << "\t\t"<< abs->personarray[i].age
 << "\t\t"<< abs->personarray[i].phone
 << "\t\t"<< abs->personarray[i].address
 << endl;
    }
    ofs.close(); //關(guān)閉文件
    cout<< "備份成功"<< endl;
}
4.3.11 恢復(fù)通訊錄

在主菜單按“7”運(yùn)行,將文件數(shù)據(jù)恢復(fù)到通訊錄中。

void ifaddressbook(addressbook *abs)
{
    string temp;
    ifstream ifs;
    ifs.open("addressbook.txt", ios::in); //打開文件
    if (ifs.is_open())
    {
        getline(ifs, temp); //將文件上方的標(biāo)簽輸入到臨時(shí)字符串
        while (ifs >>abs->personarray[abs->size].name >>abs->personarray[abs->size].sex >>abs->personarray[abs->size].age >>abs->personarray[abs->size].phone >>abs->personarray[abs->size].address)
        {
            abs->size++; //人數(shù)+1
        }
        ifs.close(); //關(guān)閉文件
        cout<< "恢復(fù)成功"<< endl;
    }
    else
    {
        cout<< "文件打開失敗"<< endl;
    }
}
4.3.12 清空通訊錄

在主菜單按“8”運(yùn)行,將通訊錄中成員全部清空。

void cleanPerson(addressbook *abs)
{
    abs->size = 0; 將通訊錄清空
    cout<< "通訊錄已清空"<< endl;
}
4.3.13 退出程序

在主菜單按“0”運(yùn)行,退出通訊錄管理系統(tǒng)。

void end()
{
    cout<< "歡迎下次使用"<< endl;
    exit(0); //退出程序
}
五、源代碼清單
#include#include#includeusing namespace std;

#define MAX 1000 //大人數(shù)

struct Person
{
    string name;    //姓名
    string sex;     //性別
    int age;        //年齡
    string phone;   //電話號(hào)碼
    string address; //住址
};

struct addressbook
{
    Person personarray[MAX]; //通訊錄中保存的聯(lián)系人數(shù)組
    int size;                //通訊錄中人員個(gè)數(shù)
};

void showMenu();
void addPerson(addressbook *abs);
void showPerson(const addressbook *abs);
int namefind(addressbook *abs);
int phonefind(addressbook *abs);
int addressfind(addressbook *abs);
void deletePerson(addressbook *abs);
void findPerson(addressbook *abs);
void modifyPerson(addressbook *abs);
void ofaddressbook(const addressbook *abs);
void ifaddressbook(addressbook *abs);
void cleanPerson(addressbook *abs);
void end();

int main()
{
    int select;
    addressbook abs;
    abs.size = 0;
    while (true)
    {
        showMenu(); //菜單調(diào)用
        cin >>select;
        system("clear");
        switch (select)
        {
        case 0: //退出通訊錄
            end();
            break;
        case 1: //添加聯(lián)系人
            addPerson(&abs);
            break;
        case 2: //顯示聯(lián)系人
            showPerson(&abs);
            break;
        case 3: //刪除聯(lián)系人
            deletePerson(&abs);
            break;
        case 4: //查找聯(lián)系人
            findPerson(&abs);
            break;
        case 5: //修改聯(lián)系人
            modifyPerson(&abs);
            break;
        case 6: //備份通訊錄
            ofaddressbook(&abs);
            break;
        case 7: //恢復(fù)通訊錄
            ifaddressbook(&abs);
            break;
        case 8: //清空通訊錄
            cleanPerson(&abs);
            break;
        default:
            cout<< "輸入錯(cuò)誤,請(qǐng)重新輸入"<< endl;
            cout<< "請(qǐng)按任意鍵并回車?yán)^續(xù)"<< endl; // MAC系統(tǒng)
            cin >>select;                          // MAC系統(tǒng)
            system("clear");                        // MAC系統(tǒng)
            // system("pause");WINDOWS系統(tǒng)
            // system("cls");WINDOWS系統(tǒng)
            continue;
        }
        cout<< "請(qǐng)按任意鍵并回車?yán)^續(xù)"<< endl; // MAC系統(tǒng)
        cin >>select;                          // MAC系統(tǒng)
        system("clear");                        // MAC系統(tǒng)
        // system("pause");WINDOWS系統(tǒng)
        // system("cls");WINDOWS系統(tǒng)
    }
    return 0;
}

void showMenu()
{
    cout<< "***********************"<< endl<< "*****1、添加聯(lián)系人*****"<< endl<< "*****2、顯示聯(lián)系人*****"<< endl<< "*****3、刪除聯(lián)系人*****"<< endl<< "*****4、查找聯(lián)系人*****"<< endl<< "*****5、修改聯(lián)系人*****"<< endl<< "*****6、備份通訊錄*****"<< endl<< "*****7、恢復(fù)通訊錄*****"<< endl<< "*****8、清空通訊錄*****"<< endl<< "*****0、退出通訊錄*****"<< endl<< "***********************"<< endl;
}

void addPerson(addressbook *abs)
{
    if (abs->size == MAX) //判斷通訊錄人數(shù)是否已滿
    {
        cout<< "通訊錄人數(shù)已滿"<< endl;
    }
    else
    {
        cout<< "請(qǐng)輸入姓名:";
        cin >>abs->personarray[abs->size].name;
        cout<< "請(qǐng)輸入性別:";
        cin >>abs->personarray[abs->size].sex;
        cout<< "請(qǐng)輸入年齡:";
        cin >>abs->personarray[abs->size].age;
        cout<< "請(qǐng)輸入電話號(hào)碼:";
        cin >>abs->personarray[abs->size].phone;
        cout<< "請(qǐng)輸入住址:";
        cin >>abs->personarray[abs->size].address;
        cout<< "修改成功"<< endl;
        abs->size++;
        cout<< "聯(lián)系人添加成功"<< endl;
    }
}

void showPerson(const addressbook *abs)
{
    if (abs->size) //判斷人數(shù)是否為零
    {
        for (int i = 0; i< abs->size; i++)
        {
            cout<< "姓名:"<< abs->personarray[i].name
      << "\t性別:"<< abs->personarray[i].sex
      << "\t年齡:"<< abs->personarray[i].age
      << "\t電話號(hào)碼:"<< abs->personarray[i].phone
      << "\t住址:"<< abs->personarray[i].address
      << endl;
        }
    }
    else
    {
        cout<< "通訊錄為空"<< endl;
    }
}

int namefind(addressbook *abs)
{
    string name;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人的姓名"<< endl;
    cin >>name;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (name.compare(abs->personarray[i].name) == 0)
        {
            return i;
        }
    }
    return -1;
}

int phonefind(addressbook *abs)
{
    string phone;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人的電話號(hào)碼"<< endl;
    cin >>phone;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (phone.compare(abs->personarray[i].phone) == 0)
        {
            return i;
        }
    }
    return -1;
}

int addressfind(addressbook *abs)
{
    string address;
    cout<< "請(qǐng)輸入您要查找聯(lián)系人住址"<< endl;
    cin >>address;
    for (int i = 0; i< abs->size; i++) //查找輸入的聯(lián)系人
    {
        if (address.compare(abs->personarray[i].address) == 0)
        {
            return i;
        }
    }
    return -1;
}

void deletePerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        abs->personarray[n] = abs->personarray[abs->size - 1]; //替換將刪除的聯(lián)系人
        abs->size--;                                           //通訊錄人數(shù)-1
        cout<< "刪除成功"<< endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}

void findPerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        cout<< "姓名:"<< abs->personarray[n].name
  << "\t性別:"<< abs->personarray[n].sex
  << "\t年齡:"<< abs->personarray[n].age
  << "\t電話號(hào)碼:"<< abs->personarray[n].phone
  << "\t住址:"<< abs->personarray[n].address
  << endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}

void modifyPerson(addressbook *abs)
{
    int n;
    cout<< "請(qǐng)輸入查詢方式\n1.姓名\n2.電話號(hào)碼\n3.住址"<< endl;
    cin >>n;
    switch (n) //選擇查詢方式
    {
    case 1:
        n = namefind(abs);
        break;
    case 2:
        n = phonefind(abs);
        break;
    case 3:
        n = addressfind(abs);
        break;
    default:
        cout<< "您輸入有誤,請(qǐng)重新輸入"<< endl;
    }
    system("clear");
    if (n != -1)
    {
        cout<< "請(qǐng)輸入修改后的姓名:";
        cin >>abs->personarray[n].name;
        cout<< "請(qǐng)輸入修改后的性別:";
        cin >>abs->personarray[n].sex;
        cout<< "請(qǐng)輸入修改后的年齡:";
        cin >>abs->personarray[n].age;
        cout<< "請(qǐng)輸入修改后的電話號(hào)碼:";
        cin >>abs->personarray[n].phone;
        cout<< "請(qǐng)輸入修改后的住址:";
        cin >>abs->personarray[n].address;
        cout<< "修改成功"<< endl;
    }
    else
    {
        cout<< "查無此人"<< endl;
    }
}

void ofaddressbook(const addressbook *abs)
{
    ofstream ofs;
    ofs.open("addressbook.txt", ios::out); //打開文件
    ofs<< "姓名\t性別\t年齡\t電話號(hào)碼\t住址"<< endl;
    for (int i = 0; i< abs->size; i++)
    {
        ofs<< abs->personarray[i].name
 << "\t\t"<< abs->personarray[i].sex
 << "\t\t"<< abs->personarray[i].age
 << "\t\t"<< abs->personarray[i].phone
 << "\t\t"<< abs->personarray[i].address
 << endl;
    }
    ofs.close(); //關(guān)閉文件
    cout<< "備份成功"<< endl;
}

void ifaddressbook(addressbook *abs)
{
    string temp;
    ifstream ifs;
    ifs.open("addressbook.txt", ios::in); //打開文件
    if (ifs.is_open())
    {
        getline(ifs, temp); //將文件上方的標(biāo)簽輸入到臨時(shí)字符串
        while (ifs >>abs->personarray[abs->size].name >>abs->personarray[abs->size].sex >>abs->personarray[abs->size].age >>abs->personarray[abs->size].phone >>abs->personarray[abs->size].address)
        {
            abs->size++; //人數(shù)+1
        }
        ifs.close(); //關(guān)閉文件
        cout<< "恢復(fù)成功"<< endl;
    }
    else
    {
        cout<< "文件打開失敗"<< endl;
    }
}

void cleanPerson(addressbook *abs)
{
    abs->size = 0; 將通訊錄清空
    cout<< "通訊錄已清空"<< endl;
}

void end()
{
    cout<< "歡迎下次使用"<< endl;
    exit(0); //退出程序
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:通訊錄管理系統(tǒng)C++-創(chuàng)新互聯(lián)
標(biāo)題來源:http://bm7419.com/article22/dpdjjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作網(wǎng)站制作、微信公眾號(hào)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)