package?com.imooc;
import?java.util.Scanner;
/*模擬借書系統:
?*?1.定義字符串數組保存圖書信息
?*?2.提示用戶輸入,分別按“書名”和“圖書序號”查找圖書
?*?3.根據輸入信息進行適當的異常處理
?*????a.如果輸入類型錯誤,拋出“錯誤命令異?!保⑻崾局匦螺斎?
?*????b.如果書名不存在,拋出“圖書不存在異常”,并提示重新輸入
?*????c.如果圖書序號超過字符串數組范圍,拋出“圖書不存在異常”,并提示重新輸入
?*????*/
public?class?LibrarySys?{
public?static?void?main(String?[]args)throws?LibraryException{
?Book?[]allbook={new?Book(1001,"Java"),new?Book(1002,"C++"),
???new?Book(1003,"linux"),new?Book(1004,"C#"),
???new?Book(1005,"PHP"),new?Book(1006,"HTML")};
?//用一個Book類的數組存儲所有圖書的圖書庫allbook,本庫共創建了6個圖書對象
?System.out.println("請輸入查詢圖書的方式:");
?System.out.println("1.按照書名查找圖書");
?System.out.println("2.按照圖書編碼查找圖書");
?//兩種查詢方式
??????//可能出現的異常:用戶輸入類型錯誤,拋出“錯誤命令”異常
?try{
??Scanner?input=new?Scanner(System.in);
???int?userC=input.nextInt();//把用戶輸入的要查詢方式保存在userC中
???if(userC==1){
????System.out.println("請輸入您要查詢的圖書名稱:");
????String?userBNa=input.next();
????//把用戶輸入的要查詢的圖書名字保存在userBNa中
????Query?userQ=new?Query();//創建一個用戶查詢對象userQ
????
????userQ.query(allbook,?userBNa);//調用按照書名查詢的方法
????
????}
???else?if(userC==2){
????System.out.println("請輸入您要查詢的圖書編碼:");
????int?userBId=input.nextInt();
????//把用戶輸入的要查詢的圖書編碼保存在userBId中
????Query?userQ=new?Query();//創建一個用戶查詢對象userQ
????userQ.query(allbook,?userBId);;//調用按照圖書編碼查詢的方法
???}
?}catch(Exception?e){
??e.printStackTrace();
??LibraryException?newLE=new?LibraryException("錯誤命令異常!");
??throw?newLE;
?}
?}
}
package?com.imooc;
/*自定義一個借書系統的異常*/
public?class?LibraryException?extends?Exception?{
?//創建一個無參數的構造器
????public?LibraryException(){
????}
????//創建一個有參數的構造器
????public?LibraryException(String?message){
?????super(message);//調用父類Exception的含參數的構造器
????}
}
package?com.imooc;
/*創建一個圖書類
?*?該類包括兩個屬性:
?*?圖書的編碼id,圖書的書名name.
?*?此類中可以修改圖書的id,name
?*?*/
public?class?Book?{
?public?int?id;//圖書編碼
?public?String?name;//圖書名稱
?public?int?getBookId(){
??return?id;
?}
?public?void?setBookId(int?id){
??this.id=id;
?}
?public?String?getBookName(){
??return?name;
?}
?public?void?setBookName(String?name){
??this.name=name;
?}
?public?Book(int?id,String?name){
??this.id=id;
??this.name=name;
?}
}
package?com.imooc;
/*圖書查詢類:
?*?包含兩個方法
?*?query(Book?[]book,int?id)是按照圖書id查詢圖書
?*?query(Book?[]book,String?name)是按照圖書name查詢圖書
?*?查詢結果均為:圖書編碼:圖書名稱
?*?*/
public?class?Query{
?//兩種查詢方式的輸入均為,Book類的數組,以及圖書編碼id,圖書名稱name
public?void?query(Book?[]book,int?id){
?//遍歷整個圖書庫book[],用id和每一個圖書的id相比較,找到相同id則輸出結果
?for(int?i=0;i<book.length;i++){
??if(book[i].getBookId()==id)
???System.out.println(id+":"+book[i].getBookName());
?}
}
public?void?query(Book?[]book,String?name){
?//遍歷整個圖書庫book[],用name和每一個圖書的name相比較,找到相同name則輸出結果
?for(int?i=0;i<book.length;i++){
??if(name.equals(book[i].getBookName()))
???System.out.println(book[i].getBookId()+":"+name);
?}
}
}
2015-07-12
我的代碼是這樣滴。
2015-06-12
try{
if(a){?
????? ? throw new Exception("錯誤命令異常");
}else?if(b){
????throw?new Exception("圖書不存在異常");
}else?if(c){
????throw?new Exception("圖書序號不存在異常");
}else{
????throw?new Exception("其他異常");
}
}catch(exception e){
????e.printStackTrace();
}