package?com.imooc;
import?java.util.Scanner;
/*模擬借書(shū)系統(tǒng):
?*?1.定義字符串?dāng)?shù)組保存圖書(shū)信息
?*?2.提示用戶(hù)輸入,分別按“書(shū)名”和“圖書(shū)序號(hào)”查找圖書(shū)
?*?3.根據(jù)輸入信息進(jìn)行適當(dāng)?shù)漠惓L幚?
?*????a.如果輸入類(lèi)型錯(cuò)誤,拋出“錯(cuò)誤命令異?!保⑻崾局匦螺斎?
?*????b.如果書(shū)名不存在,拋出“圖書(shū)不存在異常”,并提示重新輸入
?*????c.如果圖書(shū)序號(hào)超過(guò)字符串?dāng)?shù)組范圍,拋出“圖書(shū)不存在異?!?,并提示重新輸入
?*????*/
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")};
?//用一個(gè)Book類(lèi)的數(shù)組存儲(chǔ)所有圖書(shū)的圖書(shū)庫(kù)allbook,本庫(kù)共創(chuàng)建了6個(gè)圖書(shū)對(duì)象
?System.out.println("請(qǐng)輸入查詢(xún)圖書(shū)的方式:");
?System.out.println("1.按照書(shū)名查找圖書(shū)");
?System.out.println("2.按照?qǐng)D書(shū)編碼查找圖書(shū)");
?//兩種查詢(xún)方式
??????//可能出現(xiàn)的異常:用戶(hù)輸入類(lèi)型錯(cuò)誤,拋出“錯(cuò)誤命令”異常
?try{
??Scanner?input=new?Scanner(System.in);
???int?userC=input.nextInt();//把用戶(hù)輸入的要查詢(xún)方式保存在userC中
???if(userC==1){
????System.out.println("請(qǐng)輸入您要查詢(xún)的圖書(shū)名稱(chēng):");
????String?userBNa=input.next();
????//把用戶(hù)輸入的要查詢(xún)的圖書(shū)名字保存在userBNa中
????Query?userQ=new?Query();//創(chuàng)建一個(gè)用戶(hù)查詢(xún)對(duì)象userQ
????
????userQ.query(allbook,?userBNa);//調(diào)用按照書(shū)名查詢(xún)的方法
????
????}
???else?if(userC==2){
????System.out.println("請(qǐng)輸入您要查詢(xún)的圖書(shū)編碼:");
????int?userBId=input.nextInt();
????//把用戶(hù)輸入的要查詢(xún)的圖書(shū)編碼保存在userBId中
????Query?userQ=new?Query();//創(chuàng)建一個(gè)用戶(hù)查詢(xún)對(duì)象userQ
????userQ.query(allbook,?userBId);;//調(diào)用按照?qǐng)D書(shū)編碼查詢(xún)的方法
???}
?}catch(Exception?e){
??e.printStackTrace();
??LibraryException?newLE=new?LibraryException("錯(cuò)誤命令異常!");
??throw?newLE;
?}
?}
}
package?com.imooc;
/*自定義一個(gè)借書(shū)系統(tǒng)的異常*/
public?class?LibraryException?extends?Exception?{
?//創(chuàng)建一個(gè)無(wú)參數(shù)的構(gòu)造器
????public?LibraryException(){
????}
????//創(chuàng)建一個(gè)有參數(shù)的構(gòu)造器
????public?LibraryException(String?message){
?????super(message);//調(diào)用父類(lèi)Exception的含參數(shù)的構(gòu)造器
????}
}
package?com.imooc;
/*創(chuàng)建一個(gè)圖書(shū)類(lèi)
?*?該類(lèi)包括兩個(gè)屬性:
?*?圖書(shū)的編碼id,圖書(shū)的書(shū)名name.
?*?此類(lèi)中可以修改圖書(shū)的id,name
?*?*/
public?class?Book?{
?public?int?id;//圖書(shū)編碼
?public?String?name;//圖書(shū)名稱(chēng)
?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;
/*圖書(shū)查詢(xún)類(lèi):
?*?包含兩個(gè)方法
?*?query(Book?[]book,int?id)是按照?qǐng)D書(shū)id查詢(xún)圖書(shū)
?*?query(Book?[]book,String?name)是按照?qǐng)D書(shū)name查詢(xún)圖書(shū)
?*?查詢(xún)結(jié)果均為:圖書(shū)編碼:圖書(shū)名稱(chēng)
?*?*/
public?class?Query{
?//兩種查詢(xún)方式的輸入均為,Book類(lèi)的數(shù)組,以及圖書(shū)編碼id,圖書(shū)名稱(chēng)name
public?void?query(Book?[]book,int?id){
?//遍歷整個(gè)圖書(shū)庫(kù)book[],用id和每一個(gè)圖書(shū)的id相比較,找到相同id則輸出結(jié)果
?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){
?//遍歷整個(gè)圖書(shū)庫(kù)book[],用name和每一個(gè)圖書(shū)的name相比較,找到相同name則輸出結(jié)果
?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("錯(cuò)誤命令異常");
}else?if(b){
????throw?new Exception("圖書(shū)不存在異常");
}else?if(c){
????throw?new Exception("圖書(shū)序號(hào)不存在異常");
}else{
????throw?new Exception("其他異常");
}
}catch(exception e){
????e.printStackTrace();
}