图书管理系统基础版(V1)(控制台版)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44213634/article/details/98855051

 实现功能:

      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());


                } 


}

猜你喜欢

转载自blog.csdn.net/qq_44213634/article/details/98855051