Skip to content

๐Ÿ’ผ ATM System in C++ โ€“ A console-based application for secure ATM banking, offering login, quick withdraws, normal withdraws, deposits, and balance checks, with data securely stored in text files. ๐Ÿฆ๐Ÿ’ณ

Notifications You must be signed in to change notification settings

taharachedi/ATM-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ ATM System ๐Ÿ’ผ

A console-based C++ application for secure and intuitive ATM banking operations.๐Ÿ› ๏ธ


๐ŸŒŸ Project Overview

This C++ project simulates a Bank Management System ๐Ÿฆ that allows users to manage client data. The system provides functionalities like logging in, performing transactions (quick withdrawals, normal withdrawals, deposits), and checking account balances. Additionally, it ensures secure data persistence by storing all client details in a text file.


โœจ Features

๐Ÿ“‹ Client Management

  • ๐Ÿ”‘ Login: Authenticate users with account number and PIN code.
  • ๐Ÿ’ธ Transactions:
    • Quick Withdraw: Withdraw predefined amounts (20, 50, 100, 200, 400, 600, 800, 1000).
    • Normal Withdraw: Withdraw any amount in multiples of 5.
    • Deposit: Add money to client accounts.
  • ๐Ÿ’ฐ Check Balance: View the current balance of the client.
  • ๐Ÿ”’ Data Security: Client data is securely stored in Client.txt for future use.

๐Ÿ”’ Data Security

  • Persistent Storage: Client data is securely stored in Client.txt for future use.
  • Validation: Ensure accurate data entry and sufficient balance for withdrawals.
  • Simple File-Based Database: Efficiently manage all client data.

๐Ÿ—๏ธ Code Structure

๐Ÿ“Š Data Structures

  • stClient: Structure to hold client information.

๐Ÿ”ข Enumerations

  • enATMMainMenueOptions: Defines options for the ATM main menu.

๐Ÿ› ๏ธ Functions

  • Comprehensive functions for managing client data, transactions, and menu navigation (refer to the code comments for details).

โš™๏ธ How It Works

Core Components

  1. User Input:

    • Users interact with a console-based menu to select operations like login, withdraw, deposit, and check balance.
    • All user inputs are validated before being processed.
  2. Operations:

    • Login: Authenticate users with account number and PIN code.
    • Quick Withdraw: Withdraw predefined amounts.
    • Normal Withdraw: Withdraw any amount in multiples of 5.
    • Deposit: Add money to client accounts.
    • Check Balance: View the current balance of the client.
  3. File Management:

    • Client data is 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 perform transactions, check balances, and logout.
    • Users can also return to previous menus at any point.

๐Ÿ“š Further Improvements

  • ๐Ÿ”’ Encryption: Implement encryption for sensitive data like PIN codes.
  • ๐Ÿ—„๏ธ Database Integration: Replace text files with a relational database for more robust data management.
  • ๐Ÿ–ฅ๏ธ GUI: Develop a graphical user interface for a more user-friendly and intuitive experience.
  • ๐Ÿ“œ Logging: Add a logging system to track all transactions and user activities for better monitoring and auditing.

โš™๏ธ 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.

๐Ÿ“œ License

This project is open-source. Use it, modify it, share it! ๐ŸŽ‰

Feel free to fork, modify, and use this project as a starting point for your own C++ applications! ๐Ÿš€


๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. ๐Ÿ™Œ


๐Ÿ 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! ๐ŸŽฎ

About

๐Ÿ’ผ ATM System in C++ โ€“ A console-based application for secure ATM banking, offering login, quick withdraws, normal withdraws, deposits, and balance checks, with data securely stored in text files. ๐Ÿฆ๐Ÿ’ณ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages