使用 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 的更通用的图书馆管理系统保证了改进的功能和更令工作人员和读者放心的体验。
广告