마법 주문 문제

12309 단어 C++primer 학습
제목 설명: 해리포터는 마법 학교에서 필수 과목 중 하나가 주문을 배우는 것이다.마법의 세계에는 10만 가지의 다른 주문이 있다고 한다. 해리는 모두 기억하기는 어렵지만, 강적에 대항하기 위해서는 위급할 때 필요한 주문을 모두 사용해야 하기 때문에 당신의 도움이 필요하다.
            。          ,                ;                    ,              。            ,   “what?”

입력:
              100000        ,     :

    [  ]     

      “  ” “    ”        20 80    ,           “[” “]”, “]”                 。       “@END@”  ,            。
                N(<=1000),   N     。         ,    “[  ]”,    “    ”。

출력: 각 테스트 용례의 출력이 한 줄을 차지하고 주문에 대응하는 기능이나 기능에 대응하는 주문을 출력한다.주문이 사전에 없으면 "what?"를 출력합니다.
마법 사전 저장하기 위해 맵 사용하기;
코드는 다음과 같습니다.
1、키보드에서 마법 사전 읽기

/** \    :    
 *
 * \author: JasonLee
 * \date  :  2017.11.22
 *
 */
#include 
#include

using namespace std;

map<string,string> insert_data(map<string,string> &magic_map)
{
    cout<<"please input data,end with \"-1\""<string str;//  
    string func;//  
    while(cin>>str && str != "-1")
    {
        cin>>func;
        magic_map[str]=func;//    
      //     :  magic_map.insert(pair(str,func));
    }
   return magic_map;
}
int main()
{
    map<string,string> magic_map;//    -     

    //    
    magic_map=insert_data(magic_map);

    cout<<"1:    ,    "<cout<<"2:    ,    "<cout<<"0:exit!"<cout<<"       what?"<int choice;
    cout<<"   :"<cin>>choice; //       
    switch(choice)
    {
    case 1://    ,    
        {
            string search_name;
            cout<<"     (null     ):";
            while(cin>>search_name && search_name != "null") ////       , null       
            {
                map<string,string>::iterator iter=magic_map.find(search_name);
                if(iter != magic_map.end())
                {
                    cout<second<else
                {
                    cout<<"what?"<break;
        }
    case 2://    ,    
    {
        string search_func;
        cout<<"     (null     ):";
        while(cin >> search_func && search_func != "null") //       , null       
        {
            map<string,string>::iterator temp=magic_map.begin();
            while(temp != magic_map.end())
            {
                if(temp->second == search_func) //        ,    
                {
                    break;
                }
                ++temp;//         
            }
            if(temp != magic_map.cend())
            {
                cout<first<else
            {
                cout<<"what?"<break;
    }
    }

    return 0;
}

2、파일에서 마법 사전 읽기
코드는 다음과 같습니다.

/** \

 *
 * \author:    
 * \date  :  2017.11.23

 */
#include 
#include
#include

using namespace std;

map<string,string> insert_data(map<string,string> &magic_map)
{
    cout<<"please input data,end with \"-1\""<string str;//  
    string func;//  
 /*   while(cin>>str && str != "-1")//         
    {
        cin>>func;
        magic_map[str]=func;//    
      //     :  magic_map.insert(pair(str,func));
    }*/

    ifstream input("magic.txt");//      
    if(input.is_open())
    {
        char buffer[128];
        while(!input.eof())
        {
            input>>str;
            input.getline(buffer,128);
            func=string(buffer);
            magic_map[str]=func;
            cout<" ------> "<return magic_map;
}

int main()
{
    map<string,string> magic_map;//    -     

    //    
    magic_map=insert_data(magic_map);

    cout<<"1:    ,    "<cout<<"2:    ,    "<cout<<"0:exit!"<cout<<"       what?"<int choice;
    cout<<"   :"<cin>>choice; //       
    switch(choice)
    {
    case 1://    ,    
        {
            string search_name;
            cout<<"     (null     ):";
            while(cin>>search_name && search_name != "null") ////       , null       
            {
                map<string,string>::iterator iter=magic_map.find(search_name);
                if(iter != magic_map.end())
                {
                    cout<second<else
                {
                    cout<<"what?"<break;
        }
    case 2://    ,    
    {
        string search_func;
        cout<<"     (null     ):";
        while(cin >> search_func && search_func != "null") //       , null       
        {
            map<string,string>::iterator temp=magic_map.begin();
            while(temp != magic_map.end())
            {
                if(temp->second == search_func) //        ,    
                {
                    break;
                }
                ++temp;//         
            }
            if(temp != magic_map.cend())
            {
                cout<first<else
            {
                cout<<"what?"<break;
    }
    }

    return 0;
}

좋은 웹페이지 즐겨찾기