使用 Java 中的 Switch 語句的圖書館管理系統


在當今科技時代,圖書館已經認識到圖書館管理系統作為有效處理其資料的寶貴資源的廣泛能力。為了最佳化這些系統,必須利用強大的程式語言(如 Java),它可以幫助建立高效且使用者友好的解決方案。作為示例,本文將使用 Java 中的 switch 語句來演示圖書館管理系統的實現。從而使圖書館能夠更好地組織和最佳化其資源,以滿足其使用者不斷增長的需求。

圖書館管理選單

我們將生成的備選方案如下所示:

  • 退出應用程式

  • 新增新書

  • 升級圖書數量

  • 搜尋圖書

  • 顯示所有圖書

  • 註冊學生

  • 顯示所有已註冊學生

  • 借書

  • 還書

實現

除了我們的應用程式(主)類(負責執行我們的迷你專案)之外,我們還將建立以下五個檔案:

  • 圖書館

  • 學生

  • 學生列表

  • 圖書

  • 圖書列表

示例

檔案:book.java

// Java Program to Illustrate book Class that
// takes Input from the books and related information

package College;

// Importing required classes
import java.util.Scanner;

// Class
public class book {

   // Class data members
   public int sNo;
   public String bookName;
   public String authorName;
   public int bookQty;
   public int bookQtyCopy;

   // Creating object of Scanner class to
   // read input from users
   Scanner input = new Scanner(System.in);

   // Method
   // To add book details
   public book() {
      // Display message for taking input later
      // taking input via
      // nextInt() and nextLine() standard methods
      System.out.println("Enter Serial No of Book:");
      this.sNo = input.nextInt();
      input.nextLine();

      System.out.println("Enter Book Name:");
      this.bookName = input.nextLine();

      System.out.println("Enter Author Name:");
      this.authorName = input.nextLine();

      System.out.println("Enter Quantity of Books:");
      this.bookQty = input.nextInt();
      bookQtyCopy = this.bookQty;
   }
}

檔案:books.java

// Java Program to Illustrate books class
// To Do all the Operations related to Books such as
// add, check-in, check-out,Valid books,Update books

// Importing required classes
import java.util.Scanner;

// CLass
public class books {

   // Class data members
   book theBooks[] = new book[50];
   public static int count;

   Scanner input = new Scanner(System.in);

   // Method 1
   // To compare books
   public int compareBookObjects(book b1, book b2) {

      // If book name matches
      if (b1.bookName.equalsIgnoreCase(b2.bookName)) {

         // Printing book exists
         System.out.println(
            "Book of this Name Already Exists.");
         return 0;
      }

      // if book serial matches
      if (b1.sNo == b2.sNo) {

         // Print book exists
         System.out.println(
            "Book of this Serial No Already Exists.");

         return 0;
      }
      return 1;
   }

   // Method 2
   // To add book
   public void addBook(book b) {

      for (int i = 0; i < count; i++) {

         if (this.compareBookObjects(b, this.theBooks[i])
            == 0)
            return;
      }

      if (count < 50) {

         theBooks[count] = b;
         count++;
      } else {

         System.out.println(
            "No Space to Add More Books.");
      }
   }

   // Method 3
   // To search book by serial number
   public void searchBySno() {

      // Display message
      System.out.println(
         "\t\t\t\tSEARCH BY SERIAL NUMBER\n");

      // Class data members
      int sNo;
      System.out.println("Enter Serial No of Book:");
      sNo = input.nextInt();

      int flag = 0;
      System.out.println(
         "S.No\t\tName\t\tAuthor\t\tAvailable Qty\t\tTotal Qty");

      for (int i = 0; i < count; i++) {
         if (sNo == theBooks[i].sNo) {
            System.out.println(
               theBooks[i].sNo + "\t\t"
               + theBooks[i].bookName + "\t\t"
               + theBooks[i].authorName + "\t\t"
               + theBooks[i].bookQtyCopy + "\t\t"
               + theBooks[i].bookQty);
            flag++;
            return;
         }
      }
      if (flag == 0)
         System.out.println("No Book for Serial No "
                  + sNo + " Found.");
   }

