栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++结构体应用小案例:包括 随机数种子,利用sizeof关系式动态设置数组长度len的小技巧,以及数组作为函数参数的传递时形参表示方法的细节

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++结构体应用小案例:包括 随机数种子,利用sizeof关系式动态设置数组长度len的小技巧,以及数组作为函数参数的传递时形参表示方法的细节

1.每名老师带5名学生,共三名老师,需求如下:

    设计学生和老师的结构体,老师结构体中有:老师姓名,存放5名学生的结构体数组

    作为成员的学生有姓名 分数 ,创建数组存放三名老师,通过函数给每个老师及所带     

    的学生赋值,最终打印老师数据和老师所带学生的数据。

#include

#include

#include

using namespace std;

struct student {

int score;

string sname;

};

struct teacher {

string tname;

student arrStu[5];

};

void printInfo(teacher tarr[],int len)

{

for (int i = 0; i < len; i++)

{

cout << "老师姓名: " << tarr[i].tname << endl;

for (int j = 0; j < 5; j++)

{

cout << "t学生姓名: " << tarr[i].arrStu[j].sname

 << "考试分数: "<

}

}

}

void allocateSpace(teacher tarr[],int len)

{

string nameSeed = "ABCDE";

for (int i = 0; i < len; i++)

{

tarr[i].tname = "Teacher_";

tarr[i].tname += nameSeed[i];//非常重要的动态关联技巧

//给这名老师的五名学生赋值

for (int j = 0; j < 5; j++)

{

tarr[i].arrStu[j].sname="Student_";

tarr[i].arrStu[j].sname += nameSeed[j];

int random = rand() % 61+40;

tarr[i].arrStu[j].score = random;

}

}

}

int main()

{

//随机数种子

srand((unsigned)time(NULL));

//创建三名老师的数组

teacher tarr[3];

//通过函数给3名老师赋值

int len = sizeof(tarr) / sizeof(tarr[0]);//非常重要的动态关联技巧

allocateSpace(tarr, len);

//打印所有老师即学生的信息

printInfo(tarr, len);

system("pause");

return 0;

}

2.将结构体数组中的元素按年龄使用冒泡算法升序排序

  

#include

#include

using namespace std;

struct hero {

string name;

int age;

string sex;

};

void bubbleSort(hero heroArr[], int len)//等价于hero*  heroarr!!!

{

for (int i = 0; i < len - 1; i++)

{

for (int j = 0; j < len - i - 1; j++)

{

if (heroArr[j].age > heroArr[j + 1].age)

{

hero temp = heroArr[j + 1];

heroArr[j+1] = heroArr[j];

heroArr[j] = temp;

}

}

}

}

void printHero(hero heroArr[], int len)

{

for (int i = 0; i < len; i++)

{

cout << "姓名: " << heroArr[i].name << "年龄: " << heroArr[i].age << "性别: " << heroArr[i].sex << endl;

}

}

int main()

{

hero heroArr[5] = {

{"刘备",23,"男"},

{"关羽",22,"男"},

{"张飞",20,"男"},

{"赵云",21,"男"},

{"貂蝉",19,"女"}

};

int len = sizeof(heroArr) / sizeof(heroArr[0]);

bubbleSort(heroArr,len );//???

printHero(heroArr, len);

system("pause");

return 0;

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号