【黑马程序员】通讯录管理系统----个人改良版(附带程序打包)

#include<iostream>
using namespace std;

#define Max 1000

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 p_name;
    int p_gender = 0;
    int p_age = 0;
    string p_phone;
    string p_addr;
};

struct addressbook
{
    struct person personArray[Max];
    int p_size;
};

void addperson(struct addressbook* ab)
{
    if (ab->p_size == Max)
    {
        cout << "您输入的联系人信息已达最大值" << endl;
        return;
    }
    else
    {
        string name;
        cout << "请输入该联系人姓名" << endl;
        cin >> name;
        ab->personArray[ab->p_size].p_name = name;

        int gender = 0;
        cout << "请输入该联系人性别" << endl;
        cout << "1、男" << endl;
        cout << "2、女" << endl;
        cin >> gender;

        while (true)
        {
            if (gender == 1 || gender == 2)
            {
                ab->personArray[ab->p_size].p_gender = gender;
                break;
            }
            cout << "请输入正确的性别。" << endl;
            cin >> gender;
        }

        int age = 0;
        cout << "请输入该联系人年龄" << endl;
        cin >> age;
        ab->personArray[ab->p_size].p_age = age;

        string phone;
        cout << "请输入该联系人手机号码" << endl;
        cin >> phone;
        ab->personArray[ab->p_size].p_phone = phone;

        string addr;
        cout << "请输入该联系人地址" << endl;
        cin >> addr;
        ab->personArray[ab->p_size].p_addr = addr;

        ab->p_size++;

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

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

void showperson(struct addressbook* ab)
{
    if (ab->p_size == 0)
    {
        cout << "当前记录为空" << endl;
    }
    else
    {
        for (int i = 0; i < ab->p_size; i++)
        {
            cout << "姓名:" << ab->personArray[i].p_name << "\t"
                 << "性别:" << (ab->personArray[i].p_gender == 1 ? "男" : "女") << "\t"
                 << "年龄:" << ab->personArray[i].p_age << "\t"
                 << "电话:" << ab->personArray[i].p_phone << "\t"
                 << "地址:" << ab->personArray[i].p_addr
                 << endl;
        }
    }
    system("pause");
    system("cls");
}

int exist(addressbook* ab, string name)
{
    for (int i = 0; i < ab->p_size; i++)
    {
        if (ab->personArray[i].p_name == name)
        {
            return i;
        }
    }
    return -1;
}

void deleteperson(addressbook* ab)
{
    cout << "请输入您要删除的联系人" << endl;

    string name;
    cin >> name;

    int ret = exist(ab, name);

    if (ret != -1)
    {
        for (int i = ret; i < ab->p_size; i++)
        {
            ab->personArray[i] = ab->personArray[i + 1];//数据前移
        }
        ab->p_size--;
        cout << "删除成功" << endl;
    }
    else
    {
        cout << "查无此人" << endl;
    }
    system("pause");
    system("cls");
}

void findperson(addressbook* ab)
{
    string name;
    cout << "请输入您要查找人的姓名" << endl;
    cin >> name;

    int ret = exist(ab, name);

    if (ret == -1)
    {
        cout << "查无此人" << endl;
    }
    else
    {
        cout << "姓名:" << ab->personArray[ret].p_name << "\t"
             << "性别:" << (ab->personArray[ret].p_gender == 1 ? "男" : "女") << "\t"
             << "年龄:" << ab->personArray[ret].p_age << "\t"
                << "电话:" << ab->personArray[ret].p_phone << "\t"
              << "地址:" << ab->personArray[ret].p_addr
             << endl;
    }

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

void modifyperson(addressbook* ab)
{
    cout << "请输入您要查找人的姓名" << endl;
    string name;
    cin >> name;

    int ret = exist(ab, name);

    if (ret == -1)
    {
        cout << "查无此人" << endl;
        system("pause");
        system("cls");
    }
    else
    {
        cout << "请输入您要修改的联系人姓名" << endl;
        string new_name;
        cin >> new_name;
        ab->personArray[ret].p_name = new_name;

        cout << "请输入您要修改的联系人性别" << endl;
        cout << "1、男" << endl;
        cout << "2、女" << endl;
        int new_gender;
        cin >> new_gender;
        while (true)
        {
            cin >> new_gender;
            if (new_gender == 1 || new_gender == 2)
            {
                ab->personArray[ret].p_gender = new_gender;
                break;
            }
            else 
            {
                cout << "输入有误,请重新输入" << endl;
            }
        }
    
        cout << "请输入您要修改的联系人年龄" << endl;
        int new_age;
        cin >> new_age;
        ab->personArray[ret].p_age = new_age;

        cout << "请输入您要修改的联系人手机号码" << endl;
        string new_phone;
        cin >> new_phone;
        ab->personArray[ret].p_phone = new_phone;

        cout << "请输入您要修改的联系人地址" << endl;
        string new_addr;
        cin >> new_addr;
        ab->personArray[ret].p_addr = new_addr;

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

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

void cleanpeople(addressbook* ab)
{
    cout << "您是否要进行清空操作?" << endl;
    cout << "如果是(清空操作),请按1;不是,输入任意其他数字返回" << endl;
    int flag = 0;
    cin >> flag;
    if (flag == 1)
    {
        cout << "如果是(清空操作),请按2;不是,输入任意其他数字返回" << endl;
        cin >> flag;
        if (flag == 2)
        {
            cout << "如果是(清空操作),请按3;不是,输入任意其他数字返回" << endl;
            cin >> flag;
            if (flag == 3)
            {
                ab->p_size = 0;
                cout << "清空完成" << endl;
            }
        }
    }
    system("pause");
    system("cls");
}


int main()
{
    addressbook ab;

    ab.p_size = 0;
    
    int select = 0;

    while (true)
    {
        showMenu();

        cin >> select;

        switch (select)
        {
        case 1://添加
            addperson(&ab);
            break;

        case 2://显示
            showperson(&ab);
            break;

        case 3://删除
        /*{
            cout << "请输入删除联系人的姓名" << endl;
            string name;
            cin >> name;

            if (exist(&ab, name) == -1)
            {
                cout << "查无此人" << endl;
            }
            else
            {
                cout << "找到此人" << endl;
            }
        }*/
            deleteperson(&ab);
            break;

        case 4://查找
            findperson(&ab);
            break;

        case 5://修改
            modifyperson(&ab);
            break;

        case 6://清空
            cleanpeople(&ab);
            break;

        case 0://退出
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            cout << "请输入合适的数" << endl;
        }
    }
    system("pause");
    return 0;
}

程序打包方法:

1,扩展--管理扩展--找到并下载 installer projects

2,新建项目与原项目在一起

 如图所示

 3,添加项目输出

 

 

 创建快捷方式,并拖入user‘s desktop

在属性中重命名以及添加图标文件,图标文件可从其他地方拖进相应文件夹中

 

 

 

在User's Programs Menu 添加文件夹,在右边空白处右击,按照先前方式创建新的快捷方式,选择Applicaiton Folder,主输出,确定。

 

 

 

4,最后设置一些安装包属性以及环境需求,选择生成

 

 5,安装与运行

 

 

 安装完毕,运行成功。

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值