   // Method 4
   // To search author by name
   public void searchByAuthorName() {

      // Display message
      System.out.println(
         "\t\t\t\tSEARCH BY AUTHOR'S NAME");

      input.nextLine();

      System.out.println("Enter Author Name:");
      String authorName = input.nextLine();

      int flag = 0;

      System.out.println(
         "S.No\t\tName\t\tAuthor\t\tAvailable Qty\t\tTotal Qty");

      for (int i = 0; i < count; i++) {

         // if author matches any of its book
         if (authorName.equalsIgnoreCase(
            theBooks[i].authorName)) {

            // Print below corresponding credentials
            System.out.println(
               theBooks[i].sNo + "\t\t"
               + theBooks[i].bookName + "\t\t"
               + theBooks[i].authorName + "\t\t"
               + theBooks[i].bookQtyCopy + "\t\t"
               + theBooks[i].bookQty);
            flag++;
         }
      }

      // Else no book matches for author
      if (flag == 0)
         System.out.println("No Books of " + authorName
                  + " Found.");
   }

   // Method 5
   // To display all books
   public void showAllBooks() {

      System.out.println("\t\t\t\tSHOWING ALL BOOKS\n");
      System.out.println(
         "S.No\t\tName\t\tAuthor\t\tAvailable Qty\t\tTotal Qty");

      for (int i = 0; i < count; i++) {

         System.out.println(
            theBooks[i].sNo + "\t\t"
            + theBooks[i].bookName + "\t\t"
            + theBooks[i].authorName + "\t\t"
            + theBooks[i].bookQtyCopy + "\t\t"
            + theBooks[i].bookQty);
      }
   }

   // Method 6
   // To edit the book
   public void upgradeBookQty() {

      System.out.println(
         "\t\t\t\tUPGRADE QUANTITY OF A BOOK\n");
      System.out.println("Enter Serial No of Book");

      int sNo = input.nextInt();

      for (int i = 0; i < count; i++) {

         if (sNo == theBooks[i].sNo) {

            // Display message
            System.out.println(
               "Enter No of Books to be Added:");

            int addingQty = input.nextInt();
            theBooks[i].bookQty += addingQty;
            theBooks[i].bookQtyCopy += addingQty;

            return;
         }
      }
   }

   // Method 7
   // To create menu
   public void dispMenu() {

      // Displaying menu
      System.out.println(
"----------------------------------------------------------------------------------------------------------");
      System.out.println("Press 1 to Add new Book.");
      System.out.println("Press 0 to Exit Application.");
      System.out.println(
         "Press 2 to Upgrade Quantity of a Book.");
      System.out.println("Press 3 to Search a Book.");
      System.out.println("Press 4 to Show All Books.");
      System.out.println("Press 5 to Register Student.");
      System.out.println(
         "Press 6 to Show All Registered Students.");
      System.out.println("Press 7 to Check Out Book. ");
      System.out.println("Press 8 to Check In Book");
      System.out.println(
"-------------------------------------------------------------------------------------------------------");
   }

   // Method 8
   // To search the library
   public int isAvailable(int sNo) {

      for (int i = 0; i < count; i++) {
         if (sNo == theBooks[i].sNo) {
            if (theBooks[i].bookQtyCopy > 0) {

               System.out.println(
                  "Book is Available.");
               return i;
            }
            System.out.println("Book is Unavailable");
            return -1;
         }
      }

      System.out.println("No Book of Serial Number "
               + " Available in Library.");
      return -1;
   }

   // Method 9
   // To remove the book from the library
   public book checkOutBook() {

      System.out.println(
         "Enter Serial No of Book to be Checked Out.");
      int sNo = input.nextInt();

      int bookIndex = isAvailable(sNo);

      if (bookIndex != -1) {
         theBooks[bookIndex].bookQtyCopy--;
         return theBooks[bookIndex];
      }
      return null;
   }

   // Method 10
   // To add the Book to the Library
   public void checkInBook(book b) {
      for (int i = 0; i < count; i++) {
         if (b.equals(theBooks[i])) {
            theBooks[i].bookQtyCopy++;
            return;
         }
      }
   }
}

檔案:Student.java

// Java Program to Illustrate Student Class
// to take Input from the student and related Information

// Importing required classes
import java.util.Scanner;

// Class
public class student {

   // Class member variables
   String studentName;
   String regNum;

   book borrowedBooks[] = new book[3];
   public int booksCount = 0;

   // Creating object of Scanner class to
   // take input from user
   Scanner input = new Scanner(System.in);

