Skip to content

A console-based banking system built with C++ and OOP, featuring secure login, role-based access (Admin, Employee, Client), and file-based data storage for managing accounts and transactions efficiently.

Notifications You must be signed in to change notification settings

shimaanaser8/banking-system-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

** Bank System (C++ Console Application)

A complete Bank Management System built using C++ (OOP + File Handling).
This project simulates a real-world bank system with three main modules Client,Employee and Admin— allowing secure login and account management directly from the console.

** Overview

The bank-system_cpp project provides a simulation of how banking operations are managed internally.
It covers everything from client transactions to employee management and admin control — all in a structured, file-based console environment. Each role (Client, Employee, Admin) has specific permissions and actions that reflect real-world responsibilities inside a banking institution.

** System Modules

  • Client Module
  • Login securely using ID and password
  • Deposit and withdraw money
  • Check account balance
  • Transfer money to other clients
  • View and update personal information
  • Employee Module
  • Login with ID and password
  • Add new clients to the system
  • Search for clients by ID
  • Edit client information
  • Display all registered clients
  • View own profile details
  • Admin Module
  • Inherits all Employee permissions
  • Add new employees to the system
  • Search for employees
  • Edit employee information
  • Display all employees

** Technical Details

  • Project Architecture bank-system_cpp/ include/ Person.h Client.h Employee.h Admin.h Validation.h FileManager.h Parser.h Screens.h Managers.h

    src/ Client.cpp Employee.cpp Admin.cpp Validation.cpp FileManager.cpp Parser.cpp Screens.cpp Managers.cpp

    data/ Clients.txt Employees.txt Admins.txt

    main.cpp README.md

  • Data Persistence All information (Clients, Employees, Admins) is saved in .txt files using a simple CSV-like structure.
    This ensures persistence even after the program closes.

  • Object-Oriented Design

  • Person is the base class
  • Client, Employee and Admin inherit from it
  • Validation, FileManager and Parser are utility classes
  • Managers handle user interaction logic

** How to Run

  1. Clone the repository: bash git clone https://github.com/shimaanaser8/banking-system-cpp.git Open the project in your C++ IDE (Code::Blocks / Visual Studio / CLion).

Build and run the project.

Follow the console instructions — you can: Login as an existing user Perform transactions and management operations

  • User Experience The system displays clear, concise English messages guiding the user step-by-step. It tells the user what input is expected, what the system is doing, and what the result is. No colors, just simple and direct messages that make it easy to understand every action.

** Features Implemented ~ OOP with inheritance and encapsulation ~ Input validation (name, password, balance, salary) ~ File management (data persistence) ~ Modular architecture (clean and extendable) ~ Realistic workflows for banking roles ~ User guidance messages ~ Login system

** Future Improvements Add transaction history Improve password encryption Replace .txt with a database system Add UI (Graphical interface) using Qt or Web-based front-end

About

A console-based banking system built with C++ and OOP, featuring secure login, role-based access (Admin, Employee, Client), and file-based data storage for managing accounts and transactions efficiently.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published