JAVA作业-.图书馆查书、借书、还书

JAVA作业-.图书馆查书、借书、还书

1.UML类图

2.功能展示

1. 系统界面

####2.查书功能

(1)查看所有图书

(2)按照作者或书名查书

**####3.查看已借的书并对其进行归或借操作

####4.还书

3.核心代码

1.DAO展示
package library;

import java.util.ArrayList;


public interface CartDao{

	public ArrayList<Item> getList();
	public void addBook(Book book);  //加入书籍
	public void deleteBook(int num);  //归还书籍
	public void showCart();		//查看借阅书的情况
	public void clearCart();		//归还所有借阅的书籍
	
}
2.主函数
package library;
import java.io.IOException;//导入 这个包来捕获输入输出异常
import java.util.ArrayList;
import java.util.Scanner;


public class main {
	public static void main(String[] args) throws NumberFormatException, IOException 
	{
		Scanner sc =new Scanner(System.in);
		Mall mall=new Mall();
		CartDao cart =new CartDaoLisImpl();
		System.out.println("    欢迎来到图书馆");
		System.out.println("接下来你将进入图书管理系统");
		while(true)
		{
			System.out.println("1.浏览图书");
			System.out.println("2.查找你想要的图书");
			System.out.println("3.查看你借的书");
			System.out.println("4.归还你借的书");
			System.out.println("5.退出");
			System.out.println("请输入操作");
			int flag=0;
			int n=sc.nextInt();
			sc.nextLine();
			switch(n)
			{
			case 1:
				System.out.println("所有的图书:");
				Mall.showAllBook();
				System.out.println("请输入你要借的书的编号");
				n=sc.nextInt();
				while(n>mall.getList().size())
				{
					System.out.println("抱歉本图书馆暂无该图书,请重新输入!");
					n=sc.nextInt();
				}
				cart.addBook(mall.getList().get(n-1));
				break;
				
			case 2:
				System.out.println("1.按照书名查找");
				System.out.println("2.按照作者查找");
				n=sc.nextInt();
				sc.nextLine();
				if(n==1)
				{
					System.out.println("请输入你要查找的书名");
					String s1=sc.next();
					ArrayList<Book> searchOfGoods =Mall.searchName(s1);
					
					//System.out.println(searchOfGoods1.size());
					for(int i=0;i<searchOfGoods.size();i++)
					{
						System.out.println((i+1)+":"+searchOfGoods.get(i));
					}
					
					System.out.println("请选择要借的图书的编号:");
					n=sc.nextInt();
					cart.addBook(searchOfGoods.get(n-1));
				}
				else
				{
					System.out.println("请输入你要查找到作者");
					String s1=sc.next();
					ArrayList<Book> searchOfGoods =Mall.searchPrice(s1);
					
					for(int i=0;i<searchOfGoods.size();i++)
					{
						System.out.println((i+1)+":"+searchOfGoods.get(i));
					}
					System.out.println("请选择要借的书的编号:");
					n=sc.nextInt();
					cart.addBook(searchOfGoods.get(n-1));
				}
				break;
			case 3:
				while(flag==0)
				{
					System.out.println();
					System.out.println("******************************************************************************************************");  
					System.out.println("你的借阅情况如下:");
					cart.showCart();
					System.out.println("******************************************************************************************************");  
					System.out.println("1.想再借书");
					System.out.println("2.归还书籍");
					System.out.println("3.归还所有的书籍");
					System.out.println("4.退出借阅表");
					System.out.println("请输入操作");
					n=sc.nextInt();
					switch(n)
					{
					case 1:
						System.out.println("1.浏览书库来借书");
						System.out.println("2.查找书籍来借书");
						int n1=sc.nextInt();
						sc.nextLine();
						switch(n1)
						{
						case 1:
							System.out.println("所有的图书:");
							Mall.showAllBook();
							System.out.println("请输入你要借的书的编号");
							n1=sc.nextInt();
							while(n1>mall.getList().size())
							{
								System.out.println("抱歉本图书馆暂无该图书,请重新输入!");
								n1=sc.nextInt();
							}
							cart.addBook(mall.getList().get(n1-1));
							break;
							
						case 2:
							System.out.println("1.按照书名查找");
							System.out.println("2.按照作者查找");
							n1=sc.nextInt();
							sc.nextLine();
							if(n1==1)
							{
								System.out.println("请输入你要查找的书名");
								String s1=sc.next();
								ArrayList<Book> searchOfGoods =Mall.searchName(s1);
								
								//System.out.println(searchOfGoods1.size());
								for(int i=0;i<searchOfGoods.size();i++)
								{
									System.out.println((i+1)+":"+searchOfGoods.get(i));
								}
								
								System.out.println("请选择要借的图书的编号:");
								n1=sc.nextInt();
								cart.addBook(searchOfGoods.get(n1-1));
							}
							else
							{
								System.out.println("请输入你要查找到作者");
								String s1=sc.next();
								ArrayList<Book> searchOfGoods =Mall.searchPrice(s1);
								
								for(int i=0;i<searchOfGoods.size();i++)
								{
									System.out.println((i+1)+":"+searchOfGoods.get(i));
								}
								System.out.println("请选择要借的书的编号:");
								n1=sc.nextInt();
								cart.addBook(searchOfGoods.get(n1-1));
							}
							break;
							}
						break;
					case 2:
    					
						System.out.println("请输入要归还书籍的序号");
						n=sc.nextInt();
						cart.deleteBook(n-1);
						break;
					case 3:
						
						cart.clearCart();
						System.out.println("已归还所有书籍");
						break;
					case 4:
						flag=1;
						break;
					}
			
					
					
				}
				break;
			case 4:
				while(true)
				{

					System.out.println();
					System.out.println("******************************************************************************************************");  
					System.out.println("你的借阅情况如下:");
					cart.showCart();
					System.out.println("******************************************************************************************************");  
					System.out.println("1.归还书籍");
					System.out.println("2.归还所有的书籍");
					System.out.println("3.退出");
					System.out.println("请输入操作");
					n=sc.nextInt();
					switch(n)
					{
					
					case 1:
    					
						System.out.println("请输入要归还书籍的序号");
						n=sc.nextInt();
						cart.deleteBook(n-1);
						break;
					case 2:
						
						cart.clearCart();
						System.out.println("已归还所有书籍");
						break;
					case 3:
						flag=1;
						break;
					}
			
					
					break;	
				}
				break;
			case 5:
				System.out.println("图书馆欢迎您!");
				return ;
			
			}
			
		}
		
	}
}

