08-1 结构体练习1
描述:
学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下
设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值,最终打印出老师数据以及老师所带的学生数据。
#include <iostream>
#include <string>
using namespace std;
struct student
{
string name;
int score;
};
struct teacher
{
string name;
struct student studentarr[5];
};
void write(struct teacher tarr[], int len);
void print(struct teacher tarr[], int len);
int main()
{
struct teacher teacherarr[3];
int len = sizeof(teacherarr) / sizeof(teacherarr[0]);
write(teacherarr, len);
print(teacherarr, len);
system("pause");
return 0;
}
void write(struct teacher tarr[], int len)
{
for (int i = 0;i < len; i++)
{
cout << "请输入老师" << i + 1 << "的姓名:";
cin >> tarr[i].name;
int len2 = sizeof(tarr[i].studentarr) / sizeof(tarr[i].studentarr[0]);
for (int y = 0;y < len2;y++)
{
cout << "请输入老师" << i + 1 << "的学生" << y + 1 << "的姓名:";
cin >> tarr[i].studentarr[y].name;
cout << "请输入老师" << i + 1 << "的学生" << y + 1 << "的得分:";
cin >> tarr[i].studentarr[y].score;
}
}
}
void print(struct teacher tarr[], int len)
{
for (int i = 0;i < len; i++)
{
cout << "老师" << i + 1 << "的姓名:" << tarr[i].name << endl;
int len2 = sizeof(tarr[i].studentarr) / sizeof(tarr[i].studentarr[0]);
for (int y = 0;y < len2;y++)
{
cout << "老师" << i + 1 << tarr[i].name << "的学生" << y + 1 << "的姓名:" << tarr[i].studentarr[y].name << endl;
cout << "老师" << i + 1 << tarr[i].name << "的学生" << y + 1 << tarr[i].studentarr[y].name << "的得分:" << tarr[i].studentarr[y].score << endl;
}
}
}
非常艰难(
注意这边可以直接传入数组,也可以传入指针。指针这边还是有点问题的。
madamadadane
:-)