An open API service indexing awesome lists of open source software.

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

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)