m0_70113455 2022-05-29 10:35 采纳率: 100%
浏览 66
已结题

小型的图书管理系统bms

使用简单的java进行程序设计
小型的图书管理程序BMS

该程序可以管理你的图书,实现图书的添加、删除和查询功能。

要求:

  1. 设计一个book类来表示书对象。该对象应包括:书名、作者、出版社、出版日期,ISBN等信息;

2.所有的图书在程序中用一个ArrayList存储管理;

3.当程序启动时,从一个指定的文件(bookList.txt)中读入全部已录入的图书信息;

4.程序退出时,所有的图书存入指定的文件(bookList.txt) ;5.提供一个菜单,执行添加、删除、查询功能。

程序图

img

  • 写回答

3条回答 默认 最新

  • 关注

    运行结果:

    img

    img

    Book类:

    
    
    public class Book {
        private String mName;
        private String mAuth;
        private String mPublisher;
        private String mDate; //出版日期
        private String mISBN;
        public String getmName() {
            return mName;
        }
        public void setmName(String mName) {
            this.mName = mName;
        }
        public String getmAuth() {
            return mAuth;
        }
        public void setmAuth(String mAuth) {
            this.mAuth = mAuth;
        }
        public String getmPublisher() {
            return mPublisher;
        }
        public void setmPublisher(String mPublisher) {
            this.mPublisher = mPublisher;
        }
        public String getmDate() {
            return mDate;
        }
        public void setmDate(String mDate) {
            this.mDate = mDate;
        }
        public String getmISBN() {
            return mISBN;
        }
        public void setmISBN(String mISBN) {
            this.mISBN = mISBN;
        }
        @Override
        public String toString() {
            return  mName + " " + mAuth + " " + mPublisher + " " + mDate
                    + " " + mISBN;
        }
    
    }
    
    
    

    BookManager类:

    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class BookManager {
        private static String filename ;
        private static Scanner sc;// = new Scanner(System.in);
        private static ArrayList<Book> books;// = new ArrayList<Book>();
        //显示菜单
        public static void Menu(){
            System.out.println("欢迎使用小型的图书管理程序BMS");
            System.out.println();
            System.out.println("1.添加新书(N)");
            System.out.println("2.删除书目(D)");
            System.out.println("3.查询书目(Q)");
            System.out.println("4.所有书目(L)");
            System.out.println("5.保存数据(S)");
            System.out.println("6.退出程序(X)");
            System.out.println();
            System.out.println("请输入你要执行的命令:");
        }
    
        //读文件
        public static void readFile(){
            try{
                String encoding="GBK";
                File file = new File(filename);
                if(file.isFile() && file.exists()){
                    InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);
                    BufferedReader bufReader = new BufferedReader(read);
                    String line = null;
                    while((line = bufReader.readLine()) != null){
                        //解析数据
                        Book b = new Book();
                        String[] ls = line.split(" "); //使用空格分隔
                        if(ls.length== 5){
                            b.setmName(ls[0]);
                            b.setmAuth(ls[1]);
                            b.setmPublisher(ls[2]);
                            b.setmDate(ls[3]);
                            b.setmISBN(ls[4]);
                            books.add(b);
                        }
                    }
                }
            }catch(Exception e){
                System.out.println("文件读取失败!");
            }
            
        }
        //添加书目
        public static void addBook(){
            System.out.print("请输入书名:");
            String name = sc.next();
            System.out.print("请输入作者:");
            String auth = sc.next();
            System.out.print("请输入出版社:");
            String pub = sc.next();
            System.out.print("请输入出版日期(2022-2-2):");
            String tm = sc.next();
            System.out.print("请输入ISBN:");
            String isbn = sc.next();
            Book b = new Book();
            b.setmName(name);
            b.setmAuth(auth);
            b.setmPublisher(pub);
            b.setmDate(tm);
            b.setmISBN(isbn);
            books.add(b);
            System.out.println("添加成功!");
        }
        //删除
        public static void deleteBook(){
            System.out.print("请输入要删除的书名:");
            String name = sc.next();
            int i = 0;
            for( i=0;i<books.size();i++){
                if(books.get(i).getmName().equals(name)){
                    books.remove(i); 
                    System.out.println("删除成功!");
                    break;
                }
            }
            if(i == books.size())
                System.out.println("未找到该书");
        }
        //查询
        public static void searchBook(){
            System.out.print("请输入要查询的书名或者作者:");
            String name = sc.next();
            int i = 0;
            int flag = 0;
            for(;i<books.size();i++){
                if(books.get(i).getmName().equals(name) || books.get(i).getmAuth().equals(name)){
                    System.out.println(books.get(i));
                    flag = 1;
                }
            }
            if(flag == 0)
                System.out.println("未找到符合条件的书目");
        }
        //所有书目
        public static void allBooks(){
            if(books.size() == 0){
                System.out.println("目前暂无书籍");
                return;
            }
            for(int i=0;i<books.size();i++)
                System.out.println(books.get(i));
            
        }
        //保存数据
        public static void saveBooks(){
            try{
                FileWriter fw = new FileWriter(filename);
                for(int i = 0;i<books.size();i++){
                    String text = books.get(i).toString();
                    fw.write(text);
                }
                fw.close();
                System.out.println("保存成功!");
            }catch(IOException e){
                System.out.println("保存失败!");
            }
        }
        
        
        public static void main(String[] args) {
            filename ="bookList.txt";
            sc = new Scanner(System.in);
            books = new ArrayList<Book>();
            int flag = 1;
            readFile(); //读文件
            while(flag==1){
                Menu();
                String choise = sc.next();
                char ch = choise.charAt(0);
                switch(ch){
                case '1':
                case 'N':
                case 'n':
                    addBook();
                    break;
                case '2':
                case 'D':
                case 'd':
                    deleteBook();
                    break;
                case '3':
                case 'Q':
                case 'q':
                    searchBook();
                    break;
                case '4':
                case 'L':
                case 'l':
                    allBooks();
                    break;
                case '5':
                case 'S':
                case 's':
                    saveBooks();
                    break;
                case '6':
                case 'X':
                case 'x':
                    flag = 0;
                    break;
                }
            }
        }
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!