c++在黑框框中实现通讯录功能

 

#include <windows.h>
#include <iostream>
using namespace std;
class address_list
{
    public:
        string name,number,kind,url;
        void set(string sname="0",string snumber="0",string skind="0",string surl="0")
        {
            name=sname;
            number=snumber;
            kind=skind;
            url=surl;
        }
        void print()
        {
            cout<<"姓名:"<<name<<"      电话号码:"<<number<<"      类别:"<<kind<<"      电子邮件:"<<url<<endl;
        }
}time[15];                 //最多只能15个联系人
int k=0;
int search(int n)               //查找联系人
{
    char a;
    string s;
    cout<<"请输入要查的类别:"<<endl<<"A:办公类"<<endl<<"B:个人类"<<endl<<"C:商务类"<<endl<<"您的选择是(选A、B、C):";
    cin>>a;
    switch(a)
    {
        case 'A':s="办公类";break;
        case 'B':s="个人类";break;
        case 'C':s="商务类";break;
    }
    for(int i=0;i<n;i++)
    {
        if(time[i].kind==s)
        {
            time[i].print();
        }
    }
    return n;
}
int add(int n)                    //添加联系人
{
    int p=0;
    string sname,snumber,skind,surl;
    cout<<"请输入要添加的姓名:";cin>>sname;
    cout<<"电话号码:";cin>>snumber;
    cout<<"类别:";cin>>skind;
    cout<<"电子邮件:";cin>>surl;
    for(int i=0;i<n;i++)
    {
        if(time[i].name==sname || time[i].number==snumber)
        {
            p=1;
            break;
        }
    }
    if(p)
    {
        return n;
    }
    else
    {
        time[n].set(sname,snumber,skind,surl);
        return n+1;
    }
}
int modify(int n)                 //修改联系人
{
    int k=1;
    char jl[4];
    cout<<"请看通讯录:"<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<':';
        time[i].print();
    }
    string sname;
    cout<<"你想修改谁的信息:";
    cin>>sname;
    for(int i=0;i<n;i++)
    {
        if(time[i].name==sname)
        {
            time[i].print();
            int c;
            cout<<"你想修改几个信息:";
            cin>>c;
            cout<<"您想要修改哪个信息:"<<endl;
            cout<<"输入N修改姓名"<<endl<<"输入B修改电话号码"<<endl<<"输入K修改类别"<<endl<<"输入U修改电子邮件"<<endl;
            for(int j=0;j<c;j++)
            {
                cin>>jl[j];
            }
            for(int j=0;j<c;j++)
            {
                switch(jl[j])
                {
                    case 'N':cout<<"新名字是:";cin>>time[i].name;break;
                    case 'B':cout<<"新电话号码是:";cin>>time[i].number;break;
                    case 'K':cout<<"新类别是:";cin>>time[i].kind;break;
                    case 'U':cout<<"新电子邮件是:";cin>>time[i].url;break;
                }
            }
            k=0;
            break;
        }
    }
    if(k)
    {
        cout<<"没有这个人!"<<endl;
    }
    return n;
}
int delete1(int n)                     //删除联系人
{
    cout<<"请看通讯录:"<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<':';
        time[i].print();
    }
    string sname;
    cout<<"您想要删除谁的信息:";
    cin>>sname;
    for(int i=0;i<n;i++)
    {
        if(time[i].name==sname)
        {
            if(i<n-1)
            {
                for(int j=i;j<n-1;j++)
                {
                    time[j]=time[j+1];
                }
            }
        }
    }
    return n-1;
}
int look(int n)                      //查找联系人
{
    for(int i=0;i<n;i++)
    {
        time[i].print();
    }
    return n;
}
int main()
{
    int n;
    time[0].name="余小二";time[0].number="13543646666";time[0].kind="个人类";time[0].url="984121238.@qq.com";      //初始化四个人
    time[1].name="陆远";time[1].number="13543641111";time[1].kind="办公类";time[1].url="596375775.@qq.com";
    time[2].name="甘敬";time[2].number="13543641231";time[2].kind="商务类";time[2].url="1501015777.@qq.com";
    time[3].name="林宇晴";time[3].number="13543646786";time[3].kind="办公类";time[3].url="408218645.@qq.com";
    int k=14;
    while(1)
    {
        cout<<"                      通讯录";cout<<endl<<"                  查找:请按“1”"<<endl<<"                  添加:请按“2”"<<endl;
        cout<<"                  修改:请按“3”"<<endl<<"                  删除:请按“4”"<<endl<<"                  查看:请按“5”"<<endl;
        cout<<"                  退出:请按“0”"<<endl<<"请输入你的操作:";
        cin>>n;
        if(n==2 && k==15)
        {
            cout<<"你的通讯录已满!"<<endl;
        }
        else
        {
            if(n>=0 && n<=5)
            {
                switch(n)
                {
                    case 1:k=search(k);break;
                    case 2:k=add(k);break;
                    case 3:k=modify(k);break;
                    case 4:k=delete1(k);break;
                    case 5:k=look(k);break;
                    case 0:exit(0);
                }
            }
            else
                cout<<"选择错误,请再次选择!"<<endl;
        }
    }
}

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值