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-01-27
?int?num;
????String?name;
這個地方最好用private進行封裝調(diào)用時是用get的方法;其他我覺得挺好的
2016-05-12
int num;
String name;
這個地方最好用private進行封裝,對于這樣,private只是限于在本類中使用,那Library類中豈不是不能 用他的
信息?
2016-05-12
我剛才運行了一下代碼,發(fā)現(xiàn)沒有必要回滾啊
2016-04-04
你好,參考打印出了,查找原因,目前是同時定義了 兩個類型的變量b ,分別是String ,int ,嘗試將變量變換兩者不能相同吧,問題解決。小白請教。
2016-03-02
我運行了代碼 之后,發(fā)現(xiàn),沒有運行catch()塊中的代碼
2016-03-01
對于Scanner input.樓主要記得調(diào)用input.close()關(guān)閉會比較好
2016-02-24
問下 輸入的書名不匹配 為什么會拋出一個異常?
2016-02-24
想問問能寫出這樣的代碼,需要怎么學(xué)習(xí),自己也看了問題但是仍然沒有思路和想法,只是知道最基本的一些簡單知識,求指教。
2016-02-22
問題:在Books類里定義的靜態(tài)數(shù)組books,在類Library類里不能直接調(diào)用吧,我嘗試了下,不對啊,應(yīng)該在Liberay里調(diào)用一下Books的構(gòu)造函數(shù)吧!
2016-02-10
根據(jù)書名找不到書不會提示錯誤。