zoukankan      html  css  js  c++  java
  • 简单的图书管理系统

    主函数Test方法,负责调用

    public class Test {
    
    	public static void main(String[] args) {
    		Manage menu1=new Manage();
    		menu1.Init();
    		menu1.menu();
    		//menu1.Look();
    	}
    
    }
    

      

    Book方法负责存放图书属性

    public class Book {
    	
    	//图书名
    	String name;
    	//图书借书状态
    	String state;
    	//借书次数
    	int time;
    	
    
    }
    

      

    Manege方法负责图书的各种管理

    import java.util.Scanner;
    
    public class Manage {
    	private static final String DelBookName = null;
    	Scanner input=new Scanner(System.in);
    	//初始化数组
    	Book[] book=new Book[30];
    	//用size控制图书数量
    	int size=0;
    	//初始化图书是否借出
    	boolean state = false;
    	//数组下标
    	int index;
    	
    	//图书管理菜单
    	public void menu(){
    	
    	String in="Y";
    	boolean flag=true;
    	while(flag){
    		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("       5、归还图书");
    		System.out.println("       6、修改图书");
    		System.out.println("       7、退出");
    		System.out.println("       8、排行榜");
    		System.out.println("请输入你的选择:");
    		int select=input.nextInt();
    		switch(select){
    		case 1:
    			//查看图书
    			Look();
    			break;
    		case 2:
    			//添加图书
    			Add();
    			break;
    		case 3:		
    			//删除图书
    			Del();
    			break;
    		case 4:
    			//借阅图书
    			Borrow();
    			break;
    		case 5:
    			//归还图书
    			Return();
    			break;
    		case 6:
    			//修改图书信息
    			Update();
    			break;
    		case 7:
    			//系统退出
    			System.out.println("你已经退出图书管理系统,欢迎下次登陆");
    			System.exit(0);
    			
    			break;
    		case 8:
    			//排行榜
    			Arrange();
    			break;
    			default:
    				System.out.println("没有该选项");			
    		
    		}
    		System.out.println("是否继续:(Y/N)");
    		in=input.next();
    		if (in.equalsIgnoreCase("Y")) {
    		    flag=true;			
    	    }else{
    	    	flag=false;
    	    }
    	}
    	}
        //初始化三本书
    	public void Init(){
    		//创建第一本书空间
    		book[0]=new Book();
    		//初始化第一本书
    		book[0].name="三国演义";
    		book[0].state="已借";//已借
    		book[0].time=51;
    		size++;
    		//创建第二本书空间
    		book[1]=new Book();
    		//初始化第二本书
    		book[1].name="西游记";
    		book[1].state="未借";//未借
    		book[1].time=22;
    		size++;
    		//创建第三本书空间
    		book[2]=new Book();
    		//初始化第三本书
    		book[2].name="水浒传";
    		book[2].state="未借";
    		book[2].time=12;
    		size++;
    	}
    	//1、查看图书
    	public void Look(){
    		System.out.println("查看图书");
    		System.out.println("书名	是否借出	借出次数");
    		//输出每本图书信息
    		for (int i = 0; i < size; i++) {
    			//用size来控制输出的图书
    			System.out.println(book[i].name+"	"+book[i].state+"	"+book[i].time);
    		}
    		
    	}
    	//2、增加图书
    	public void Add(){
    		System.out.println("添加图书");
    		System.out.println("请输入图书名:");
    		//输入图书名
    		String inputBook=input.next();
    		//新建一个对象,保存新添入的图书
    		Book newBook=new Book();
    		//将输入的图书名赋值给新建的对象
    		newBook.name=inputBook;
    		//在数组中开辟一个空间存放新书
    		book[size]=newBook;
    		book[size].state="未借";
    		System.out.println("添加图书成功!!");
    		//存放完后size++
    		size++;
    		
    	}
    	//判断图书是否存在,
    	//如果找到,返回存放图书的下标;如果未找到,返回-1;
    	public int Search(String inputNameBook){
    		//从第一本书开始找,找到最后一本书的存放位置
    		for (int i = 0; i < size; i++) {
    			if (book[i].name.equals(inputNameBook)) {
    				//找到想删除图书的下标				
    				return i;
    				//return 可以退出整个方法
    			}			
    		}
    		//如果未找到,返回-1
    		return -1;				
    	}
    	//3、删除图书
    	public void Del(){
    		System.out.println("删除图书");
    		System.out.println("请输入需要删除的图书名:");
    		String delNameBook=input.next();
    		//接收图书是否找到的信号
    		int index=Search(delNameBook);
    		//如果此书存在,查看图书状态
    		if(index!=-1){
    			//如果图书处于未借,可以进行删除
    			if(book[index].state=="未借"){
    				//进行删除
    				book[index]=null;
    				System.out.println("成功删除!!");
    				//每删除一本书,size都要减1
    				size--;
    				//如果想删除图书的下一位不为空,则进行移位
    				while(book[index+1]!=null){
    					//后一本图书向前移动
    					book[index]=book[index+1];
    					index++;					
    				}
    				
    				
    			}else{//如果处于已借,提示不能借出
    				System.out.println("此书借出,不能删除!!");
    			}
    		}else{
    			//此书不存在
    			System.out.println("此书不存在");
    		}
     
    		
    	}
    	//4、借阅图书
    	public void Borrow(){
    		System.out.println("借阅图书");
    		System.out.println("请输入需要借阅的图书名:");
    		String delNameBook=input.next();
    		//接收图书是否找到的信号
    		int index=Search(delNameBook);
    		//如果书库里有这本书
    		if(index!=-1){
    			//如果该书未借出,可以借阅
    			if(book[index].state=="未借"){
    				//将需借阅的图书下标改为已借阅
    				book[index].state="已借";
    				//借阅次数加1
    				book[index].time++;
    				System.out.println("借阅成功!!");
    				
    			}else{
    				//如果该书借出,不可以借出
    				System.out.println("该书已借出,不能再次借阅!");
    			}
    			
    		}else{
    			//如果这本书不存在
    			System.out.println("该书不存在,不能借阅");
    		}
    		
    	}
    	//5、归还图书
    	public void Return(){
    		System.out.println("归还图书");
    		System.out.println("请输入需要归还的图书名:");
    		String delNameBook=input.next();
    		//接收图书是否找到的信号
    		int index=Search(delNameBook);
    		//如果书库里有这本书
    		if(index!=-1){
    			//如果该书已借出,可以借阅
    			if(book[index].state=="已借"){
    				//将需借阅的图书下标改为未借
    				book[index].state="未借";
    				System.out.println("归还成功!!");
    				
    			}else{
    				//如果该书未借,不可以还书
    				System.out.println("该书未借出,不能再次归还!");
    			}
    			
    		}else{
    			//如果这本书不存在
    			System.out.println("该书不存在,无法归还");
    		}
    		
    	}
    	//6、修改图书信息
    	public void Update(){
    		System.out.println("修改图书信息");
    		System.out.println("请输入需要修改的图书名:");
    		String updateNameBook=input.next();
    		//由于借阅次数和图书状态不用改变,所以需改变的只有图书名
    		//查找图书是否存在,不存在则返回-1,存在返回图书索引
    		int index=Search(updateNameBook);
    		//如果书库里有这本书
    		if(index!=-1){
    			System.out.println("你想修改为的图书名");
    			String updateName=input.next();
    			if(book[index].name.equals(updateName)){
    				System.out.println("输入的图书名重复");
    			}else{
    				//可以修改图书名
    				book[index].name=updateName;
    				System.out.println("修改成功");
    			}
    			
    			
    		}else{
    			//如果这本书不存在
    			System.out.println("该书不存在,无法修改图书名");
    		}
    	}
    	//8、排行榜
    	public void Arrange(){
    		System.out.println("图书排行榜");
    		//按图书借出次数排列
    		System.out.println("书名	是否借出	借出次数");
    		//冒泡排序
    		for (int i = 0; i < size-1; i++) {
    			for (int j = 0; j <size-i-1; j++) {
    				if(book[j].time<book[j+1].time){
    					Book temp=book[j];
    					book[j]=book[j+1];
    					book[j+1]=temp;
    				}
    			}
    		}
    		for (int i = 0; i < size; i++) {
    			System.out.println(book[i].name+"	"+book[i].state+"	"+book[i].time);
    		}
    	}
    
    }
    

      

  • 相关阅读:
    还在使用golang 的map 做Json编码么?
    Golang 性能测试(2) 性能分析
    golang 性能测试 (1) 基准性能测试
    消息队列 NSQ 源码学习笔记 (五)
    消息队列 NSQ 源码学习笔记 (四)
    消息队列 NSQ 源码学习笔记 (三)
    消息队列 NSQ 源码学习笔记 (二)
    消息队列 NSQ 源码学习笔记 (一)
    你不知道的空格
    Supervisor 使用和进阶4 (Event 的使用)
  • 原文地址:https://www.cnblogs.com/www-x/p/8040313.html
Copyright © 2011-2022 走看看