基于C++语言的通讯录

1.菜单栏头文件

#include<iostream>
using namespace std;
void caidan()
{
    cout<<"\033[34m欢迎使用手机通讯录!\033[0m"<<endl;
    cout << "\033[31m" << R"(
                 _             _       
  ___ ___  _ __ | |_ __ _  ___| |_ ___ 
 / __/ _ \| '_ \| __/ _` |/ __| __/ __|
| (_| (_) | | | | || (_| | (__| |_\__ \
 \___\___/|_| |_|\__\__,_|\___|\__|___/
                                       )" << "\033[0m" <<endl;
    cout<<"处理业务请键入对应数字"<<endl;
    cout<<"\033[33m******1.添加联系人******\033[0m"<<endl;
    cout<<"\033[33m******2.显示联系人******\033[0m"<<endl;
    cout<<"\033[33m******3.删除联系人******\033[0m"<<endl;
    cout<<"\033[33m******4.找查联系人******\033[0m"<<endl;
    cout<<"\033[33m******5.修改联系人******\033[0m"<<endl;
    cout<<"\033[33m******6.清空联系人******\033[0m"<<endl;
    cout<<"\033[33m******0.退出通讯录******\033[0m"<<endl;
}

2.主要代码

#include<iostream>
#include<string>
#include"caidan.h"
#include<stdlib.h>
#define MAX 1000
struct person//创建联系人结构体
{
    string name;//联系人的名字
    int age;//年龄
    int sex;//性别
    string num;//电话号码

};
struct textbox
{
    struct person personsarr[MAX];//创建联系人数组最大为1000
    int size;//记录联系人个数
};

void addperson(textbox* togxun)
{
    if (togxun->size == MAX)
    {
        cout << "通讯录已满无法再添加联系人" << endl;
        return;
    }
    else
    {
        string Name;
        cout << "请输入姓名" << endl;
        cin >> Name;
        togxun->personsarr[togxun->size].name = Name;//添加姓名

        cout << "请输入性别\n1------男 2--------女" << endl;
        int xing = 0;
        cin >> xing;
        while (xing != 1 && xing != 2)
        {
            cout << "性别输入错误,请重新输入:";
            cin >> xing;
        }
        togxun->personsarr[togxun->size].sex = xing;//添加性别

        cout<<"请输入年龄"<<endl;
        int Age=0;
        cin>>Age;
        togxun->personsarr[togxun->size].age=Age;//添加年龄

        cout<<"请输入电话号码"<<endl;
        string NUM;
        cin>>NUM;
        togxun->personsarr[togxun->size].num=NUM;//添加电话号码

        // 增加通讯录大小
        togxun->size++;
        cout<<"添加成功"<<endl;
    }
}
void xianshi(textbox * tongxun)//显示联系人
{
    if (tongxun->size==0)//如果联系人个数为零,那就没有人
    {
        cout<<"当前记录为空"<<endl;
    }
    else
    {
        for (int i = 0; i < tongxun->size; i++)
        {
            cout<<"\033[33m姓名:\033[0m"<<tongxun->personsarr[i].name<<"\t";
            cout<<"\033[33m年龄:\033[0m"<<tongxun->personsarr[i].age<<"\t";
            cout<<"\033[33m性别:\033[0m"<<tongxun->personsarr[i].sex<<"\t";
            cout<<"\033[33m电话号码:\033[0m"<<tongxun->personsarr[i].num<<"\n";
        }
    }
    
    
}
int jiance(textbox *tongxun,string Name)//检测联系人是否存在,如果存在就返回联系人的位置
{
    for (int i = 0; i < tongxun->size; i++)//for循环遍历整个数组
    {
        if (tongxun->personsarr[i].name==Name)//有这名,就返回这名的下标
        {
            return i;
        }
        
    }
    return -1;//没找到就返回-1
}
void deleteperson(textbox *tongxun)//删除联系人
{
    cout<<"请输入你要删除的联系人"<<endl;
    string name;
    cin>>name;
    int ceshi;
    ceshi=jiance(tongxun,name);//先调用检测联系人是否存在
    if (ceshi!=-1)
    {
        for (int i = ceshi; i < tongxun->size; i++)
        {
            tongxun->personsarr[i]=tongxun->personsarr[i+1];//如果存在返回了下标,我们把下标后面的数据向前移动
        }//成功将下标数值覆盖
        tongxun->size--;
        cout<<"删除成功"<<endl;
    }
    else
    {
        cout<<"查无此人"<<endl;
    }
}
void findperson(textbox *tongxun)
{
    cout<<"请输入你要查找人的名字"<<endl;
    string Name;
    cin>>Name;
    int kk=jiance(tongxun,Name);
    if (kk!=-1)
    {
        cout<<tongxun->personsarr[kk].name<<"\t";
        cout<<tongxun->personsarr[kk].sex<<"\t";
        cout<<tongxun->personsarr[kk].age<<"\t";
        cout<<tongxun->personsarr[kk].num<<endl;

    }
    else
    {
        cout<<"查无此人"<<endl;
    }
    
}
void modifyperson(textbox *tongxun)
{
    cout<<"请输入要修改联系人的名字"<<endl;
    string name;
    cin>>name;
    int kk=jiance(tongxun,name);
    if (kk!=-1)
    {
        cout<<"请输入你要修改的指标\n1.姓名\n2.性别\n3.年龄\n4.电话号码"<<endl;
        int i;
        cin>>i;
        string nam;
        int xing;
        string num1;
        int ag;
        int j=1;
        while (j)
        {
            switch (i)
            {
                case 1:
                {   cout<<"你想要修改为:"<<endl;
                    cin>>nam;
                    tongxun->personsarr[kk].name=nam;
                    cout<<"修改成功";
                    break;
                }

                case 2:
                {
                    cout<<"你想要修改为:"<<endl;
                    cin>>xing;
                    tongxun->personsarr[kk].sex=xing;
                    cout<<"修改成功";
                    break;
                }
                case 3:
                {
                    cout<<"你想要修改为:"<<endl;
                    cin>>ag;
                    tongxun->personsarr[kk].age=ag;
                    cout<<"修改成功";
                    break;
                }
                case 4:
                {
                    cout<<"你想修改为:"<<endl;
                    cin>>num1;
                    tongxun->personsarr[kk].num=num1;
                    cout<<"修改成功";
                    break;
                }
            }
            cout<<"是否继续修改1---是 0---否"<<endl;
            cin>>j;
        }
        
        
    }
    
}
int main()
{
    textbox tongxun;
    tongxun.size=0;
    int kk;
    int shuru=0;
    while (true)
    {
        caidan();
        cin>>shuru;
        switch (shuru)
        {
        case 0:
            cout<<"退出 欢迎下次使用!"<<endl;
            system("pause");
            return 0;
            break;
        case 1:
            cout<<"添加联系人"<<endl;
            addperson(&tongxun);
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        case 2:
            cout<<"显示联系人"<<endl;
            xianshi(&tongxun);
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        case 3:
            cout<<"删除联系人"<<endl;
            deleteperson(&tongxun);
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        case 4:
            cout<<"找查联系人"<<endl;
            findperson(&tongxun);
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        case 5:
            cout<<"修改联系人"<<endl;
            modifyperson(&tongxun);
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        case 6:
            cout<<"清空联系人"<<endl;
            cout<<"\033[34m继续使用其他业务请继续键入其他数字\033[0m"<<endl;
            system("pause");
            system("cls");
            break;
        }
    }
    
    system("pause");
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值