   // Constructor
   public student() {
      // Print statement
      System.out.println("Enter Student Name:");

      // This keywords refers to current instance
      this.studentName = input.nextLine();

      // Print statement
      System.out.println("Enter Registration Number:");
      this.regNum = input.nextLine();
   }
}

檔案:Students.java

// Java Program to Illustrate students Class
// To Do all the Operations related to students:
// add Students,check-in books,check out books,ValidStudent

// Importing required classes
import java.util.Scanner;

// Class
public class students {

   // Creating objects of Scanner and students class
   Scanner input = new Scanner(System.in);
   student theStudents[] = new student[50];
   
   public static int count = 0;

   // Method 1
   // To add books
   public void addStudent(student s) {
      for (int i = 0; i < count; i++) {

         if (s.regNum.equalsIgnoreCase(
            theStudents[i].regNum)) {

            // Print statement
            System.out.println(
               "Student of Reg Num " + s.regNum
               + " is Already Registered.");

            return;
         }
      }

      if (count <= 50) {
         theStudents[count] = s;
         count++;
      }
   }

   // Method 2
   // Displaying all students
   public void showAllStudents() {
      // Printing student name and
      // corresponding registered number
      System.out.println("Student Name\t\tReg Number");
      for (int i = 0; i < count; i++) {

         System.out.println(theStudents[i].studentName
                     + "\t\t"
                     + theStudents[i].regNum);
      }
   }
   
   // Method 3
   // To check the Student
   public int isStudent() {
      // Display message only
      System.out.println("Enter Reg Number:");

      String regNum = input.nextLine();

      for (int i = 0; i < count; i++) {

         if (theStudents[i].regNum.equalsIgnoreCase(regNum)) {
            return i;
         }
      }

      // Print statements
      System.out.println("Student is not Registered.");
      System.out.println("Get Registered First.");

      return -1;
   }

   // Method 4
   // To remove the book
   public void checkOutBook(books book) {
      int studentIndex = this.isStudent();

      if (studentIndex != -1) {
         System.out.println("checking out");

         book.showAllBooks();
         book b = book.checkOutBook();

         System.out.println("checking out");
         if (b != null) {

            if (theStudents[studentIndex].booksCount
               <= 3) {

               System.out.println("adding book");
               theStudents[studentIndex].borrowedBooks
                  [theStudents[studentIndex]
                     .booksCount]
                  = b;
               theStudents[studentIndex].booksCount++;

               return;
            } else {

               System.out.println("Student Can not Borrow more than 3 Books.");
               return;
            }
         }
         System.out.println("Book is not Available.");
      }
   }

   // Method 5
   // To add the book
   public void checkInBook(books book) {
      int studentIndex = this.isStudent();
      if (studentIndex != -1) {

         // Printing credentials corresponding to student
         System.out.println(
            "S.No\t\t\tBook Name\t\t\tAuthor Name");

         student s = theStudents[studentIndex];

         for (int i = 0; i < s.booksCount; i++) {

            System.out.println(
               s.borrowedBooks[i].sNo + "\t\t\t"
               + s.borrowedBooks[i].bookName + "\t\t\t"
               + s.borrowedBooks[i].authorName);
         }

         // Display message only
         System.out.println(
            "Enter Serial Number of Book to be Checked In:");

         int sNo = input.nextInt();

         for (int i = 0; i < s.booksCount; i++) {
            if (sNo == s.borrowedBooks[i].sNo) {
               book.checkInBook(s.borrowedBooks[i]);
               s.borrowedBooks[i] = null;

               return;
            }
         }

         System.out.println("Book of Serial No " + sNo+ "not Found");
      }
   }
}

檔案:Library.java

// Java Program to Illustrate Application Class
// To Create The Menu For the Program

// Importing required classes
import java.util.Scanner;

// Class
public class Library {

