使用 Java 中的 Switch 语句的图书馆管理系统
在当今技术时代,图书馆已经认识到图书馆管理系统的广泛功能,将其作为有效处理其材料的宝贵资源。为了优化这些系统,必须使用 Java 等强大的编程语言,它可以帮助创建高效且用户友好的解决方案。作为一个例子,本文将使用 Java 中的 switch 语句来演示图书馆管理系统的实现。从而使图书馆能够更好地组织和优化资源,以满足用户日益增长的需求。
图书馆管理菜单
我们将生成的替代方案如下,如下所示 -
退出应用程序
添加新书
升级图书数量
搜索图书
显示所有图书
注册学生
显示所有注册学生
借阅图书
签入图书
实施
除了负责执行我们的小项目的应用程序(主)类之外,我们将创建以下五个文件 −
Library
Student
Students
book
books
示例
文件:book.java
// Java 程序用于说明 book 类
// 从书籍和相关信息获取输入
package College;
// 导入所需的类
import java.util.Scanner;
// Class
public class book {
// 类数据成员
public int sNo;
public String bookName;
public String authorName;
public int bookQty;
public int bookQtyCopy;
// 创建 Scanner 类的对象以
// 读取用户的输入
Scanner input = new Scanner(System.in);
// 方法
// 添加书籍详细信息
public book() {
// 显示消息以便稍后输入
// 通过以下方法输入
// nextInt() 和 nextLine() 标准方法
System.out.println("输入书籍序列号:");
this.sNo = input.nextInt();
input.nextLine();
System.out.println("输入书籍名称:");
this.bookName = input.nextLine();
System.out.println("输入作者姓名:");
this.authorName = input.nextLine();
System.out.println("输入书籍数量:");
this.bookQty = input.nextInt();
bookQtyCopy = this.bookQty;
}
}
文件:books.java
// Java 程序用于说明书籍类
// 执行与书籍相关的所有操作,例如
// 添加、签入、签出、验证书籍、更新书籍
// 导入所需的类
import java.util.Scanner;
// 类
public class books {
// 类数据成员
book theBooks[] = new book[50];
public static int count;
Scanner input = new Scanner(System.in);
// 方法 1
// 比较书籍
public int compareBookObjects(book b1, book b2) {
// 如果书名匹配
if (b1.bookName.equalsIgnoreCase(b2.bookName)) {
// 打印书存在
System.out.println(
"此名称的书已存在。");
return 0;
}
// 如果书序列号匹配
if (b1.sNo == b2.sNo) {
// 打印书存在
System.out.println(
"此序列号的书已存在。");
return 0;
}
return 1;
}
// 方法 2
// 添加书籍
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.");
}
}
// 方法 3
// 通过序列号搜索书籍
public void searchBySno() {
// 显示消息
System.out.println(
"\t\t\t\t按序列号搜索\n");
// 类数据成员
int sNo;
System.out.println("输入书籍序列号:");
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.");
}
// 方法 4
// 按姓名搜索作者
public void searchByAuthorName() {
// 显示消息
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 (authorName.equalsIgnoreCase(
theBooks[i].authorName)) {
// 打印以下相应的凭证
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++;
}
}
// 否则没有与作者匹配的书籍
if (flag == 0)
System.out.println("No Books of " + authorName
+ " Found.");
}
// 方法 5
// 显示所有书籍
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);
}
}
// 方法 6
// 编辑书籍
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) {
// 显示消息
System.out.println(
"Enter No of Books to be Added:");
int addingQty = input.nextInt();
theBooks[i].bookQty += addingQty;
theBooks[i].bookQtyCopy += addingQty;
return;
}
}
}
// 方法 7
// 创建菜单
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(
"-------------------------------------------------------------------------------------------------------");
}
// 方法 8
// 搜索库
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;
}
// 方法 9
// 从图书馆移除图书
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;
}
// 方法 10
// 将图书添加到图书馆
public void checkInBook(book b) {
for (int i = 0; i < count; i++) {
if (b.equals(theBooks[i])) {
theBooks[i].bookQtyCopy++;
return;
}
}
}
}
文件:Student.java
// Java 程序用于说明学生班级
// 获取学生的输入和相关信息
// 导入所需的班级
import java.util.Scanner;
// Class
public class student {
// 类成员变量
String studentName;
String regNum;
book borrowedBooks[] = new book[3];
public int booksCount = 0;
// 创建 Scanner 类的对象来
// 从用户那里获取输入
Scanner input = new Scanner(System.in);
// 构造函数
public student() {
// 打印语句
System.out.println("输入学生姓名:");
// 此关键字引用当前实例
this.studentName = input.nextLine();
// 打印语句
System.out.println("输入注册号:");
this.regNum = input.nextLine();
}
}
文件:Students.java
// Java 程序用于说明学生类
// 执行与学生相关的所有操作:
// 添加学生、签入图书、借出图书、ValidStudent
// 导入所需的类
import java.util.Scanner;
// 类
public class students {
// 创建 Scanner 和 students 类的对象
Scanner input = new Scanner(System.in);
student theStudents[] = new student[50];
public static int count = 0;
// 方法 1
// 添加图书
public void addStudent(student s) {
for (int i = 0; i < count; i++) {
if (s.regNum.equalsIgnoreCase(
theStudents[i].regNum)) {
// 打印语句
System.out.println(
"Student of Reg Num " + s.regNum
+ " is Already Registered.");
return;
}
}
if (count <= 50) {
theStudents[count] = s;
count++;
}
}
// 方法 2
// 显示所有学生
public void showAllStudents() {
// 打印学生姓名及
// 对应的注册号码
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);
}
}
// 方法 3
// 检查学生
public int isStudent() {
// 仅显示消息
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;
}
}
// 打印语句
System.out.println("Student is not Registered.");
System.out.println("Get Registered First.");
return -1;
}
// 方法 4
// 删除书籍
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.");
}
}
// 方法 5
// 添加书籍
public void checkInBook(books book) {
int studentIndex = this.isStudent();
if (studentIndex != -1) {
// 打印学生对应的凭证
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);
}
// 仅显示消息
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 程序用于说明应用程序类
// 为程序创建菜单
// 导入所需的类
import java.util.Scanner;
// 类
public class Library {
// 主驱动程序方法
public static void main(String[] args) {
// 创建 Scanner 类的对象
// 获取用户的输入
Scanner input = new Scanner(System.in);
// 显示菜单
System.out.println(
"*******************欢迎来到图书馆!********************");
System.out.println("从以下选项中选择:");
System.out.println(
"**************************************************************************");
// 创建 book 类的对象
books ob = new books();
// 创建学生类的对象
students obStudent = new students();
int choice;
int searchChoice;
// 创建菜单
// 使用 do-while 循环
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();
// 嵌套 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:
// 打印语句
System.out.println("ENTER BETWEEN 0 TO 8.");
}
}
// 最后检查条件
// 检查输入的值是否为零
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 的更通用的图书馆管理系统可确保改进功能,并为员工和顾客提供更多安心。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

