下面是一个基于控制台的简单图书管理系统实现,使用Java面向对象编程,包含基本的图书增删改查功能。
import java.util.ArrayList;
import java.util.Scanner;
class Book {
private String id;
private String title;
private String author;
private double price;
private boolean isBorrowed;
public Book(String id, String title, String author, double price) {
this.id = id;
this.title = title;
this.author = author;
this.price = price;
this.isBorrowed = false;
}
// Getters and Setters
public String getId() {
return id;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPrice() {
return price;
}
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) {
isBorrowed = borrowed;
}
@Override
public String toString() {
return "ID: " + id +
", 书名: " + title +
", 作者: " + author +
", 价格: " + price +
", 状态: " + (isBorrowed ? "已借出" : "可借阅");
}
}
class Library {
private ArrayList<Book> books = new ArrayList<>();
// 添加图书
public void addBook(Book book) {
books.add(book);
System.out.println("添加成功: " + book.getTitle());
}
// 删除图书
public void removeBook(String id) {
for (Book book : books) {
if (book.getId().equals(id)) {
books.remove(book);
System.out.println("删除成功: " + book.getTitle());
return;
}
}
System.out.println("未找到ID为 " + id + " 的图书");
}
// 查找图书
public void findBook(String keyword) {
boolean found = false;
for (Book book : books) {
if (book.getId().contains(keyword) ||
book.getTitle().contains(keyword) ||
book.getAuthor().contains(keyword)) {
System.out.println(book);
found = true;
}
}
if (!found) {
System.out.println("未找到相关图书");
}
}
// 借阅图书
public void borrowBook(String id) {
for (Book book : books) {
if (book.getId().equals(id)) {
if (book.isBorrowed()) {
System.out.println("该书已被借出");
} else {
book.setBorrowed(true);
System.out.println("借阅成功: " + book.getTitle());
}
return;
}
}
System.out.println("未找到ID为 " + id + " 的图书");
}
// 归还图书
public void returnBook(String id) {
for (Book book : books) {
if (book.getId().equals(id)) {
if (book.isBorrowed()) {
book.setBorrowed(false);
System.out.println("归还成功: " + book.getTitle());
} else {
System.out.println("该书未被借出");
}
return;
}
}
System.out.println("未找到ID为 " + id + " 的图书");
}
// 显示所有图书
public void displayAllBooks() {
if (books.isEmpty()) {
System.out.println("图书馆暂无图书");
return;
}
System.out.println("====== 图书列表 ======");
for (Book book : books) {
System.out.println(book);
}
}
}
public class LibraryManagementSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Library library = new Library();
// 初始化一些示例图书
library.addBook(new Book("B001", "Java编程思想", "Bruce Eckel", 108.0));
library.addBook(new Book("B002", "Effective Java", "Joshua Bloch", 78.0));
library.addBook(new Book("B003", "深入理解Java虚拟机", "周志明", 99.0));
while (true) {
System.out.println("\n====== 图书管理系统 ======");
System.out.println("1. 添加图书");
System.out.println("2. 删除图书");
System.out.println("3. 查找图书");
System.out.println("4. 借阅图书");
System.out.println("5. 归还图书");
System.out.println("6. 显示所有图书");
System.out.println("0. 退出系统");
System.out.print("请选择操作: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch (choice) {
case 1:
System.out.print("输入图书ID: ");
String id = scanner.nextLine();
System.out.print("输入书名: ");
String title = scanner.nextLine();
System.out.print("输入作者: ");
String author = scanner.nextLine();
System.out.print("输入价格: ");
double price = scanner.nextDouble();
library.addBook(new Book(id, title, author, price));
break;
case 2:
System.out.print("输入要删除的图书ID: ");
String delId = scanner.nextLine();
library.removeBook(delId);
break;
case 3:
System.out.print("输入查找关键词(ID/书名/作者): ");
String keyword = scanner.nextLine();
library.findBook(keyword);
break;
case 4:
System.out.print("输入要借阅的图书ID: ");
String borrowId = scanner.nextLine();
library.borrowBook(borrowId);
break;
case 5:
System.out.print("输入要归还的图书ID: ");
String returnId = scanner.nextLine();
library.returnBook(returnId);
break;
case 6:
library.displayAllBooks();
break;
case 0:
System.out.println("感谢使用图书管理系统,再见!");
scanner.close();
System.exit(0);
default:
System.out.println("无效选择,请重新输入");
}
}
}
}
功能说明
1.图书类(Book):
包含图书ID、书名、作者、价格和借阅状态
2.提供基本的getter和setter方法
3.图书馆类(Library):
使用ArrayList管理图书集合
实现添加、删除、查找、借阅、归还和显示所有图书功能
4.主程序(LibraryManagementSystem):
5.提供控制台菜单界面
如何运行
1.将代码保存为LibraryManagementSystem.java
2.编译并运行:
javac LibraryManagementSystem.java
java LibraryManagementSystem
系统功能
1,添加图书
2.删除图书
3.查找图书(支持ID、书名、作者搜索)
4.借阅图书
5.归还图书
6.显示所有图书信息
7.退出系统
扩展建议
如果需要进一步完善该系统,可以考虑:
1.使用文件或数据库持久化存储图书数据
2.添加用户登录和管理员权限功能
3.实现图书分类和更复杂的搜索功能
4.添加借阅期限和逾期处理功能
5.使用Swing或JavaFX实现图形界面