使用 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 的更通用的圖書館管理系統保證了改進的功能和更令工作人員和讀者放心的體驗。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP