C++简单通讯录管理系统

#include <iostream>
using namespace std;
#define MAX 1000
//联系人结构体
struct Person{
    string name;
    int age;
    int sex;
    string phone;
    string address;
};

struct AddressBookes{
    struct Person personArray[MAX];
    int size;
};

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

void addPerson(AddressBookes * abs) {
    if (abs->size == MAX) {
        cout << "通讯录已满!" << endl;
        return;
    } else {
        string name;
        cout << "请输入姓名:" << endl;
        cin >> name;
        abs->personArray[abs->size].name = name;

        int sex = 0;
        cout << "请输入性别:" << endl;
        cout << "1===男:" << endl;
        cout << "2===女:" << endl;

        while (true) {
            cin >> sex;
            if (sex == 1 || sex == 2) {
                abs->personArray[abs->size].sex = sex;
                break;
            }
            cout << "输入有误,重新输入:" << endl;
        }

        cout << "请输入年龄:" << endl;
        int age = 0;
        cin >> age;
        abs->personArray[abs->size].age = age;

        cout << "请输入联系电话:" << endl;
        string phone;
        cin >> phone;
        abs->personArray[abs->size].phone= phone;

        cout << "请输入家庭地址:" << endl;
        string address;
        cin >> address;
        abs->personArray[abs->size].address= address;

        abs->size++;
        cout << "添加成功!" << endl;
        system("pause"); //按任意键继续
        system("cls"); //清屏操作

    }
}

//显示联系人
void showPerson(AddressBookes * abs) {
    if (abs->size == 0) {
        cout << "当前通讯录为空:" << endl;
    }
    for (int i = 0; i < abs->size; ++i) {
        cout << "姓名:" << abs->personArray[i].name << "\t";
        cout << "年龄:" << abs->personArray[i].age << "\t";
        cout << "性别:" << (abs->personArray[i].sex == 1 ? "男" : "女") << "\t";
        cout << "电话:" << abs->personArray[i].phone << "\t";
        cout << "住址:" << abs->personArray[i].address << endl;
    }
    //按任意键继续
    system("pause");
    system("cls");
}

//检测联系人是否存在
int isExist(AddressBookes * abs, string name) {
    for (int i = 0; i < abs->size; ++i) {
        if (abs->personArray[i].name == name) {
            return i;
        }
    }
    return -1;
}
//删除联系人
void deletePerson(AddressBookes * abs) {
    cout << "请输入要删除联系人的姓名:" << endl;
    string name;
    cin >> name;
    int ret = isExist(abs, name);
    if (ret != -1) {
        for (int i = ret; i < abs->size; ++i) {
            abs->personArray[i] = abs->personArray[i + 1];
        }
        abs->size--;
        cout << "删除成功!" << endl;
    } else{
        cout << "没有此联系人" <<endl;
    }
    system("pause");
    system("cls");
}

//查找联系人
void findPerson(AddressBookes * abs) {
    cout << "请输入要查找联系人的姓名:" << endl;
    string name;
    cin >> name;
    int ret = isExist(abs, name);
    if ( ret == -1) {
        cout << "没有此联系人" <<endl;
    } else {
        cout << "姓名:" << abs->personArray[ret].name << "\t";
        cout << "年龄:" << abs->personArray[ret].age << "\t";
        cout << "性别:" << (abs->personArray[ret].sex == 1 ? "男" : "女") << "\t";
        cout << "电话:" << abs->personArray[ret].phone << "\t";
        cout << "住址:" << abs->personArray[ret].address << endl;
    }
    //任意键清屏
    system("pause");
    system("cls");
}

//修改联系人
void updatePerson(AddressBookes *abs) {
    cout << "请输入要修改联系人的姓名:" << endl;
    string name;
    cin >> name;
    int ret = isExist(abs, name);
    if ( ret != -1) {
        string name;
        cout << "请输入姓名:" << endl;
        cin >> name;
        abs->personArray[abs->size].name = name;

        int sex = 0;
        cout << "请输入性别:" << endl;
        cout << "1===男:" << endl;
        cout << "2===女:" << endl;

        while (true) {
            cin >> sex;
            if (sex == 1 || sex == 2) {
                abs->personArray[abs->size].sex = sex;
                break;
            }
            cout << "输入有误,重新输入:" << endl;
        }

        cout << "请输入年龄:" << endl;
        int age = 0;
        cin >> age;
        abs->personArray[abs->size].age = age;

        cout << "请输入联系电话:" << endl;
        string phone;
        cin >> phone;
        abs->personArray[abs->size].phone= phone;

        cout << "请输入家庭地址:" << endl;
        string address;
        cin >> address;
        abs->personArray[abs->size].address= address;
    } else {
        cout << "没有此联系人" <<endl;
    }
    system("pause");
    system("cls");
}
//清空联系人
void deleteAllPerson(AddressBookes * abs) {
    abs->size = 0;
    cout << "清除成功" << endl;
    system("pause");
    system("cls");
}

int main()
{
    AddressBookes abs;
    //初始化通讯录
    abs.size = 0;

    int select = 0;
    while (true) {
        showMenu();
        cout << "请输入你要操作的编号:" << endl;
        cin >> select;

        switch (select) {
            case 1:
                //利用地址传递可以修改实参
                addPerson(&abs);
                break;
            case 2:
                showPerson(&abs);
                break;
            case 3:
                deletePerson(&abs);
                break;
            case 4:
                findPerson(&abs);
                break;
            case 5:
                updatePerson(&abs);
                break;
            case 6:
                deleteAllPerson(&abs);
                break;
            case 0:
                cout << "欢迎下次使用!" << endl;
                system("pause");
                return 0;
            default:
                break;
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值