A comprehensive, object-oriented C++ banking system with advanced features including account management, loan processing, transaction handling, and secure authentication.
copy
- Multi-Account Types: Savings, Checking, and Credit accounts
- Transaction Processing: Deposits, withdrawals, and transfers
- Interest Calculation: Automatic interest calculation and application
- Loan Management: Personal, Home, Business, and Education loans
- Credit Score System: Dynamic credit scoring based on account activity
- Customer Management: Complete customer profile management
- Secure Authentication: Password-based user authentication
- Transaction History: Comprehensive transaction tracking
- Account Limits: Daily and monthly withdrawal limits
- Loan Processing: Automated loan approval and disbursement
- Admin Panel: System administration and monitoring
- Data Persistence: File-based data storage and backup
- Inheritance: Account hierarchy (Base Account → Savings Account)
- Polymorphism: Virtual methods for different account types
- Encapsulation: Private data members with public interfaces
- Abstraction: Abstract base classes and interfaces
User (Abstract Base)
├── Customer
├── Accounts (vector)
├── Loans (vector)
└── Credit Score
Account (Abstract Base)
├── SavingsAccount
├── CheckingAccount
└── CreditAccount
Transaction
├── Deposit
├── Withdrawal
├── Transfer
└── Interest
Loan
├── Personal Loan
├── Home Loan
├── Business Loan
└── Education Loan
BankingSystem (Main Controller)
├── Customer Management
├── Account Management
├── Transaction Processing
└── Loan Management
- C++17 compatible compiler (GCC 7+, Clang 5+, MSVC 2017+)
- Make (for building)
- Windows/Linux/macOS
-
Clone or download the project
git clone "https://github.com/OyanibTech-iii/cpp-banking--OOP.git" cd oyanib-banking-system
-
Install dependencies (Ubuntu/Debian)
make install-deps
-
Build the project
make
-
Run the banking system
make run
# Build with specific compiler
g++ -std=c++17 -Wall -Wextra -O2 *.cpp -o oyanib_bank
# Build on Windows with MSVC
cl /std:c++17 /EHsc *.cpp /Fe:oyanib_bank.exe
# Build on macOS
clang++ -std=c++17 -Wall -Wextra -O2 *.cpp -o oyanib_bankoyanib-banking-system/
├── main.cpp # Main entry point and UI
├── User.h/.cpp # Abstract base user class
├── Customer.h/.cpp # Customer implementation
├── Account.h/.cpp # Abstract base account class
├── SavingsAccount.h/.cpp # Savings account implementation
├── Transaction.h/.cpp # Transaction handling
├── Loan.h/.cpp # Loan management
├── BankingSystem.h/.cpp # Main system controller
├── Makefile # Build configuration
├── README.md # This file
└── data/ # Data files (created at runtime)
├── customers.txt
├── accounts.txt
├── transactions.txt
└── loans.txt
- Customer Login - Access customer account
- Create New Account - Register new customer
- Admin Panel - System administration (password: admin123)
- About - System information
- Exit - Save and exit
- View account balance
- Deposit money
- Withdraw money
- Transfer between accounts
- View transaction history
- Apply for loans
- View loan status
- Change password
- View all accounts
- View all transactions
- Process loan applications
- Calculate interest
- System statistics
- Database backup
| Account Type | Min Balance | Daily Limit | Monthly Limit | Interest Rate |
|---|---|---|---|---|
| Savings | $500 | $2,000 | $10,000 | 2.5% |
| Checking | $0 | $5,000 | $25,000 | 0.1% |
| Loan Type | Min Credit Score | Max Amount | Interest Rate |
|---|---|---|---|
| Personal | 600 | $50,000 | 7-12% |
| Home | 650 | $500,000 | 4-8% |
| Business | 700 | $1,000,000 | 6-10% |
| Education | 600 | $100,000 | 3-6% |
- Password Protection: All accounts require passwords
- Transaction Limits: Daily and monthly withdrawal limits
- Account Validation: Comprehensive input validation
- Data Integrity: File-based data persistence with backup
- Session Management: Secure login/logout system
The system uses simple text files for data storage:
customers.txt- Customer informationaccounts.txt- Account detailstransactions.txt- Transaction historyloans.txt- Loan information
Data is automatically saved when exiting the program.
The system can create sample data for testing:
- Sample customer with multiple accounts
- Sample transactions
- Sample loans
- Account Creation: Create new customer and accounts
- Transactions: Perform deposits, withdrawals, transfers
- Loan Application: Apply for and process loans
- Interest Calculation: Calculate and apply interest
- Admin Functions: Use admin panel features
- Database Integration: SQLite/MySQL support
- Web Interface: Web-based banking portal
- Mobile App: Mobile banking application
- API Integration: RESTful API for external services
- Advanced Security: Encryption, 2FA, biometrics
- Reporting: Advanced financial reporting
- Multi-Currency: International currency support
- Investment Accounts: Stock and bond trading
- Unit Testing: Comprehensive test suite
- Code Documentation: Doxygen documentation
- Performance Optimization: Memory and speed improvements
- Error Handling: Enhanced error management
- Logging: Comprehensive system logging
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Oyanib Banking System
- Advanced C++ OOP Implementation
- Version: 2.0
- Build Date: 2024
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
- Compilation Time: ~5-10 seconds
- Startup Time: <1 second
- Transaction Processing: <100ms
- Memory Usage: ~10-50MB
- Data Storage: Text-based, efficient
Note: This is a demonstration system for educational purposes. For production use, additional security measures, proper database integration, and comprehensive testing would be required.