Projects
- Command-line calculator: Read expressions like `3 + 4`, handle every operator, refuse division by zero, and keep going until the user types q.
- Number guessing game: Higher or lower? Build the classic game with attempt counting, input validation and your own random number generator.
- Grade book: Read a class's scores, compute statistics, count letter grades and draw a text histogram.
- Bank account system: A command-driven bank. Structs for accounts, string commands, validation, transfers and a sorted report.
- Text adventure: Explore a tiny map with typed commands. Rooms as structs, movement, items, an inventory and a win condition.
- Build your own dynamic array: Write the growable array every language hides from you. malloc, realloc doubling, insert, remove and shrink, all tested by hidden unit tests.
- Matrix library: A Matrix class with operators for addition, scaling, multiplication, transpose, printing and a determinant.
- Your own vector<T>: Re-implement std::vector as a class template. Growth, deep copies, moves, iterators, so it works with range-for and std::sort.
- Expression interpreter: A calculator language with precedence, parentheses, variables and error messages. Tokenizer, recursive-descent parser and evaluator, no exceptions.
- Buy menu and economy: A round-based buy menu. Maps for the shop, polymorphic item classes in unique_ptrs, slot rules, selling and the round economy.
- Write a memory allocator: See what malloc does underneath. A bump allocator with alignment, then a fixed-size pool allocator built on a free list.