Untitled
unknown
plain_text
a year ago
2.6 kB
3
Indexable
#include "CourseRegistrationSystem.h" #include <iostream> void addCourse(std::vector<std::unique_ptr<Course>>& courses, const std::string& name, int minStudents, int maxStudents) { courses.push_back(std::make_unique<Course>(name, minStudents, maxStudents)); } void addStudent(std::vector<std::unique_ptr<Student>>& students, const std::string& name) { students.push_back(std::make_unique<Student>(name)); } void registerStudentForCourse(Student& student, Course& course) { if (student.registerCourse(&course)) { std::cout << student.getName() << " successfully registered for " << course.getName() << std::endl; } else { std::cout << student.getName() << " could not register for " << course.getName() << std::endl; } } void displayAvailableCourses(const std::vector<std::unique_ptr<Course>>& courses) { std::cout << "Available courses:" << std::endl; for (const auto& course : courses) { if (course->isAvailable()) { std::cout << course->getName() << " (" << course->getCurrentStudents() << "/" << course->getMaxStudents() << ")" << std::endl; } } } #ifndef COURSE_REGISTRATION_SYSTEM_H #define COURSE_REGISTRATION_SYSTEM_H #include "Course.h" #include "Student.h" #include <vector> #include <memory> #include <string> void addCourse(std::vector<std::unique_ptr<Course>>& courses, const std::string& name, int minStudents, int maxStudents); void addStudent(std::vector<std::unique_ptr<Student>>& students, const std::string& name); void registerStudentForCourse(Student& student, Course& course); void displayAvailableCourses(const std::vector<std::unique_ptr<Course>>& courses); #endif // COURSE_REGISTRATION_SYSTEM_H #include "CourseRegistrationSystem.h" int main() { std::vector<std::unique_ptr<Course>> courses; std::vector<std::unique_ptr<Student>> students; // Add courses addCourse(courses, "Math 101", 5, 30); addCourse(courses, "Physics 101", 5, 30); addCourse(courses, "Chemistry 101", 5, 30); // Add students addStudent(students, "John Doe"); addStudent(students, "Jane Smith"); // Register students for courses registerStudentForCourse(*students[0], *courses[0]); registerStudentForCourse(*students[0], *courses[1]); registerStudentForCourse(*students[1], *courses[1]); // Display available courses displayAvailableCourses(courses); // Display courses registered by a student students[0]->displayCourses(); students[1]->displayCourses(); return 0; }
Editor is loading...
Leave a Comment