java借书卡程序设计代码

设计一个简单的Java借书卡程序,包括借书、还书和查询借阅情况的功能。

java
import 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类中添加方法,用于显示所有可用的书籍信息。

java
public void displayAvailableBooks() { System.out.println("可用的书籍:"); for (Map.Entry<String, Book> entry : bookCatalog.entrySet()) { if (entry.getValue().isAvailable()) { System.out.println(entry.getValue().getTitle()); } } }

用户信息的显示:Library类中添加方法,用于显示某用户的借阅历史。

java
public 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 + "没有借阅历史。"); } }

异常处理: 在用户输入的地方添加异常处理,以确保程序的稳定性。

java
try { // 用户输入代码 } catch (InputMismatchException e) { System.out.println("输入格式错误,请输入正确的格式。"); }

你可以根据自己的需求扩展和改进这个简单的图书馆系统。

标签