|
| 1 | +# C++ Time Table Generator |
| 2 | + |
| 3 | +> **Note:** This project **must use a Genetic Algorithm in C++** to generate optimized timetables. |
| 4 | +> Your implementation **should be able to handle all edge cases**, including multiple conflicting constraints, limited rooms or time slots, and overlapping instructor schedules. |
| 5 | +> Only submissions that meet these criteria will be considered for PR acceptance. |
| 6 | +
|
| 7 | +## Overview |
| 8 | +This project is a **Time Table Generator implemented entirely in C++**. It allows users to **automatically generate optimized timetables** for classes, labs, or events while avoiding conflicts. |
| 9 | + |
| 10 | +The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**. |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## Features |
| 15 | +- Generate conflict-free timetables for multiple classes, instructors, and rooms |
| 16 | +- Handles constraints such as: |
| 17 | + - Avoiding overlapping classes for the same instructor |
| 18 | + - Avoiding room conflicts |
| 19 | + - Specific time-slot preferences |
| 20 | +- Implements a **Genetic Algorithm** to optimize the timetable |
| 21 | +- Console-based display of generated timetables |
| 22 | +- Ensures the solution **covers all edge cases**, making it robust for real-world scenarios |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## Requirements |
| 27 | +- **C++ Implementation**: Entirely written in C++ |
| 28 | +- **Object-Oriented Design**: Uses classes like `TimeTable`, `Class`, `Instructor`, `Room`, `GeneticAlgorithm`, etc. |
| 29 | +- **Genetic Algorithm**: Required for optimization |
| 30 | +- **Clean Code Practices**: |
| 31 | + - Meaningful variable and function names |
| 32 | + - Proper input validation and error handling |
| 33 | + - Well-documented methods and classes |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## Functionality |
| 38 | +- Users can input: |
| 39 | + - Number of classes and instructors |
| 40 | + - Available rooms |
| 41 | + - Time slots and constraints |
| 42 | +- The program **generates optimized timetables** satisfying all constraints |
| 43 | +- Ensures **no conflicts** for instructors, rooms, or overlapping sessions |
| 44 | +- Uses **algorithmic techniques (Genetic Algorithm)** to find the best solution efficiently |
| 45 | +- Designed to **handle edge cases**, such as multiple conflicting constraints or limited resources |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | +## How to Run |
| 52 | +1. Clone the repository: |
| 53 | + |
| 54 | +```bash |
| 55 | +git clone https://github.com/<your-username>/TimeTable_Generator.git |
| 56 | +cd TimeTable_Generator |
0 commit comments