用C++实现简单的通讯录管理系统

#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
//定义联系人结构体
struct Contacter
{
    string name;//姓名
    string sex;//性别
    int age;//年龄
    string phoneNumber;//联系电话
    string address;//家庭地址
};
//定义通讯录数组
struct Addressbooks
{
    struct Contacter person[MAX];//通讯录中保存的联系人数组
    int quantity;//通讯录中人员个数
};
int main()
{
    void addContacter(struct Addressbooks* p);//声明添加联系人函数
    void showContacter(struct Addressbooks* p);//声明显示联系人函数
    void deleteContacter(struct Addressbooks* p);//声明删除联系人函数
    void findContacter(struct Addressbooks* p);//声明查找联系人函数
    void modifyContacter(struct Addressbooks* p);//声明修改联系人函数
    void cleanContacter(struct Addressbooks* p);//声明清空联系人函数
    struct Addressbooks addressBook;
    addressBook.quantity = 0;
    int choice = 0;//用于读取用户的操作选择
    while (true)
    {
        void showMenu();
        showMenu();
        cin >> choice;//从键盘获取用户的操作选择
        switch (choice)
        {
        case 1:addContacter(&addressBook);//添加联系人
            break;
        case 2:showContacter(&addressBook);//显示联系人
            break;
        case 3:deleteContacter(&addressBook);//删除联系人
            break;
        case 4:findContacter(&addressBook);//查找联系人
            break;
        case 5:modifyContacter(&addressBook);//修改联系人
            break;
        case 6:cleanContacter(&addressBook);//清空联系人
            break;
        case 0:;//退出通讯录
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:cout << "输入有误,请重新输入!" << endl;
            break;
        }
    }
    system("pause");
    return 0;
}

//菜单功能
void showMenu()
{
    cout << "*****************************" << endl;
    cout << "*****\t1.添加联系人\t*****" << endl;
    cout << "*****\t2.显示联系人\t*****" << endl;
    cout << "*****\t3.删除联系人\t*****" << endl;
    cout << "*****\t4.查找联系人\t*****" << endl;
    cout << "*****\t5.修改联系人\t*****" << endl;
    cout << "*****\t6.清空联系人\t*****" << endl;
    cout << "*****\t0.退出通讯录\t*****" << endl;
    cout << "*****************************" << endl;
}

//添加联系人功能
void addContacter(struct Addressbooks* p)
{
    //判断通讯录是否已满,如果满了就不可再添加联系人
    if (p->quantity == MAX)
    {
        cout << "通讯录已满,无法添加!" << endl;
        return;
    }
    else
    {
        string name1;
        cout << "请输入姓名:" << endl;
        cin >> name1;
        p->person[p->quantity].name = name1;
        string sex1;
        string str1 = "男";
        string str2 = "女";
        cout << "请输入性别(男/女):" << endl;
        while (true)
        {
            cin >> sex1;
            if (sex1.compare(str1) == 0 || sex1.compare(str2) == 0)
            {
                p->person[p->quantity].sex = sex1;
                break;
            }
            else
            {
                cout << "输入有误,请重新输入!" << endl;
            }
        }
        int age1;
        cout << "请输入年龄:" << endl;
        cin >> age1;
        p->person[p->quantity].age = age1;
        string phoneNumber1;
        cout << "请输入联系电话:" << endl;
        cin >> phoneNumber1;
        p->person[p->quantity].phoneNumber = phoneNumber1;
        string address1;
        cout << "请输入家庭地址:" << endl;
        cin >> address1;
        p->person[p->quantity].address = address1;
        //更新通讯录人数
        p->quantity++;
        cout << "添加成功!" << endl;
        system("pause");//请按任意键继续
        system("cls");//清屏操作

    }

}

//显示联系人功能
void showContacter(struct Addressbooks* p)
{
    if (p->quantity == 0)
    {
        cout << "联系人为空,请添加联系人!" << endl;
    }
    else
    {
        for (int i = 0; i < p->quantity; i++)
        {
            cout << "姓名:" << p->person[i].name << "\t"
                << "性别:" << p->person[i].sex << "\t"
                << "年龄:" << p->person[i].age << "\t"
                << "联系电话:" << p->person[i].phoneNumber << "\t"
                << "家庭住址:" << p->person[i].address << "\t"
                << endl;
        }
    }
    system("pause");//请按任意键继续
    system("cls");//清屏操作
}

