package?library;
import?java.util.Scanner;//掃描
public?class?Library?{
?public?void?library(){
System.out.println("輸入命令:1。按照名稱查找圖書;2.按照序號查找圖書");//打印輸出
try{//try{}catch(){}語句塊的應(yīng)用
Scanner?input=new?Scanner(System.in);
int?a=input.nextInt();
?if(a==1){
library1();//輸入1,調(diào)用library1方法
?}else?if(a==2){
?library2();//輸入2調(diào)用library2方法
?}else?{
?System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令!(1或2)");
library();//輸入其它整數(shù)則提示重新輸入
?}
}catch(Exception?e){//異常捕獲
System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令!");
library();//異常處理,回滾重新輸入
}
}
?public?void?library1(){
?System.out.println("輸入圖書名稱:");
?try{
?Scanner?input=new?Scanner(System.in);
?String?b=input.next();//掃描?輸入字符串(輸入圖書名稱)
?for(int?i=0;;i++){//用for循環(huán)遍歷?搜索系統(tǒng)中是否有要借的圖書
?if((Books.books[i].name).equals(b)){
?System.out.println("book:"+b);
?break;//有則結(jié)束循環(huán),沒有則拋出一個異常
?}
?}
?
?}catch(Exception?e){
?System.out.println("圖書不存在!");//異常處理方式?重新輸入圖書
library1();
?}
?
?}
?public?void?library2(){//參照library1
?System.out.println("輸入圖書序號:");
?try{
?Scanner?input=new?Scanner(System.in);
?int?b=input.nextInt();
?for(int?i=0;;i++){
?if(Books.books[i].num==b){
?System.out.println("book:"+Books.books[i].name);
?break;
?}
?}
?
?}catch(Exception?e){
?System.out.println("圖書不存在!");
library2();
?}
?}
}
package?library;
public?class?Books?{//數(shù)據(jù)模型
int?num;
String?name;
public?Books(int?num,String?name){//構(gòu)造函數(shù)??存儲書本序號,及名字
this.num=num;
this.name=name;
}
public?static?Books[]books={new?Books(1,"數(shù)據(jù)結(jié)構(gòu)"),new?Books(2,"高數(shù)"),new?Books(3,"線性代數(shù)")
};//數(shù)組信息
}
package?library;//測試類
public?class?Initail?{
/**
?*?@param?args?
?*/
public?static?void?main(String[]?args){
//?TODO?Auto-generated?method?stub
System.out.println("歡迎登錄借書系統(tǒng)");
Library?input=new?Library();//建立對象
input.library();
}
}
2016-02-03
這樣遞歸算不算“異常鏈”呢?
2016-01-24
整體來說不錯,提個小建議:或許可以在類與類之間建立一些關(guān)系(如:繼承),使得他們之間的耦合更加緊密,從而達成一些效率上的提升
2016-01-23
呃。。。原來木有問題。。