https://github.com/7mee3d/simi-simple-bank-system
π A simple bank system programmed in C++ to manage customer data in an organized manner through a text interface that contains a list of main options that allow dealing with customers (view - add - modify - delete - search).
https://github.com/7mee3d/simi-simple-bank-system
cplusplus programming
Last synced: 12 months ago
JSON representation
π A simple bank system programmed in C++ to manage customer data in an organized manner through a text interface that contains a list of main options that allow dealing with customers (view - add - modify - delete - search).
- Host: GitHub
- URL: https://github.com/7mee3d/simi-simple-bank-system
- Owner: 7mee3d
- Created: 2025-05-11T21:04:17.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-12T22:04:04.000Z (about 1 year ago)
- Last Synced: 2025-06-15T17:25:07.468Z (about 1 year ago)
- Topics: cplusplus, programming
- Language: C++
- Homepage:
- Size: 10.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¦ Bank Management System in C++
Welcome to the **Bank Management System** β a console-based application developed using **modern C++** that simulates real-world banking operations such as managing client accounts, processing deposits and withdrawals, and storing data persistently using file I/O.
This project is designed with clean code practices, modular functions, and an easy-to-navigate menu system, making it suitable for beginner to intermediate programmers who want to understand file handling, structs, and formatted console interfaces in C++.
---
## π§ Motivation
Banking is one of the most common domains for applying programming skills. The goal of this project is to:
- Practice working with **structures**, **file I/O**, and **modular code** in C++
- Simulate a real-world problem with persistent data storage
- Provide a fully functional CLI (Command Line Interface) banking application
- Learn how to handle input/output, validations, and formatted text display
---
## π Features and Functionalities
| # | Feature | Description |
|-----|--------------------------------|-----------------------------------------------------------------------------|
| 1οΈβ£ | Add New Client | Allows adding new customer records including name, account number, and balance |
| 2οΈβ£ | Display All Clients | Displays client data in a neatly formatted table |
| 3οΈβ£ | Update Client Info | Modify any detail of an existing client |
| 4οΈβ£ | Delete Client | Remove a client based on account number |
| 5οΈβ£ | Find a Client | Search by account number and display detailed info |
| 6οΈβ£ | Deposit Money | Add funds to a selected account |
| 7οΈβ£ | Withdraw Money | Withdraw from a client account with validation |
| 8οΈβ£ | Show Total Balance | Displays the sum of all client balances |
| 9οΈβ£ | Exit Program | Gracefully terminates the application |
---
## π Data Management
All data is stored in a plain-text file called:
## Information Client
This ensures that:
- π§ Data is **persistent** across sessions
- π Every operation (add/update/delete) is reflected in the file
- π Sensitive operations are handled with care to avoid data corruption
---
## π Table Format Display
Client data is displayed in a tabular format using `iomanip` for clean alignment:
---
## π Technologies Used
- **Language**: C++
- **File Handling**: `fstream`, `ifstream`, `ofstream`
- **Console Utilities**: `iostream`, `iomanip`, `string`
- **Modular Design**: All operations are built as separate functions for reusability and clarity
---
# π Benefits of This Project
π Educational: Great for students learning file I/O and basic data structures
π§± Modular Code: Functions are reusable and well-separated
π― Real-World Simulation: Mimics the flow of actual banking systems
πΎ Offline Persistence: No need for databases β data is saved directly to text files
π User-Friendly Navigation: Easy to interact via numbered menus
β Input Validation: Handles invalid or incomplete data gracefully
---
# π§ͺ Sample Workflow
**1- User runs the program**
**2- Main menu is shown**
**3- User selects βAdd Clientβ**
**4- System requests details and saves them to the file**
**5- User chooses βShow All Clientsβ**
**6- Data is retrieved from the file and shown as a table**
---
# π Future Enhancements
**π Add login & admin roles**
**π Track transaction history**
**π¦ Switch to database (SQLite, MySQL)**
**π₯ GUI with Qt or Web-based frontend**
**π Export reports to CSV or PDF**
---
# π§βπ» How to Run
### 1- Clone or download this repository:
``` cpp
git clone https://github.com/your-username/BankingSystem.git
cd BankingSystem
```
### 2- Compile the code:
```
g++ main.cpp -o bank
```
### 3- Run the program:
```
./bank
```
---
# π¨π» Author
**Ahmed Jehad Ahmed**
π [GitHub Profile](https://github.com/7mee3d)
π§ [Email Contact](mailto:enginnerahemdjehad2004@gmail.com)