🎯 এই পর্বে যা জানবে:
- কিভাবে লাইব্রেরি ম্যানেজমেন্ট সিস্টেম ডিজাইন করা যায়
- স্ট্রাকচার, ফাইল হ্যান্ডলিং এবং লুপ ব্যবহার করে ডেটা ম্যানেজ করা
- বই যোগ, দেখা, সার্চ ও ডিলিট করার পদ্ধতি
- বাস্তবধর্মী প্রজেক্ট বানানোর কৌশল
📚 প্রজেক্ট আইডিয়া: লাইব্রেরি ম্যানেজমেন্ট সিস্টেম
এই প্রজেক্টে তুমি এমন একটি প্রোগ্রাম বানাবে যা দিয়ে —
- নতুন বই যুক্ত করা যাবে,
- সব বইয়ের তালিকা দেখা যাবে,
- নির্দিষ্ট বই খোঁজা যাবে,
- প্রয়োজন হলে বই মুছে ফেলা যাবে।
🧱 প্রজেক্টের গঠন
| ফাইল নাম | কাজ |
|---|---|
library.h | স্ট্রাকচার ও ফাংশন ডিক্লেয়ারেশন |
library.c | ফাংশনের সংজ্ঞা |
main.c | মূল প্রোগ্রাম |
🧾 library.h
#ifndef LIBRARY_H
#define LIBRARY_H
struct Book {
int id;
char title[100];
char author[50];
};
void addBook();
void showAllBooks();
void searchBook(int id);
void deleteBook(int id);
#endif🧾 library.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "library.h"
void addBook() {
struct Book b;
FILE *fp = fopen("library.txt", "a");
if (fp == NULL) {
printf("File not found!\n");
return;
}
printf("Enter Book ID: ");
scanf("%d", &b.id);
printf("Enter Book Title: ");
scanf(" %[^\n]", b.title);
printf("Enter Author Name: ");
scanf(" %[^\n]", b.author);
fprintf(fp, "%d|%s|%s\n", b.id, b.title, b.author);
fclose(fp);
printf("✅ Book added successfully!\n");
}
void showAllBooks() {
struct Book b;
FILE *fp = fopen("library.txt", "r");
if (fp == NULL) {
printf("No data found!\n");
return;
}
printf("\n--- Library Books ---\n");
while (fscanf(fp, "%d|%[^|]|%[^\n]\n", &b.id, b.title, b.author) != EOF) {
printf("ID: %d | Title: %s | Author: %s\n", b.id, b.title, b.author);
}
fclose(fp);
}
void searchBook(int id) {
struct Book b;
FILE *fp = fopen("library.txt", "r");
if (fp == NULL) {
printf("No data found!\n");
return;
}
int found = 0;
while (fscanf(fp, "%d|%[^|]|%[^\n]\n", &b.id, b.title, b.author) != EOF) {
if (b.id == id) {
printf("\n📘 Book Found!\n");
printf("ID: %d | Title: %s | Author: %s\n", b.id, b.title, b.author);
found = 1;
break;
}
}
if (!found) printf("❌ Book not found!\n");
fclose(fp);
}
void deleteBook(int id) {
struct Book b;
FILE *fp = fopen("library.txt", "r");
FILE *temp = fopen("temp.txt", "w");
if (fp == NULL || temp == NULL) {
printf("Error opening file!\n");
return;
}
int found = 0;
while (fscanf(fp, "%d|%[^|]|%[^\n]\n", &b.id, b.title, b.author) != EOF) {
if (b.id != id) {
fprintf(temp, "%d|%s|%s\n", b.id, b.title, b.author);
} else {
found = 1;
}
}
fclose(fp);
fclose(temp);
remove("library.txt");
rename("temp.txt", "library.txt");
if (found)
printf("🗑️ Book deleted successfully!\n");
else
printf("❌ Book not found!\n");
}🧾 main.c
#include <stdio.h>
#include "library.h"
int main() {
int choice, id;
while (1) {
printf("\n===== Library Management System =====\n");
printf("1. Add Book\n");
printf("2. Show All Books\n");
printf("3. Search Book\n");
printf("4. Delete Book\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
showAllBooks();
break;
case 3:
printf("Enter Book ID to search: ");
scanf("%d", &id);
searchBook(id);
break;
case 4:
printf("Enter Book ID to delete: ");
scanf("%d", &id);
deleteBook(id);
break;
case 5:
printf("👋 Exiting program...\n");
return 0;
default:
printf("❌ Invalid choice! Try again.\n");
}
}
}⚙️ কম্পাইল ও রান করার নিয়ম
টার্মিনালে নিচের কমান্ড লিখো 👇
gcc main.c library.c -o library
./library📋 প্রজেক্টের আউটপুট
===== Library Management System =====
1. Add Book
2. Show All Books
3. Search Book
4. Delete Book
5. Exit
Enter your choice: 1
Enter Book ID: 201
Enter Book Title: Programming in C
Enter Author Name: E. Balagurusamy
✅ Book added successfully!💡 যা যা শিখলে
✅ কিভাবে ডিলিট ফাংশন তৈরি করতে হয়
✅ ফাইল রিড, রাইট, আপডেট ও রিমুভ করার পদ্ধতি
✅ স্ট্রাকচার ও ফাংশনের একত্র ব্যবহার
✅ পূর্ণাঙ্গ প্রজেক্ট তৈরি ও মেনু-ড্রাইভন কনসোল অ্যাপ বানানো



