实现简单的学生名册

C++Beginner
立即练习

介绍

在这个挑战中,你将使用 C++ 标准模板库(STL)中的 std::map 容器创建一个管理学生名册的程序。你的目标是练习使用键值对数据结构,以学校管理员的身份高效地跟踪和管理学生信息。

该程序应允许你添加包含姓名和年龄的新学生,通过姓名检索学生的年龄,并显示名册中所有的学生记录。

这是一个「挑战」,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 100%。它在学习者中获得了 100% 的好评率。

实现简单的学生名册

作为一名学校管理员,你需要创建一个数字化系统,利用 C++ STL 的映射(map)容器来高效地跟踪和管理学生信息。这个挑战将帮助你练习使用键值对数据结构。

任务

  • 创建一个使用 std::map 管理学生名册的 C++ 程序
  • 实现添加学生姓名和年龄的功能
  • 允许通过姓名检索学生的年龄
  • 显示名册中所有的学生记录

要求

  • ~/project/student_roster.cpp 中编写程序
  • 使用 std::map<std::string, int> 来存储学生的姓名和年龄
  • 实现以下操作:
    • 向名册中添加新学生
    • 通过姓名检索学生年龄
    • 显示名册中的所有学生
  • 仅使用在之前实验中学到的标准 C++ STL 映射操作
  • 使用 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)遍历映射
  • 在检索年龄时处理可能出现的异常
✨ 查看解决方案并练习

总结

总而言之,这个挑战要求你实现一个使用 std::map 容器管理学生名册的 C++ 程序。该程序应具备添加新学生、通过姓名检索学生年龄以及显示名册中所有学生记录的功能。此挑战旨在帮助你练习在 C++ 中使用键值对数据结构,从而高效地跟踪和管理学生信息。