https://github.com/cypri1-dev/42_cpp09
C++ Module 09 focuses on mastering STL containers. It includes creating a Bitcoin exchange system, processing Reverse Polish Notation expressions, and implementing a merge-insert sort algorithm. This is a crucial step in refining advanced programming skills!
https://github.com/cypri1-dev/42_cpp09
Last synced: 8 months ago
JSON representation
C++ Module 09 focuses on mastering STL containers. It includes creating a Bitcoin exchange system, processing Reverse Polish Notation expressions, and implementing a merge-insert sort algorithm. This is a crucial step in refining advanced programming skills!
- Host: GitHub
- URL: https://github.com/cypri1-dev/42_cpp09
- Owner: cypri1-dev
- Created: 2025-01-03T10:03:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-29T12:38:15.000Z (over 1 year ago)
- Last Synced: 2025-09-02T01:37:21.216Z (10 months ago)
- Language: C++
- Size: 52.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
##
## Description
C++ Module 09 focuses on mastering STL containers. It includes creating a Bitcoin exchange system, processing Reverse Polish Notation expressions, and implementing a merge-insert sort algorithm. This is a crucial step in refining advanced programming skills!
## 📖 **Project Overview**
This module consists of three exercises that focus on STL usage and algorithm implementation:
## 1️⃣ Exercise 00: Bitcoin Exchange
- **Objective:** Implement a program that calculates Bitcoin values using historical exchange rates stored in a CSV file.
- **Container:** `std::map`
- **Key Points:**
- Parse a database with dates and Bitcoin prices.
- Handle input errors gracefully.
- Match input dates to the closest lower date in the database.
## 2️⃣ Exercise 01: Reverse Polish Notation (RPN)
- **Objective:** Create a calculator for expressions in Reverse Polish Notation.
- **Container:** `std::stack`
- **Key Points:**
- Process mathematical expressions using a stack.
- Supported operations: `+`, `-`, `*`, `/`.
- Handle errors, such as invalid input.
## 3️⃣ Exercise 02: PmergeMe
- **Objective:** Implement the merge-insert sort algorithm (Ford-Johnson) to sort sequences of integers.
- **Containers:** `std::vector` and one additional container of your choice.
- **Key Points:**
- Process large integer sequences (e.g., 3000+ numbers).
- Measure and compare sorting times for both containers.
- Display results with precision.
## 📋 **Mandatory Rules**
- Follow the Orthodox Canonical Form for all classes.
- Use at least one STL container per exercise (two for Exercise 02).
- Containers used in one exercise are forbidden in the next.
- Handle errors appropriately and ensure no memory leaks.
- Code must compile with `-std=c++98` and `-Wall -Wextra -Werror` flags.