zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c++通讯录控制台小程序

C++程序 控制台 通讯录
2023-09-14 09:14:34 时间

在这里插入图片描述

#include <iostream>
#include <string>
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 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
    {
        // 添加具体联系人
        // 姓名
        cout<<"请输入姓名"<<endl;
        string name;
        
        cin>>name;
        abs->personArray[abs->m_Size].m_Name=name;
        
        
        // 性别
        int sex=0;
        while (true)
        {
            cout<<"请输入性别"<<endl;
            cout<<"1-------男"<<endl;
            cout<<"2-------女"<<endl;
            cin>>sex;
            if (sex==1||sex==2)
            {
               
                abs->personArray[abs->m_Size].m_sex=sex;
                break;
            }
            else
            {
                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");
        

        
    }

}
// 显示联系人
void showPerson(Addressbooks *abs)
{
    // 判断通讯录是否为0
    if (abs->m_Size==0)
    {
        cout<<"当前记录为空"<<endl;

    }
    else
    {
        for (int i = 0; i <abs->m_Size; i++)
            {
                cout<<"姓名"<<abs->personArray[i].m_Name<<endl;
                cout<<"年龄"<<abs->personArray[i].m_age<<endl;
                cout<<"性别"<<abs->personArray[i].m_sex<<endl;
                cout<<"电话"<<abs->personArray[i].m_Phone<<endl;
                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)
{
    //
    string name;
    cout<<"请输入要查的联系人"<<endl;
    cin>>name;
    int ret=isExist(abs,name);
    if (ret!=-1)
    {
            cout<<"姓名   "<<abs->personArray[ret].m_Name<<endl;
            cout<<"年龄   "<<abs->personArray[ret].m_age<<endl;
            cout<<"性别   "<<abs->personArray[ret].m_sex<<endl;
            cout<<"电话   "<<abs->personArray[ret].m_Phone<<endl;
            cout<<"地址   "<<abs->personArray[ret].m_Addr<<endl;
        }
        
    else
        {
            cout<<"查无此人"<<endl;
        }
    system("pause");
    system("cls");
}
// 修改指定联系人信息
void modifyPerson(Addressbooks *abs)
{
    string name;
    cout<<"请输入修改的联系人"<<endl;
    cin>>name;
    int ret=isExist(abs,name);
    if (ret!=-1)
        
        {
                // 添加具体联系人
            // 姓名
            cout<<"请输入姓名"<<endl;
            string name;
            
            cin>>name;
            abs->personArray[ret].m_Name=name;
            
            
            // 性别
            int sex=0;
            while (true)
            {
                cout<<"请输入性别"<<endl;
                cout<<"1-------男"<<endl;
                cout<<"2-------女"<<endl;
                cin>>sex;
                if (sex==1||sex==2)
                {
                
                    abs->personArray[ret].m_sex=sex;
                    break;
                }
                else
                {
                    cout<<"输入错误重新输入"<<endl;
                }
            }
            // 年龄
            int age=0;
            cout<<"请输入年龄"<<endl;
            cin>>age;
            abs->personArray[ret].m_age=age;

            // 电话

            string phone;
            cout<<"请输入电话"<<endl;
            cin>>phone;
            abs->personArray[ret].m_Phone=phone;
            // 住址
            string addr;
            cout<<"请输入地址"<<endl;
            cin>>addr;
            abs->personArray[ret].m_Addr=addr;
            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()

{   
    // 创建结构体
    Addressbooks abs;
    abs.m_Size=0;
    
    while (true)

    {
        int select =0;
        //显示菜单
        showMenu();
        cin>>select;
        // cout<<select<<endl;
        switch(select)
        {
        case 1:
            /* 添加联系人*/
            addPerson(&abs);
            break;
        case 2:
        /* 显示联系人 */
            showPerson(&abs);
            break;
        case 3:
            /* 删除联系人 */
            
            deletePerson(&abs);
             
            break;
        case 4:
            /* 查找联系人 */
            findPerson(&abs);
            break;
        case 5:
            /* 修改联系人 */
            modifyPerson(&abs);
            break;
        case 6:
            /* 清空联系人 */
            cleanPerson(&abs);
            break;
        case 0:
            /* 退出 */
            cout<<"欢迎下次使用"<<endl;
            system("pause") ;
            return 0;
            break;
        default:
            break;
        }
        
    }
    
    

    
    system("pause") ;
    return 0;
}