This repository contains various C++ projects developed during my university coursework. Each project demonstrates different aspects of C++ programming, including data structures, algorithms, multithreading, automata theory, cryptography, and more.
- AVL Tree: Bestsellers Tracker
- BFS Pathfinding with Items Collection
- Cpp Course Projects
- Cryptography Projects
- Dynamic Programming: Christmas Tree Gift Collection Problem
- Finite Automata Operations
- Multithreaded Problem Solver for Rental Optimization
- Robot Control Server
This project implements a Bestsellers tracker using an AVL tree to maintain a list of products and their sales counts. The AVL tree ensures efficient insertion, deletion, and rank queries.
- Efficient insertion, deletion, and lookup with O(log n) complexity.
- Functions to query product ranks and sales statistics.
This project uses a breadth-first search (BFS) algorithm to find the shortest path in a graph while collecting specific items.
- Implements BFS with bitmasking for efficient item collection.
- Finds the shortest path while ensuring all required items are collected.
A collection of smaller C++ projects, each demonstrating different concepts such as data structures, algorithms, and system simulations.
-
Big Numbers:
- Implements a
CBigInt
class to handle arbitrarily large integers. - Supports standard arithmetic operations, comparisons, and input/output.
- Implements a
-
Computer Network System:
- Simulates networks, computers, and their components in C++.
- Allows users to create, modify, and display various hardware components within a simulated environment.
-
Data Types Simulation:
- Provides a set of C++ classes to simulate common data types (
int
,double
,enum
, andstruct
). - Mimics how a compiler might handle these types internally, offering functionalities like size retrieval and equality checking.
- Provides a set of C++ classes to simulate common data types (
-
KMP Search System:
- Implements the Knuth-Morris-Pratt (KMP) algorithm for efficient substring search.
- Designed to find patterns within a text using the KMP string-matching algorithm.
-
Student Database Simulator:
- Implements a student management system for a university's study department.
- Allows for the addition, deletion, and searching of student records, with capabilities for filtering and sorting based on various criteria.
-
Subsequence Detection:
- Detects repeated subsequences within a sequence.
- Useful for applications such as data compression or plagiarism detection.
-
Supermarket Management Simulation:
- Provides a C++ class to manage inventory in a supermarket setting.
- Includes functionalities to store products with expiration dates, process shopping lists, and find expired products.
This repository contains projects focused on cryptographic operations, such as hashing and encryption/decryption using the AES algorithm.
- Encryption-Modes: Demonstrates file encryption using various AES modes.
- Hashing: Generates and verifies cryptographic hashes using OpenSSL.
Solves the Christmas Tree Gift Collection problem using recursive and iterative approaches to maximize gifts collected from a set of connected trees.
- Recursive and iterative solutions for the gift collection problem.
- Compares the efficiency and memory usage of both approaches.
Implements operations on Non-deterministic Finite Automata (NFA) and Deterministic Finite Automata (DFA), including determinization, minimization, and intersection/unification.
- Functions for creating, determinizing, and minimizing automata.
- Supports intersection and union operations.
A multithreaded application that optimizes the handling of rental requests for a company, ensuring maximum profit and efficient resource use.
- Uses multithreading to process rental requests concurrently.
- Synchronizes thread operations to ensure correct processing order.
An autonomous robot control server that manages a fleet of robots remotely. The server guides robots to a target location, handling communication and error situations.
- Multithreaded server using a custom communication protocol.
- Handles authentication, robot movement, and error conditions.