简单的通讯录管理系统

本文详细介绍了如何用C++编写一个简单的通讯录程序,包括添加联系人、显示联系人、删除、查找和修改联系人,以及清空通讯录的功能。
摘要由CSDN通过智能技术生成

#include<iostream>
#include<string>
#define MAX 1000  //宏常量
using namespace std;

void showMenu()
{
    cout << "1、添加联系人" << endl;
    cout << "2、显示联系人" << endl;
    cout << "3、删除联系人" << endl;
    cout << "4、查找联系人" << endl;
    cout << "5、修改联系人" << endl;
    cout << "6、清空联系人" << endl;
    cout << "0、退出通讯录" << endl;
}

//联系人结构体
struct Person
{
    string m_Name;//姓名
    int m_Sex;//性别
    int m_Age;//年龄
    string m_Phone;//号码
    string m_Addr;//地址
};


//通讯录结构体
struct Addressbooks
{
    struct Person personArray[MAX];//通讯录中保存的联系人数组
    int m_size;//通讯录中人员个数
};

//添加联系人
void addPerson(Addressbooks* abs)
{
    //判断是否已满
    if (abs->m_size == MAX)
    {
        cout << "通讯录已满,无法添加!" << endl;
        return;
    }
    else
    {
        //添加姓名
        string name;
        cout << "请输入姓名:" << endl;
        cin >> name;
        abs->personArray[abs->m_size].m_Name = name;

        //添加性别
        int sex=0;
        cout << "请输入性别:" << endl;
        cout << "1---male" << endl;
        cout << "2---female" << endl;
        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;
        cin >> age;
        abs->personArray[abs->m_size].m_Age = age;

        //添加号码
        string phone;
        cout << "请输入号码:" << endl;
        cin >> phone;
        abs->personArray[abs->m_size].m_Phone = phone;


        //添加家庭地址
        string addr;
        cout << "请输入地址:" << endl;
        cin >> addr;
        abs->personArray[abs->m_size].m_Addr = addr;


        //容量加一,并告知添加成功
        abs->m_size++;
        cout << "添加成功!" << endl;

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


        

    }
}


