题目
定义结构体
首先组建小组结构体
struct Xiaozu{//小组结构体:一个老师带5名学生,学生包括成绩和姓名
string tname;
struct Student sArray[5];
};
其次学生结构体
struct Student{//学生结构体
string sname;
int score;
};
关键函数
然后就是给结构体赋值的函数 allocateSpace
void allocateSpace(struct Xiaozu tArray[],int len){
//给小组赋值
string nameseed="ABCDE";
for(int i =0;i<len;i++){
tArray[i].tname="teacher_";
tArray[i].tname+=nameseed[i];
//给学生赋值
for(int j=0;j<5;j++){
tArray[i].sArray[j].sname="student_";
tArray[i].sArray[j].sname+=nameseed[j];
//给学生成绩赋随机值
int random=rand() % 71 +30;//取0~70再+30
tArray[i].sArray[j].score=random;
}
}
}
最后就是打印出结构体数组的所有信息就OK了
void printinfo(struct Xiaozu tArray[],int len){
for(int i =0;i<len;i++)
{
cout<<"老师姓名:"<<tArray[i].tname<<endl;
for(int j =0;j<5;j++)
{
cout<<"\t学生姓名:"<<tArray[i].sArray[j].sname<<endl;
cout<<"\t学生成绩:"<<tArray[i].sArray[j].score<<endl;
}
cout<<"小组已汇报完毕"<<endl;
}
}
源码
最后源代码如下
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
struct Student{//学生结构体
string sname;
int score;
};
struct Xiaozu{//小组结构体:一个老师带5名学生,学生包括成绩和姓名
string tname;
struct Student sArray[5];
};
void allocateSpace(struct Xiaozu tArray[],int len){
//给小组赋值
string nameseed="ABCDE";
for(int i =0;i<len;i++){
tArray[i].tname="teacher_";
tArray[i].tname+=nameseed[i];
//给学生赋值
for(int j=0;j<5;j++){
tArray[i].sArray[j].sname="student_";
tArray[i].sArray[j].sname+=nameseed[j];
//给学生成绩赋随机值
int random=rand() % 71 +30;//取0~70再+30
tArray[i].sArray[j].score=random;
}
}
}
void printinfo(struct Xiaozu tArray[],int len){
for(int i =0;i<len;i++)
{
cout<<"老师姓名:"<<tArray[i].tname<<endl;
for(int j =0;j<5;j++)
{
cout<<"\t学生姓名:"<<tArray[i].sArray[j].sname<<endl;
cout<<"\t学生成绩:"<<tArray[i].sArray[j].score<<endl;
}
cout<<"小组已汇报完毕"<<endl;
}
}
int main(){
struct Xiaozu tArray[3];
struct Student sArray[5];
int len=sizeof(tArray)/sizeof(tArray[0]);
allocateSpace(tArray,len);
printinfo(tArray,len);
return 0;
}