//删除联系人功能
void deleteContacter(struct Addressbooks* p)
{
    if (p->quantity == 0)
    {
        cout << "联系人为空,请添加联系人!" << endl;
    }
    else
    {
        string name2;
        cout << "请输入您要删除的联系人姓名:" << endl;
        cin >> name2;
        for (int i = 0; i < p->quantity; i++)
        {
            if (name2.compare(p->person[i].name) == 0)
            {
                for (int j = i; j < p->quantity; j++)
                {
                    p->person[j] = p->person[j + 1];
                }
                cout << "删除成功!" << endl;
                p->quantity--;
            }
            else
            {
                cout << "查无此人!" << endl;
            }
        }

    }
    system("pause");//请按任意键继续
    system("cls");//清屏操作
}

//查找联系人功能
void findContacter(struct Addressbooks* p)
{
    if (p->quantity == 0)
    {
        cout << "联系人为空,请添加联系人!" << endl;
    }
    else
    {
        string name3;
        cout << "请输入您要查找的联系人姓名:" << endl;
        cin >> name3;
        for (int i = 0; i < p->quantity; i++)
        {
            if (name3.compare(p->person[i].name) == 0)
            {
                cout << "姓名:" << p->person[i].name << "\t"
                    << "性别:" << p->person[i].sex << "\t"
                    << "年龄:" << p->person[i].age << "\t"
                    << "联系电话:" << p->person[i].phoneNumber << "\t"
                    << "家庭住址:" << p->person[i].address
                    << endl;
            }
            else
            {
                cout << "查无此人!" << endl;
            }
        }
    }
    system("pause");
    system("cls");
}

//修改联系人功能
void modifyContacter(struct Addressbooks* p)
{
    if (p->quantity == 0)
    {
        cout << "联系人为空,请添加联系人!" << endl;
    }
    else
    {
        string name4;
        cout << "请输入您要修改的联系人姓名:" << endl;
        cin >> name4;
        for (int i = 0; i < p->quantity; i++)
        {
            if (name4.compare(p->person[i].name) == 0)
            {
                cout << "查找成功!" << endl;
                cout << "姓名:" << p->person[i].name << "\t"
                    << "性别:" << p->person[i].sex << "\t"
                    << "年龄:" << p->person[i].age << "\t"
                    << "联系电话:" << p->person[i].phoneNumber << "\t"
                    << "家庭住址:" << p->person[i].address << "\t"
                    << endl;
                cout << "请输入您要修改的相关信息:" << endl;
                string name5;
                cout << "请输入姓名:" << endl;
                cin >> name5;
                p->person[i].name = name5;
                string sex5;
                string str1 = "男";
                string str2 = "女";
                cout << "请输入性别(男/女):" << endl;
                while (true)
                {
                    cin >> sex5;
                    if (sex5.compare(str1) == 0 || sex5.compare(str2) == 0)
                    {
                        p->person[i].sex = sex5;
                        break;
                    }
                    else
                    {
                        cout << "输入有误,请重新输入!" << endl;
                    }
                }
                int age5;
                cout << "请输入年龄:" << endl;
                cin >> age5;
                p->person[i].age = age5;
                string phoneNumber5;
                cout << "请输入联系电话:" << endl;
                cin >> phoneNumber5;
                p->person[i].phoneNumber = phoneNumber5;
                string address5;
                cout << "请输入家庭地址:" << endl;
                cin >> address5;
                p->person[i].address = address5;
                cout << "修改成功!" << endl;

            }
            else
            {
                cout << "查无此人!" << endl;
            }
        }
    }
    system("pause");//请按任意键继续
    system("cls");//清屏
}

//清空联系人
void cleanContacter(struct Addressbooks* p)
{
    string str;
    string str1 = "是的";
    cout << "您确定要清空联系人吗?请再次确认(输入“是的”就执行清空,否则返回菜单):" << endl;
    cin >> str;
    if (str.compare(str1) == 0)
    {
        p->quantity = 0;
        cout << "通讯录已清空!" << endl;
    }
    else
    {
        return;
    }
    system("pause");
    system("cls");
}
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值