3.查书功能
package library;

import java.io.BufferedReader;//读取文本
import java.io.FileReader;//读取文件
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;//分割字符串

import library.Book;


public class Mall {
static ArrayList<Book > mallList= new ArrayList<Book >();
	
	
	public static ArrayList<Book> getList() {
		return mallList;
	}
	
	public static void showAllBook() throws NumberFormatException, IOException//抛出异常判断
	{
		BufferedReader in = new BufferedReader(new FileReader("F:\\goods.txt"));//读取文件
		String s;
		Book goods;
		int i=1;
		while ((s = in.readLine()) != null)
		{
			StringTokenizer p = new StringTokenizer(s, " ");// 以" "为分隔符进行遍历
			String goodsName=p.nextToken();//读取书名
			String goodsPrice=p.nextToken();//读取作者
			
			if(i<=29)
			{
				goods=new Books(goodsName,goodsPrice);
				mallList.add(goods);
				System.out.println(i+":"+goods.toString());//输出所有的书以及其作者
				i++;
			}
		
				
		}
		in.close();
		
	}


	public static ArrayList<Book> searchName(String type){//按照书名进行查找
	ArrayList<Book> good = new ArrayList<Book>();
		for(int i=0;i<mallList.size();i++)
		{
			if(mallList.get(i).getGoodsName().equals(type))
			{
				good.add(mallList.get(i));
			}
		}
		
		return good;
	}

	public static ArrayList<Book> searchPrice(String type) {//按照作者查找
	ArrayList<Book> good = new ArrayList<Book>();
		
		
		for(int i=0;i<mallList.size();i++)
		{
			if(mallList.get(i).getGoodsPrice().equals(type))
			{
				good.add(mallList.get(i));
			}
		}
		return good;
	}
	
}

4.借书,还书操作
package library;

import java.util.ArrayList;

public  class CartDaoLisImpl implements CartDao{
	
	ArrayList<Item> cartList= new ArrayList<Item>();
	public ArrayList<Item> getList() {
		return cartList;
	}
	public void addBook(Book goods)
	{
		int i;
		for(i=0;i<cartList.size();i++)
		{
			if(cartList.get(i).getItem().equals(goods)==true)
			{
				cartList.get(i).increase();
				break;
			}
		}
		if(i>=cartList.size())
		{
			Item e = new Item(goods);
			cartList.add(e);
		}	
	}
	public void deleteBook(int num)
	{
		if(cartList.size()==0)
		{
			System.out.println("你的借阅记录为空");
			return;
		}
		if(num<cartList.size())
		{
			if(cartList.get(num).getNum()==1) 
			{
				cartList.remove(num);
			}
			else
			{
				cartList.get(num).reduce();
			}
		}
		if(num>cartList.size())
		{
			System.out.println("该书籍还未收集");
		}	
	}
	public void showCart()//查看借阅的书的记录
	{
		for(int i=0;i<cartList.size();i++)
		{
			System.out.println((i+1)+":"+cartList.get(i).toString());
		}
	}
	public void clearCart()//归还所有的书
	{
		cartList.clear();
	}
	
	
	
}
class Item 							
{
	private Book item; //记录借阅的书
	private int num;    //记录借阅的书的数量
	
	public Item(Book item)
	{
		this.item = item;
		num = 1;
	}
	public void increase() //再次借书
	{
		num++;
	}
	public void reduce() //归还书籍
	{
		num--;
	}
	
	@Override
	public String toString() {
		return item + "      数量:" + num;
	}
	public Book getItem() {
		return item;
	}
	public void setItem(Book item) {
		this.item = item;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	
}
posted @ 2020-12-09 20:23  相思语-往生人  阅读(1523)  评论(0编辑  收藏  举报