C++学习笔记27——结构体案例练习

案例1

案例描述
学校正在做毕业设计项目,每名老师带领5个学生,总共有三名老师,需求如下:
设计学生与老师的结构体,其中在老师的结构体中,有老师姓名和一个存放五名学生的数组作为成员,学生的成员有姓名,考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值,最终打印出老师数据以及老师所带的学生数据
实例:

#include <iostream>
#include <string>
#include <ctime>
using namespace std;

//定义学生结构体
struct student {
   

	string name;
	int score = 0;
};

//定义老师结构体
struct teacher {
   

	string tname;


	//创建学生结构体变量
	//定义数组来存储学生结构体
	struct student stuarray[5];
};
//创建写入数据的函数
void evaluate(struct teacher tarray[],int len) {
   
	string a = "ABCDE";
	//外层循环,给老师赋值
	for (int i = 0; i < len; i++) {
   
		
		tarray[i].tname = "teacher_";
		tarray[i].tname += a[i];
		//内层循环给学生赋值
		for (int j = 0; j < 5; j++) {
   

			int num = rand
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,结构排序练习通常涉及到如何使用标准库中的算法对包含自定义数据类型的结构数组或容器进行排序。这里我们可以举一个简单的例子,假设有一个名为`Student`的结构,包含`name`和`age`两个成员: ```cpp struct Student { std::string name; int age; }; ``` 你可以用以下几种方法对`Student`结构数组进行排序: 1. **直接排序:**如果年龄是排序的主要依据,你可以定义一个比较函数(`compare`),然后使用`std::sort`函数: ```cpp bool compareStudents(const Student& s1, const Student& s2) { return s1.age < s2.age; } int main() { Student students[] = {{"Alice", 20}, {"Bob", 18}, {"Charlie", 22}}; std::sort(students, students + sizeof(students) / sizeof(students), compareStudents); // 现在students数组按年龄升序排列 } ``` 2. **使用STL算法:**如果你的结构已经实现了`<`运算符,那么可以直接使用`std::stable_sort`: ```cpp bool studentLess(const Student& s1, const Student& s2) { return s1.age < s2.age; } int main() { std::vector<Student> students = {{"Alice", 20}, {"Bob", 18}, {"Charlie", 22}}; std::stable_sort(students.begin(), students.end(), studentLess); } ``` 3. **自定义比较器(C++11及以上):**也可以使用lambda表达式来创建一个可传递的比较器: ```cpp int main() { std::vector<Student> students = {{"Alice", 20}, {"Bob", 18}, {"Charlie", 22}}; std::sort(students.begin(), students.end(), [](const Student& s1, const Student& s2) { return s1.age < s2.age; }); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值