小型的图书管理系统bms

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

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

要求:

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

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

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

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

程序图

img

运行结果:

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;
            }
        }
    }

}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632