用java编写大学图书馆管理系统
时间: 2023-11-27 15:02:38 浏览: 57
好的,下面是一个简单的大学图书馆管理系统的Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class LibrarySystem {
private List<Book> books; // 图书列表
private List<User> users; // 用户列表
private User currentUser; // 当前用户
public LibrarySystem() {
books = new ArrayList<>();
users = new ArrayList<>();
}
public void run() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("欢迎使用大学图书馆管理系统!");
System.out.println("请选择操作:");
System.out.println("1. 登录");
System.out.println("2. 注册");
System.out.println("3. 退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
login(scanner);
break;
case 2:
register(scanner);
break;
case 3:
System.out.println("再见!");
return;
default:
System.out.println("无效的选择!");
break;
}
}
}
private void login(Scanner scanner) {
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
for (User user : users) {
if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
currentUser = user;
System.out.println("登录成功!");
showMainMenu(scanner);
return;
}
}
System.out.println("用户名或密码错误!");
}
private void register(Scanner scanner) {
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
User user = new User(username, password);
users.add(user);
System.out.println("注册成功!");
}
private void showMainMenu(Scanner scanner) {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 借书");
System.out.println("2. 还书");
System.out.println("3. 查询图书");
System.out.println("4. 退出登录");
int choice = scanner.nextInt();
switch (choice) {
case 1:
borrowBook(scanner);
break;
case 2:
returnBook(scanner);
break;
case 3:
searchBook(scanner);
break;
case 4:
currentUser = null;
System.out.println("已退出登录!");
return;
default:
System.out.println("无效的选择!");
break;
}
}
}
private void borrowBook(Scanner scanner) {
System.out.println("请输入要借阅的图书名称:");
String bookName = scanner.next();
for (Book book : books) {
if (book.getName().equals(bookName) && !book.isBorrowed()) {
book.setBorrowed(true);
currentUser.addBorrowedBook(book);
System.out.println("借书成功!");
return;
}
}
System.out.println("该图书不存在或已被借出!");
}
private void returnBook(Scanner scanner) {
System.out.println("请输入要归还的图书名称:");
String bookName = scanner.next();
for (Book book : books) {
if (book.getName().equals(bookName) && book.isBorrowed() && book.getBorrower().equals(currentUser)) {
book.setBorrowed(false);
currentUser.removeBorrowedBook(book);
System.out.println("还书成功!");
return;
}
}
System.out.println("该图书不存在或您没有借阅该图书!");
}
private void searchBook(Scanner scanner) {
System.out.println("请输入要查询的图书名称:");
String bookName = scanner.next();
List<Book> result = new ArrayList<>();
for (Book book : books) {
if (book.getName().contains(bookName)) {
result.add(book);
}
}
if (result.size() == 0) {
System.out.println("未找到相关图书!");
} else {
System.out.println("查询结果如下:");
for (Book book : result) {
System.out.println(book);
}
}
}
public static void main(String[] args) {
LibrarySystem librarySystem = new LibrarySystem();
// 添加图书
librarySystem.books.add(new Book("Java编程思想", "Bruce Eckel", false, null));
librarySystem.books.add(new Book("Effective Java", "Joshua Bloch", false, null));
librarySystem.books.add(new Book("Head First 设计模式", "Eric Freeman & Elisabeth Freeman", false, null));
librarySystem.run();
}
}
class User {
private String username; // 用户名
private String password; // 密码
private List<Book> borrowedBooks; // 已借阅的图书列表
public User(String username, String password) {
this.username = username;
this.password = password;
borrowedBooks = new ArrayList<>();
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public List<Book> getBorrowedBooks() {
return borrowedBooks;
}
public void addBorrowedBook(Book book) {
borrowedBooks.add(book);
}
public void removeBorrowedBook(Book book) {
borrowedBooks.remove(book);
}
}
class Book {
private String name; // 名称
private String author; // 作者
private boolean borrowed; // 是否被借出
private User borrower; // 借阅者
public Book(String name, String author, boolean borrowed, User borrower) {
this.name = name;
this.author = author;
this.borrowed = borrowed;
this.borrower = borrower;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
public boolean isBorrowed() {
return borrowed;
}
public void setBorrowed(boolean borrowed) {
this.borrowed = borrowed;
}
public User getBorrower() {
return borrower;
}
public void setBorrower(User borrower) {
this.borrower = borrower;
}
@Override
public String toString() {
return name + " - " + author + (borrowed ? "(已借出)" : "");
}
}
```
这个程序实现了基本的登录、注册、借书、还书、查询图书等功能。你可以根据自己的需求进行修改和扩展。