作业代码
package com.imooc.test;
import java.util.Scanner;
//模拟借书系统
/*
* 要求:
* 1.定义字符串数组保存图书信息
* 2.提示用户输入,分别按照“书名”和"图书序号"查找图书
* 3.根据输入信息进行适当的异常处理
* 如果输入类型错误,抛出“错误命令异常”,并提示重新输入
* 如果书名不存在,抛出“图书不存在异常”,并提示重新输入
* 如果图书序号超过字符串数组范围,抛出“图书不存在异常”,并提示重新输入
*/
public class BorrowBook {
private static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
String[] books={"数据结构","高数","毛概","C语言","软件工程"};
while(true){
System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
String book;
try {
int cmn=inputCommand();
switch(cmn){
case 1:
book=getBookName(books);
System.out.println("book:"+book);
break;
case 2:
book=getBookNum(books);
System.out.println("book:"+book);
break;
case -1:
System.out.println("命令输入错误!请根据提示输入数字命令!");
continue;
default:
System.out.println("命令输入错误!");
continue;
}
break;
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
continue;
}
}
}
//按照图书名称查询图书
public static String getBookName(String[] books)throws Exception {
System.out.println("请输入图书名称:");
String name=input.next();
for(int i=0;i<books.length;i++){
if(name.equals(books[i])){
return books[i];
}
}
throw new Exception("图书不存在!");
}
public static String getBookNum(String[] books)throws Exception{
while(true){
System.out.println("输入图书序号:");
try {
int num=inputCommand();
if(num==-1){
System.out.println("命令输入错误!请根据提示输入数字命令!");
continue;
}
String book=books[num];
return book;
} catch (ArrayIndexOutOfBoundsException e) {
// TODO: handle exception
Exception exc=new Exception("图书不存在!");
exc.initCause(e);
throw exc;
}
}
}
//从控制台输入命令,用于输入命令和输入图书序号
public static int inputCommand(){
int command;
try {
command=input.nextInt();
return command;
} catch (Exception e) {
// TODO: handle exception
input=new Scanner(System.in);
return -1;
}
}
}