图书管理系统
需求实现 :
- 图书录入(号,书名,作者,现存量,库存量)
- 图书查询(按书号查询和按书名查询)
- 借阅图书(输入书名)
- 归还图书(输入书名)
文章目录
项目构建:
构建分析:
<创建5个包:library,menu,service,book,utils>
-
library是入口,其App.java类是程序入口
-
menu是菜单层,其Menu类用于显示主菜单
-
service是业务层,用于接收Menu的对象的调用,其中包括录入,查询,借阅和归还四个类,用于实现四个不同功能。
-
book是数据层,其Getbook类及其对象newbook用于保存每一个图书的相关信息
-
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;
}
}