用Map帮我实现按照学号,姓名,班级,学院查找学生信息,并帮我定义Student类
时间: 2023-08-04 18:08:11 浏览: 94
利用Map集合储存并打印数据库信息
5星 · 资源好评率100%
好的,以下是一个简单的实现,包含了一个Student类和一个Map容器:
```c++
#include <iostream>
#include <string>
#include <map>
using namespace std;
class Student {
public:
Student(string id, string name, string cls, string dept)
: m_id(id), m_name(name), m_cls(cls), m_dept(dept) {}
string getID() const { return m_id; }
string getName() const { return m_name; }
string getCls() const { return m_cls; }
string getDept() const { return m_dept; }
private:
string m_id;
string m_name;
string m_cls;
string m_dept;
};
int main() {
map<string, Student> students;
// 添加学生信息
students.emplace("001", Student("001", "小明", "1班", "计算机科学与技术学院"));
students.emplace("002", Student("002", "小红", "2班", "计算机科学与技术学院"));
students.emplace("003", Student("003", "小刚", "3班", "物理学院"));
// 按照学号查找
string id = "002";
auto it = students.find(id);
if (it != students.end()) {
cout << "学号为" << id << "的学生信息如下:" << endl;
cout << "姓名:" << it->second.getName() << endl;
cout << "班级:" << it->second.getCls() << endl;
cout << "学院:" << it->second.getDept() << endl;
} else {
cout << "找不到学号为" << id << "的学生信息" << endl;
}
// 按照姓名查找
string name = "小刚";
for (const auto& s : students) {
if (s.second.getName() == name) {
cout << "姓名为" << name << "的学生信息如下:" << endl;
cout << "学号:" << s.second.getID() << endl;
cout << "班级:" << s.second.getCls() << endl;
cout << "学院:" << s.second.getDept() << endl;
break;
}
}
// 按照班级查找
string cls = "2班";
for (const auto& s : students) {
if (s.second.getCls() == cls) {
cout << "班级为" << cls << "的学生信息如下:" << endl;
cout << "学号:" << s.second.getID() << endl;
cout << "姓名:" << s.second.getName() << endl;
cout << "学院:" << s.second.getDept() << endl;
}
}
// 按照学院查找
string dept = "计算机科学与技术学院";
for (const auto& s : students) {
if (s.second.getDept() == dept) {
cout << "学院为" << dept << "的学生信息如下:" << endl;
cout << "学号:" << s.second.getID() << endl;
cout << "姓名:" << s.second.getName() << endl;
cout << "班级:" << s.second.getCls() << endl;
}
}
return 0;
}
```
以上代码通过Map容器存储了多个学生对象,并实现了按照学号、姓名、班级、学院查找学生信息的功能。在Student类中,我们定义了四个私有成员变量分别表示学生的学号、姓名、班级和学院。同时,提供了四个公有成员函数用于获取这些私有成员变量的值。在主函数中,我们通过调用Map容器的find函数实现了按照学号查找学生信息,而按照姓名、班级、学院查找学生信息则是通过遍历Map容器实现的。
阅读全文