ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 10장 14번
    C++ 2018. 11. 17. 05:07

    14. 암호 관리 응용프로그램을 map을 이용하여 작성하라.


    소스코드


    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;
    int main() {
        map<string, string> m;
        string name; string password;
        cout << "***** 암호 프로그램 WHO를 시작합니다 *****" << endl;
        for (;;) {
            cout << "삽입:1, 검사:2, 종료:3 >> " ;
            int num; cin >> num;
            if (num == 1) { // 이름과 암호 삽입
                cout << "이름 암호>> ";
                cin >> name >> password;
                m[name] = password;
            }
            else if (num == 2) { // 암호 검사
                cout << "이름? ";
                cin >> name;
                for (;;) { // 암호를 맞출때 까지 반복
                    cout << "암호? ";
                    cin >> password;
                    if (password == m[name]) { // 입력받은 암호가 이름에 해당되는 암호와 같다면
                        cout << "통과!!" << endl;
                        break;
                    }
                    else cout << "실패~~" << endl; // 암호가 일치하지 않는다면
                }
            }
            else if (num == 3) break;
            else cout << "입력 에러" << endl;
        }
    }


    실행결과



    map 컨테이너에 삽입 및 조회를 응용하는 문제입니다. 이름과 암호를 입력받아 맵에 저장 후, 다시 이름을 입력 받은 후 이름에 대한 암호가 맞을 때까지 암호를 입력 받습니다.


    map는 키와 값의 쌍을 원소로 저장하고 키를 이용하여 값을 검색하는 제네릭 컨테이너 입니다. 키나 값은 기본타입, 클래스 타입 모두 가능하지만, 동일한 키를 가지는 원소가 중복 저장되면 오류가 발생합니다.

    사용하기 위해서는 다음과 같이 include를 해주어야 합니다. #include <map>


    이름과 점수를 쌍으로 저장할 맵 컨테이너로 map<string, string>를 이용하면 됩니다.

    'C++' 카테고리의 다른 글

    명품 C++ 10장 16번  (0) 2018.11.17
    명품 C++ 10장 15번  (0) 2018.11.17
    명품 C++ 10장 13번  (0) 2018.11.17
    명품 C++ 10장 12번  (0) 2018.11.17
    명품 C++ 10장 11번  (0) 2018.11.17

    댓글

© 2018 TISTORY. All rights reserved.