版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
实现功能:
1、图书的新增
2 、图书的入库、出库
3、图书的删除
4、图书的查询
5、管内图书的数量
6、图书仓库的管理
7、用户的管理(待开发 )
8、图书借阅的管理(待开发)
package LibraryManagementSystemV1;
import javax.management.InstanceAlreadyExistsException;
/**
* 创建一个图书类-自定义类 包括图书的基本属性和方法
* @author 李*文
* @version 1.8
* @date 2019年8月7日 下午1:32:44
* @content JAVA代码
* @motto 代码千万条,可读第一条。代码不规范,error多两行。
*/
public class Book {
private String bookId;//图书的编号
private String bookName;//图书的名称
private String isbn;//图书的出版号
private String type;//图书的类型
private String author;//图书的作者
private String publisher;//图书的出版社
private int price;//图书的价格
private int bookCount;//图书的库存量
//生成构造方法
public Book(){
}
public Book(String bookName,String bookId,int price,int bookCount ){
this.setBookCount(bookCount);
this.setBookName(bookName);
this.setPrice(price);
this.setBookId(bookId);
}
//生成相关的方法
/**
* 重写equals方法 判断图书编号是否相等
*/
@Override
public boolean equals(Object obj) {
/** 传入的图书对象为空 或者传入的对象不再对象数组中*/
if(obj==null||!(obj instanceof Book) )
{
return false;
}
Book book=(Book)obj;
return (this.getBookId().equals(book.bookId));
}
public String getBookId() {
return bookId;
}
public void setBookId(String bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getBookCount() {
return bookCount;
}
public void setBookCount(int bookCount) {
this.bookCount = bookCount;
}
}
package LibraryManagementSystemV1;
/**
* 实现图书的仓库的操作
* @author 李*文
* @version 1.8
* @date 2019年8月7日 下午1:42:06
* @content JAVA代码
* @motto 代码千万条,可读第一条。代码不规范,error多两行。
*/
public class Datas {
public static Book []bookStrore=new Book[99];
public static void main(String[] args) {
//进行图书的初始化
Book book1=new Book("《活着》","123",54,56);
Book book2=new Book("《兄弟》","124",66,33);
Book book3=new Book("《国画》","125",34,46);
Book book4=new Book("《目送》","126",59,97);
Book book5=new Book("《救赎》","127",76,88);
BookBiz bookBiz=new BookBiz();
bookBiz.addBook(book1);
bookBiz.addBook(book2);
bookBiz.addBook(book3);
bookBiz.addBook(book4);
bookBiz.addBook(book5);
BookView bookView=new BookView();
bookView.view();
}
}
package LibraryManagementSystemV1;
/**
* 图书馆管理系统的controller
* @author 李志文
* @version 1.8
* @date 2019年8月7日 下午1:43:47
* @content JAVA代码
* @motto 代码千万条,可读第一条。代码不规范,error多两行。
*/
public class BookBiz {
//获得图书 入库 出库 删除图书 查询 排序
/**
* 仓库图书数量的计算
* @return 图书的数量
*/
public static int getbookCount()
{
int count=0;
for (Book i:Datas.bookStrore) {
if(i!=null)
count++;
else
break;
}
return count;
}
/**
* 进行图书的 新增操作
* @param book 实例化的图书对象
* @return 是否添加成功
*/
public static boolean addBook(Book book)
{
int count=getbookCount();
if(count==Datas.bookStrore.length)
{
return false;//图书仓库已满
}
else
{
//进行入库
Datas.bookStrore[count]=book;
}
return true;
}
/**
* 图书的删除
* @param book 传入的图书的实例化的对象
* @return 是否删除成功
*/
public static boolean delBook(Book book)
{
//查询仓库中是否存在此图书
int bookCount=getbookCount();
int index=-1;//定位要删除图书在数组中的下标
int i=-1;
for (i = 0; i <bookCount; i++) {
if(book.equals(Datas.bookStrore[i]))
{
index=i;
break;
}
}
if(i==bookCount)
return false;//查找失败
else
{
//进行对象数组元素的删除
for(int j=index;j<bookCount-1;j++)
{
Datas.bookStrore[i]=Datas.bookStrore[i+1];
}
Datas.bookStrore[bookCount-1] =null;
}
return true;
}
/**
* 图书编号的查询
* @param bookId 图书的编号
* @return 图书的实例化对象
*/
public static Book searchBook(String bookId)
{
//需要知道数组的实际的数据的数量 避免空指针异常
int bookCount = getbookCount();
for(int i = 0; i < bookCount; i++){
if(bookId.equals(Datas.bookStrore[i].getBookId())){
return Datas.bookStrore[i];
}
}
return null;
}
/**
* 将书籍进行入库操作
* @param bookId 图书的编号
* @param count图书的数量
* @return 书籍是否入库成功
*/
public static boolean inStore(String bookId,int count)
{
Book book=searchBook(bookId);
if(book==null)
{
return false;
}
else
{
book.setBookCount(book.getBookCount()+count);
}
return true;
}
/**
* 书籍出库操作
* @param boookId 图书的编号
* @param count 预计出库图书的数量
* @return 是否出库成功
*/
public static boolean outStore(String bookId,int count)
{
Book book=searchBook(bookId);
if(book==null)
{
return false;
}
else if(book.getBookCount()<count)
{
return false;
}
else
{
//减少库存
book.setBookCount(book.getBookCount()-count);
return true;
}
}
public static int getsingleBookCount(String bookId)
{
int count=BookBiz.getbookCount();
int index=-1;
int i=0;
for( i=0;i<count;i++)
{
if(bookId.equals(Datas.bookStrore[i].getBookId()))
{
index=i;
break;
}
}
if(i==count)
{
return -1;
}
else
{
return Datas.bookStrore[index].getBookCount();
}
}
/**
* 计算管内图书的总数
* @return 图书总数
*/
public static int bookTotalCount()
{
int count=0;
int totalCount=0;
count=BookBiz.getbookCount();
for (int i=0;i<count;i++) {
totalCount+=Datas.bookStrore[i].getBookCount();
}
return totalCount;
}
}
package LibraryManagementSystemV1;
import java.util.Scanner;
/**
* 实现以图书管的视图界面
* @author 李*文
* @version 1.8
* @date 2019年8月7日 下午3:36:06
* @content JAVA代码
* @motto 代码千万条,可读第一条。代码不规范,error多两行。
*/
public class BookView {
BookBiz bookBiz=new BookBiz();//实例化对象
Book book1=new Book();
Book book=new Book();
Scanner input=new Scanner(System.in);
String choice=null;
String name=null;//图书的名称
String bookId=null;//图书的编号
int price=-1;//图书的价格
int count=-1;//图书的库存
//实现登录页面
public void view()
{
System.out.println("\t*******************************************\t");
System.out.println();
System.out.println("\t\t*****1-登录到图书管系统*****\t\t");
System.out.println("\t\t*****2-退出图书管系统*******\t\t");
System.out.println();
System.out.println("\t*******************************************\t");
System.out.print("请输入你的选择:");
choice=input.next();
if("1".equals(choice))
{
System.out.println("欢迎进入解忧图书馆");
showMainMenu();
}
else if("2".equals(choice))
{
System.out.println("成功从解忧图书馆退出");
System.exit(0);
}
else
{
System.out.println("选择输入违法,请输入y/n,重新进入系统");
choice=input.next();
if(choice.equals("y"))
{
view();
}
else
{
System.exit(0);
}
}
}
/**
* 主菜单
*/
public void showMainMenu()
{
System.out.println("\t\t*******1、新增书籍*******\t\t");
System.out.println("\t\t*******2、书籍入库*******\t\t");
System.out.println("\t\t*******3、书籍出库*******\t\t");
System.out.println("\t\t*******4、书籍查询*******\t\t");
System.out.println("\t\t*******5、删除书籍*******\t\t");
System.out.println("\t\t*******6、图书数量*******\t\t");
System.out.println("\t\t*******7、图书仓库*******\t\t");
System.out.println("\t\t*******#、返回主菜单*****\t\t");
System.out.println("\t\t*******@、退出系统*******\t\t");
while(true){
System.out.print("请您输入你的选择:");
choice=input.next();
switch (choice) {
case "1": addBookView();
break;
case "2": inStoreView();
break;
case "3": outStoreView();
break;
case "4": searchBookView();
break;
case "5": delBookView();
break;
case "6": getBookCountView();
break;
case "7":showbookStore();
break;
case "@":
System.out.println("系统已经成功退出!");
System.exit(0);
break;
case "#":showMainMenu();
break;
default:
System.out.println("选择输入违法,请重新输入!-(y/n)");
choice=input.next();
if("y".equals(choice))
{
showMainMenu();
}
else
{
System.out.println("系统安全退出!");
System.exit(0);
}
break;
}
}
}
/**
* 显示图书仓库的所有图书的信息
*/
public void showbookStore()
{ System.out.println("图书仓库中的书籍:");
System.out.println("\t名称\t编号\t价格\t数量");
for (int i=0;i<BookBiz.getbookCount();i++) {
System.out.println("\t"+Datas.bookStrore[i].getBookName()+"\t"+
Datas.bookStrore[i].getBookId()+"\t"+
Datas.bookStrore[i].getPrice()+"\t"+
Datas.bookStrore[i].getBookCount());
}
}
/**
* 新增书籍的方法
* 要先判断书籍是否已经存在
*/
public void addBookView()
{
System.out.print("请输入图的编号:");
bookId=input.next();
/** 进行书籍编号的查询*/
if(BookBiz.searchBook(bookId)!=null)
{
//该图书在图书仓库中已经存在
System.out.println("书籍在仓库中已经存在,新增图书失败!");
return;
}
book.setBookId(bookId);
System.out.print("请输入图书的名称:");
name=input.next();
book.setBookName(name);
System.out.print("请输入图书价格:");
price=input.nextInt();
book.setPrice(price);
System.out.print("请输入图书的数量:");
book.setBookCount(input.nextInt());
//进行书籍的入库操作
BookBiz.addBook(book);
System.out.println("书籍新增成功!");
}
/**
* 图书的入库操作
*/
public void inStoreView()
{
System.out.print("请输入要入库图书的编号:");
String bookId=input.next();
System.out.print("请输入要入库的数量:");
int count=input.nextInt();
boolean isInStore=BookBiz.inStore(bookId, count);
if(isInStore==true)
{
System.out.println("入库成功!");
}
else
{
System.out.println("入库失败!");
}
}
/**
* 图书的出库操作
*/
public void outStoreView()
{
System.out.print("请输入要出库图书的编号:");
String bookId=input.next();
System.out.print("请输入要出库图书的数量:");
int count=input.nextInt();
boolean isOutStore=BookBiz.outStore(bookId, count);
if(isOutStore==true)
{
System.out.println("出库成功!");
}
else
{
System.out.println("出库失败!");
}
}
/**
* 图书的查询
*/
public void searchBookView()
{
System.out.print("请输入图书的编号:");
String bookId=input.next();
Book newBook=new Book();
newBook=BookBiz.searchBook(bookId);
if(newBook==null)
{
System.out.println("要查询的图书没有找到!");
}
else
{
System.out.println("查询成功!");
System.out.println("\t名称\t编号\t价格\t数量");
System.out.println("\t"+newBook.getBookName()+"\t"+
newBook.getBookId()+"\t"+
newBook.getPrice()+"\t"+
newBook.getBookCount());
}
}
/**
* 图书的删除
*/
public void delBookView()
{
System.out.print("请输入要删除图书的编号:");
String bookId=input.next();
Book book=new Book();
book.setBookId(bookId);
boolean isdelBook=BookBiz.delBook(book);
if(isdelBook==true)
{
System.out.println("成功删除!");
}
else
{
System.out.println("删除失败!");
}
}
/**
* 得到单个图书的数量
*/
public void getBookCountView()
{
System.out.print("请输入图书的编号:");
String bookId=input.next();
int result=BookBiz.getsingleBookCount(bookId);
if(result==-1)
{
System.out.println("该图书不存在,无法查询其数量!");
}
else
{
System.out.println("该书的数量为:"+result);
}
}
/**
* 计算管内图书的总数
*/
public void getbookTotalCount()
{
System.out.println("管内图书的总数为:"+BookBiz.bookTotalCount());
}
}