c++ 通讯录

#include <iostream>
//#include "add.h"

#define MAX 10
using namespace std;

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

struct Person{
    string name;
    int gender;// 1:男,0:女
    int age;
    string phone;
    string addr;
};

struct Addressbooks{
    Person personArr[MAX];
    int size = 0;
};


void addAds(Addressbooks * ads){
    if(ads->size >= MAX){
        cout<<"通讯录人数已经超过"<<MAX<<endl;
        return;
    } else{
        cout<<"请输入姓名"<<endl;
        cin>>ads->personArr[ads->size].name;
        cout<<"请输入性别(1:男,2:女)"<<endl;
        while (true){
            int gender;
            cin>>gender;
            if(gender == 1 || gender == 2){
                ads->personArr[ads->size].gender = gender;
                break;
            }
            cout<<"输入有误"<<endl;
        }
        cout<<"请输入年龄"<<endl;
        cin>>ads->personArr[ads->size].age;
        cout<<"请输入电话"<<endl;
        cin>>ads->personArr[ads->size].phone;
        cout<<"请输入地址"<<endl;
        cin>>ads->personArr[ads->size].addr;
        cout<<"添加成功"<<endl;
        ads->size++;

    }

}

void showAds(Addressbooks * ads){
    for (int i = 0; i < ads->size; ++i) {

        cout<<ads->personArr[i].name<<"	"<<
        ads->personArr[i].gender<<"	"<<
        ads->personArr[i].age<<"	"<<
        ads->personArr[i].phone<<"	"<<
        ads->personArr[i].addr<<"	"<<

        endl;
    }
    system("clear");
}


int getAdsIndex(Addressbooks * ads, string name){
    for (int i = 0; i < ads->size; ++i) {
        if(ads->personArr[i].name == name){
            return i;
        }
    }
    return -1;
}
void delAds(Addressbooks * ads){
    cout<<"请输入姓名"<<endl;
    string name;
    cin>>name;
    int index = getAdsIndex(ads,name);
    if(index == -1){
        cout<<"查无此人"<<endl;
        return;
    }

    for (int i = index; i < ads->size && i + 1 < ads->size - 1; ++i) {
        ads->personArr[i] = ads->personArr[i+1];
    }
    ads->size--;
    cout<<"删除成功"<<endl;
}

void getAds(Addressbooks * ads){
    cout<<"请输入姓名"<<endl;
    string name;
    cin>>name;
    int i = getAdsIndex(ads,name);
    if(i == -1){
        cout<<"查无此人"<<endl;
        return;
    }

    cout<<ads->personArr[i].name<<"	"<<
        ads->personArr[i].gender<<"	"<<
        ads->personArr[i].age<<"	"<<
        ads->personArr[i].phone<<"	"<<
        ads->personArr[i].addr<<"	"<<

        endl;
}

void updateAds(Addressbooks * ads){
    cout<<"请输入姓名"<<endl;
    string name;
    cin>>name;
    int i = getAdsIndex(ads,name);
    if(i == -1){
        cout<<"查无此人"<<endl;
        return;
    }
    cout<<"请输入姓名"<<endl;
    cin>>ads->personArr[i].name;
    cout<<"请输入性别(1:男,2:女)"<<endl;
    cin>>ads->personArr[i].gender;
    cout<<"请输入年龄"<<endl;
    cin>>ads->personArr[i].age;
    cout<<"请输入电话"<<endl;
    cin>>ads->personArr[i].phone;
    cout<<"请输入地址"<<endl;
    cin>>ads->personArr[i].addr;
    cout<<"修改成功"<<endl;

}

void clearAds(Addressbooks * ads){
    ads->size = 0;
    cout<<"清理完成"<<endl;
}

int main() {
    int select;
    Addressbooks ads;

    while (true){
        showMenu();
        cin>> select;
        switch (select){
            case 1:
                addAds(&ads);
                break;
            case 2:
                showAds(&ads);
                break;
            case 3:
                delAds(&ads);
                break;
            case 4:
                getAds(&ads);
                break;
            case 5:
                updateAds(&ads);
                break;
            case 6:
                clearAds(&ads);
                break;
            case 0:
                cout<<"欢迎下次使用"<<endl;
                return 0;
            default:
                break;
        }

    }
    return 0;
}
原文地址:https://www.cnblogs.com/dongma/p/13812310.html