c++入门篇 c++实现通信录管理系统

1. 任务描述

  编写一个通信录管理系统,使该系统有增、删、改、查的功能。

2.C++代码实现

#include<iostream>
#include<string>
#define MAX 10

using namespace std;

struct Person
{
    string m_name;
    int m_age;
    string m_phone;
    string m_address;
};


struct PersonInfo
{
    Person personArray[MAX];
    int size = 0;
};

void show_info()
{
    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 add_person(PersonInfo * abs)
{
    int index = abs->size;
    cout << "请输入姓名" << endl;
    string name;
    cin >> name;
    abs->personArray[index].m_name = name;

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

    cout << "请输入电话" << endl;
    string phone;
    cin >> phone;
    abs->personArray[index].m_phone = phone;

    cout << "请输入地址" << endl;
    string address;
    cin >> address;
    abs->personArray[index].m_address = address;

    abs->size++;

    cout << "成功添加联系人" << endl;

}


void show_person(PersonInfo * abs)
{
    int size = abs->size;
    for(int i=0; i < size; i++)
    {
        cout << abs->personArray[i].m_name + "\t"
             << abs->personArray[i].m_age << "\t"
             << abs->personArray[i].m_phone + "\t"
             << abs->personArray[i].m_address + "\t"
             << endl;
    }
}


int is_exists(PersonInfo * abs, string name)
{
    int size = abs->size;
    for(int i=0; i<size; i++)
    {
        if(abs->personArray[i].m_name == name)
        {
            return i;
        }
    }
    return -1;
}


void del_person(PersonInfo * abs, int index)
{
    int size = abs->size;
    for(int i=index; i<size-1; i++)
    {
        abs->personArray[i] = abs->personArray[i+1];
    }
    abs->size--;
}


void show_person(PersonInfo * abs, int index)
{
    cout << abs->personArray[index].m_name + "\t"
         << abs->personArray[index].m_age << "\t"
         << abs->personArray[index].m_phone + "\t"
         << abs->personArray[index].m_address + "\t"
         << endl;
}


void modify_person(PersonInfo * abs, int index)
{
    cout << "请输入年龄" << endl;
    int age;
    cin >> age;
    abs->personArray[index].m_age = age;

    cout << "请输入电话" << endl;
    string phone;
    cin >> phone;
    abs->personArray[index].m_phone = phone;

    cout << "请输入地址" << endl;
    string address;
    cin >> address;
    abs->personArray[index].m_address = address;
}


void clear_person(PersonInfo * abs)
{
    abs->size = 0;
}

int main()
{
    PersonInfo abs;

    while(true)
    {
        show_info();
        cout << "请输入选项!";
        int num;
        cin >> num;
        if(num==1)
        {
            cout << "添加联系人" << endl;
            add_person(&abs);
        }
        else if(num==2)
        {
            cout << "显示联系人" << endl;
            show_person(&abs);
        }
        else if(num==3)
        {
            cout << "删除联系人" << endl;
            string name;
            cout << "请输入删除人的名字" << endl;
            cin >> name;
            int det = is_exists(&abs, name);
            if(det != -1)
            {
                del_person(&abs, det);
            }
            else
            {
                cout << "通讯录中没有找到此人" << endl;
            }
        }
        else if(num==4)
        {
            cout << "查找联系人" << endl;
            string name;
            cout << "请输入查找人的名字" << endl;
            cin >> name;
            int det = is_exists(&abs, name);
            if(det != -1)
            {
                show_person(&abs, det);
            }
            else
            {
                cout << "通讯录中没有找到此人" << endl;
            }

        }
        else if(num==5)
        {
            cout << "修改联系人" << endl;
            string name;
            cout << "请输入要修改人的名字" << endl;
            cin >> name;
            int det = is_exists(&abs, name);
            if(det == -1)
            {
                cout << "通讯录中没有找到此人" << endl;
            }
            else
            {
                modify_person(&abs, det);
            }
        }
        else if(num==6)
        {
            cout << "清空联系人" << endl;
            clear_person(&abs);
        }
        else if(num==0)
        {
            cout << "退出通讯录" << endl;
            break;
        }
        else
        {
            cout << "输入错误,请重新输入" << endl;
        }

    }
    return 0;
}

 

记录:供C++小白入门学习。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学校实验周的编程题目之一,大神都是自己编自然看不上,所以就给有需要的人看看。 下面是题目要求: 系统模拟手机通信录管理系统实现对手机中的通信录进行管理。提供以下几个基本功能: (1)查看功能:选择此功能时,列出下列三类选择。 A:办公类 B:个人类 C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名、电话号码、单键拨号号码。 (3)添加数据功能:能录入新数据,每个结点包括:姓名、电话号码、分类(可能选项有:A为办公类 B为个人类 C为商务类)、电子邮件、单键拨号号码。例如: 杨春 13589664454 商务类 chuny@126.com 0 姓名和电话号码不能同时相同,如果发生这种情况,需要提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号;单键拨号号码可以为空,但是不能设置为相同的数字。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 (6)拔号功能:当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字;当输入单键拨号号码时,屏幕上显示被叫用户的姓名及完整电话号码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值