java借书卡程序设计代码
设计一个简单的Java借书卡程序,包括借书、还书和查询借阅情况的功能。
javaimport java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
class Book {
private String title;
private boolean available;
public Book(String title) {
this.title = title;
this.available = true;
}
public String getTitle() {
return title;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
}
class Library {
private Map<String, Book> bookCatalog;
private Map<String, ArrayList<Book>> userBooks;
public Library() {
this.bookCatalog = new HashMap<>();
this.userBooks = new HashMap<>();
}
public void addBook(String title) {
Book book = new Book(title);
bookCatalog.put(title, book);
}
public void lendBook(String username, String title) {
if (bookCatalog.containsKey(title) && bookCatalog.get(title).isAvailable()) {
Book book = bookCatalog.get(title);
book.setAvailable(false);
userBooks.computeIfAbsent(username, k -> new ArrayList<>()).add(book);
System.out.println("借书成功!书名:" + title);
} else {
System.out.println("借书失败,该书不可用或不存在!");
}
}
public void returnBook(String username, String title) {
if (userBooks.containsKey(username)) {
ArrayList<Book> userBookList = userBooks.get(username);
for (Book book : userBookList) {
if (book.getTitle().equals(title)) {
book.setAvailable(true);
userBookList.remove(book);
System.out.println("还书成功!书名:" + title);
return;
}
}
}
System.out.println("还书失败,未找到该书或该用户未借阅!");
}
public void displayBorrowedBooks(String username) {
if (userBooks.containsKey(username)) {
System.out.println(username + "借阅的书籍:");
for (Book book : userBooks.get(username)) {
System.out.println(book.getTitle());
}
} else {
System.out.println(username + "未借阅任何书籍。");
}
}
}
public class LibrarySystem {
public static void main(String[] args) {
Library library = new Library();
// 添加一些书籍
library.addBook("Java入门");
library.addBook("数据结构与算法");
library.addBook("设计模式");
// 模拟用户
Scanner scanner = new Scanner(System.in);
System.out.print("请输入用户名: ");
String username = scanner.nextLine();
// 模拟借书和还书操作
library.lendBook(username, "Java入门");
library.lendBook(username, "数据结构与算法");
// 显示用户借阅的书籍
library.displayBorrowedBooks(username);
// 模拟还书
library.returnBook(username, "Java入门");
// 再次显示用户借阅的书籍
library.displayBorrowedBooks(username);
}
}
这个简单的图书馆系统使用了类来表示书籍和图书馆,用户可以借书、还书,并查询借阅情况。
书籍信息的显示: 在Library
类中添加方法,用于显示所有可用的书籍信息。
javapublic void displayAvailableBooks() {
System.out.println("可用的书籍:");
for (Map.Entry<String, Book> entry : bookCatalog.entrySet()) {
if (entry.getValue().isAvailable()) {
System.out.println(entry.getValue().getTitle());
}
}
}
用户信息的显示: 在Library
类中添加方法,用于显示某用户的借阅历史。
javapublic void displayUserHistory(String username) {
if (userBooks.containsKey(username)) {
System.out.println(username + "的借阅历史:");
for (Book book : userBooks.get(username)) {
System.out.println(book.getTitle());
}
} else {
System.out.println(username + "没有借阅历史。");
}
}
异常处理: 在用户输入的地方添加异常处理,以确保程序的稳定性。
javatry {
// 用户输入代码
} catch (InputMismatchException e) {
System.out.println("输入格式错误,请输入正确的格式。");
}
你可以根据自己的需求扩展和改进这个简单的图书馆系统。