Skip to content

mohanedsherif/Banking-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’³ C++ Bank Management System

A modern console-based banking application written in C++, designed to simulate real-world banking operations with client, user, and transaction management features.
It’s a clean, well-structured project ideal for learning OOP, file handling, and system architecture in C++.


πŸ“ Project Summary

This project demonstrates how to build a complete banking system using Object-Oriented Programming principles.
It provides separate modules for user login, client accounts, and transaction handling while saving data securely in files.

The system is fully menu-driven and offers role-based access, making it useful for both beginners learning C++ and intermediate developers practicing clean software design.


⚑ Core Capabilities

πŸ” User Login & Permissions

  • Login with username and password
  • Permission-based access to system features
  • Active session management

πŸ‘¨β€πŸ’Ό Client Account Management

  • Add, view, update, and delete bank clients
  • Search by account number
  • Manage PIN codes, balances, and personal details

πŸ’΅ Banking Operations

  • Deposit and withdraw money from client accounts
  • Check total and individual account balances
  • Validate balance before withdrawals

πŸ‘₯ User Administration

  • Create, edit, and delete system users
  • Assign roles and permissions to users
  • View full user list

πŸ’½ Data Storage

  • Persistent data stored in text files
  • Custom serialization/deserialization
  • Automatic data file creation on first run

🧩 System Structure

Each screen is an independent UI module that handles its own logic, making the system easy to maintain and extend.


βš™οΈ Setup & Installation

Requirements

  • Windows 10/11
  • Visual Studio 2019+ with C++ support
  • C++17 standard or newer

Steps

  1. Clone this repository or download the ZIP
  2. Open the .sln file in Visual Studio
  3. Build the project (Ctrl+Shift+B)
  4. Run the program (F5)

On first launch, the system will create Clients.txt and Users.txt automatically.


πŸ“ Project Layout

Class Design

BankSystem/ β”‚ β”œβ”€β”€ BankSystem.cpp

β”œβ”€β”€ Global.h

β”œβ”€β”€ clsPerson.h

β”œβ”€β”€ clsBankClient.h

β”œβ”€β”€ clsUser.h

β”‚

β”œβ”€β”€ clsMainScreen.h

β”œβ”€β”€ clsLoginScreen.h

β”œβ”€β”€ clsTransactionsScreen.h

β”œβ”€β”€ clsClientListScreen.h

β”œβ”€β”€ clsAddNewClientScreen.h

β”œβ”€β”€ clsUpdateClientScreen.h

β”œβ”€β”€ clsDeleteClientScreen.h

β”œβ”€β”€ clsFindClientScreen.h

β”œβ”€β”€ clsDepositScreen.h

β”œβ”€β”€ clsWithdrawScreen.h

β”œβ”€β”€ clsTotalBalancesScreen.h

β”œβ”€β”€ clsManageUsersScreen.h

β”‚

β”œβ”€β”€ clsScreen.h

β”œβ”€β”€ clsInputValidate.h

β”œβ”€β”€ clsString.h

β”œβ”€β”€ clsUtil.h

β”œβ”€β”€ clsDate.h

β”‚

β”œβ”€β”€ Users.txt

β”œβ”€β”€ Clients.txt

└── README.md


πŸ–₯️ How to Use

  1. Start the program
  2. Go to User.txt and git (user and password)
  3. Use the main menu to:
    • 1 Show Client List
    • 2 Add New Client
    • 3 Update Client Info
    • 4 Delete Client
    • 5 Find Client
    • 6 Transactions (deposit, withdraw, check balance)
    • 7 Manage Users
    • 8 Logout

⚑ Technical Details

Data format FirstName#//#LastName#//#Email#//#Phone#//#AccountNumber#//#PinCode#//#Balance

Storage

  • Users.txt β€” user accounts
  • Clients.txt β€” bank clients

Memory

  • Uses stack allocation and RAII principles
  • No raw dynamic memory to prevent leaks

🐞 Known Limitations

  • Windows-only (uses Windows console)
  • No concurrent access handling
  • Minimal error handling
  • Limited input validation

πŸš€ Future Plans

  • Implement secure password hashing
  • Migrate to a real database (SQLite/MySQL)
  • Create a GUI or web interface
  • Mobile version support

🀝 Contributions

This project is built for educational purposes.
Contributions are welcome β€” especially in:

  • Security
  • Code quality
  • New features
  • Bug fixing

About

🏦 Banking Management System (C++) A simple console-based Banking Management System built in C++ that allows bank staff to manage clients and their accounts through a menu-driven interface. βš™οΈ Technologies C++ (Object-Oriented Programming) File handling for data storage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages