Skip to content

Commit bb4b5ee

Browse files
committed
Add new mini projects with READMEs: Tinder, Time Table, Graph Analyzer, etc.
1 parent ccfe23a commit bb4b5ee

File tree

8 files changed

+403
-0
lines changed

8 files changed

+403
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# C++ 3D Maze Generator & Solver
2+
3+
## Overview
4+
This project is a **3D Maze Generator and Solver implemented entirely in C++**. It allows users to **generate complex 3D mazes and automatically find solutions** for them.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**.
7+
8+
---
9+
10+
## Features
11+
- Generate **3D mazes** with customizable dimensions
12+
- Supports different **maze generation algorithms** for varied complexity
13+
- Automatically **solves the maze** and finds the shortest path
14+
- Displays maze structure and solution in **console-based visualization**
15+
- Provides **step-by-step solving** for better understanding
16+
- Implements **algorithmic techniques** for maze generation and solving
17+
18+
---
19+
20+
## Requirements
21+
- **C++ Implementation**: Entirely written in C++
22+
- **Object-Oriented Design**: Uses classes like `Maze`, `Cell`, `Generator`, `Solver`, etc.
23+
- **Clean Code Practices**:
24+
- Meaningful variable and function names
25+
- Proper input validation and error handling
26+
- Well-documented methods and classes
27+
28+
---
29+
30+
## Functionality
31+
- Users can define the size of the 3D maze (length, width, height)
32+
- Maze generator creates a random solvable maze
33+
- Solver finds the **shortest path from start to finish**
34+
- Displays maze layout and solution clearly in the console
35+
- Can handle large mazes efficiently using **algorithmic approaches**
36+
37+
---
38+
39+
## How to Run
40+
1. Clone the repository:
41+
42+
```bash
43+
git clone https://github.com/<your-username>/3DMaze_Generator_Solver.git
44+
cd 3DMaze_Generator_Solver

Src/Chess_Game_AI/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# C++ Chess Game with AI
2+
3+
## Overview
4+
This project is a **Chess Game implemented entirely in C++**. It allows users to **play chess against an AI opponent** in the console, with **all standard chess rules** enforced.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**.
7+
8+
---
9+
10+
## Features
11+
- Play chess with all types of pieces: King, Queen, Rook, Bishop, Knight, and Pawn
12+
- Human vs AI gameplay mode
13+
- AI opponent uses **algorithmic decision-making** to determine optimal moves
14+
- Console-based board display with ASCII representation
15+
- Validates moves according to chess rules, including check, checkmate, and stalemate
16+
- Optional: save and load game state
17+
18+
---
19+
20+
## Requirements
21+
- **C++ Implementation**: Entirely written in C++
22+
- **Object-Oriented Design**: Uses classes like `Board`, `Piece`, `Player`, `AI`, `Game`, etc.
23+
- **Clean Code Practices**:
24+
- Meaningful variable and function names
25+
- Proper input validation and error handling
26+
- Well-documented methods and classes
27+
28+
---
29+
30+
## Gameplay
31+
- Players input moves using **algebraic notation**, e.g., `e2 e4`.
32+
- AI calculates moves based on **algorithmic evaluation of the board**.
33+
- Game ends when **checkmate**, **stalemate**, or **draw** occurs.
34+
35+
---
36+
37+
38+
## How to Run
39+
1. Clone the repository:
40+
41+
```bash
42+
git clone https://github.com/<your-username>/ChessAI.git
43+
cd ChessAI

