Skip to content

zmn17/100-cpp-projects

Repository files navigation

📘 100 C++ Projects

A collection of 100 practical C++ projects designed to strengthen your problem-solving skills, deepen your understanding of systems programming, and build real-world development experience.

This repository is structured progressively—from beginner fundamentals to advanced system-level challenges—so you can grow as a C++ developer step by step.

🚀 Features

  • 📂 100 curated C++ projects, each in its own folder
  • 🎯 Covers beginner → advanced topics
  • 🧱 Includes algorithms, OOP, data structures, file I/O, networking, multithreading, OS concepts, graphics, and more
  • 📝 Each project contains:
    • Problem description
    • Implementation
    • Notes / improvements
    • Compilation & run instructions
  • 🧪 Optional unit tests (where relevant)

📁 Repository Structure

100-cpp-projects/
│
├── 01-temperature-converter/
│   ├── main.cpp
│   └── README.md
│
├── ...
│
└── 100-final-project/
    ├── src/
    └── README.md
│
│
├── init_cpp.sh
├── License
└── README.md

📝 Project Categories

LEVEL 1 (1–20)

  • Basic syntax
  • Variables, loops, functions
  • Console apps
  • Simple algorithms

LEVEL 2 (21–40)

  • OOP (classes, inheritance, polymorphism)
  • File I/O
  • Data structures (linked lists, trees, stacks, queues)
  • Memory management

LEVEL 3 (41–60)

  • STL mastery (vectors, maps, algorithms)
  • Multithreading & concurrency
  • Design patterns
  • Compiler-like tools
  • System-level tools
  • Mini-engines

LEVEL 4 (61–80)

  • Networking (TCP/UDP sockets)
  • OS
  • Memory Management

LEVEL 5 (81–100)

  • Games
  • Graphics
  • OpenGL / graphics basics (optional)
  • Real-World apps

🛠️ Requirements

  • C++17 or later
  • A compiler such as:
    • g++ (MinGW/GCC)
    • clang++
    • MSVC / Visual Studio
  • CMake (optional but recommended)

▶️ How to Compile & Run

Using g++

g++ main.cpp -o program
./program

Using CMake

mkdir build
cd build
cmake ..
make
./program

🧩 How to Use This Repo

You can:

  • Build the projects in order for a full learning path
  • Jump to specific topics you want to practice
  • Fork and modify for your own learning
  • Use it as a portfolio showcase
  • Practice system-level development

📚 Learning Goals

By completing this repo, you will gain solid experience in:

  • Problem-solving
  • Memory management
  • Data structures & algorithms
  • Object-oriented design
  • File processing
  • Multithreading
  • Networking
  • Modern C++ best practices
  • Writing clean, maintainable code

💡 Ideas for Future Improvements

  • Add automated tests
  • Add performance benchmarks
  • Add diagrams & explanations
  • Convert some projects into full applications
  • Add GUI versions using Qt or SDL

🤝 Contributing

Contributions are welcome!
If you want to:

  • Improve a project
  • Add alternative solutions
  • Add unit tests
  • Fix bugs

Submit a pull request 🤝

📜 License

This project is licensed under the MIT License.
Feel free to use it for your learning or portfolio.

⭐ Support

If this repo helps you learn, star the repository
It motivates further improvements.

🧑‍💻 About the Developer

Hi! I'm Zamin Ahmadi, a passionate software engineering student and systems programmer.
I love building:

  • ⚙️ System-level C++ applications
  • 🖥️ Networking & server tools
  • 🎮 Graphics & OpenGL projects
  • 🧩 Algorithms & low-level utilities

This repository is part of my mission to master C++ by building 100 real-world projects.

If you'd like to collaborate, feel free to reach out!

📧 Email: zmnahm17@gmail.com
🐙 GitHub: https://github.com/zmn17
💼 LinkedIn: https://linkedin.com/in/zmnahm10

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published