This repository contains a comprehensive collection of homework assignments from the C++ Workshop course (150018), covering fundamental to advanced C++ programming concepts.
The assignments are organized by topic, progressing from basic object-oriented programming to more advanced concepts:
-
Object-Oriented Programming Basics
- Rational numbers implementation
- Employee data management
- Circle representation and operations
-
Classes with Dynamic Memory
- Points and polygons implementation
- Vector class with dynamic memory allocation
-
Operator Overloading and Strings
- Enhanced Rational class with operators
- Date class with comparison operators
- Custom String class implementation
-
Advanced Class Features
- Clock class with exception handling
- Account class (Bank ATM simulation)
- Friend functions and static methods
-
Data Structures
- Linked Lists implementation
- Circular Linked Lists
- Stack and Queue implementations
- Binary Trees
-
Inheritance and Polymorphism
- Employee hierarchy (Full-time/Part-time)
- Shape hierarchy with polymorphic methods
-
Templates and STL
- Template implementations for containers
- Using STL containers and algorithms
-
File Operations
- Binary file operations
- Random access to files
Each assignment folder contains:
- The original assignment PDF
- Source code solutions
- Header files
- Implementation files
- Sample inputs and expected outputs when available
This repository demonstrates proficiency in the following C++ concepts:
- Classes and objects
- Encapsulation, inheritance, and polymorphism
- Memory management (constructors, destructors, copy/move semantics)
- Operator overloading
- Templates
- Exception handling
- STL containers and algorithms
- File I/O operations
- Data structures implementation
To compile and run these assignments, you'll need:
- C++ compiler with C++11 support or later (GCC, Clang, MSVC)
- Standard Template Library (STL)
- Basic understanding of object-oriented programming
Each assignment can be compiled individually using a C++ compiler:
g++ -std=c++11 assignment_file.cpp -o executable_name
./executable_nameThis repository is intended for educational purposes and personal reference. If you're currently taking this course:
- Use this as a reference to understand concepts
- Do not submit these solutions as your own work
- Always adhere to your institution's academic integrity policies
This repository is for educational purposes. Please respect the original creators of the assignments.