Src/Graph_Analyzer/README.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# C++ Graph Analyzer
2+
3+
## Overview
4+
This project is a **Graph Analyzer implemented entirely in C++**. It allows users to **analyze a given graph and extract useful information** about its structure and properties.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**.
7+
8+
---
9+
10+
## Features
11+
- Input a graph with vertices and edges (directed or undirected, weighted or unweighted)
12+
- Analyze the graph to determine:
13+
- Whether the graph contains a **cycle**
14+
- **Minimum distance** between any two nodes
15+
- **Connectivity** of the graph
16+
- Degree of each vertex
17+
- **Number of connected components**
18+
- **Graph density**
19+
- **Graph diameter** (longest shortest path)
20+
- **Graph radius** (minimum eccentricity)
21+
- **Eccentricity, centrality, and reachability** of nodes
22+
- Console-based display of analysis results
23+
- Implements **algorithmic techniques** for efficient graph computation
24+
25+
---
26+
27+
## Requirements
28+
- **C++ Implementation**: Entirely written in C++
29+
- **Object-Oriented Design**: Uses classes like `Graph`, `Vertex`, `Edge`, `Analyzer`, etc.
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 provide a graph via adjacency list or edge list
39+
- Analyzer computes key properties of the graph:
40+
- Detects **cycles**
41+
- Calculates **shortest paths** between nodes
42+
- Checks for **graph connectivity**
43+
- Computes **vertex degrees, graph density, diameter, radius, and number of components**
44+
- Determines **eccentricity, centrality, and reachability** of nodes
45+
- Efficient algorithms ensure **quick analysis for large graphs**
46+
47+
---
48+
49+
50+
51+
52+
## How to Run
53+
1. Clone the repository:
54+
55+
```bash
56+
git clone https://github.com/<your-username>/GraphAnalyzer.git
57+
cd GraphAnalyzer

Src/Mini_Database_Engine/README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# C++ Mini Database Engine
2+
3+
## Overview
4+
This project is a **Mini Database Engine implemented entirely in C++**. It allows users to **store, retrieve, and manage data efficiently** using a simplified database system.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**. It also **supports file handling** to persist data between sessions.
7+
8+
---
9+
10+
## Features
11+
- Create, read, update, and delete (CRUD) operations on data records
12+
- Supports multiple tables with defined schemas
13+
- Query data using simple commands
14+
- Ensures **data consistency and integrity**
15+
- **File handling** to save and load database state from files
16+
- Implements **algorithmic techniques** for indexing, searching, and organizing data efficiently
17+
18+
---
19+
20+
## Requirements
21+
- **C++ Implementation**: Entirely written in C++
22+
- **Object-Oriented Design**: Uses classes like `Database`, `Table`, `Record`, `QueryProcessor`, etc.
23+
- **File Handling**: Uses file streams to persist data across sessions (`fstream`, `ifstream`, `ofstream`)
24+
- **Clean Code Practices**:
25+
- Meaningful variable and function names
26+
- Proper input validation and error handling
27+
- Well-documented methods and classes
28+
29+
---
30+
31+
## Functionality
32+
- Users can create tables with defined columns and data types
33+
- Supports insertion, deletion, and updating of records
34+
- Query and filter data with simple search operations
35+
- Efficient data management using **algorithmic structures** internally
36+
- **Save and load database** using file handling, ensuring data persists across runs
37+
- Can handle multiple tables and multiple records per table
38+
39+
---
40+
41+
42+
43+
## How to Run
44+
1. Clone the repository:
45+
46+
```bash
47+
git clone https://github.com/<your-username>/Mini_Database_Engine.git
48+
cd Mini_Database_Engine
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# C++ Operating System Process Simulator
2+
3+
## Overview
4+
This project is an **Operating System Process Simulator implemented entirely in C++**. It allows users to **simulate the scheduling and execution of multiple processes** as handled by an operating system.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**.
7+
8+
---
9+
10+
## Features
11+
- Simulate multiple processes with attributes like process ID, arrival time, burst time, and priority
12+
- Supports different **CPU scheduling algorithms**, including:
13+
- First-Come-First-Served (FCFS)
14+
- Shortest Job Next (SJN/SJF)
15+
- Priority Scheduling
16+
- Round Robin (optional)
17+
- Displays process execution order and Gantt charts in console
18+
- Calculates metrics such as:
19+
- Waiting time
20+
- Turnaround time
21+
- Completion time
22+
- Optional: interactive mode to add, modify, or remove processes
23+
24+
---
25+
26+
## Requirements
27+
- **C++ Implementation**: Entirely written in C++
28+
- **Object-Oriented Design**: Uses classes like `Process`, `Scheduler`, `OSSimulator`, etc.
29+
- **Clean Code Practices**:
30+
- Meaningful variable and function names
31+
- Proper input validation and error handling
32+
- Well-documented methods and classes
33+
34+
---
35+
36+
## Simulation & Metrics
37+
- Users can input processes with their **arrival and burst times**.
38+
- The simulator calculates **execution order** based on the selected scheduling algorithm.
39+
- Provides metrics such as **average waiting time, turnaround time, and CPU utilization**.
40+
- Useful for understanding how operating systems manage process scheduling.
41+
42+
---
43+
44+
## How to Run
45+
1. Clone the repository:
46+
47+
```bash
48+
git clone https://github.com/<your-username>/OSProcessSimulator.git
49+
cd OSProcessSimulator
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# C++ Semester Grade Calculator
2+
3+
## Overview
4+
This project is a **Semester Grade Calculator implemented entirely in C++**. It allows users to **calculate semester grades and GPA** based on marks obtained in different subjects.
5+
6+
The system is designed using **Object-Oriented Programming (OOP)** principles, making the code **modular, maintainable, and easy to extend**.
7+
8+
---
9+
10+
## Features
11+
- Input marks for multiple subjects
12+
- Calculate **percentage, grade, and GPA** automatically
13+
- Supports **different grading scales** (e.g., A-F, 4.0 GPA, 10-point scale)
14+
- Console-based display of results
15+
- Validates input to ensure **marks are within acceptable ranges**
16+
- Can generate **summary of all subjects** with grades and GPA
17+
- Implements **algorithmic calculations** for grades and GPA
18+
19+
---
20+
21+
## Requirements
22+
- **C++ Implementation**: Entirely written in C++
23+
- **Object-Oriented Design**: Uses classes like `Semester`, `Subject`, `Calculator`, etc.
24+
- **Clean Code Practices**:
25+
- Meaningful variable and function names
26+
- Proper input validation and error handling
27+
- Well-documented methods and classes
28+
29+
---
30+
31+
## Functionality
32+
- Users can enter:
33+
- Number of subjects
34+
- Marks obtained in each subject
35+
- Credit hours for each subject (optional)
36+
- The program computes:
37+
- Percentage for each subject
38+
- Grade based on chosen grading scale
39+
- Semester GPA based on credits and grades
40+
- Ensures calculations are **accurate and consistent** across all inputs
41+
42+
---
43+
44+
45+
## How to Run
46+
1. Clone the repository:
47+
48+
```bash
49+
git clone https://github.com/<your-username>/Semester_Grade_Calculator.git
50+
cd Semester_Grade_Calculator

Src/Time_table_Generator/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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

Comments
 (0)