m0_63135614 2022-06-02 15:06 采纳率: 50%
浏览 176
已结题

小型图书管理系统java

要求设计三个类,Book类、BookSysMain类、BookManagement类,输出如图

img

  • 写回答

3条回答 默认 最新

  • sum墨 2022-06-02 16:26
    关注

    望采纳!
    Book类

    
    package com.book.model;
    
    public class Book {
        //书名
        private String title;
    
        //作者
        private String authors;
    
        //出版社
        private String publisher;
    
        //出版日期
        private String publishDate;
    
        //ISBN
        private String isbn;
    
        //价格
        private Double price;
    
    
        public Double getPrice() {
            return price;
        }
    
        public void setPrice(Double price) {
            this.price = price;
        }
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getAuthors() {
            return authors;
        }
    
        public void setAuthors(String authors) {
            this.authors = authors;
        }
    
        public String getPublisher() {
            return publisher;
        }
    
        public void setPublisher(String publisher) {
            this.publisher = publisher;
        }
    
        public String getPublishDate() {
            return publishDate;
        }
    
        public void setPublishDate(String publishDate) {
            this.publishDate = publishDate;
        }
    
        public String getIsbn() {
            return isbn;
        }
    
        public void setIsbn(String isbn) {
            this.isbn = isbn;
        }
    
        @Override
        public String toString() {
            return "Book{" +
                    "title='" + title + '\'' +
                    ", authors='" + authors + '\'' +
                    ", publisher='" + publisher + '\'' +
                    ", publishDate='" + publishDate + '\'' +
                    ", isbn='" + isbn + '\'' +
                    ", price=" + price +
                    '}';
        }
    }
    
    

    BookManagement类

    package com.book.model;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class BookManagement {
    
        public static final List<Book> BOOK_LIST = new ArrayList<Book>();
    
        /**
         * 创建一本数据
         */
        public void newBook(Scanner scan) {
            Book newBook = new Book();
            //输入 ISBN
            System.out.println("Input ISBN:");
            newBook.setIsbn(scan.nextLine());
            //输入 标题
            System.out.println("Input Title:");
            newBook.setTitle(scan.nextLine());
            //输入 作者
            System.out.println("Input Authors:");
            newBook.setAuthors(scan.nextLine());
            //输入 发布日期
            System.out.println("Input Pub Date:");
            newBook.setPublishDate(scan.nextLine());
            //输入 价格
            System.out.println("Input Price:");
            newBook.setPrice(scan.nextDouble());
            BOOK_LIST.add(newBook);
            System.out.println("The new book is added:");
            System.out.println(newBook.toString());
        }
    
        /**
         * 删除
         */
        public void deleteBook(Scanner scan) {
            System.out.println("请输入书名>>");
            String title = scan.nextLine();
            int tag = 0;
            for (int i = 0, len = BOOK_LIST.size(); i <= len; i++) {
                if (BOOK_LIST.get(i).getTitle().equalsIgnoreCase(title)) {
                    tag = i;
                }
            }
            BOOK_LIST.remove(tag);
        }
    
        public void init() {
            System.out.println("读取存量图书中");
            readBookTxt("/admin/home/project/qa-demo/mini-book-manage/src/main/java/com/book/model/bookList.txt");
            System.out.println("读取存量图书完成");
            String desc = "-------------------------------------\n" +
                    "| Welcome to Book Management System |\n" +
                    "-------------------------------------\n" +
                    "| 1 New Book(N)                     |\n" +
                    "| 2 Delete Book(D)                  |\n" +
                    "| 3 Query Book(Q)                   |\n" +
                    "| 4 List All(A)                     |\n" +
                    "| 5 Save(S)                         |\n" +
                    "| 6 Exit(E)                         |\n" +
                    "-------------------------------------";
            System.out.println(desc);
            Scanner scan = new Scanner(System.in);
            while (true) {
                System.out.println("Input Command>>");
                String command = scan.nextLine();
                if ("N".equalsIgnoreCase(command)) {
                    newBook(scan);
                } else if ("D".equalsIgnoreCase(command)) {
                    deleteBook(scan);
                } else if ("A".equalsIgnoreCase(command)) {
                    System.out.println(BOOK_LIST);
                } else if ("E".equalsIgnoreCase(command)) {
                    System.out.println("感谢使用!");
                    break;
                } else {
                    System.out.println("请输入正确的指令");
                }
            }
        }
    
        private void readBookTxt(String fileName) {
            try {
                File myFile = new File(fileName);
                //判断文件是否存在
                if (myFile.isFile() && myFile.exists()) {
                    InputStreamReader Reader = new InputStreamReader(new FileInputStream(myFile), "UTF-8");
                    //考虑到编码格式,new FileInputStream(myFile)文件字节输入流,以字节为单位对文件中的数据进行读取
                    //new InputStreamReader(FileInputStream a, "编码类型")
                    //将文件字节输入流转换为文件字符输入流并给定编码格式
                    BufferedReader bufferedReader = new BufferedReader(Reader);
                    //BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
                    //通过BuffereReader包装实现高效读取
                    String lineTxt = null;
                    while ((lineTxt = bufferedReader.readLine()) != null) {
                        //buffereReader.readLine()按行读取写成字符串
                        System.out.println(lineTxt);
                        String[] split = lineTxt.split(",");
                        Book book = new Book();
                        book.setTitle(split[0]);
                        book.setAuthors(split[1]);
                        book.setPublisher(split[2]);
                        book.setPublishDate(split[3]);
                        book.setIsbn(split[4]);
                        book.setPrice(Double.valueOf(split[5]));
                        BOOK_LIST.add(book);
                    }
                    Reader.close();
                } else {
                    System.out.println("找不到指定的文件");
    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    
    

    BookSysMain类

    
    ```java
    package com.book.model;
    
    public class BookSysMain {
    
        public static void main(String[] args) {
            //创建管理器
            BookManagement management = new BookManagement();
            //初始化管理器
            management.init();
        }
    }
    
    
    

    bookList.txt

    
    明朝那些事儿,当前明月,新华出版社,2022-06-02,dns-23ms-23,50.00
    三体,刘慈欣,人民出版社,2022-06-01,2932-219k-nss,35.55
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月4日
  • 已采纳回答 6月4日
  • 创建了问题 6月2日

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因