   // Main driver method
   public static void main(String[] args) {
      // Creating object of Scanner class
      // to take input from user
      Scanner input = new Scanner(System.in);

      // Displaying menu
      System.out.println(
         "********************Welcome to the Library!********************");
      System.out.println("Select From The Following Options:");
      System.out.println(
         "**********************************************************************");

      // Creating object of book class
      books ob = new books();
      // Creating object of students class
      students obStudent = new students();

      int choice;
      int searchChoice;

      // Creating menu
      // using do-while loop
      do {

         ob.dispMenu();
         choice = input.nextInt();

         // Switch case
         switch (choice) {

            // Case
         case 1:
            book b = new book();
            ob.addBook(b);
            break;

            // Case
         case 2:
            ob.upgradeBookQty();
            break;

         // Case
         case 3:

            System.out.println(
               " press 1 to Search with Book Serial No.");
            System.out.println(
               " Press 2 to Search with Book's Author Name.");
            searchChoice = input.nextInt();

            // Nested switch
            switch (searchChoice) {

               // Case
            case 1:
               ob.searchBySno();
               break;

               // Case
            case 2:
               ob.searchByAuthorName();
            }
            break;

            // Case
         case 4:
            ob.showAllBooks();
            break;

            // Case
         case 5:
            student s = new student();
            obStudent.addStudent(s);
            break;

            // Case
         case 6:
            obStudent.showAllStudents();
            break;

            // Case
         case 7:
            obStudent.checkOutBook(ob);
            break;

            // Case
         case 8:
            obStudent.checkInBook(ob);
            break;

            // Default case that will execute for sure
            // if above cases does not match
         default:

            // Print statement
            System.out.println("ENTER BETWEEN 0 TO 8.");
         }

      }

      // Checking condition at last where we are
      // checking case entered value is not zero
      while (choice != 0);
   }
}

輸出

新增圖書

********************Welcome to the Library!********************
                   Select From The Following Options:
***************************************************************
---------------------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
--------------------------------------------------------------
1
Enter Serial No of Book:
1
Enter Book Name:
Fate- the most unreliable thing
Enter Author Name:
Aashi Gupta
Enter Quantity of Books:
10

註冊學生

------------------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
------------------------------------------------------------
5
Enter Student Name:
Anubhav Gupta
Enter Registration Number:
0001

借書

-----------------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
-----------------------------------------------------------
7
Enter Registration Number:
0001
checking out
                            SHOWING ALL BOOKS
S No           Name                    Author             Available Quantity
1            Fate- the most            Aashi Gupta              10
             Unreliable thing
Enter Serial No of Book to be Checked Out.
1
Book is Available.
checking out
adding book

顯示所有圖書

---------------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
--------------------------------------------------------
4
                         SHOWING ALL BOOKS
S No             Name                Author             Available Qty
1             Fate- the most        Aashi Gupta             9
              Unreliable thing

還書

------------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
----------------------------------------------------
8
Enter Registration Number:
0001
S No           Book Name                                     Author Name
1             Fate- the most unreliable thing                Aashi Gupta
Enter Serial Number of Book to be Checked In:
1

更新圖書數量

--------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
--------------------------------------------------
2
                       UPGRADE QUANTITY OF BOOK
Enter Serial No of Book:
1
Enter No of Books to be Added:
1

搜尋圖書

--------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
--------------------------------------------------
3
Press 1 to Search with Book Serial No.
Press 2 to Search with Book’s Author Name.
2
                          SEARCH BY AUTHOR’S NAME
Enter Author Name:
Aashi Gupta
S No         Name         Author          Available Qty           Total Qty
1            Fate         Aashi Gupta       11                      11

顯示所有已註冊學生

------------------------------------------------
Press 0 to Exit Application.
Press 1 to Add new Book. 
Press 2 to Upgrade Quantity of Book.
Press 3 to Search a Book.
Press 4 to Show All Books.
Press 5 to Register Student.
Press 6 to Show All Registered Students.
Press 7 to Check Out Book.
Press 8 to Check In Book.
------------------------------------------------
6
Student Name                          Registration Number
Anubhav Gupta                              0001

結論

Java 中的 switch 語句可用於圖書館管理系統,以獲得全面的使用者體驗。Java 的功能可以用來建立一個複雜但使用者友好的平臺,能夠自動化管理職責,同時確保滿足安全標準。結果將是一個創新的解決方案,使圖書館工作人員能夠輕鬆管理資源,同時為客戶/使用者/讀者分配更多時間和資源,以提供令人滿意的體驗。透過巧妙地整合 switch 語句,可以確保圖書館的系統具有額外的複雜性層,以幫助增強穩健性。基於 Java 的更通用的圖書館管理系統保證了改進的功能和更令工作人員和讀者放心的體驗。

更新於:2023-07-28

275 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.