This is a C-based console application that simulates an ATM system. It supports creating user accounts, balance inquiry, deposits, withdrawals, and viewing the transaction history using linked list data structures.
- π Secure PIN Verification for each transaction.
- π§ Multiple Users Support with dynamic account creation via ATM number and PIN.
- π° Balance Management through deposit and withdrawal functions.
- π Transaction History using a stack-like singly linked list for each user.
- π Persistent Session for interacting with multiple users without restarting.
- ποΈ User Selection by ATM Number to access details and perform operations.
- Doubly Linked List β To manage users (
struct node) - Singly Linked List (Stack Behavior) β To manage individual transaction logs (
struct single_node)
| Function | Description |
|---|---|
Balance() |
Returns the current balance for a user after verifying the PIN. |
Deposit() |
Adds a deposit amount and updates the transaction log. |
Withdraw() |
Deducts the withdrawal amount and updates the transaction log. |
Last_Transactions() |
Displays all past deposits/withdrawals (stack-based view). |
newuser_details() |
Adds a new user with ATM number and PIN using a doubly linked list. |
isalreadyexit() |
Checks if a user with the given ATM number already exists. |
START
Enter your ATM\_number\[12 digit] : 123456789012
You need to add your card first to continue.
Enter your pin : 1234
Your account added successfully.
WELCOME SCREEN
# 1.Balance(Enter-1).
# 2.Deposit(Enter-2).
# 3.Withdraw(Enter-3).
# 4.Last Transactions(Enter-4).
# 0.Exit(Enter-0).
Enter the option : 2
Enter the pin(4-digit).
1234
Enter the amount to deposit.
1000
Your Deposit of rupees 1000.000000 is successful.
Your Balance is now : 1000.000000.
-
Clone or download this repository.
-
Compile the code:
gcc atm_system.c -o atm- Run the application:
./atm- Add file handling to save and load users and transaction logs across sessions.
- Add OTP-based verification or biometric authentication.
- Use a database (like SQLite) for scalable persistent storage.
- Developed by Harshit Gupta