This project is a University Course Registration System implemented in C++. It allows students to register for courses, view course details, and check the availability of courses. The system supports three courses: Programming, Databases, and Software Engineering. It also keeps track of student enrollments and notifies participants if a course doesn't have enough students.
- Register Students: Allows students to register for available courses.
- Track Course Participation: Each course can have up to 10 participants.
- Check Course Availability: Lists all courses that are not fully booked.
- View Course Details: Displays the details of courses, including participants and lecturers.
- Course Eligibility: Enforces restrictions on how many courses a student can register for, based on their university affiliation (TU students can register for up to three courses, non-TU students can only register for one).
- Course Cancellation Warning: If a course has fewer than 3 students, it notifies the lecturer and students that the course will not take place.
-
Lecturers and Courses: The system is pre-populated with three courses and corresponding lecturers:
- Programming (Lecturer: Prof. Pascal Frank)
- Databases (Lecturer: Associate Professor Brace Gold)
- Software Engineering (Lecturer: Researcher Evan Magda)
-
Student Registration:
- Students provide their details including name, email, matriculation number, and university.
- TU students can register for up to three courses, while non-TU students can register for only one course.
- The system prevents duplicate registration for the same course.
-
Course Details:
- Displays the participants and lecturer for each course.
- If fewer than 3 students are registered for a course, the course will not take place.
-
Menu System: The main menu offers several options:
- 1. Register for a course: Allows students to register for a selected course.
- 2. Output course details: Displays the participants and lecturer for a selected course.
- 3. Output not fully booked courses: Shows courses with available slots.
- 4. Display enrolled courses for each student: Lists all courses a student is registered for.
- 5. End program: Ends the program and notifies participants and lecturers about course cancellations if any.
- PERSON: Base class that holds common attributes for students and lecturers like
firstname
,surname
, andemail
. - Lecturer: Derived from PERSON, it includes additional information such as the
academic_title
. - Student: Derived from PERSON, it tracks the
matriculation_number
,university
, and enrolled courses. - Course: Manages course details, the lecturer, and a list of students participating in the course.
- The user is greeted with a welcome message, and the three available courses are displayed.
- The user can interact with the menu to register for courses, check availability, view participant lists, and more.
- The system continuously runs until the user selects the option to end the program.
To compile and run the program, follow these steps:
-
Compile:
g++ -o course_registration course_registration.cpp
-
Run:
./course_registration
----:Welcome to The Tech University(TU):---
At TU university, 3 courses are offered:
"Programming", "Databases" and "Software Engineering".
Menu:
1. Register for a course
2. Output course details
3. Output not fully booked courses
4. Display enrolled courses for each student
5. End program
Enter choice:
If you'd like to contribute to this project, please fork the repository, make your changes, and submit a pull request. Any contributions such as improvements to the functionality, bug fixes, or additional features are welcome!
This project is licensed.