实现实例1
/*
C++结构体实例1:
学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下:
设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员。
学生的成员有姓名、考试分数。创建数组存放3名老师,通过函数给每个老师及所带的学生赋值。
最终打印出老师数据以及老师所带的学生数据。
*/
#include<iostream>
#include<string>
using namespace std;
//创建学生的结构体类型
struct student1{
string name;
int score;
};
//创建老师的结构体类型
struct teacher1{
string t_name;
struct student1 s[5];
};
//赋值函数
void Set_TT(teacher1 *t1) {
//int len=sizeof(t1)/sizeof(teacher1);
int len = 3;
for (int i = 0; i < len; i++) {
cout << "请输入第" << i << "位老师的名字" << endl;
cin >>t1[i].t_name;//此处用数组索引指明了是第一个结构体元素,因此后续用符号“.”
for (int j = 0; j < 5; j++) {
cout << "请输入第" << j << "位同学的名字及分数" << endl;
cin >>t1[i].s[j].name>>t1[i].s[j].score;
}
}
}
//打印信息函数
void PrintT(teacher1 *t2) {
//int len2 = sizeof(t2) / sizeof(teacher1);
int len2 = 3;
for (int i = 0; i < len2; i++) {
cout << t2->t_name << endl;//此处t2为数组名,退化为指针使用。也可以像t1一样使用。
for (int j = 0; j < 5; j++) {
cout << t2->s[j].name << " "<< t2->s[j].score<<endl;
}
}
}
int main(){
teacher1 tea1[3];
Set_TT(tea1);
PrintT(tea1);
system("pause");
return 0;
}
实现实例2
/*
设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
五名英雄信息如下:
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",19,"女"}。
*/
#include<iostream>
#include<string>
using namespace std;
//创建英雄结构体
struct hero {
string name;
int age;
string gender;
};
//冒泡排序
void sort(hero *heros,int len) {
//int len=sizeof(heros)/sizeof(hero);
int max = 0;
for (int i = 0; i < len-1;i++) {
for (int j = 0; j < len - i-1; j++) {
//年龄作为结构体变量排序的依据
if (heros[j].age >= heros[j+1].age) {//由于要对整个结构体数组重新排序,仅仅交换年龄是做不到的,实际上是要交换整个结构体变量。
hero max = heros[j];//定义一个结构体变量中间量用于存储年龄较大的整个结构体变量
heros[j] = heros[j + 1];
heros[j+1] = max;
}
}
}
}
//打印排序后的结果:
void print_h(hero *heros1,int len) {
//int len1 = sizeof(heros1) / sizeof(hero);
for (int i = 0; i < len; i++) {
cout<<"{"<<heros1[i].name<<","<<heros1[i].age<<","<<heros1[i].gender<<"}"<<endl;
}
}
int main() {
hero fiveh[5] = {{"刘备",23,"男"},{"关羽",22,"男"},{"张飞",20,"男"},{"赵云",21,"男"},{"貂蝉",19,"女"}};
int len = sizeof(fiveh) / sizeof(hero);//为了计算结构体数组的元素个数。
sort(fiveh,len);
print_h(fiveh,len);
system("pause");
return 0;
}