https://github.com/maximlevchenko/cpp-projects
This repository features my university projects, where I applied concepts like algorithms, data structures, dynamic programming, automata theory, grammars, multithreading, and concurrent programming in C++.
https://github.com/maximlevchenko/cpp-projects
abstraction automata-theory avl-tree bfs-algorithm dynamic-programming multithreading oop-principles
Last synced: about 1 month ago
JSON representation
This repository features my university projects, where I applied concepts like algorithms, data structures, dynamic programming, automata theory, grammars, multithreading, and concurrent programming in C++.
- Host: GitHub
- URL: https://github.com/maximlevchenko/cpp-projects
- Owner: MaximLevchenko
- Created: 2024-08-09T15:20:42.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-09-01T10:42:15.000Z (10 months ago)
- Last Synced: 2024-12-26T03:12:46.433Z (6 months ago)
- Topics: abstraction, automata-theory, avl-tree, bfs-algorithm, dynamic-programming, multithreading, oop-principles
- Language: C++
- Homepage:
- Size: 20.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# University C++ Projects Repository
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.
## Table of Contents
1. [AVL Tree: Bestsellers Tracker](#avl-tree-bestsellers-tracker)
2. [BFS Pathfinding with Items Collection](#bfs-pathfinding-with-items-collection)
3. [Cpp Course Projects](#cpp-course-projects)
4. [Cryptography Projects](#cryptography-projects)
5. [Dynamic Programming: Christmas Tree Gift Collection Problem](#dynamic-programming-christmas-tree-gift-collection-problem)
6. [Finite Automata Operations](#finite-automata-operations)
7. [Multithreaded Problem Solver for Rental Optimization](#multithreaded-problem-solver-for-rental-optimization)
8. [Robot Control Server](#robot-control-server)## AVL Tree: Bestsellers Tracker
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.
### Features
- Efficient insertion, deletion, and lookup with O(log n) complexity.
- Functions to query product ranks and sales statistics.## BFS Pathfinding with Items Collection
This project uses a breadth-first search (BFS) algorithm to find the shortest path in a graph while collecting specific items.
### Features
- Implements BFS with bitmasking for efficient item collection.
- Finds the shortest path while ensuring all required items are collected.## Cpp Course Projects
A collection of smaller C++ projects, each demonstrating different concepts such as data structures, algorithms, and system simulations.
### Projects Included
1. **Big Numbers**:
- Implements a `CBigInt` class to handle arbitrarily large integers.
- Supports standard arithmetic operations, comparisons, and input/output.2. **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.3. **Data Types Simulation**:
- Provides a set of C++ classes to simulate common data types (`int`, `double`, `enum`, and `struct`).
- Mimics how a compiler might handle these types internally, offering functionalities like size retrieval and equality checking.4. **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.5. **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.6. **Subsequence Detection**:
- Detects repeated subsequences within a sequence.
- Useful for applications such as data compression or plagiarism detection.7. **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.## Cryptography Projects
This repository contains projects focused on cryptographic operations, such as hashing and encryption/decryption using the AES algorithm.
### Projects Included
- **Encryption-Modes**: Demonstrates file encryption using various AES modes.
- **Hashing**: Generates and verifies cryptographic hashes using OpenSSL.## Dynamic Programming: Christmas Tree Gift Collection Problem
Solves the Christmas Tree Gift Collection problem using recursive and iterative approaches to maximize gifts collected from a set of connected trees.
### Features
- Recursive and iterative solutions for the gift collection problem.
- Compares the efficiency and memory usage of both approaches.## Finite Automata Operations
Implements operations on Non-deterministic Finite Automata (NFA) and Deterministic Finite Automata (DFA), including determinization, minimization, and intersection/unification.
### Features
- Functions for creating, determinizing, and minimizing automata.
- Supports intersection and union operations.## Multithreaded Problem Solver for Rental Optimization
A multithreaded application that optimizes the handling of rental requests for a company, ensuring maximum profit and efficient resource use.
### Features
- Uses multithreading to process rental requests concurrently.
- Synchronizes thread operations to ensure correct processing order.## Robot Control Server
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.
### Features
- Multithreaded server using a custom communication protocol.
- Handles authentication, robot movement, and error conditions.