https://github.com/taharachedi/bank_extension1
πΌ Bank Management System (Extension_1) in C++ β A simple console-based system for managing client data, processing deposits and withdrawals, and securely storing all records in text files for persistence. π¦π
https://github.com/taharachedi/bank_extension1
console-application cpp enums problem-solving string-manipulation structure
Last synced: 5 months ago
JSON representation
πΌ Bank Management System (Extension_1) in C++ β A simple console-based system for managing client data, processing deposits and withdrawals, and securely storing all records in text files for persistence. π¦π
- Host: GitHub
- URL: https://github.com/taharachedi/bank_extension1
- Owner: taharachedi
- Created: 2024-11-16T11:48:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-29T16:08:26.000Z (over 1 year ago)
- Last Synced: 2025-10-19T06:14:58.479Z (9 months ago)
- Topics: console-application, cpp, enums, problem-solving, string-manipulation, structure
- Language: C++
- Homepage:
- Size: 1.38 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¦ Bank (Extension_1) πΌ
> **A simple console-based application to manage client data with file storage and intuitive operations. π οΈ**
---
## π Project Overview
This C++ project simulates a **Bank Management System** π¦ that allows the user (an administrator) to manage client data, such as account numbers, names, phone numbers, PIN codes, and account balances. The system provides functionalities like adding, deleting, updating, and viewing client information. Additionally, it supports financial transactions such as deposits and withdrawals, displays total balances, and ensures secure data persistence by storing all client details and transaction logs in a text file.
## β¨ Features
### π Client Management
- β **Add New Clients**: Input details such as account number, name, phone number, PIN, and balance.
- π **Update Client Details**: Modify existing records like names, phone numbers, and balances.
- β **Delete Clients**: Remove clients from the system by specifying their account number.
- π **Search for Clients**: Easily locate clients by account number and display their details.
- ποΈ **View All Clients**: Display a comprehensive list of all clients in the system.
### πΈ Transactions
- π° **Deposit Funds**: Add money to client accounts and log deposits.
- π³ **Withdraw Money**: Deduct funds, ensuring sufficient balance.
- π **View Total Balances**: Show overall bank holdings.
### π Data Security
- **Persistent Storage**: Client data is securely stored in `Client.txt` for future use.
- **Validation**: Enforce unique account numbers and accurate data entry.
- **Simple File-Based Database**: Efficiently manage all client and transaction data.
---
## βοΈ How It Works
### Core Components
1. **User Input**:
- Administrators interact with a console-based menu to select operations like Add, Update, Delete, Deposit and Withdraw.
- All user inputs are validated before being processed.
2. **Operations**:
- **Add Clients**: Administrators can enter new client details, including initial balance.
- **Update Records**: Modify client details, such as changing names, updating contact information, or adjusting balances.
- **Delete Clients**: Remove client records based on the account number.
- **Search Clients**: Retrieve a client's information by entering their account number.
- **View All Clients**: Display a complete list of all client records stored in the system.
- **Deposit**: Increase a client's balance by depositing funds into their account. Each deposit is recorded with the date, amount, and transaction type.
- **Withdraw**: Withdraw funds from a clientβs account, ensuring that the balance is sufficient.
3. **File Management**:
- Client data are stored in `Client.txt`, using delimiters for easy parsing.
- Efficient file handling ensures data is accurately read, written, and updated in the text file.
4. **Menu Navigation**:
- The menu offers easy navigation between operations, including options to add clients, perform transactions and exit the program.
- Users can also return to previous menus at any point.
---
## βοΈ Technologies Used
- **Language**: C++
- **Programming Paradigm**: Procedural
- **File Handling**: File I/O for data persistence
- **Data Structures**: Vectors for dynamic client management
---
## π― Learning Outcomes
This project demonstrates several key C++ programming concepts:
- β
**File Handling**: Learn to store and retrieve data using file I/O operations, ensuring persistence.
- β
**Modular Design**: Functions are used for each operation, making the code organized and reusable.
- β
**Error Handling**: Input validation and error checking ensure the integrity of data and smooth user experience.
- β
**Control Structures**: Utilize loops, conditionals, and switch statements for handling complex logic.
- β
**Transaction Management**: Efficiently manage both deposit and withdrawal transactions, and maintain a full history of all financial activities.
---
## π Ready to Explore?
### π How to Run
1. **Download** the repository to your local machine.
2. **Compile** the C++ code using your favorite IDE or compiler (e.g., `g++` in terminal).
3. **Run** the compiled program and begin managing client data and transactions with ease!