Skip to content

vanlalruata/OOPs-using-CPP

Repository files navigation

OOPs using CPP

Object Oriented Programmings using C++

C++ Programming for Undergraduate Students

Designed by Dr. Vanlalruata Hnamte

Welcome to the C++ Programming Repository, a collection of beginner to advanced C++ programs tailored for undergraduate students. These programs cover fundamental and advanced concepts, including object-oriented programming (OOP), templates, STL, encryption, multi-threading, and GUI development with Qt.

Features & Topics Covered

Beginner Programs

+ Basic Syntax (Variables, Functions, Scope)
+ Classes & Objects (Encapsulation, Constructors, Destructors)
+ Inheritance & Polymorphism (Overriding, Virtual Functions)
+ Operator Overloading & Friend Functions

Intermediate Programs

+ Templates & Function Templates
+ STL Containers & Iterators (Vector, List, Map, Stack, Queue)
+ File Handling (Binary & Text Files)
+ Multi-threading with std::thread
+ Memory Management & Smart Pointers

Advanced Programs

+ Metaprogramming & SFINAE (Substitution Failure Is Not An Error)
+ Move Semantics & Perfect Forwarding
+ RAII (Resource Acquisition Is Initialization)
+ Coroutines (C++20) for Asynchronous Programming
+ Encryption & Cryptography with OpenSSL (AES, RSA)
+ Hardware ID Extraction (CPU ID, BIOS ID)

Final Project: GUI-Based Serial Key Generator

+ Qt-Based GUI (Qt Widgets)
+ Serial Key Generation (User + Hardware ID)
+ AES-256 Encryption & RSA Signature
+ Serial Key Verification

Installation & Compilation

Most programs can be compiled using g++ (GCC) or MSVC:

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

For Qt-Based GUI Application

Ensure Qt 5 or Qt 6 is installed, then build using:

qmake SerialKeyGenerator.pro make ./SerialKeyGenerator

For OpenSSL-Based Encryption Programs

Ensure OpenSSL is installed:

g++ encrypt.cpp -o encrypt -lssl -lcrypto ./encrypt

Contribution Guidelines

+ Bug Reports & Issues: If you encounter any errors, please report them in the Discussions.
+ Feature Requests: Have an idea? Feel free to open an issue and suggest improvements.
+ Pull Requests: Contributions are welcome! Ensure code follows modern C++ standards (C++17/20).

License

This repository is open-source and intended for educational use only. Any misuse or commercial use must be approved by Dr. Vanlalruata Hnamte.

Support & Feedback

If you find this repository helpful, please consider giving it a ⭐ (star) on GitHub! Your support encourages further improvements and the addition of more advanced C++ projects. Feel free to fork, contribute, or share it with others who may benefit from it.

Contact

If you have any questions or feedback, feel free to start a discussion or email me.

Happy Coding!

About

Object Oriented Programmings using C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages