处女篇——STL应用

初来乍到,各位多多关照。
// STLPhonBook.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

using namespace std;

enum MenuOptionSelect
{
    InsertContactsetEnity=0,
    DisplayEntries=1,
    FindNumber=2,
    DeleteConnect=3,
    QuitApplation=4
};

struct ContactItem
{
    string strYouName;
    string strYouNumber;

    ContactItem(const string & strName,const string &strNumber)
    {
        strYouName=strName;
        strYouNumber=strNumber;
    }

    bool operator == (const ContactItem &itemToCompare) const
    {
        return (itemToCompare.strYouName==this->strYouName);
    }

    bool operator < (const ContactItem & itemtoCompare) const
    {
        return (this->strYouName<itemtoCompare.strYouName);
    }
};

int ShowMenu();
ContactItem GetConnectInfo();
void DisplayConnectSet(const set<ContactItem> & setConnects);
void FindConnect(const set<ContactItem>& setConnects);
void DelateConnects(set<ContactItem >& setConnects);

int _tmain(int argc, _TCHAR* argv[])
{

    set<ContactItem> setConnects;
    int nUserSelection=InsertContactsetEnity;

    //实现的就是为了一直循环 供用户选择 知道选择 结束程序
    while(nUserSelection=ShowMenu()!=(int)QuitApplation)
    {
        switch(nUserSelection)
        {
        case InsertContactsetEnity:
            setConnects.insert(GetConnectInfo());
            cout<<"电话薄更新成功!"<<endl;
            break;
        
        case DisplayEntries:
            DisplayConnectSet(setConnects);
            break;

        case FindNumber:
            FindConnect(setConnects);
            break;

        case DeleteConnect:
            DelateConnects(setConnects);
            DisplayConnectSet(setConnects);
            break;

        default:
            cout<<"非法输入!你得选择0-4里面的数据!!"<<endl;
            break;

        }

    }


    return 0;
}
void DisplayConnectSet(const set<ContactItem> & setConnects)
{
    cout<<"* * * * * * * 电话簿信息 * * * * * * *"<<endl;
    cout<<"总共有"<<setConnects.size()<<"个电话信息"<<endl;

    set<ContactItem>::const_iterator iterConnect=setConnects.begin();
    while(iterConnect!=setConnects.end())
    {
        cout<<"姓名:"<<iterConnect->strYouName<<" 电话:"<<iterConnect->strYouNumber<<endl;
        iterConnect++;
    }
    
}

ContactItem GetConnectInfo()
{
    cout<<"请输入名字:>>";
    string strName;
    cin>>strName;
    string strPhonNumber;

    cout<<strName<<"的电话号码:>>";
    cin>>strPhonNumber;
    return ContactItem(strName,strPhonNumber);
}

int ShowMenu()
{
    cout<<"**** * * * * ***欢迎,请选择***** * * * *******"<<endl;
    cout<<"选择 0 添加 姓名以及 电话 "<<endl;
    cout<<"选择 1 来显示所有电话信息 "<<endl;
    cout<<"选择 2 来查找信息 "<<endl;
    cout<<"选择 3 来删除电话信息"<<endl;
    cout<<"选择 4 来结束电话簿服务 !"<<endl;
    cout<<">>";

    int nYourSelect=0;
    cin>>nYourSelect;
    cout<<endl;
    return nYourSelect;
}
void FindConnect(const set<ContactItem>& setConnects)
{
    cout<<"@@@@@@@@@@@@@@@@@@@@@22"<<endl;
    cout<<"输入名字,哥来帮你找:"<<endl;
    cout<<">>"<<endl;
    string strName;
    cin>>strName;

    set<ContactItem>::const_iterator iterFind=setConnects.find(ContactItem(strName,""));
    if (iterFind!=setConnects.end())
    {
        cout<<strName<<" 被找到!电话号码:"<<iterFind->strYouNumber<<endl;
    }
    else
        cout<<"貌似没有这个人啊???"<<endl;
    cout<<endl;
    return;
}

void DelateConnects(set<ContactItem >& setConnects)
{
    cout<<"你喜爱删除谁的信息捏??"<<endl;
    cout<<">>"<<endl;

    string strName;
    cin>>strName;

    size_t nDelet=setConnects.erase(ContactItem(strName,""));

    if (nDelet>0)
    {
        cout<<strName<<"删除了!"<<endl;

    }
    else
        cout<<strName<<"没找到!"<<endl;

}

转载于:https://my.oschina.net/vzheng/blog/73546

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值