소개
이번 챌린지에서는 C++ 표준 템플릿 라이브러리 (STL) 의 std::map 컨테이너를 활용하여 학생 명부를 관리하는 프로그램을 작성합니다. 학교 관리자의 입장에서 키 - 값 (key-value) 구조를 사용하여 학생 정보를 효율적으로 추적하고 관리하는 연습을 하는 것이 목표입니다.
이 프로그램은 학생의 이름과 나이를 새로 추가하고, 이름을 통해 특정 학생의 나이를 조회하며, 명부에 등록된 모든 학생 기록을 출력하는 기능을 갖추어야 합니다.
간단한 학생 명부 구현하기
학교 관리자로서 C++ STL map 컨테이너를 사용하여 학생 정보를 효율적으로 관리할 수 있는 디지털 시스템을 구축해야 합니다. 이 과제를 통해 키 - 값 데이터 구조의 활용법을 익힐 수 있습니다.
과제
std::map을 사용하여 학생 명부를 관리하는 C++ 프로그램을 작성하세요.- 학생의 이름과 나이를 추가하는 기능을 구현하세요.
- 이름을 입력받아 해당 학생의 나이를 조회할 수 있도록 하세요.
- 명부에 저장된 모든 학생 기록을 화면에 출력하세요.
요구 사항
- 프로그램 파일 경로는
~/project/student_roster.cpp로 생성하세요. - 학생 이름과 나이를 저장하기 위해
std::map<std::string, int>를 사용하세요. - 다음 작업들을 구현해야 합니다:
- 명부에 새로운 학생 추가
- 이름을 통한 학생 나이 조회
- 명부 내 모든 학생 목록 출력
- 이전 실습에서 학습한 표준 C++ STL map 연산만을 사용하세요.
- g++ 컴파일러를 사용하여 프로그램을 컴파일하세요.
실행 예시
프로그램을 컴파일하고 실행하여 학생 명부를 관리하는 과정은 다음과 같습니다.
g++ student_roster.cpp -o student_roster
./student_roster
입출력 예시:
Enter command (add/get/list/quit): add
Enter student name: Alice
Enter student age: 20
Enter command (add/get/list/quit): add
Enter student name: Bob
Enter student age: 22
Enter command (get/list): get
Enter student name: Alice
Alice is 20 years old
Enter command (list): list
Alice: 20
Bob: 22
힌트
- 학생을 추가할 때는
map.insert()또는map[]연산자를 사용하세요. - 학생의 나이를 조회할 때는
map.at()또는map[]을 사용하세요. - 범위 기반 for 루프 (range-based for loop) 를 사용하여 map 의 모든 요소를 순회하세요.
- 나이를 조회할 때 존재하지 않는 이름에 대한 예외 처리를 고려하세요.
요약
요약하자면, 이번 챌린지에서는 std::map 컨테이너를 사용하여 학생 명부를 관리하는 C++ 프로그램을 구현해 보았습니다. 학생 정보를 추가하고, 이름으로 나이를 검색하며, 전체 목록을 출력하는 기능을 통해 C++ 에서 키 - 값 데이터 구조를 활용하여 정보를 효율적으로 관리하는 방법을 익혔습니다.



