美文网首页
6.案例-通讯录管理系统

6.案例-通讯录管理系统

作者: lxr_ | 来源:发表于2021-01-11 19:43 被阅读0次

#include<iostream>

#include<string>

using namespace std;

#define MAX 1000//最多存储个数

//个人属性

struct Person

{

    string n_Name;

    int m_Sex;

    int m_Age;

    string m_Phone;

    string m_Addr;

};

//通讯录属性

struct Addressbooks

{

    Person personArray[MAX];

    int m_Size;//当前存储个数

};

//1.菜单界面

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(Addressbooks* abs)

{

    if (abs->m_Size == MAX)

    {

        cout << "通讯录已满,无法添加" << endl;

        return;

    }

    else

    {

        //姓名

        string name;

        cout << "请输入姓名:" << endl;

        cin >> name;

        abs->personArray[abs->m_Size].n_Name = name;

        //性别

        cout << "请输入性别:" << endl;

        cout << "1:男" << endl;

        cout << "2.女" << endl;

        int sex = 0;

        while (true)

        {

            cin >> sex;

            if (sex == 1 || sex == 2)

            {

                abs->personArray[abs->m_Size].m_Sex = sex;

                break;

            }

            cout << "输入有误,请重新输入" << endl;

        }

        //年龄

        int age = 0;

        cout << "请输入年龄:" << endl;

        while (true)

        {

            cin >> age;

            if (age >= 0 && age <= 100)

            {

                abs->personArray[abs->m_Size].m_Age = age;

                break;

            }

            cout << "您输入的年龄不符合实际,请重新输入" << endl;

        }

        //电话

        cout << "请输入电话:" << endl;

        string Phone;

        while (true)

        {

            cin >> Phone;

            if (Phone.length() == 11)

            {

                abs->personArray[abs->m_Size].m_Phone = Phone;

                break;

            }

            cout << "您输入的电话不符合要求,请重新输入" << endl;

        }

        //住址

        cout << "请输入家庭住址:" << endl;

        string address;

        cin >> address;

        abs->personArray[abs->m_Size].m_Addr = address;

        abs->m_Size++;

        cout << "添加成功" << endl;

        system("pause");//请按任意键继续

        system("cls");//清屏

    }

}

//显示

void showPerson(Addressbooks abs)

{

    if (!abs.m_Size)

    {

        cout << "记录为空,请添加联系人" << endl;

        //system("pause");

        //return;

     }

    else

    {

        for (int i = 0; i < abs.m_Size; i++)

        {

            cout << "姓名:" << abs.personArray[i].n_Name<<"\t";

            cout << "性别:"<<(abs.personArray[i].m_Sex==1?"男":"女")<<"\t";

            cout << "年龄:" << abs.personArray[i].m_Age << "\t";

            cout << "电话:" << abs.personArray[i].m_Phone << "\t";

            cout << "地址:" << abs.personArray[i].m_Addr<<endl;

        }

    }

    system("pause");

    system("cls");

}

//是否存在

int isExist(Addressbooks abs,string name)

{

    for (int i = 0; i < abs.m_Size; i++)

    {

        if (name == abs.personArray[i].n_Name)

        {

            return i;

        }

     }

    return -1;

}

//删除

void deletePerson(Addressbooks* abs)

{

    cout << "请输入您要删除的联系人:" << endl;

    string name;

    cin >> name;

    int ret = isExist(*abs,name);

    if (ret == -1)

    {

        cout << "查无此人" << endl;

    }

    else

    {

        for (int i = ret; i < abs->m_Size; i++)

        {

            abs->personArray[i] = abs->personArray[i + 1];

        }

        abs->m_Size--;//更新人数

        cout << "删除成功" << endl;

    }

    system("pause");

    system("cls");

}

//查找

void findPerson(Addressbooks abs)

{

    string name;

    cout << "请输入您要查找的联系人:" << endl;

    cin >> name;

    int ret = isExist(abs, name);

    if (ret == -1)

    {

        cout << "查无此人" << endl;

     }

    else

    {

        cout << "姓名:" << abs.personArray[ret].n_Name << "\t";

        cout << "性别:" << (abs.personArray[ret].m_Sex == 1 ? "男" : "女") << "\t";

        cout << "年龄:" << abs.personArray[ret].m_Age << "\t";

        cout << "电话:" << abs.personArray[ret].m_Phone << "\t";

        cout << "地址:" << abs.personArray[ret].m_Addr << endl;

    }

    system("pause");

    system("cls");

}

//修改

void modifyPerson(Addressbooks* abs)

{

    cout << "请输入您要修改的联系人:" << endl;

    string name;

    cin >> name;

    int ret = isExist(*abs, name);

    if (ret == -1)

    {

        cout << "查无此人" << endl;

    }

    else

    {

        cout << "请输入要修改的姓名:" << endl;

        string name;

        cin >> name;

        abs->personArray[ret].n_Name = name;

        cout << "请输入要修改的性别:" << endl;

        cout << "1:男" << endl;

        cout << "2:女" << endl;

        int sex=0;

        while(true)

        {

            cin >> sex;

            if (sex == 1 || sex == 2)

            {

                abs->personArray[ret].m_Sex = sex;

                break;

            }

            else

            {

                cout << "输入有误,请重新输入" << endl;

            }

        }

        cout << "请输入要修改的年龄:" << endl;

        int age;

        cin >> age;

        abs->personArray[ret].m_Age = age;

        cout << "请输入要修改的电话:" << endl;

        string phone;

        while (true)

        {

            cin >> phone;

            if (phone.length() == 11)

            {

                abs->personArray[ret].m_Phone = phone;

                break;

            }

            else

            {

                cout << "输入不符合规范,请重新输入" << endl;

            }

        }

        cout << "请输入要修改的地址:" << endl;

        string addr;

        cin >> addr;

        abs->personArray[ret].m_Addr = addr;

        cout << "修改成功!" << endl;

    }

    system("pause");

    system("cls");

}

//清空

void cleanPerson(Addressbooks* abs)

{

    abs->m_Size = 0;//逻辑清空

    cout << "通讯录已清空!" << endl;

    system("pause");

    system("cls");

}

int main()

{

    Addressbooks abs;

    abs.m_Size = 0;

    int select = 0;//创建用户输入

    while (true)

    {

        showMenu();

        cin >> select;

        switch (select)

        {

            case 1: //1.添加联系人

            addPerson(&abs);//地址传递可修改实参

            break;

            case 2: //2.显示联系人

            showPerson(abs);

            break;

            case 3: //3.删除联系人

            deletePerson(&abs);

            break;

            case 4: //4.查找联系人

            findPerson(abs);

            break;

            case 5: //5.修改联系人

            modifyPerson(&abs);

            break;

            case 6: //6.清空联系人

            cleanPerson(&abs);

            break;

            case 0:        //0.退出通讯录

            cout << "欢迎下次使用" << endl;

            //system("pause");

            return 0;

            break;

            default:

            break;

        }

    }

    system("pause");

    return 0;

}

相关文章

网友评论

      本文标题:6.案例-通讯录管理系统

      本文链接:https://www.haomeiwen.com/subject/vktjaktx.html