0% found this document useful (0 votes)
37 views4 pages

OOPS Challenge

The document outlines a comprehensive C++ assignment to develop a Bank Management System utilizing full Object-Oriented Programming (OOP) principles. Key requirements include implementing classes for accounts, customers, and loans, as well as incorporating encapsulation, inheritance, polymorphism, and exception handling. The assignment also suggests bonus challenges such as using STL for dynamic account storage and creating a Loan Management System.

Uploaded by

redmisale2018
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views4 pages

OOPS Challenge

The document outlines a comprehensive C++ assignment to develop a Bank Management System utilizing full Object-Oriented Programming (OOP) principles. Key requirements include implementing classes for accounts, customers, and loans, as well as incorporating encapsulation, inheritance, polymorphism, and exception handling. The assignment also suggests bonus challenges such as using STL for dynamic account storage and creating a Loan Management System.

Uploaded by

redmisale2018
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Comprehensive C++ OOP Assignment

Bank Management System – Full OOP Implementation

Problem Statement:

You are required to develop a Bank Management System using C++ that incorporates all
Object-Oriented Programming (OOP) concepts. The system should allow customers to create
accounts, deposit and withdraw money, check balances, apply for loans, and store account
details in a file. The system should also include an admin module for managing accounts.

Your implementation must cover the following OOP principles:

System Requirements

🔹 1. Classes & Objects


●​ Create the following main classes:
1.​ Account (Base class) – Stores common account details.
2.​ SavingsAccount & CurrentAccount (Derived classes) – Specific account
types.
3.​ Customer – Stores customer details, linked to an account.
4.​ Admin – Manages customer accounts.
5.​ Loan – Handles loan applications and EMI calculations.

🔹 2. Encapsulation & Abstraction


●​ Encapsulation: Use private and protected members to protect data.
●​ Abstraction: Provide user-friendly functions to hide complex logic.

🔹 3. Inheritance
●​ SavingsAccount and CurrentAccount must inherit from Account.
●​ Admin must inherit from an abstract class User.

🔹 4. Polymorphism (Function Overriding & Overloading)


●​ Function Overriding:
○​ calculateInterest() must behave differently for SavingsAccount and
CurrentAccount.
●​ Function Overloading:
○​ Overload deposit() to allow different deposit methods (cash, check, online
transfer).

🔹 5. Constructor & Destructor


●​ Implement Parameterized Constructor to initialize account details.
●​ Implement a Destructor to release memory.

🔹 6. Operator Overloading
●​ Overload the + operator to add interest to an account.
●​ Overload << and >> operators for input/output of account details.
●​ Overload the = operator to properly handle deep copy.

🔹 7. Deep Copy & Shallow Copy


●​ Implement both shallow copy and deep copy constructors in Customer class to
safely handle dynamically allocated memory.

🔹 8. Friend Functions & Friend Classes


●​ Friend Function: A function to allow modifications to private Account details from
outside the class.
●​ Friend Class: Make Admin a friend of Account to allow direct access to private
members.

🔹 9. Abstract Classes & Pure Virtual Functions


●​ Create an abstract class User with a pure virtual function displayInfo().
●​ Both Admin and Customer must override displayInfo().
🔹 10. Templates
●​ Implement a function template to display account details in a generic way.

🔹 11. Exception Handling


●​ Handle errors for:
○​ Negative deposits
○​ Over-withdrawal from an account
○​ Invalid input format

🔹 12. File Handling


●​ Store and retrieve customer account details in a file (accounts.txt).

📌 BONUS CHALLENGES (Optional but Recommended)


✅ Use STL (vector, list, map) to store multiple accounts dynamically.​
✅ Implement a Loan Management System that calculates EMI.​
✅ Build an interactive menu-driven system.

📜 Deliverables:
✅ A fully functional C++ program with all OOP principles.​
✅ A detailed report explaining OOP concept implementations.​
✅ Well-documented code with comments.

🎯 This Assignment Covers Every C++ OOP Concept!


✅ Encapsulation​
✅ Abstraction​
✅ Inheritance​
✅ Polymorphism​
✅ Constructors & Destructors​
✅ Operator Overloading​
✅ Deep & Shallow Copy​
✅ Friend Functions & Classes​
✅ Pure Virtual Functions & Abstract Classes​
✅ Function Overloading​
✅ Exception Handling​
✅ File Handling​
✅ Templates

You might also like