간단한 학생 명부 구현하기

C++Beginner
지금 연습하기

소개

이번 챌린지에서는 C++ 표준 템플릿 라이브러리 (STL) 의 std::map 컨테이너를 활용하여 학생 명부를 관리하는 프로그램을 작성합니다. 학교 관리자의 입장에서 키 - 값 (key-value) 구조를 사용하여 학생 정보를 효율적으로 추적하고 관리하는 연습을 하는 것이 목표입니다.

이 프로그램은 학생의 이름과 나이를 새로 추가하고, 이름을 통해 특정 학생의 나이를 조회하며, 명부에 등록된 모든 학생 기록을 출력하는 기능을 갖추어야 합니다.

이 콘텐츠는 챌린지입니다. 가이드가 제공되는 실습과 달리, 학습 단계를 따라가는 것이 아니라 스스로 과제를 해결해야 합니다. 챌린지는 다소 어려울 수 있습니다. 해결이 어렵다면 Labby 와 상의하거나 모범 답안을 확인해 보세요. 통계에 따르면 이 챌린지는 초급 수준이며, 100%의 통과율과 학습자들로부터 100%의 긍정적인 평가를 기록하고 있습니다.

간단한 학생 명부 구현하기

학교 관리자로서 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++ 에서 키 - 값 데이터 구조를 활용하여 정보를 효율적으로 관리하는 방법을 익혔습니다.