লাইব্রেরি ম্যানেজমেন্ট সিস্টেম

প্র্যাকটিস প্রোজেক্টস - জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

346

নিচে একটি লাইব্রেরি ম্যানেজমেন্ট সিস্টেম তৈরি করা হয়েছে, যা Java এবং Java Swing ব্যবহার করে UI তৈরি করেছে এবং ব্যবহারকারীদের বই যুক্ত করা, বই ধার নেয়া ও ফেরত দেয়া, এবং বিভিন্ন তথ্য খুঁজে বের করার সুযোগ প্রদান করেছে।


১. Library Management System ক্লাস (মেইন UI)

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

public class LibraryManagementSystem extends JFrame implements ActionListener {
    private List<Book> books;
    private JTextArea displayArea;
    private JTextField bookTitleField, bookAuthorField, bookIdField;

    public LibraryManagementSystem() {
        books = new ArrayList<>();
        
        setTitle("Library Management System");
        setSize(500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // Display Area
        displayArea = new JTextArea();
        displayArea.setEditable(false);
        add(new JScrollPane(displayArea), BorderLayout.CENTER);

        // Input Fields
        JPanel inputPanel = new JPanel();
        inputPanel.setLayout(new GridLayout(5, 2));
        
        inputPanel.add(new JLabel("Book Title:"));
        bookTitleField = new JTextField();
        inputPanel.add(bookTitleField);

        inputPanel.add(new JLabel("Book Author:"));
        bookAuthorField = new JTextField();
        inputPanel.add(bookAuthorField);

        inputPanel.add(new JLabel("Book ID:"));
        bookIdField = new JTextField();
        inputPanel.add(bookIdField);

        // Buttons
        JButton addButton = new JButton("Add Book");
        addButton.addActionListener(this);
        inputPanel.add(addButton);

        JButton issueButton = new JButton("Issue Book");
        issueButton.addActionListener(this);
        inputPanel.add(issueButton);

        JButton returnButton = new JButton("Return Book");
        returnButton.addActionListener(this);
        inputPanel.add(returnButton);

        JButton displayButton = new JButton("Display Books");
        displayButton.addActionListener(this);
        inputPanel.add(displayButton);

        add(inputPanel, BorderLayout.SOUTH);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();

        switch (command) {
            case "Add Book":
                addBook();
                break;
            case "Issue Book":
                issueBook();
                break;
            case "Return Book":
                returnBook();
                break;
            case "Display Books":
                displayBooks();
                break;
        }
    }

    private void addBook() {
        String title = bookTitleField.getText();
        String author = bookAuthorField.getText();
        int id = Integer.parseInt(bookIdField.getText());

        books.add(new Book(id, title, author, true));
        displayArea.append("Book Added: " + title + " by " + author + "\n");
        clearFields();
    }

    private void issueBook() {
        int id = Integer.parseInt(bookIdField.getText());
        for (Book book : books) {
            if (book.getId() == id && book.isAvailable()) {
                book.setAvailable(false);
                displayArea.append("Book Issued: " + book.getTitle() + "\n");
                clearFields();
                return;
            }
        }
        displayArea.append("Book Not Available or Invalid ID.\n");
    }

    private void returnBook() {
        int id = Integer.parseInt(bookIdField.getText());
        for (Book book : books) {
            if (book.getId() == id && !book.isAvailable()) {
                book.setAvailable(true);
                displayArea.append("Book Returned: " + book.getTitle() + "\n");
                clearFields();
                return;
            }
        }
        displayArea.append("Invalid Book ID.\n");
    }

    private void displayBooks() {
        displayArea.append("Library Books:\n");
        for (Book book : books) {
            displayArea.append(book + "\n");
        }
    }

    private void clearFields() {
        bookTitleField.setText("");
        bookAuthorField.setText("");
        bookIdField.setText("");
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            LibraryManagementSystem librarySystem = new LibraryManagementSystem();
            librarySystem.setVisible(true);
        });
    }
}

২. Book ক্লাস (Entity)

Book ক্লাসটি তৈরি করা হয়েছে যাতে প্রতিটি বইয়ের জন্য আলাদা আলাদা বৈশিষ্ট্য সংরক্ষণ করা যায়।

public class Book {
    private int id;
    private String title;
    private String author;
    private boolean available;

    public Book(int id, String title, String author, boolean available) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.available = available;
    }

    public int getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public boolean isAvailable() {
        return available;
    }

    public void setAvailable(boolean available) {
        this.available = available;
    }

    @Override
    public String toString() {
        return "ID: " + id + ", Title: " + title + ", Author: " + author + ", Available: " + available;
    }
}

বিবরণ:

  • ফিল্ড: id, title, author, এবং available ফিল্ডগুলো বইয়ের তথ্য ধারণ করে।
  • getId(), getTitle(), getAuthor(): বইয়ের তথ্য ফেরত দিতে ব্যবহার করা হয়।
  • isAvailable() এবং setAvailable(): বইয়ের বর্তমান অবস্থা চেক এবং সেট করতে ব্যবহার করা হয়।
  • toString(): প্রতিটি বইয়ের তথ্য পাঠযোগ্য ফরম্যাটে প্রদান করে।

ক্লাস ও মেথড ব্যাখ্যা

LibraryManagementSystem (Main UI):

  • এটি একটি JFrame হিসেবে তৈরি করা হয়েছে, যা UI-তে প্রধান উইন্ডো হিসেবে কাজ করে।
  • books নামে একটি ArrayList<Book> রাখা হয়েছে, যা সমস্ত বইয়ের তালিকা সংরক্ষণ করে।

বাটন অপারেশন:

  • Add Book: নতুন বই যুক্ত করে addBook() মেথডের মাধ্যমে।
  • Issue Book: নির্দিষ্ট bookId এর বই ইস্যু করে, যদি বইটি available হয়।
  • Return Book: বই ফেরত দেয় returnBook() মেথডের মাধ্যমে।
  • Display Books: সমস্ত বইয়ের তালিকা প্রদর্শন করে displayBooks() মেথডের মাধ্যমে।

Book ক্লাস:

  • Book ক্লাসে প্রতিটি বইয়ের id, title, author, এবং available স্ট্যাটাস রাখা হয়েছে।

অ্যাপের ফিচারসমূহ

  1. বই সংযোজন: ব্যবহারকারী নতুন বই যুক্ত করতে পারে।
  2. বই ইস্যু করা: যদি বই available থাকে, তাহলে বই ইস্যু করা সম্ভব।
  3. বই ফেরত দেওয়া: ইস্যু করা বই ফেরত দেয়া যায়।
  4. বইয়ের তালিকা দেখানো: সকল বইয়ের তালিকা দেখানো হয়, যেখানে বইয়ের প্রাপ্যতা এবং অন্যান্য তথ্য থাকে।

এই লাইব্রেরি ম্যানেজমেন্ট সিস্টেম এর মাধ্যমে সহজেই বই ম্যানেজ করা যাবে, যা লাইব্রেরি ব্যবস্থাপনায় কার্যকরী হবে।

Content added By
Promotion

Are you sure to start over?

Loading...