我寫的有問題沒
Book類
package?com.library; public?class?Book?{ private?int?num; private?String?name; public?Book(int?num,?String?name)?{ this.num?=?num; this.name?=?name; } public?int?getNum()?{ return?num; } public?String?getName()?{ return?name; } }
自定義異常
package?com.library; public?class?BookIsNotExistException?extends?Exception?{ //自定義異常,圖書不存在 public?BookIsNotExistException() { System.out.println("圖書不存在,請重新輸入!"); } }
搜尋圖書類
package?com.library; import?java.util.Scanner; import?java.util.InputMismatchException; public?class?SearchBook?{ private?Scanner?input?=?new?Scanner(System.in); ? ?//運行 ????public?void??Run() ????{ ???? Search(); ????} ???? ????//搜索圖書 ????private?void?Search() ????{ ???????while(true) ?{ ???? ???int?choice=0; System.out.println("輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書"); try?{ choice?=?input.nextInt(); }?catch?(InputMismatchException?e)?{ //?輸入有誤,重新輸入 System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令!"); input.next(); continue; } switch(choice) { //按照名稱查找圖書 case?1: System.out.println("輸入圖書名稱:"); ????????????String?searchStr?=?input.next();???? try?{ ?? ????????????????Book?book?=?searchByName(searchStr); ????????????????ShowBookInfo(book); ????????????????break; }?catch?(BookIsNotExistException?e)?{ //?圖書不存在 continue; } //按照序號查找圖書 case?2: System.out.println("輸入圖書編號:"); int?SearchNum?=?input.nextInt(); try?{ Book?book?=?searchByNum(SearchNum); ShowBookInfo(book); break; }?catch?(Exception?e)?{ //?圖書不存在 continue; } default:? System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令!"); break; } } ??} //通過名字搜索圖書,拋出異常 ??private?Book?searchByName(String?name)?throws?BookIsNotExistException?{ ?????for?(Book?book?:?initialize.books)?{ ????????if?(book.getName().equals(name))?{ ????????????return?book; ????????} ????} ????throw?new?BookIsNotExistException(); ??} ?? //通過編號搜索圖書,拋出異常 ??private?Book?searchByNum(int?num)?throws?BookIsNotExistException?{ ?????for?(Book?book?:?initialize.books)?{ ????????if?(book.getNum()==num)?{ ????????????return?book; ????????} ????????if?(num?>?initialize.books.length?||?num?<?1)?{ ????????????throw?new?BookIsNotExistException(); ????????} ????} ????return?null; ??} ?? ??//顯示搜索到的圖書信息 ??private?void?ShowBookInfo(Book?book) ??{ ??System.out.println("編號:"?+?book.getNum()?+?"\t書名:"?+?book.getName()); ??} }
實現(xiàn)類
package?com.library; public?class?initialize?{ static??Book[]?books?=?{new?Book(1,?"數(shù)據(jù)結(jié)構(gòu)"),?new?Book(2,?"離散數(shù)學(xué)"),new?Book(3,?"計算機網(wǎng)絡(luò)"),new?Book(4,?"高等數(shù)學(xué)")}; public?static?void?main(String[]?args)?{ ???????SearchBook?s?=?new?SearchBook(); ???????s.Run(); ?? ??} }
2015-12-15
沒問題,挺清晰的