图书管理系统

该文章描述了一个基于Java的图书管理系统的构建,包括五个主要包:library作为入口,menu负责菜单显示,service处理业务逻辑,book存储图书数据,而utils提供用户输入工具。系统支持图书录入、查询、借阅和归还功能,图书信息保存在文件中。
摘要由CSDN通过智能技术生成

图书管理系统

需求实现 :

  1. 图书录入(号,书名,作者,现存量,库存量)
  2. 图书查询(按书号查询和按书名查询)
  3. 借阅图书(输入书名)
  4. 归还图书(输入书名)

项目构建

在这里插入图片描述

构建分析

<创建5个包:library,menu,service,book,utils>

  1. library是入口,其App.java类是程序入口
  2. menu是菜单层,其Menu类用于显示主菜单
  3. service是业务层,用于接收Menu的对象的调用,其中包括录入,查询,借阅和归还四个类,用于实现四个不同功能。
  4. book是数据层,其Getbook类及其对象newbook用于保存每一个图书的相关信息
  5. utils是工具包,其utility类是一个接收用户输入的工具类

注意事项:图书信息要保存在一个文件中

代码实现

App.java
package com.Library.library;
import com.Library.menu.Menu;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

public class App {
    public static void main(String[] args){
        //创建Menu对象,并且显示主菜单,是整个程序的入口
        new Menu().mainMenu();
        System.out.println("==============您退出图书管理系统==============");

    }
}

Menu.java
package com.Library.menu;

import com.Library.book.GetBook;
import com.Library.service.Add;
import com.Library.utils.Utility;
import com.Library.service.Find;
import com.Library.service.Borrow;
import com.Library.service.Return;
/**
 *1.显示界面
 *2.接收用户输入
 * 调用service完成对图书馆管理系统的操作
*/
public class Menu {

        private boolean loop = true;//控制显示菜单
        private char key = ' ';//接收用户选择
        private Add addService = new Add(); //创建Add对象
        private Find findService = new Find();//创建Find对象
        //编写addBook()接收用户输入,创建GetBook对象,调用Add方法
        public void addBook(){
            System.out.println("===============图书录入==============");
            System.out.println("书号:");
            int id = Utility.readInt(12);
            System.out.println("书名:");
            String name = Utility.readString(20);
            System.out.println("作者:");
            String writer = Utility.readString(8);
            System.out.println("现存量:");
            int quantity = Utility.readInt(100000);
            System.out.println("库存量:");
            int inventory = Utility.readInt(1000000);
            //创建一个GetBook对象
            GetBook newBook = new GetBook(id,name,writer,quantity,inventory);
            if(addService.add_newBook(newBook)){//调用add_newBook方法
                System.out.println("================添加图书成功================");
            }
            else {
                System.out.println("================添加图书失败================");
            }
        }

        public void findBook(){
            System.out.println("===============图书查询==============");
            System.out.println("请选择您要查询的方式:");
            System.out.println("1)按书号查询");
            System.out.println("2)按书名查询");

            key = Utility.readChar();
                switch (key){
                    case '1':
                        System.out.println("请输入书号:");
                        int id = Utility.readInt(12);
                        findService.find_BookId(id);
                        break;
                    case '2':
                        System.out.println("请输入书名:");
                        String name = Utility.readString(20);
                        findService.find_BookName(name);
                        break;
                }
        }

        public void mainMenu () {

            //显示主菜单
            do {
                System.out.println("< 欢迎进入图书管理系统!>");
                System.out.println("***************************************");
                System.out.println("1.------------图 书 录 入--------------");
                System.out.println("2.------------图 书 查 询--------------");
                System.out.println("3.------------借 阅 图 书--------------");
                System.out.println("4.------------归 还 图 书--------------");
                System.out.println("0.------------退 出 系 统--------------");
                System.out.println("请选择您要执行的操作:");
                key = Utility.readChar();//引入Utility库
                switch (key) {
                            case '1':
                                addBook();
                                break;
                            case '2':
                                findBook();
                                break;
                            case '3':
                                System.out.println("借阅图书");
                                break;
                            case '4':
                                System.out.println("归还图书");
                                break;
                            case '0':
                                System.out.println("退出系统");
                                loop = false;
                                break;
                        }
            } while (loop);
        }
}




Add.java
package com.Library.service;
import com.Library.book.GetBook;

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
public class Add {
    private GetBook newBook;//保存GetBook对象

    public boolean add_newBook(GetBook newBook){

        int id1 = newBook.getId();
        String name1 = newBook.getName();
        String writer1 = newBook.getWriter();
        int quantity1 = newBook.getQuantity();
        int inventory1 = newBook.getInventory();
        String message = ("书号:"+id1+"\t"+"书名:"+name1+"\t"+"作者:"+writer1+"\t"+"现存量:"+quantity1+"\t"+"库存量:"+inventory1+"\t"+"\n");

        //创建文件 写入信息
        try{
            File file = new File("e:\\JAVA-library.txt");//创建文件并设置文件路径
            if(!file.exists()){
                file.createNewFile();
            }
            FileWriter fileWriter = new FileWriter(file.getName(),true);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);//将字节流写入缓冲流
            bufferedWriter.write(message);//传入字符串信息
            bufferedWriter.close();

        }catch (IOException e){//捕获异常
            e.printStackTrace();
        }
        return true;
    }
}


GetBook.java
package com.Library.book;
/**
 *Getbook的对象表示一本书的信息
 */

public class GetBook {
    //书号 书名 作者 现存量 库存量
    private int id;
    private  String name;
    private String writer;
    private  int quantity;
    private  int inventory;

    //构造器和setter,getter

    public GetBook(int id, String name, String writer, int quantity, int inventory) {
        this.id = id; //书号
        this.name = name; //书名
        this.writer = writer; //作者
        this.quantity = quantity; //现存量
        this.inventory = inventory; //库存量
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }
    public int getInventory() {
        return inventory;
    }

    public void setInventory(int inventory) {
        this.inventory= inventory;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值