//2、显示联系人
void showPerson(Addressbooks *abs)
{
    if (abs->m_size == 0)
    {
        cout << "当前记录为空" << endl;
    }
    else
    {
        for (int i = 0;i < abs->m_size;i++)
        {
            cout << "姓名:" << abs->personArray[i].m_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 (abs->personArray[i].m_Name == name)
        {
            return i;
        }
    }
    return -1;
}

//删除指定联系人
void deletePerson(Addressbooks* abs)
{
    cout << "请输入您要删除的联系人" << endl;
    string name;
    cin >> name;


    int ret = isExist(abs, name);

    if (ret != -1)
    {
        for (int i = ret;i < abs->m_size;i++)
        {
            abs->personArray[i] = abs->personArray[i + 1];
        }
        abs->m_size--;
        cout << "删除成功!" << endl;
    }
    else
    {
        cout << "查无此人!" << endl;
    }
    system("pause");
    system("cls");
}

//查找指定联系人
void findPerson(Addressbooks* abs)
{
    cout << "请输入您要查找的联系人" << endl;
    string name;
    cin >> name;

    int ret=isExist(abs, name);

    if (ret != -1)
    {
        cout << "姓名:" << abs->personArray[ret].m_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;
    }
    else
    {
        cout << "查无此人!" << endl;
    }

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

//修改联系人
void modifyPerson(Addressbooks* abs)
{
    cout << "请输入您要修改的联系人" << endl;
    string name;
    cin >> name;

    int ret = isExist(abs, name);
    if (ret != -1)
    {
        //修改姓名
        string name;
        cout << "请输入姓名:" << endl;
        cin >> name;
        abs->personArray[ret].m_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;
            }
            cout << "请重新输入" << endl;
        }

        //修改年龄
        cout << "请输入年龄:" << endl;
        int age = 0;
        cin >> age;
        abs->personArray[ret].m_Age = age;

        //修改号码
        cout << "请输入联系电话:" << endl;
        string phone;
        cin >> phone;
        abs->personArray[ret].m_Phone = phone;

        //修改家庭地址
        cout << "请输入地址:" << endl;
        string add;
        cin >> add;
        abs->personArray[ret].m_Addr = add;


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

    }
    else
    {
        cout << "查无此人!" << endl;
    }

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

//清空联系人
void cleanPerson(Addressbooks* abs)
{
    abs->m_size = 0;//逻辑上的清空
    cout << "通讯录已清空!" << endl;
    system("pause");
    system("cls");
}


int main()
{

    showMenu();
    int select = 0;

    Addressbooks abs;
    abs.m_size = 0;

    while (true)
    {
        cin >> select;
        switch (select)
        {
        case 1://1、添加联系人
            addPerson(&abs);
            break;
        case 2://2、显示联系人
            showPerson(&abs);
            break;
        case 3://3、删除联系人
        /*{
            cout << "请输入要删除的联系人的姓名:" << endl;
            string name;
            cin >> name;
            if (isExist(&abs, name) == -1)
            {
                cout << "查无此人" << endl;
            }
            else
            {
                cout << "找到此人" << endl;
            }
        }*/
            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;
}

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,通讯录管理系统是一个常见的应用程序,它可以让用户存储和管理他们的联系人信息。下面是一个简单C++通讯录管理系统的示例代码: ``` #include <iostream> #include <string> #include <vector> using namespace std; struct Contact { string name; string phone; }; vector<Contact> contacts; void addContact() { Contact newContact; cout << "Enter name: "; cin >> newContact.name; cout << "Enter phone number: "; cin >> newContact.phone; contacts.push_back(newContact); cout << "Contact added!" << endl; } void listContacts() { cout << "Contacts:" << endl; for (int i = 0; i < contacts.size(); i++) { cout << i + 1 << ". " << contacts[i].name << " - " << contacts[i].phone << endl; } } int main() { while (true) { cout << "Menu:" << endl; cout << "1. Add contact" << endl; cout << "2. List contacts" << endl; cout << "3. Quit" << endl; int choice; cin >> choice; switch (choice) { case 1: addContact(); break; case 2: listContacts(); break; case 3: return 0; default: cout << "Invalid choice!" << endl; } } return 0; } ``` 这个程序中,我们定义了一个名为 `Contact` 的结构体,用来存储联系人的姓名和电话号码。我们使用了一个vector来存储联系人的信息。程序提供了三个选项:添加联系人、列出所有联系人和退出程序。当用户选择添加联系人时,程序会提示用户输入姓名和电话号码,并将这些信息添加到vector中。当用户选择列出所有联系人时,程序会遍历vector并输出每个联系人的姓名和电话号码。当用户选择退出程序时,程序会结束。 ### 回答2: 简单通讯录管理系统C是一个基于C语言的简易通讯录管理系统。该系统主要用于通过命令行界面实现通讯录的添加、删除、修改、查询以及显示功能。 该系统中主要包含了以下几个模块: 1.用户界面模块:通过命令行界面与用户进行交互,显示菜单选项供用户选择,接收用户的输入,并调用相应的功能模块进行处理。 2.通讯录模块:负责管理通讯录的数据结构和相关操作。通讯录数据可以采用结构数组的形式进行存储,其中每个元素对应一个联系人的信息,包括姓名、电话号码、地址等。通讯录模块可以提供添加、删除、修改、查询等基本操作,以满足用户对通讯录的需求。 3.文件操作模块:负责将通讯录数据保存到文件中,并从文件中读取数据。可以使用文件指针来实现文件的读写操作,以便将通讯录数据永久性地保存在磁盘中,方便下次系统启动时的读取。 4.其他功能模块:除了基本的通讯录管理功能外,还可以实现其它一些附加功能,如显示通讯录中所有联系人的信息、按姓名或电话号码进行查询等。 通过上述模块的协调配合,简单通讯录管理系统C可以方便地实现通讯录的基本管理操作。用户可以根据系统提供的菜单选项选择相应的功能,进行添加、删除、修改、查询等操作,从而实现对通讯录数据的有效管理。同时,通过文件操作模块的支持,通讯录数据可以永久保存,避免了系统重启后数据丢失的问题。 ### 回答3: 简单通讯录管理系统c是一种用C语言编写的简易通讯录管理系统。它主要用于存储和管理联系人的信息,包括姓名、电话号码、邮箱等。系统通过菜单来提供各种功能操作,方便用户进行通讯录的管理。 首先,系统会显示一个菜单,用户可以根据需要选择相应的功能。比如,用户可以选择添加联系人的功能,输入联系人的姓名、电话号码和邮箱后,系统会将其保存起来。用户也可以选择查找联系人的功能,输入想要查找的联系人的姓名后,系统会根据输入的姓名去匹配已保存的联系人信息,并将其显示出来。如果用户需要修改联系人的信息,系统也提供了相应的功能。用户只需输入要修改的联系人的姓名,然后输入新的电话号码和邮箱即可。如果用户想要删除某个联系人,系统也提供了删除联系人的功能,用户只需输入要删除的联系人的姓名,系统会将其删除。 除了这些基本功能外,系统还提供了显示所有联系人的功能,用户只需选择相应的选项,系统会将所有联系人的信息一次性显示出来。此外,系统还提供了排序的功能,用户可以选择按照姓名或者电话号码进行升序或降序排序。 总的来说,简单通讯录管理系统c是一种通过菜单提供各种功能操作的通讯录管理系统。它方便用户进行通讯录的添加、查找、修改和删除等操作,同时还提供了显示所有联系人和排序的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值