Skip to content
Snippets Groups Projects
main.cpp 4.11 KiB
Newer Older
  • Learn to ignore specific revisions
  • Pelotrio's avatar
    Pelotrio committed
    #include <iostream>
    #include <set>
    
    Pelotrio's avatar
    Pelotrio committed
    #include <algorithm>
    #include <vector>
    
    Pelotrio's avatar
    Pelotrio committed
    #include "Course.h"
    
    Pelotrio's avatar
    Pelotrio committed
    
    
    int main() {
    
    Pelotrio's avatar
    Pelotrio committed
        std::vector<Course *> courses;
    
    
    Pelotrio's avatar
    Pelotrio committed
        bool quit = false;
        while (!quit) {
            std::cout << "1. Create course" << std::endl;
            std::cout << "2. Add student" << std::endl;
    
    Pelotrio's avatar
    Pelotrio committed
            std::cout << "3. Add existing student" << std::endl;
            std::cout << "4. Display student" << std::endl;
            std::cout << "5. Remove student" << std::endl;
            std::cout << "6. Delete student" << std::endl;
            std::cout << "7. Display course" << std::endl;
            std::cout << "8. Display all courses" << std::endl;
            std::cout << "9. Quit" << std::endl;
    
    Pelotrio's avatar
    Pelotrio committed
            std::cout << "Enter your choice: ";
            int choice;
            std::cin >> choice;
    
    Pelotrio's avatar
    Pelotrio committed
            std::string name, lastName, firstName, courseName;
    
    Pelotrio's avatar
    Pelotrio committed
            int matriculationNumber;
            switch (choice) {
                case 1:
                    std::cout << "Enter course name: ";
                    std::cin.ignore();
                    std::getline(std::cin, name);
    
    Pelotrio's avatar
    Pelotrio committed
                    courses.push_back(new Course(name));
    
    Pelotrio's avatar
    Pelotrio committed
                    break;
                case 2:
                    std::cout << "Enter student's first name: ";
                    std::cin >> firstName;
                    std::cout << "Enter student's last name: ";
                    std::cin >> lastName;
    
    Pelotrio's avatar
    Pelotrio committed
                    std::cout << "Enter course name: ";
                    std::cin >> courseName;
                    for (auto *course: courses) {
                        if (course->getName() == courseName) {
                            course->addStudent(new Student(lastName, firstName));
                        }
                    }
    
    Pelotrio's avatar
    Pelotrio committed
                    break;
                case 3:
                    std::cout << "Enter student's matriculation number: ";
                    std::cin >> matriculationNumber;
    
    Pelotrio's avatar
    Pelotrio committed
                    std::cout << "Enter course name: ";
                    std::cin >> courseName;
                    for (auto *course: courses) {
                        if (course->getName() == courseName) {
                            Student *student = course->getStudent(matriculationNumber);
                            if (student != nullptr) {
                                course->addStudent(student);
                            }
                        }
                    }
    
    Pelotrio's avatar
    Pelotrio committed
                    break;
                case 4:
                    std::cout << "Enter student's matriculation number: ";
                    std::cin >> matriculationNumber;
    
    Pelotrio's avatar
    Pelotrio committed
                    for (auto *course: courses) {
                        course->displayStudent(matriculationNumber);
                    }
    
    
    Pelotrio's avatar
    Pelotrio committed
                    break;
                case 5:
    
    Pelotrio's avatar
    Pelotrio committed
                    std::cout << "Enter student's matriculation number: ";
                    std::cin >> matriculationNumber;
                    std::cout << "Enter course name: ";
                    std::cin >> courseName;
                    for (auto *course: courses) {
                        if (course->getName() == courseName) {
                            course->deleteStudent(matriculationNumber);
                        }
                    }
    
    Pelotrio's avatar
    Pelotrio committed
                    break;
                case 6:
    
    Pelotrio's avatar
    Pelotrio committed
                    std::cout << "Enter student's matriculation number: ";
                    std::cin >> matriculationNumber;
                    // Delete student from all courses
                    for (auto *course: courses) {
                        course->deleteStudent(matriculationNumber);
                    }
                    break;
    
                case 7:
                    std::cout << "Enter course name: ";
                    std::cin >> courseName;
                    for (auto *course: courses) {
                        if (course->getName() == courseName) {
                            course->displayCourse();
                        }
                    }
                    break;
                case 8:
                    std::cout << "Courses:" << std::endl;
                    for (auto *course: courses) {
                        course->displayCourse();
                    }
                    break;
                case 9:
    
    Pelotrio's avatar
    Pelotrio committed
                    quit = true;
                    break;
                default:
                    std::cout << "Invalid choice." << std::endl;
                    break;
            }
        }
    
    Pelotrio's avatar
    Pelotrio committed
        for (auto *course: courses) {
            delete course;
        }
    
    Pelotrio's avatar
    Pelotrio committed
        return 0;
    }