🎯 এই পর্বে যা জানবে:
- কীভাবে একটি পূর্ণাঙ্গ Bank Management System তৈরি করা যায়
- ফাইল হ্যান্ডলিং, স্ট্রাকচার ও ফাংশনের যৌথ ব্যবহার
- ডিপোজিট, উইথড্র, ব্যালান্স চেক ও অ্যাকাউন্ট সার্চের ফিচার
- প্রজেক্টকে মেনু ড্রাইভন (Menu Driven) প্রোগ্রামে রূপান্তর
🏦 প্রজেক্ট আইডিয়া: ব্যাংক ম্যানেজমেন্ট সিস্টেম
এই প্রজেক্টে তুমি এমন একটি প্রোগ্রাম তৈরি করবে যা দিয়ে —
- নতুন ব্যাংক অ্যাকাউন্ট খোলা যাবে
- টাকা জমা (Deposit) ও উত্তোলন (Withdraw) করা যাবে
- ব্যালান্স চেক করা যাবে
- এবং সমস্ত ডেটা ফাইলে সংরক্ষিত থাকবে
🧱 প্রজেক্টের স্ট্রাকচার
| ফাইল নাম | কাজ |
|---|---|
bank.h | স্ট্রাকচার ও ফাংশন ডিক্লেয়ারেশন |
bank.c | সব ফাংশনের সংজ্ঞা |
main.c | মূল প্রোগ্রাম |
🧾 bank.h
#ifndef BANK_H
#define BANK_H
struct Account {
int acc_no;
char name[100];
float balance;
};
void createAccount();
void showAllAccounts();
void depositMoney(int acc_no, float amount);
void withdrawMoney(int acc_no, float amount);
void searchAccount(int acc_no);
#endif🧾 bank.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bank.h"
void createAccount() {
struct Account a;
FILE *fp = fopen("bank.txt", "a");
if (fp == NULL) {
printf("File not found!\n");
return;
}
printf("Enter Account No: ");
scanf("%d", &a.acc_no);
printf("Enter Name: ");
scanf(" %[^\n]", a.name);
printf("Enter Initial Balance: ");
scanf("%f", &a.balance);
fprintf(fp, "%d|%s|%.2f\n", a.acc_no, a.name, a.balance);
fclose(fp);
printf("✅ Account created successfully!\n");
}
void showAllAccounts() {
struct Account a;
FILE *fp = fopen("bank.txt", "r");
if (fp == NULL) {
printf("No data found!\n");
return;
}
printf("\n--- All Accounts ---\n");
while (fscanf(fp, "%d|%[^|]|%f\n", &a.acc_no, a.name, &a.balance) != EOF) {
printf("Account No: %d | Name: %s | Balance: %.2f\n", a.acc_no, a.name, a.balance);
}
fclose(fp);
}
void depositMoney(int acc_no, float amount) {
struct Account a;
FILE *fp = fopen("bank.txt", "r");
FILE *temp = fopen("temp.txt", "w");
int found = 0;
while (fscanf(fp, "%d|%[^|]|%f\n", &a.acc_no, a.name, &a.balance) != EOF) {
if (a.acc_no == acc_no) {
a.balance += amount;
found = 1;
printf("💰 Deposit successful! New Balance: %.2f\n", a.balance);
}
fprintf(temp, "%d|%s|%.2f\n", a.acc_no, a.name, a.balance);
}
fclose(fp);
fclose(temp);
remove("bank.txt");
rename("temp.txt", "bank.txt");
if (!found) printf("❌ Account not found!\n");
}
void withdrawMoney(int acc_no, float amount) {
struct Account a;
FILE *fp = fopen("bank.txt", "r");
FILE *temp = fopen("temp.txt", "w");
int found = 0;
while (fscanf(fp, "%d|%[^|]|%f\n", &a.acc_no, a.name, &a.balance) != EOF) {
if (a.acc_no == acc_no) {
if (a.balance >= amount) {
a.balance -= amount;
printf("🏧 Withdraw successful! Remaining Balance: %.2f\n", a.balance);
} else {
printf("⚠️ Insufficient balance!\n");
}
found = 1;
}
fprintf(temp, "%d|%s|%.2f\n", a.acc_no, a.name, a.balance);
}
fclose(fp);
fclose(temp);
remove("bank.txt");
rename("temp.txt", "bank.txt");
if (!found) printf("❌ Account not found!\n");
}
void searchAccount(int acc_no) {
struct Account a;
FILE *fp = fopen("bank.txt", "r");
int found = 0;
while (fscanf(fp, "%d|%[^|]|%f\n", &a.acc_no, a.name, &a.balance) != EOF) {
if (a.acc_no == acc_no) {
printf("\n🔎 Account Found!\n");
printf("Account No: %d | Name: %s | Balance: %.2f\n", a.acc_no, a.name, a.balance);
found = 1;
break;
}
}
if (!found) printf("❌ Account not found!\n");
fclose(fp);
}🧾 main.c
#include <stdio.h>
#include "bank.h"
int main() {
int choice, acc_no;
float amount;
while (1) {
printf("\n===== Bank Management System =====\n");
printf("1. Create Account\n");
printf("2. Show All Accounts\n");
printf("3. Deposit Money\n");
printf("4. Withdraw Money\n");
printf("5. Search Account\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
createAccount();
break;
case 2:
showAllAccounts();
break;
case 3:
printf("Enter Account No: ");
scanf("%d", &acc_no);
printf("Enter Amount to Deposit: ");
scanf("%f", &amount);
depositMoney(acc_no, amount);
break;
case 4:
printf("Enter Account No: ");
scanf("%d", &acc_no);
printf("Enter Amount to Withdraw: ");
scanf("%f", &amount);
withdrawMoney(acc_no, amount);
break;
case 5:
printf("Enter Account No: ");
scanf("%d", &acc_no);
searchAccount(acc_no);
break;
case 6:
printf("👋 Exiting program...\n");
return 0;
default:
printf("❌ Invalid choice! Try again.\n");
}
}
}⚙️ কম্পাইল ও রান করার নিয়ম
টার্মিনালে নিচের কমান্ড লিখো 👇
gcc main.c bank.c -o bank
./bank📋 প্রজেক্টের আউটপুট
===== Bank Management System =====
1. Create Account
2. Show All Accounts
3. Deposit Money
4. Withdraw Money
5. Search Account
6. Exit
Enter your choice: 1
Enter Account No: 101
Enter Name: Karim
Enter Initial Balance: 1000
✅ Account created successfully!💡 যা যা শিখলে
✅ রিয়েল-ওয়ার্ল্ড লজিক ব্যবহার করে প্রজেক্ট তৈরি
✅ একাধিক ফাইল হ্যান্ডল করে ডেটা আপডেট করা
✅ ফাংশন ও স্ট্রাকচার ব্যবহার করে কোড সংগঠিত করা
✅ Deposit/Withdraw ফিচার সহ মেনু-ড্রাইভন প্রোগ্রাম তৈরি



