Final Course Project: Banking & Portfolio Management Engine
🚀 Project Overview
In this final project, you will build a high-performance console-based Banking application. You will integrate everything you've learned: Variables, Control Flow, Functions, Pointers for dynamic accounts, OOP for structure, and STL for data management.
Problem Statement
A local bank needs a secure, modular system to manage customer accounts, handle transactions (Deposits/Withdrawals), and store a history of actions. The system must be scalable and use modern C++ practices.
Project Objectives
- Implement a
Customerclass with encapsulated data. - Use a
vector<Account>to manage multiple accounts dynamically. - Implement a transaction log using STL strings and file I/O.
- Ensure error handling for insufficient funds and invalid IDs.
Core Features
- Account Creation: Create new Savings or Current accounts.
- Transaction Engine: Perform deposits and withdrawals.
- Balance Inquiry: Display current balance and customer details.
- Transaction History: View the last 5 transactions (using STL deque or vector).
- Data Persistence: Save account data to a
.txtfile on exit and load on startup.
Development Steps
- Design the
Accountclass with private attributes (ID, Name, Balance). - Implement constructor and Getter/Setter methods.
- Create a
BankSystemclass to manage the collection of accounts. - Write the logic for searching an account by ID using STL iterators.
- Develop the main menu loop using
switch. - Add File I/O logic to
save()andload()data.
Evaluation Criteria
| Criteria | Weight |
|---|---|
| Successful implementation of OOP (Encapsulation/Inheritance) | 30% |
| Effective use of STL Containers and Algorithms | 20% |
| Correct File I/O operations | 20% |
| Code modularity and naming conventions | 15% |
| Error handling and user experience | 15% |