A console-based Bank Account Management System written in C, built as part of the CodeAlpha C Programming Internship — Task 4.
- Create Account — set up a new bank account with an opening deposit
- Deposit — add funds to any existing account
- Withdraw — withdraw funds with real-time balance validation
- Balance Enquiry — instantly check current balance
- Mini Statement — view the last 10 transactions with date and time
- Display All Accounts — overview of every account in the system
- Persistent Storage — all data is saved to a binary file (
accounts.dat), so nothing is lost between runs
- Language: C (C99)
- File handling: binary I/O with
fread/fwrite - Data structures:
structwith embedded transaction history - Standard libraries:
stdio.h,stdlib.h,string.h,time.h
# Compile
gcc -o banking_system banking_system.c
# Run
./banking_systemOr use the Makefile:
make
./banking_systemCodeAlpha_BankingSystem/
├── banking_system.c # full source code
├── Makefile # build config
├── .gitignore # ignores binary and data files
└── README.md # this file
Each account is stored as a struct containing the account number, holder name, current balance, and a rolling buffer of the last 10 transactions. All accounts are written to accounts.dat as raw binary records. On every update, the file is rewritten with the modified record in place — similar to how a simple flat-file database works.
Lucifuge — BCA Student, United Institute of Management, Prayagraj
GitHub: @anshman-git
Built during the CodeAlpha C Programming Internship