Skip to content

SENODROOM/Cplusplus

Repository files navigation

C++ Programming Repository

A comprehensive collection of C++ projects, problems, and learning materials spanning from foundational concepts to advanced implementations.

📚 Repository Structure

CPP-Programming/
├── Advanced Questions/              # Complex algorithmic challenges
├── Practise Problems/              # Fundamental C++ exercises
├── LeetCode/                       # LeetCode problem solutions
├── OOP Specialization Lab/         # Object-Oriented Programming labs
├── Flappy Bird/                    # Game development project
├── Chess/                          # Chess game implementation
├── 3D Surface Visualizer and Optimizer/ # Advanced visualization project
├── Cryptocurrency Exchange Platform/    # Full-stack trading platform
└── .vscode/                        # VS Code configuration

🎯 Overview

This repository serves as a comprehensive learning resource and portfolio for C++ programming, featuring:

  • Algorithmic problem-solving exercises
  • Object-oriented programming implementations
  • Game development projects
  • Complex system design implementations
  • Data structure implementations
  • Competitive programming solutions

🚀 Featured Projects

🎮 Game Development

  • Flappy Bird - Classic arcade game recreation
  • Chess - Full chess game implementation with game logic and UI

📊 Advanced Applications

  • 3D Surface Visualizer and Optimizer - Mathematical surface visualization and optimization tool
  • Cryptocurrency Exchange Platform - Simulated trading platform with order matching and portfolio management

💻 Problem Solving

  • LeetCode Solutions - Curated solutions to popular coding challenges
  • Advanced Questions - Complex algorithmic problems and solutions
  • Practise Problems - Foundational C++ programming exercises

🎓 Academic Work

  • OOP Specialization Lab - Object-oriented programming concepts and implementations

🛠️ Technologies & Tools

  • Language: C++ (C++11/14/17 standards)
  • Build System: CMake, Make, or compiler-specific tools
  • Libraries: STL, SFML (for game development), custom implementations
  • IDE/Editor: VS Code (configuration included)

📋 Prerequisites

To work with this repository, you'll need:

Essential

  • C++ compiler (GCC 7.0+, Clang 5.0+, or MSVC 2017+)
  • Basic understanding of C++ syntax and concepts
  • Command line/terminal familiarity

Recommended

  • IDE/Editor: VS Code, CLion, Visual Studio, or Code::Blocks
  • Debugger: GDB or LLDB
  • Build Tools: CMake 3.10+ or Make
  • Version Control: Git

For Game Projects

  • SFML 2.5+ - Simple and Fast Multimedia Library
  • Graphics drivers supporting OpenGL

🏁 Getting Started

Installation

  1. Clone the repository:

    git clone https://github.com/SENODROOM/CPP-Programming.git
    cd CPP-Programming
  2. Install required dependencies:

    For Linux/macOS:

    # Install GCC/G++
    sudo apt-get install build-essential  # Ubuntu/Debian
    # or
    brew install gcc  # macOS
    
    # Install SFML (for game projects)
    sudo apt-get install libsfml-dev  # Ubuntu/Debian
    # or
    brew install sfml  # macOS

    For Windows:

  3. Compile and run a program:

    # Basic compilation
    g++ -std=c++17 filename.cpp -o output
    ./output
    
    # With SFML (for game projects)
    g++ -std=c++17 filename.cpp -o output -lsfml-graphics -lsfml-window -lsfml-system
    ./output

📖 Learning Path

Beginner Level

  1. Start with Practise Problems to build fundamentals
  2. Learn basic syntax, data types, and control structures
  3. Master functions, arrays, and pointers

Intermediate Level

  1. Explore OOP Specialization Lab for object-oriented concepts
  2. Study classes, inheritance, polymorphism, and encapsulation
  3. Work through LeetCode problems to improve problem-solving

Advanced Level

  1. Tackle Advanced Questions for complex algorithms
  2. Implement data structures from scratch
  3. Study the Cryptocurrency Exchange Platform for system design
  4. Build projects like Chess and Flappy Bird for practical application

🎮 Running Game Projects

Flappy Bird

cd "Flappy Bird"
g++ main.cpp -o flappybird -lsfml-graphics -lsfml-window -lsfml-system -lsfml-audio
./flappybird

Chess

cd Chess
# Follow specific build instructions in the Chess subdirectory

💡 Project Highlights

3D Surface Visualizer and Optimizer

Advanced mathematical visualization tool featuring:

  • Real-time 3D surface rendering
  • Optimization algorithms
  • Interactive parameter controls
  • Mathematical function plotting

Cryptocurrency Exchange Platform

Simulated trading platform with:

  • Order matching engine
  • Portfolio management
  • Market data simulation
  • Transaction history tracking
  • Real-time price updates

📝 Coding Standards

This repository follows modern C++ best practices:

  • Code Style: Follow C++ Core Guidelines
  • Naming Conventions: camelCase for variables, PascalCase for classes
  • Comments: Clear documentation for complex logic
  • Memory Management: Smart pointers preferred over raw pointers
  • Error Handling: Exception-based error handling where appropriate

🧪 Testing

Each project directory may contain its own test cases. To run tests:

cd project-directory
# Compile with test flags
g++ -std=c++17 -DTEST test.cpp -o test
./test

🤝 Contributing

Contributions are welcome! Whether it's bug fixes, new features, or additional problems:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contribution Guidelines

  • Write clean, well-documented code
  • Follow existing code style and structure
  • Test your code thoroughly
  • Update README if adding new projects or features

📚 Additional Resources

C++ Learning Resources

Practice Platforms

Game Development

🔧 Troubleshooting

Common Issues

Compilation Errors:

  • Ensure you're using C++11 or later standard (-std=c++17)
  • Check that all dependencies are installed
  • Verify include paths are correct

SFML Issues:

  • Confirm SFML is properly installed and linked
  • Check that graphics drivers are up to date
  • Ensure correct SFML version compatibility

Runtime Errors:

  • Use debugger (GDB/LLDB) to trace issues
  • Check for null pointer dereferences
  • Validate array bounds and memory access

📧 Contact

For questions, suggestions, or discussions:

  • Open an issue in this repository
  • Reach out to the repository owner

📄 License

This project is available for educational and learning purposes.

🌟 Acknowledgments

Special thanks to:

  • The C++ community for excellent learning resources
  • LeetCode for algorithmic problem sets
  • SFML developers for the game development framework
  • All contributors to this repository

Happy Coding! 🚀

"The only way to learn a new programming language is by writing programs in it." - Dennis Ritchie


📊 Repository Statistics

  • 51 commits and growing
  • Multiple complex projects implemented
  • Comprehensive coverage of C++ concepts
  • Active development and learning

This repository represents a journey through C++ programming, from basic syntax to complex system implementations. Each project and problem contributes to building strong software engineering fundamentals.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages