只为纪念。

来源:1-9 经验总结

风中过客

2015-04-22 14:39

//需要对应定义三个异常类,写的很差,好在是写出来了 只为自己纪念。
package com.guoke;
import java.util.Scanner;
import java.util.InputMismatchException;
public class SimulatedLibrarySystem {
private	String []  books={"高数","数据结构","慕课","123"};//图书馆的书.不能放到main方法里面,因为放进去就是局部变量。
   public static void main(String[] args) {
	   System.out.println("输入命令:1-按照名称查找图书;\t2-按照序号查找图书");
    Scanner scan=new Scanner(System.in);//创建接收输入对象scan
    SimulatedLibrarySystem s=new SimulatedLibrarySystem();//创建一个对象s,便于调用数组
    int a=3;
    while((a!=1)&&(a!=2)){//输入命令选择查找方式
    	try{
    	 a=scan.nextInt();//将输入放入a中
    	s.getRightOrder(a);//判断输入是否正确,如无异常,则继续;
//   	 System.out.println(b);
    }catch(InputMismatchException e){//输入的不是整型数字,捕获异常
    	System.out.println("命令输入错误!请根据提示输入命令字符!");
    	scan.next();//获取Scanner对象扫描到的键盘输入,如果不获取,会因为while一直给异常提示
    }catch(OrderNotExist f){//输入的不是1或2,捕获异常
    	
    }
    }
    switch(a){//进入对应的查找方式
    case 1: while(a!=3){//进入方式1
    	System.out.println("输入图书名称");
            try {
            	String book=scan.next();
            	book=s.getRightBook(book);//判断图书存在与否
            	System.out.println("book:"+book);
               
			} catch (BookNotExist e) {
				// TODO: handle exception
				
			}
       }
    case 2:  while(a!=3){//进入方式2 输入序号(数组下标)找书
    	System.out.println("输入图书序号");
    	try {
    		int number=scan.nextInt();//输入下标
        	number=s.getRightBook2(number);//判断图书存在与否
        	System.out.println("book:"+s.books[number]);
		} catch (BookNotExist2 e) {
			// TODO: handle exception
		}
    }
//    System.out.println("over");
   }
   }
private  void  getRightOrder(int a) throws OrderNotExist{//判断输入是否为1或2,否则抛出异常
	if((a!=1)&&(a!=2)){
		throw new OrderNotExist();
	}
}
public  String getRightBook(String book) throws BookNotExist{//按书名找图书
	for(int i=0;i<books.length;i++){
	  if(book.equals(books[i])){//找到则返回图书名
		  return book;
	  }	
	}throw new BookNotExist();

}
public  int getRightBook2(int number) throws BookNotExist2{//按下标找图书,找到则返回图书名 否则报错
	
	  if(number>books.length-1||number<0){//下标超出数组范围抛出异常
		  throw new BookNotExist2();
	  }	
	return number;
}
}


写回答 关注

1回答

  • Luther宏
    2015-12-17 12:49:30

    棒棒的。

    看完视频推荐来看你、

    太有缘了

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409791 学习 · 4340 问题

查看课程

相似问题