Skip to content

adhamdr1/Bank-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bank Management System

A comprehensive C++ console-based banking application that provides complete client and user management functionality with transaction processing and currency exchange features.

🏦 Features

Core Banking Operations

  • Client Management
    • Add new bank clients
    • Update client information
    • Delete client accounts
    • Find and search clients
    • View complete client list
    • Display total balances

Transaction Management

  • Financial Operations
    • Deposit money to accounts
    • Withdraw money from accounts
    • Transfer funds between accounts
    • Transaction logging and history
    • Balance tracking

User Management

  • Administrative Features
    • User authentication and login
    • Role-based permissions system
    • User registration and management
    • Login activity tracking
    • Password encryption

Currency Exchange

  • Multi-Currency Support
    • Currency rate management
    • Currency conversion calculator
    • Exchange rate tracking
    • Multi-currency transactions

πŸ› οΈ Technical Architecture

Object-Oriented Design

  • Inheritance: clsBankClient and clsUser inherit from clsPerson
  • Encapsulation: Private data members with public accessor methods
  • Polymorphism: Virtual functions and method overriding
  • Abstraction: Clean separation of interface and implementation

Data Management

  • 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

Key Classes

clsBankClient

  • Manages bank account operations
  • Handles deposits, withdrawals, and transfers
  • Maintains account balance and PIN codes
  • Provides client search and listing functionality

clsUser

  • Manages system users and authentication
  • Implements permission-based access control
  • Handles user registration and login tracking
  • Provides encrypted password storage

clsMainScreen

  • Central navigation hub
  • Menu-driven interface
  • Screen management and routing
  • User session handling

πŸ“ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Visual Studio 2019/2022 or compatible C++ compiler
  • Windows OS (tested on Windows 10/11)
  • C++11 or later standard support

Installation

  1. Clone or download the project
  2. Open clsMainMenu.sln in Visual Studio
  3. Build the solution (Ctrl+Shift+B)
  4. Run the executable from x64/Debug/clsMainMenu.exe

First Run

  1. The system will start with a login screen
  2. Default admin credentials may be available in the Users.txt file
  3. Navigate through the menu system using numbered options
  4. All data is automatically saved to text files

πŸ’‘ Usage Guide

Main Menu Options

  1. Show Client List - View all bank clients
  2. Add New Client - Register new bank accounts
  3. Delete Client - Remove client accounts
  4. Update Client Info - Modify client information
  5. Find Client - Search for specific clients
  6. Transactions - Access banking operations
  7. Manage Users - User administration
  8. Login Register - View login history
  9. Currency Exchange - Currency operations
  10. Logout - Exit the system

Transaction Operations

  • Deposit: Add money to any account
  • Withdraw: Remove money from accounts
  • Transfer: Move funds between accounts
  • Balance Inquiry: Check account balances

User Management

  • Add Users: Create new system users
  • Set Permissions: Configure user access levels
  • View Login History: Monitor user activity
  • Update User Info: Modify user details

πŸ”’ Security Features

  • 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

πŸ“Š Data Storage

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

🎯 Key Features

Advanced Functionality

  • 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

User Experience

  • Menu-driven Interface: Intuitive navigation
  • Clear Screen Management: Organized display
  • Input Validation: User-friendly error messages
  • Confirmation Dialogs: Safe operation confirmations

πŸ”§ Development

Code Structure

  • Header Files: Class definitions and interfaces
  • Implementation: Method implementations
  • Data Models: Structured data representation
  • Utilities: Helper functions and tools

Extensibility

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++.

About

Using OOP And File Stream To Store Information

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages