在采用结构体嵌套的存储方式时,按班级和姓名查找学生信息
时间: 2024-03-26 17:41:48 浏览: 55
在采用结构体嵌套的方式存储学生信息时,可以按照班级和姓名查找学生信息。具体代码如下:
```
// 定义结构体
struct Student {
string name;
int age;
// 学生的其他信息
};
struct Class {
string name;
int num;
Student students[100]; // 存放学生信息
};
struct Major {
string name;
Class classes[50]; // 存放班级信息
};
struct College {
string name;
Major majors[20]; // 存放专业信息
};
// 在某个学院中查找某个班级的学生信息
Student* findStudentByName(College college, string majorName, string className, string studentName) {
for (int i = 0; i < 20; i++) {
if (college.majors[i].name == majorName) {
for (int j = 0; j < 50; j++) {
if (college.majors[i].classes[j].name == className) {
for (int k = 0; k < 100; k++) {
if (college.majors[i].classes[j].students[k].name == studentName) {
return &(college.majors[i].classes[j].students[k]);
}
}
}
}
}
}
return nullptr;
}
// 示例调用
College college;
// 初始化学院、专业、班级和学生信息
// ...
// 查找某个班级的某个学生信息
Student* student = findStudentByName(college, "某个专业名称", "某个班级名称", "某个学生姓名");
if (student != nullptr) {
// 打印学生信息
cout << "姓名:" << student->name << endl;
cout << "年龄:" << student->age << endl;
// 打印学生的其他信息
// ...
} else {
cout << "未找到该学生信息!" << endl;
}
```
在上面的代码中,`findStudentByName()`函数可以在某个学院中查找某个班级的某个学生信息。首先遍历所有的专业,找到指定的专业,然后在该专业的所有班级中查找指定的班级,最后在该班级的所有学生中查找指定的学生。如果找到了该学生,则返回该学生的指针,否则返回空指针。
阅读全文