C++实战:构建班级管理系统,随机生成师生信息并输出
为了实现这个需求,我们需要定义 `Teacher` 和 `Student` 类,每个类包含相应的私有属性和一个 `output()` 方法来输出信息。接着,我们创建一个 `Cls` 类来管理一个教师和多个学生,并提供一个方法按年龄排序学生并输出所有成员的信息。我们将创建一个 `Cls` 对象,并随机生成一些数据来展示其功能。 下面是具体的代码实现: ```cpp #include <iostream> #include <vector> #include <algorithm> #include <random> class Teacher { private: int num; char sex; std::string name; int age; public: Teacher(int n, char s, std::string nm, int a) : num(n), sex(s), name(nm), age(a) {} void output() const { std::cout << name << " is a teacher" << std::endl; } int getAge() const { return age; } }; class Student { private: int num; char sex; std::string name; int age; public: Student(int n, char s, std::string nm, int a) : num(n), sex(s), name(nm), age(a) {} void output() const { std::cout << name << " is a student" << std::endl; } int getAge() const { return age; } }; class Cls { private: Teacher teacher; std::vector<Student> students; public: Cls(Teacher t) : teacher(t) {} void addStudent(const Student& student) { students.push_back(student); } void outputAll() const { teacher.output(); // Sort students by age std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.getAge() < b.getAge(); }); for (const auto& student : students) { student.output(); } } }; int main() { // Generate random data std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<int> disNum(1000, 9999); std::uniform_int_distribution<int> disAge(18, 60); // Create a teacher Teacher teacher(disNum(gen), 'M', "Mr. Smith", disAge(gen)); // Create a class and add the teacher Cls myCls(teacher); // Add some students for (int i = 0; i < 5; ++i) { char sex = (i % 2 == 0) ? 'F' : 'M'; std::string name = "Student " + std::to_string(i); Student student(disNum(gen), sex, name, disAge(gen)); myCls.addStudent(student); } // Output all members myCls.outputAll(); return 0; } ``` 解释: 1. Teacher 和 Student 类:这两个类都包含私有属性 `num`, `sex`, `name`, `age` 并且都有一个 `output()` 方法来输出信息。 2. Cls 类:这个类管理一个教师和多个学生,并提供了一个 `outputAll()` 方法来按年龄排序学生并输出所有成员的信息。 3. main 函数:在主函数中,我们使用随机数生成器来创建一个教师和一些学生,并将它们添加到 `Cls` 对象中,然后调用 `outputAll()` 方法来输出所有成员的信息。 ######[AI写代码神器 | 769点数解答 | 2024-10-14 20:25:43]
- Java 实现:定义尊享无忧学生类并打印学生信息(字节豆包 | 264点数解答 | 2024-09-18 16:21:36)298
- 代码填空挑战:完成正态分布、随机数生成及数据处理代码(阿里通义 | 506点数解答 | 2025-03-23 14:32:14)344
- 挑战!完成代码填空解锁数据处理奥秘(字节豆包 | 116点数解答 | 2025-03-26 22:22:15)358
- 挑战填空!完成这段 NumPy 代码实现数据生成与保存(DeepSeek | 178点数解答 | 2025-03-26 22:26:30)419
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)372
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)368
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)328
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)377
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)387
- 工程师必备!10 种工程日常易用管理工具大揭秘(百度文心 | 346点数解答 | 2023-11-09 18:26:09)306
- 用 JavaScript 实现福利彩票抽奖:一键体验浏览器上的中奖乐趣!(GPT | 282点数解答 | 2024-09-25 20:36:52)286
- JavaScript实现福利彩票抽奖:含规则、界面与代码示例(GPT | 1542点数解答 | 2024-09-27 14:41:50)449