学习的第一个C++,通讯录管理系统

#include <iostream>
#include <string>
#define MAX 500
using namespace std;

struct person {
    string name;
    int age;

};

struct contact {
    person persons[MAX];
    int cur_index;
};

void ShowMenu(void)
{
    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 AddPeople(contact* p) {
    string name;
    cout << "请输入姓名:" << endl;
    cin >> name;
    int age;
    cout << "请输入年龄:" << endl;
    cin >> age;
    
    p->persons[p->cur_index].name = name;
    p->persons[p->cur_index].age = age;
    p->cur_index++;
    cout << "信息添加完成!!!" << endl;
};

void ShowPeople(contact* p) {
    if (p->cur_index == 0) {
        cout << " 通信录没有人!! 请先添加人员信息!!!" << endl;
    }
    else {
        for (int i = 0; i < p->cur_index; i++)
        {
            cout << "name : " << p->persons[i].name << "  age: " << p->persons[i].age << endl;
        }
    }
};

void ExitAddr(void) {
    cout << "欢迎下次继续使用!!" << endl;
};

void ClearAddr(contact *p) {
    p->cur_index = 0;
    cout << "您已经把通讯录清空!!!" << endl;
}

int IsExit(contact* p, string name) {
    for (int i = 0; i < p->cur_index; i++) {
        if (name == p->persons[i].name) {
            return i;
        }
    }
    return -1;
}

void FindPeople(contact* p) {
    string name;
    cout << "请输入想要查找的姓名:" << endl;
    cin >> name;
    int ret = IsExit(p, name);
    if (ret == -1) {
        cout << "此用户不存在,请查证后再查找!!" << endl;
    }
    else {
        
        cout << "name :" << p->persons[ret].name << " age :" << p->persons[ret].age << endl;
        cout << "查找成功!!" << endl;
    }
}

void ModifyPeople(contact* p) {
    string name;
    cout << "请输入想要修改的姓名:" << endl;
    cin >> name;
    int ret = IsExit(p, name);
    if (ret == -1) {
        cout << "此用户不存在,请查证后再修改!!" << endl;
    }
    else {
        string _name;
        cout << "请重新输入姓名:" << endl;
        cin >> _name;
        int _age;
        cout << "请重新输入年龄:" << endl;
        cin >> _age;
        p->persons[ret].name = _name;
        p->persons[ret].age = _age;
        cout << "信息修改成功!!!" << endl;
    }
}
void DeletePeople(contact* p) {
    string name;
    cout << "请输入想要删除的姓名:" << endl;
    cin >> name;
    int ret = IsExit(p, name);
    if (ret == -1) {
        cout << "此用户不存在,请查证后再删除!!" << endl;
    }
    else {
        for (int i = ret; i < p->cur_index; i++) {
            p->persons[i].name = p->persons[i + 1].name;
            p->persons[i].age = p->persons[i + 1].age;
        }
        p->cur_index -= 1;
        cout << "删除信息成功!!" << endl;
    }
}


int main()
{
    struct contact con;
    con.cur_index = 0;
    while (true)
    {

        ShowMenu();

        int num = -1;
        
        cout << "请输入你想要的功能:" << endl;
        cin >> num;

        switch (num)
        {
        case 0: //退出通讯录
            ExitAddr();
            return 0;
        case 1: // 添加联系人
            AddPeople(&con);
            break;
        case 2: // 显示联系人
            ShowPeople(&con);
            break;
        case 3: // 删除联系人
            DeletePeople(&con);
            break;
        case 4: // 查找联系人
            FindPeople(&con);
            break;
        case 5: // 修改联系人
            ModifyPeople(&con);
            break;
        case 6: // 清空联系人
            ClearAddr(&con);
            break;
        default:
            break;
        }

        
        system("pause");
        system("cls");
    }


}

 

posted @ 2020-10-05 18:46  骑者赶路  阅读(109)  评论(0编辑  收藏  举报