Java学习记录之电子图书管理系统(完善中)

该代码示例展示了一个简单的Java图书管理系统,使用Map存储图书数据,包括图书类(包含ID、书名、作者和价格)、用户类以及相关服务类,提供添加、查询和删除图书的功能。图书信息操作类包含静态初始化数据,菜单显示及操作类处理用户交互。系统目前缺少登录功能。
摘要由CSDN通过智能技术生成

本次修改使用map储存书本数据,登陆功能因未完善。

图书信息类

package org.demo.Bean;

public class Book {
    private Integer bookId;
    private String bookName;
    private String bookAutor;
    private double price;
    public Book(){};

    public Book(Integer bookId, String bookName, String bookAutor, double price) {
        this.bookId = bookId;
        this.bookName = bookName;
        this.bookAutor = bookAutor;
        this.price = price;
    }

    public Integer getBookId() {
        return bookId;
    }

    public void setBookId(Integer bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getBookAutor() {
        return bookAutor;
    }

    public void setBookAutor(String bookAutor) {
        this.bookAutor = bookAutor;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bookId=" + bookId +
                ", bookName='" + bookName + '\'' +
                ", bookAutor='" + bookAutor + '\'' +
                ", price=" + price +
                '}';
    }
}

用户类

package org.demo.Bean;

public class User {
    private Integer userId;
    private String userName;
    private String passwd;
    private String phone;
    public User(){};

    public User(Integer userId, String userName, String passwd, String phone) {
        this.userId = userId;
        this.userName = userName;
        this.passwd = passwd;
        this.phone = phone;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", passwd='" + passwd + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }
}

图书信息操作类

package org.demo.Service;

import org.demo.Bean.Book;

import java.util.*;

public class BookService {

    //存数据
    private static Map<Integer , Book> bookMap = new HashMap<>();

    //预存几个图书对象
    static {
        bookMap.put(100, new Book(100,"唐诗三百首","李白",34));
        bookMap.put(102, new Book(102,"安列卡列尼娜","列夫托尔斯泰",48));
        bookMap.put(103, new Book(103,"流浪地球","刘慈欣",50));
        bookMap.put(104, new Book(104,"三体","刘慈欣",54));
        bookMap.put(105, new Book(105,"唐诗三百首","李白",34));
    }

    /**
     * 添加书籍信息
     * @param book 图书对象
     */
    public boolean addBook(Book book){

        //是否标记成功
        boolean bol = false;
        //列表长度即现存几本图书
        Book tem = bookMap.get(book.getBookId());
        if (tem == null){
            bookMap.put(book.getBookId(), book);
            bol = true;
        }
        return bol;
    }

    /**
     * 获取所有图书信息
     * @return
     */
    public Map<Integer,Book> allBookInfo(){
        return bookMap;
    }

    /**
     * 获取指定编号的图书信息
     * @param bookId 图书编号
     * @return
     */
    public Book getBookInfo(Integer bookId){
        Book book = bookMap.get(bookId);
        return book;
    }

    /**
     * 获取指定作者的图书信息
     * @param bookAuthor 图书作者
     * @return
     */
    public List<Book> getBookInfo(String bookAuthor){

        List<Book> list = new ArrayList<>();
        //遍历列表
        for( Integer bookId:  bookMap.keySet()) {
            if (bookMap.get(bookId).getBookAutor().equals(bookAuthor)){
                list.add(bookMap.get(bookId));
            }
        }
        return list;
    }

    /**
     * 获取指定书名的图书信息
     * @param bookName
     * @return
     */
    public List<Book> getInfo(String bookName){

        List<Book> list = new ArrayList<>();
        //遍历列表
        for( Integer bookId:  bookMap.keySet()) {
            if (bookMap.get(bookId).getBookName().equals(bookName)){
                list.add(bookMap.get(bookId));
            }
        }
        return list;
    }

    /**
     * 通过图书编号删除对应图书
     * @param bookId 图书编号
     */
    public boolean delBook(Integer bookId){
        boolean flag = false;
        Book book = getBookInfo(bookId);
        if (book != null) {
            bookMap.remove(bookId);
            flag = true;
        }
        return flag;
    }
}

菜单显示及操作类

package org.demo.Service;

import org.demo.Bean.Book;

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

public class MenuService {
    private BookService bookService = new BookService();

    private Scanner sc = new Scanner(System.in);
    //初始菜单
    public void initMenu(){
        System.out.println("#########################");
        System.out.println("####欢迎使用图书管理系统####");
        System.out.println("#########################");
        System.out.println("请输入操作序号选择所需操作:");
        System.out.println("1、添加图书");
        System.out.println("2、查询图书");
        System.out.println("3、删除图书");
        System.out.println("4、退出");

        menu();
    }

    public void menu(){
        //输入选择
        int choose = sc.nextInt();

        switch (choose){
            case 1:
                addBook();
                initMenu();
                break;
            case 2:
                getBookInfo();
                initMenu();
                break;
            case 3:
                delBook();
                initMenu();
                break;
            case 4:
            default:
                System.exit(0);
                break;
        }
    }

    /**
     * 添加图书
     */
    private void addBook() {
        System.out.println("请输入图书编号:");
        Integer bookId = sc.nextInt();
        sc.nextLine();
        System.out.println("请输入图书名称:");
        String bookName = sc.nextLine();
        System.out.println("请输入图书作者:");
        String Author = sc.nextLine();
        System.out.println("请输入图书价格:");
        double price = sc.nextDouble();

        Book book = new Book(bookId ,bookName ,Author ,price);
        bookService.addBook(book);
    }

    /**
     *获取图书信息
     */
    private void getBookInfo() {
        System.out.println("请选择:\n1、查询所有图书;\n2、按图书编号查询;\n3、按作者查询;\n4、按书名查询。");
        int choose = sc.nextInt();
        switch (choose){
            case 1:
                //查询所有图书
                Map<Integer,Book> books = bookService.allBookInfo();
                for (Integer i:books.keySet()) {
                    System.out.println( books.get(i));
                }
                break;
            case 2:
                //按图书编号查询
                System.out.println("请输入图书编号:");
                int bookId = sc.nextInt();
                Book bookInfo = bookService.getBookInfo(bookId);
                System.out.println( bookInfo );
                break;
            case 3:
                //按作者查询
                System.out.println("请输入图书作者:");
                sc.nextLine();
                String author = sc.nextLine();
                List<Book> bookList = bookService.getBookInfo(author);
                for (int i = 0; i < bookList.size(); i++) {
                    System.out.println( bookList.get(i));
                }
                break;
            case 4:
                //按书名查询
                System.out.println("请输入图书名称:");
                sc.nextLine();
                String name = sc.nextLine();
                List<Book> bookNameList = bookService.getInfo(name);
                for (int i = 0; i < bookNameList.size(); i++) {
                    System.out.println( bookNameList.get(i));
                }
                break;
            default:
                System.out.println("功能待补充。。。");
        }
    }


    /**
     * 通过图书编号删除图书信息
     */
    private void delBook() {
        System.out.println("请输入需要删除的图书编号:");
        Integer bookId = sc.nextInt();
        boolean bol = bookService.delBook(bookId);
        if (bol){
            System.out.println("删除成功!");
        }else{
            System.out.println("未找到该图书,删除失败!");
        }
    }

}

测试类

import org.demo.Service.MenuService;

public class Test {
    public static void main(String[] args) {
        MenuService menuService = new MenuService();
        menuService.initMenu();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值