Java图书管理基本功能代码怎么写

发布时间:2022-04-27 19:39:01 作者:iii
来源:亿速云 阅读:549

Java图书管理基本功能代码怎么写

目录

  1. 引言
  2. 项目结构
  3. 实体类设计
  4. 数据访问层(DAO)
  5. 业务逻辑层(Service)
  6. 用户界面层(UI)
  7. 主程序
  8. 总结

引言

图书管理系统是一个常见的管理系统,广泛应用于图书馆、书店等场所。本文将详细介绍如何使用Java编写一个简单的图书管理系统,涵盖基本功能如添加图书、删除图书、查询图书、借阅图书和归还图书等。

项目结构

在开始编写代码之前,我们需要规划好项目的结构。一个典型的Java项目通常包括以下几个部分:

实体类设计

首先,我们需要定义系统中的核心实体类。在这个图书管理系统中,最基本的实体类是Book(图书)和User(用户)。

Book类

public class Book {
    private String id; // 图书编号
    private String title; // 书名
    private String author; // 作者
    private boolean isBorrowed; // 是否被借出

    // 构造方法
    public Book(String id, String title, String author) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.isBorrowed = false;
    }

    // Getter和Setter方法
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id='" + id + '\'' +
                ", title='" + title + '\'' +
                ", author='" + author + '\'' +
                ", isBorrowed=" + isBorrowed +
                '}';
    }
}

User类

public class User {
    private String id; // 用户编号
    private String name; // 用户名
    private List<Book> borrowedBooks; // 借阅的图书列表

    // 构造方法
    public User(String id, String name) {
        this.id = id;
        this.name = name;
        this.borrowedBooks = new ArrayList<>();
    }

    // Getter和Setter方法
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Book> getBorrowedBooks() {
        return borrowedBooks;
    }

    public void setBorrowedBooks(List<Book> borrowedBooks) {
        this.borrowedBooks = borrowedBooks;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", borrowedBooks=" + borrowedBooks +
                '}';
    }
}

数据访问层(DAO)

数据访问层(DAO)负责与数据库交互,执行增删改查操作。在这个简单的图书管理系统中,我们可以使用内存中的集合来模拟数据库。

BookDAO类

import java.util.ArrayList;
import java.util.List;

public class BookDAO {
    private List<Book> books;

    // 构造方法
    public BookDAO() {
        this.books = new ArrayList<>();
    }

    // 添加图书
    public void addBook(Book book) {
        books.add(book);
    }

    // 删除图书
    public void deleteBook(String id) {
        books.removeIf(book -> book.getId().equals(id));
    }

    // 查询所有图书
    public List<Book> getAllBooks() {
        return books;
    }

    // 根据ID查询图书
    public Book getBookById(String id) {
        for (Book book : books) {
            if (book.getId().equals(id)) {
                return book;
            }
        }
        return null;
    }

    // 借阅图书
    public void borrowBook(String id) {
        Book book = getBookById(id);
        if (book != null) {
            book.setBorrowed(true);
        }
    }

    // 归还图书
    public void returnBook(String id) {
        Book book = getBookById(id);
        if (book != null) {
            book.setBorrowed(false);
        }
    }
}

UserDAO类

import java.util.ArrayList;
import java.util.List;

public class UserDAO {
    private List<User> users;

    // 构造方法
    public UserDAO() {
        this.users = new ArrayList<>();
    }

    // 添加用户
    public void addUser(User user) {
        users.add(user);
    }

    // 删除用户
    public void deleteUser(String id) {
        users.removeIf(user -> user.getId().equals(id));
    }

    // 查询所有用户
    public List<User> getAllUsers() {
        return users;
    }

    // 根据ID查询用户
    public User getUserById(String id) {
        for (User user : users) {
            if (user.getId().equals(id)) {
                return user;
            }
        }
        return null;
    }

    // 用户借阅图书
    public void borrowBook(String userId, String bookId) {
        User user = getUserById(userId);
        if (user != null) {
            Book book = new BookDAO().getBookById(bookId);
            if (book != null && !book.isBorrowed()) {
                user.getBorrowedBooks().add(book);
                new BookDAO().borrowBook(bookId);
            }
        }
    }

    // 用户归还图书
    public void returnBook(String userId, String bookId) {
        User user = getUserById(userId);
        if (user != null) {
            Book book = new BookDAO().getBookById(bookId);
            if (book != null && book.isBorrowed()) {
                user.getBorrowedBooks().remove(book);
                new BookDAO().returnBook(bookId);
            }
        }
    }
}

业务逻辑层(Service)

业务逻辑层(Service)负责处理业务逻辑,调用DAO层的方法。在这一层,我们可以定义一些业务规则和逻辑。

BookService类

import java.util.List;

public class BookService {
    private BookDAO bookDAO;

    // 构造方法
    public BookService() {
        this.bookDAO = new BookDAO();
    }

    // 添加图书
    public void addBook(Book book) {
        bookDAO.addBook(book);
    }

    // 删除图书
    public void deleteBook(String id) {
        bookDAO.deleteBook(id);
    }

    // 查询所有图书
    public List<Book> getAllBooks() {
        return bookDAO.getAllBooks();
    }

    // 根据ID查询图书
    public Book getBookById(String id) {
        return bookDAO.getBookById(id);
    }

