亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

終于寫出來了,還需要改進的地方。。。。

package?com.kandy.class8;

public?class?Book?{
????private?String?name;
????private?int?id;

????public?String?getName()?{
????????return?name;
????}

????public?Book(int?id,String?name)?{
????????this.name?=?name;
????????this.id?=?id;
????}

????public?void?setName(String?name)?{
????????this.name?=?name;
????}

????public?int?getId()?{
????????return?id;
????}

????public?void?setId(int?id)?{
????????this.id?=?id;
????}
}
package?com.kandy.class8;

public?class?BookNotFindExeption?extends?Exception{
????public?BookNotFindExeption(){}
????public?BookNotFindExeption(String?message)?{
????????super(message);
????}
}
package?com.kandy.class8;
import?java.util.Scanner;

public?class?InitialBook?{
????//創建圖書
????Book[]?books?=?{
????????????new?Book(1,?"語文"),
????????????new?Book(2,?"數學"),
????????????new?Book(3,?"英語"),
????};
????//輸入
????Scanner?input;

????//顯示圖書菜單,進入查找分類
????public?void?showMenu()?{
????????try?{
????????????System.out.println("借書請按編號或書名(1:按編號/2:按書名)");
????????????System.out.println("編號\t\t?書名");
????????????for?(Book?book?:?books)?{
????????????????System.out.println("?"?+?book.getId()?+?"\t\t《"?+?book.getName()?+?"》");
????????????}
????????????System.out.print("請輸入1或2,0退出:");
????????????input?=?new?Scanner(System.in);

????????????int?num?=?input.nextInt();
????????????switch?(num)?{
????????????????case?0:
????????????????????System.exit(0);
????????????????????break;
????????????????case?1:
????????????????????findForId();
????????????????????break;
????????????????case?2:
????????????????????findForName();
????????????????????break;
????????????????default:
????????????????????showMenu();
????????????}
????????}?catch?(Exception?e)?{
????????????System.out.println("輸入有誤,請根據提示輸入。");
????????????showMenu();
????????}?finally?{
????????????input.close();
????????}
????}

????//按編號查找
????public?void?findForId()?{
????????try?{
????????????System.out.print("請輸入圖書的編號,輸入0返回上一級:");
????????????input?=?new?Scanner(System.in);
????????????int?num?=?input.nextInt();
????????????if?(num?==?0)?showMenu();

????????????boolean?isFind?=?false;
????????????for?(Book?book?:?books)?{
????????????????if?(book.getId()?==?num)?{
????????????????????isFind?=?true;
????????????????????System.out.println("********找到圖書:(編號:"?+?book.getId()?+?"書名:"?+?book.getName()?+?")");
????????????????????showMenu();
????????????????????break;
????????????????}
????????????}
????????????if?(!isFind)?{
????????????????throw?new?BookNotFindExeption("未找到此編號的圖書!");
????????????}
????????}?catch?(BookNotFindExeption?e)?{
????????????System.out.println(e.getMessage());
????????????findForId();
????????}?catch?(Exception?e)?{
????????????System.out.println("輸入有誤,請根據提示輸入。");
????????????findForId();
????????}?finally?{
????????????input.close();
????????}
????}

????//按書名查找
????public?void?findForName()?{
????????try?{
????????????System.out.print("請輸入圖書的名稱,輸入0返回上一級:");
????????????input?=?new?Scanner(System.in);
????????????String?name?=?input.nextLine();
????????????if?(name.equals("0"))?showMenu();

????????????boolean?isFind?=?false;
????????????for?(Book?book?:?books)?{
????????????????if?(book.getName().equals(name))?{
????????????????????isFind?=?true;
????????????????????System.out.println("*********找到圖書:(編號:"?+?book.getId()?+?"書名:"?+?book.getName()?+?")");
????????????????????showMenu();
????????????????????break;
????????????????}
????????????}
????????????if?(!isFind)?{
????????????????throw?new?BookNotFindExeption("未找到此名稱的圖書!");
????????????}
????????}?catch?(BookNotFindExeption?e)?{
????????????System.out.println(e.getMessage());
????????????findForName();
????????}?catch?(Exception?e)?{
????????????System.out.println("輸入有誤,請根據提示輸入。");
????????????findForName();
????????}?finally?{
????????????input.close();
????????}
????}

????//程序入口
????public?static?void?main(String[]?args)?{
????????InitialBook?in?=?new?InitialBook();
????????//顯示圖書列表
????????in.showMenu();
????}
}


正在回答

1 回答

?真的牛,不過用遞歸,可能會造成內存溢出,就是一直按住回車的情況下

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

終于寫出來了,還需要改進的地方。。。。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號