문제 :
map 컨테이너를 이용하여 (이름, 성적)을 저장하고 이름으로 성적을 조회하는 점수 관리 프로그램을 만들어라.
이름은 빈칸 없이 입력하는 것을 원칙으로 한다.
실행 결과 :
목적 및 힌트 :
map 컨테이너 활용
이름과 점수를 쌍으로 저장할 맵 컨테이너로 map<string, int>를 이용하면 된다.
코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main() {
map<string, int> Score; // map 컨테이너 생성. 키는 한글 이름, 값은 정수 점수
cout << "***** 점수관리 프로그램 HIGH SCORE을 시작합니다 *****\n";
while(true){
int num;
int score;
string name;
cout << "입력:1, 조회:2, 종료:3 >> ";
cin >> num;
switch (num){
case 1:
cout << "이름과 점수>> ";
cin >> name >> score;
Score.insert(make_pair(name, score)); // map에 저장
break;
case 2:
cout << "이름 >> ";
cin >> name;
if(Score.find(name) == Score.end()) // name '키'를 끝까지 찾았는데 없음
cout << "없음" << endl;
else
cout << name << "의 점수는 " <<Score[name] << endl; // Score에서 name의 값을 찾아 출력
break;
case 3:
cout << "프로그램을 종료합니다...\n";
return 0;
default :
cout << "제대로 입력해\n";
break;
}
}
}
|
설명 :
map 컨테이너를 사용하기 위해서는 map 헤더파일을 include 해주어야 합니다.
map 컨테이너는 key와 value가 쌍으로 저장되는 컨테이너 입니다.
key는 고유한 값이기 때문에 중복으로 저장될 수 없습니다.
map에 대한 내용은 아래 링크에서 자세히 설명되어 있습니다.
http://www.cplusplus.com/reference/map/map/
'C++ programming' 카테고리의 다른 글
명품 C++ programming 실습 문제 10장 15번 (3) | 2020.03.11 |
---|---|
명품 C++ programming 실습 문제 10장 14번 (1) | 2020.03.11 |
명품 C++ programming 실습 문제 10장 12번 (3) | 2020.03.10 |
명품 C++ programming 실습 문제 10장 11번 (2) | 2020.03.10 |
명품 C++ programming 실습 문제 10장 10번 (1) | 2020.03.10 |