需求分析:
- 现有3名老师,每个老师带领5个学生
- 设计老师和学生的结构体,老师的成员有姓名、所带学生;学生的成员中有姓名、分数。
- 通过函数对老师、学生的成员赋值。
- 通过函数输出老师和所带学生信息。
- 使用分文件完成
代码实现
头文件:
struct_eneity.h
using namespace std;
#include<string>
struct student {
string name;
int score = 0;
};
struct teacher {
string name;
student stu[5];
};
statement.h
#pragma once
#include"struct_eneity.h"
void set_teacher(teacher* tea);
void set_student(student* stu);
void show_teacher(const teacher* tea);
void show_student(const student* stu);
源文件:
func.cpp
#include"statement.h"
#include<iostream>
void set_teacher(teacher* tea) {
cout << "姓名: ";
cin >> tea->name;
cout << "学生信息:" << endl;
for (int i = 0; i < (sizeof(tea->stu) / sizeof(tea->stu[0])); i++) {
cout << "第" << i + 1 << "个学生:" << endl;
set_student((student*)&(tea->stu[i]));
}
}
void set_student(student* stu) {
cout << "姓名:";
cin >> stu->name;
cout << "分数:";
cin >> stu->score;
}
void show_teacher(const teacher* tea) {
cout << tea->name << "老师所带学生信息:" << endl;
for (int i = 0; i < (sizeof(tea->stu) / sizeof(tea->stu[0])); i++) {
cout << "第" << i + 1 << "个学生:" << endl;
show_student((student*)&(tea->stu[i]));
}
}
void show_student(const student* stu) {
cout << "姓名: " << stu->name << endl;
cout << "分数: " << stu->score << endl;
}
main.cpp
#include"statement.h"
int main() {
teacher tea[3];
for (int i = 0; i < sizeof(tea) / sizeof(tea[0]); i++) {
set_teacher((teacher*)&(tea[i]));
}
for (int i = 0; i < sizeof(tea) / sizeof(tea[0]); i++) {
show_teacher((teacher*)&(tea[i]));
}
system("pause");
return 0;
}