    // 借阅图书
    public void borrowBook(String id) {
        bookDAO.borrowBook(id);
    }

    // 归还图书
    public void returnBook(String id) {
        bookDAO.returnBook(id);
    }
}

UserService类

import java.util.List;

public class UserService {
    private UserDAO userDAO;

    // 构造方法
    public UserService() {
        this.userDAO = new UserDAO();
    }

    // 添加用户
    public void addUser(User user) {
        userDAO.addUser(user);
    }

    // 删除用户
    public void deleteUser(String id) {
        userDAO.deleteUser(id);
    }

    // 查询所有用户
    public List<User> getAllUsers() {
        return userDAO.getAllUsers();
    }

    // 根据ID查询用户
    public User getUserById(String id) {
        return userDAO.getUserById(id);
    }

    // 用户借阅图书
    public void borrowBook(String userId, String bookId) {
        userDAO.borrowBook(userId, bookId);
    }

    // 用户归还图书
    public void returnBook(String userId, String bookId) {
        userDAO.returnBook(userId, bookId);
    }
}

用户界面层(UI)

用户界面层(UI)负责与用户交互,提供命令行界面或图形界面。在这个简单的图书管理系统中,我们使用命令行界面。

LibraryUI类

import java.util.List;
import java.util.Scanner;

public class LibraryUI {
    private BookService bookService;
    private UserService userService;
    private Scanner scanner;

    // 构造方法
    public LibraryUI() {
        this.bookService = new BookService();
        this.userService = new UserService();
        this.scanner = new Scanner(System.in);
    }

    // 启动系统
    public void start() {
        while (true) {
            System.out.println("请选择操作:");
            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("7. 删除用户");
            System.out.println("8. 查询所有用户");
            System.out.println("9. 退出");

            int choice = scanner.nextInt();
            scanner.nextLine(); // 清除缓冲区

            switch (choice) {
                case 1:
                    addBook();
                    break;
                case 2:
                    deleteBook();
                    break;
                case 3:
                    listAllBooks();
                    break;
                case 4:
                    borrowBook();
                    break;
                case 5:
                    returnBook();
                    break;
                case 6:
                    addUser();
                    break;
                case 7:
                    deleteUser();
                    break;
                case 8:
                    listAllUsers();
                    break;
                case 9:
                    System.out.println("退出系统");
                    return;
                default:
                    System.out.println("无效的选择,请重新输入");
            }
        }
    }

    // 添加图书
    private void addBook() {
        System.out.println("请输入图书编号:");
        String id = scanner.nextLine();
        System.out.println("请输入书名:");
        String title = scanner.nextLine();
        System.out.println("请输入作者:");
        String author = scanner.nextLine();

        Book book = new Book(id, title, author);
        bookService.addBook(book);
        System.out.println("图书添加成功");
    }

    // 删除图书
    private void deleteBook() {
        System.out.println("请输入要删除的图书编号:");
        String id = scanner.nextLine();

        bookService.deleteBook(id);
        System.out.println("图书删除成功");
    }

    // 查询所有图书
    private void listAllBooks() {
        List<Book> books = bookService.getAllBooks();
        for (Book book : books) {
            System.out.println(book);
        }
    }

    // 借阅图书
    private void borrowBook() {
        System.out.println("请输入用户编号:");
        String userId = scanner.nextLine();
        System.out.println("请输入图书编号:");
        String bookId = scanner.nextLine();

        userService.borrowBook(userId, bookId);
        System.out.println("图书借阅成功");
    }

    // 归还图书
    private void returnBook() {
        System.out.println("请输入用户编号:");
        String userId = scanner.nextLine();
        System.out.println("请输入图书编号:");
        String bookId = scanner.nextLine();

        userService.returnBook(userId, bookId);
        System.out.println("图书归还成功");
    }

    // 添加用户
    private void addUser() {
        System.out.println("请输入用户编号:");
        String id = scanner.nextLine();
        System.out.println("请输入用户名:");
        String name = scanner.nextLine();

        User user = new User(id, name);
        userService.addUser(user);
        System.out.println("用户添加成功");
    }

    // 删除用户
    private void deleteUser() {
        System.out.println("请输入要删除的用户编号:");
        String id = scanner.nextLine();

        userService.deleteUser(id);
        System.out.println("用户删除成功");
    }

    // 查询所有用户
    private void listAllUsers() {
        List<User> users = userService.getAllUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

主程序

主程序是系统的入口,负责启动系统。

Main类

public class Main {
    public static void main(String[] args) {
        LibraryUI libraryUI = new LibraryUI();
        libraryUI.start();
    }
}

总结

通过以上步骤,我们实现了一个简单的图书管理系统。这个系统包括了基本的图书管理功能,如添加图书、删除图书、查询图书、借阅图书和归还图书等。虽然这个系统还比较简单,但它为后续的功能扩展打下了基础。

在实际开发中,我们可以进一步优化这个系统,例如引入数据库持久化、增加用户权限管理、优化用户界面等。希望本文能为你提供一个良好的起点,帮助你理解和掌握Java编程的基本技能。

推荐阅读:
  1. Java实现图书馆管理系统代码
  2. 如何使用java代码实现图书管理系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:javascript模板引擎实例分析

下一篇:CSS中margin怎么写法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》