A comprehensive C++ console-based banking application that provides complete client and user management functionality with transaction processing and currency exchange features.
- Client Management
- Add new bank clients
- Update client information
- Delete client accounts
- Find and search clients
- View complete client list
- Display total balances
- Financial Operations
- Deposit money to accounts
- Withdraw money from accounts
- Transfer funds between accounts
- Transaction logging and history
- Balance tracking
- Administrative Features
- User authentication and login
- Role-based permissions system
- User registration and management
- Login activity tracking
- Password encryption
- Multi-Currency Support
- Currency rate management
- Currency conversion calculator
- Exchange rate tracking
- Multi-currency transactions
- Inheritance:
clsBankClientandclsUserinherit fromclsPerson - Encapsulation: Private data members with public accessor methods
- Polymorphism: Virtual functions and method overriding
- Abstraction: Clean separation of interface and implementation
- File-Based Storage: Text files for persistent data storage
- Data Encryption: Password encryption for security
- Data Validation: Input validation and error handling
- Logging System: Comprehensive transaction and login logging
- Manages bank account operations
- Handles deposits, withdrawals, and transfers
- Maintains account balance and PIN codes
- Provides client search and listing functionality
- Manages system users and authentication
- Implements permission-based access control
- Handles user registration and login tracking
- Provides encrypted password storage
- Central navigation hub
- Menu-driven interface
- Screen management and routing
- User session handling
clsMainMenu/
βββ Core Classes/
β βββ clsBankClient.h # Bank client management
β βββ clsUser.h # User authentication & management
β βββ clsPerson.h # Base person class
β βββ clsMainScreen.h # Main application interface
β βββ clsScreen.h # Base screen class
βββ Transaction Management/
β βββ clsTransactionsScreen.h # Transaction operations
β βββ clsDepositScreen.h # Deposit functionality
β βββ clsWithdrawScreen.h # Withdrawal functionality
β βββ clsTransferScreen.h # Transfer operations
βββ Client Management/
β βββ clsClientListScreen.h # Client listing
β βββ clsAddNewClientScreen.h # Add new clients
β βββ clsUpdateClientScreen.h # Update client info
β βββ clsDeleteClientScreen.h # Delete clients
β βββ clsFindClientScreen.h # Search clients
βββ User Management/
β βββ clsLoginScreen.h # User authentication
β βββ clsManageUsersScreen.h # User administration
β βββ clsListUsersScreen.h # User listing
β βββ clsAddNewUserScreen.h # Add new users
β βββ clsUpdateUserScreen.h # Update user info
β βββ clsDeleteUserScreen.h # Delete users
βββ Currency Exchange/
β βββ clsCurrencyExchangeMainScreen.h # Currency operations
β βββ clsCurrency.h # Currency data model
β βββ clsCurrenciesListScreen.h # Currency listing
β βββ clsFindCurrencyScreen.h # Currency search
β βββ clsUpdateCurrency.h # Update exchange rates
β βββ clsCurrencyCalculatorScreen.h # Currency conversion
βββ Utilities/
β βββ clsInputValidate.h # Input validation
β βββ clsString.h # String utilities
β βββ clsDate.h # Date/time handling
β βββ clsUtil.h # General utilities
β βββ Global.h # Global variables
βββ Data Files/
β βββ Clients.txt # Client data storage
β βββ Users.txt # User data storage
β βββ Currencies.txt # Currency data storage
β βββ TransferLog.txt # Transaction logs
β βββ LoginRegister.txt # Login activity logs
βββ Main Application/
βββ clsMainMenu.cpp # Main application entry point
βββ Bank System.cpp # Core banking operations
- Visual Studio 2019/2022 or compatible C++ compiler
- Windows OS (tested on Windows 10/11)
- C++11 or later standard support
- Clone or download the project
- Open
clsMainMenu.slnin Visual Studio - Build the solution (Ctrl+Shift+B)
- Run the executable from
x64/Debug/clsMainMenu.exe
- The system will start with a login screen
- Default admin credentials may be available in the Users.txt file
- Navigate through the menu system using numbered options
- All data is automatically saved to text files
- Show Client List - View all bank clients
- Add New Client - Register new bank accounts
- Delete Client - Remove client accounts
- Update Client Info - Modify client information
- Find Client - Search for specific clients
- Transactions - Access banking operations
- Manage Users - User administration
- Login Register - View login history
- Currency Exchange - Currency operations
- Logout - Exit the system
- Deposit: Add money to any account
- Withdraw: Remove money from accounts
- Transfer: Move funds between accounts
- Balance Inquiry: Check account balances
- Add Users: Create new system users
- Set Permissions: Configure user access levels
- View Login History: Monitor user activity
- Update User Info: Modify user details
- Password Encryption: All passwords are encrypted before storage
- Permission System: Role-based access control
- Input Validation: Comprehensive data validation
- Activity Logging: Complete audit trail
- Session Management: Secure user sessions
The system uses text files for data persistence:
- Clients.txt: Client account information
- Users.txt: System user data
- Currencies.txt: Exchange rate data
- TransferLog.txt: Transaction history
- LoginRegister.txt: Login activity logs
- Real-time Balance Updates: Instant balance calculations
- Transaction History: Complete audit trail
- Multi-currency Support: International banking features
- User Permissions: Granular access control
- Data Validation: Robust input checking
- Error Handling: Comprehensive error management
- Menu-driven Interface: Intuitive navigation
- Clear Screen Management: Organized display
- Input Validation: User-friendly error messages
- Confirmation Dialogs: Safe operation confirmations
- Header Files: Class definitions and interfaces
- Implementation: Method implementations
- Data Models: Structured data representation
- Utilities: Helper functions and tools
The system is designed for easy extension:
- Add new transaction types
- Implement additional currencies
- Extend user permissions
- Add new reporting features
Note: This is a console-based application designed for educational purposes. It demonstrates core OOP principles, file I/O operations, and system design concepts in C++.