はじめに
このチャレンジでは、C++ 標準テンプレートライブラリ(STL)の std::map コンテナを使用して、学生名簿を管理する C++ プログラムを作成します。学校の管理者として、キー・バリュー(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++ におけるキー・バリュー型データ構造を用いた効率的な情報管理の実践的なスキルを習得しました。



