A comprehensive Console-based Banking Management System built in C++ that simulates real-world banking operations with multi-bank support, account management, and transaction processing capabilities.
- Features
- System Requirements
- Installation
- Usage
- Project Structure
- Core Functionalities
- User Roles
- Technical Details
- Screenshots
- Contributing
- License
- Multi-Bank Support: Manage multiple banks (National Bank, United Bank, Habib Bank)
- Branch Management: Add and display bank branches with location and balance details
- Gold Reserve Management: Track and manage bank gold reserves in tons
- Employee Management: View and manage bank employees with designations
- Customer Registration: Create new customer accounts with complete details
- Account Viewing: Display all customer accounts filtered by bank
- Account Editing: Update customer information
- Account Deletion: Remove customer accounts from the system
- Account Search: Search accounts by account number or customer name
- Balance Inquiry: Check current account balance
- Cash Deposit: Add funds to customer accounts
- Cash Withdrawal: Withdraw funds with automatic service charge (PKR 1 for balances > PKR 100)
- Fund Transfer: Transfer money between accounts
- Interest Calculation: Automatic monthly interest calculation (6% annual rate)
- Account Status: Active/Inactive status based on minimum balance (PKR 25)
- Dual Authentication System: Separate login for administrators and users
- Admin: Username:
admin, Password:admin - User: Username:
user, Password:user
- Admin: Username:
- Unique User ID Generation: Random 10-digit user ID for each account
- Session Tracking: Login/logout timestamp recording
- Operating System: Windows (uses Windows-specific libraries)
- Compiler: Any C++ compiler supporting C++11 or later (MinGW, Visual Studio, etc.)
- Libraries Required:
<iostream><windows.h>(for console manipulation)<conio.h>(for keyboard input)<fstream>(for file operations)<vector>(for data structures)<ctime>(for timestamp)
git clone https://github.com/yourusername/Centralized-Banking-System.git
cd Centralized-Banking-SystemUsing MinGW (g++):
g++ "Centralized Banking System.cpp" -o BankingSystem.exeUsing Visual Studio:
- Open Visual Studio
- Create a new C++ Console Application project
- Add the
Centralized Banking System.cppfile to the project - Build the solution (Ctrl+Shift+B)
./BankingSystem.exeUpon launching the program, you'll see the main menu:
1. BANK MANAGEMENT
2. ACCOUNT MANAGEMENT
3. EXIT
Access comprehensive bank operations:
- Bank Management: Add/view bank branches
- Employee Management: View employee list
- Gold Reserve Management: Manage gold reserves
- Display current reserves
- Deposit gold
- Withdraw gold
Choose your role:
- Administrator: Full access to all account operations
- User: Access to transaction operations only
- View Customer Accounts (filtered by bank)
- Customer Account Registration
- Edit Customer Account
- Delete Customer Account
- Search Customer Account (by number or name)
- Transaction Operations
- Log Out
- Balance Inquiry
- Cash Deposit
- Cash Withdrawal
- Fund Transfer
- Exit
Centralized-Banking-System/
β
βββ Centralized Banking System.cpp # Main source code
βββ record.bin # Binary file storing customer records
βββ new.bin # Temporary file for record updates
βββ Branches.txt # Text file storing branch information
βββ README.md # This file
- Manages gold reserves
- Deposit/withdraw gold operations
- Display reserve information
- Store branch details (name, address, city, balance)
- Constructor initialization
- Customer data structure
- Fields: name, account number, phone, address, email, citizenship, balance, user ID, bank name
- Encapsulation: Protected user credentials
- Data Hiding: Private member variables
- Abstraction: Public interface methods
- Core banking operations implementation
- Branch file management
- Add/display branches from file
- CSV parsing utility
- Employee information storage
- Display employee details
- Binary File Handling: Customer records stored in
record.bin - Text File Handling: Branch information in
Branches.txt - CRUD Operations: Create, Read, Update, Delete on customer records
- Account Verification:
chkacc()function validates account existence - Interest Calculation: Monthly interest = Balance Γ (6% / 12)
- Service Charge: PKR 1 deducted for withdrawals when balance > PKR 100
- Random ID Generation: 10-digit unique user ID using
rand()
- Username:
admin - Password:
admin - Privileges: Full system access including account creation, modification, deletion, and transactions
- Username:
user - Password:
user - Privileges: Transaction operations only (balance inquiry, deposit, withdrawal, transfer)
- Customer records stored in binary format for efficient storage and retrieval
- Branch information stored in CSV format in text file
- Temporary file mechanism for safe record updates
- Color Scheme: Custom color coding using
system("color f9") - Cursor Positioning:
gotoxy()function for precise text placement - Design Elements: ASCII art borders using
design()function - User Input: Combination of
cin,scanf, andgetch()for various input types
- Account existence validation
- Insufficient balance checks
- Invalid input handling
- File operation error checking
Add screenshots of your application here showing:
- Main menu
- Login screen
- Account registration
- Transaction operations
- Bank management interface
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
- Cross-platform compatibility (remove Windows-specific dependencies)
- Database integration (MySQL/SQLite)
- Enhanced security (password encryption)
- GUI implementation (Qt/wxWidgets)
- Multi-currency support
- Transaction history and reporting
- Backup and restore functionality
This project is open-source and available under the MIT License.
Your Name
- GitHub: @yourusername
- Email: your.email@example.com
- Thanks to all contributors who have helped improve this project
- Inspired by real-world banking systems
- Built as an educational project to demonstrate OOP concepts in C++
Note: This is a console-based educational project. For production use, implement proper security measures, database integration, and comprehensive error handling.
If you encounter any issues or have questions, please:
- Check the Issues page
- Create a new issue with detailed information
- Contact the maintainer
β Star this repository if you find it helpful!