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

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

按照需求寫得,注解寫得很詳細,需求沒提的功能也沒寫,Book類和自定義的異常類沒放上來,供參考

package?com.imooc;
import?java.util.InputMismatchException;
import?java.util.Scanner;
public?class?Test?{public?static?void?main(String[]?args)?throws?BookException?{
????//定義一個Book類數組用來存儲書籍,擬定義四本書
????Book[]?book?=?{new?Book("論語",1),new?Book("高數",2),new?Book("語文",3),new?Book("法語",4)};
????//提前定義一個用戶選擇的選項方式,默認為0
????int?chose?=?0;
????//定義書名,后期存儲書名,默認為空
????String?bookName?=?null;
????//定義書序號。后期存儲書序號
????int?bookNum;
????//提前定義一個輸入流
????Scanner?sc?=?null;
????//定義是否有用戶想要的書,默認false
????boolean?ifHaveBook?=?false;
????//體錢定義一本書Book,用于存儲用戶選擇的書
????Book?needBook?=?null;
????//當用戶輸入有誤時,彈出提示并重新開始輸入選擇書籍
????while(chose?!=1&&chose!=2){
????????System.out.println("輸入書名請按1,輸入序號請按2");
????????try?{
????????//得到用戶輸入的值,并存在體錢準備的chose參數中
????????sc?=?new?Scanner(System.in);
????????chose?=?sc.nextInt();
????????//判斷用戶選擇的找書方式,如果輸入的數字不是1或者2,拋出自建錯誤類ErrorNumException
????????if(chose?!=1&&chose?!=2){
????????????throw?new?ErrorNumException();
????????}
????????//如果用戶選擇的是1,輸入名稱來找書
??????????if(chose==1){
??????????????System.out.println("請輸入你想要的的書籍名稱");
??????????????//得到用戶的輸入值,并賦值給提前準備的bookName中
??????????????sc?=?new?Scanner(System.in);
??????????????bookName?=?sc.nextLine();
??????????????//遍歷書的數組,判斷是否有用戶輸入的書名的書
??????????????for(Book?k:book){
??????????????//如果找到對應書名的書,將ifHaveBooK賦值為true,代表有書,找到的書存在needBook中
??????????????????if(k.getName().equals(bookName)){
??????????????????ifHaveBook?=?true;
??????????????????needBook?=?k;
??????????????????}
??????????????}
???????//根據ifHaveBook的結果判斷是否找到書,找到則輸出找到的書的信息,沒有則拋出自定義異常NoBookNameException
??????????????if(ifHaveBook){
????????????????System.out.println("找到您要的書籍:"+needBook.getName());
??????????????}else{
??????????????//chose清零是為了如果沒有找到書,讓循環繼續運行,重新開始找書
????????????????chose?=?0;
????????????????throw?new?NoBookNameException();
??????????????}
????????????//如果用戶選擇的是2,輸入序號來找書
??????????}else{
??????????????System.out.println("請輸入你想要的的書籍序號");
??????????????//得到用戶輸入的序號并存入bookNum中
??????????????sc?=?new?Scanner(System.in);
??????????????bookNum?=?sc.nextInt();
??????????????//遍歷書數組,判斷是否有用戶輸入的書序號的書
??????????????for(Book?k:book){
??????????????//如果找到對應書名的書,將ifHaveBooK賦值為true,代表有書,找到的書存在needBook中
????????????????if(k.getNum()==bookNum){
????????????????????ifHaveBook?=?true;
????????????????????needBook?=?k;
????????????????}
??????????????}
???????//根據ifHaveBook的結果判斷是否找到書,找到則輸出找到的書的信息,沒有則拋出自定義異常NoBookNumException
????????????????if(ifHaveBook){
????????????????????System.out.println("找到您要的書籍:"+needBook.getName());
????????????????}else{
????????????????//chose清零是為了如果沒有找到書,讓循環繼續運行,重新開始找書
????????????????????chose?=?0;
????????????????????throw?new?NoBookNumException();
????????????????}
??????????}
????????}?catch?(InputMismatchException?e)?{
????????????System.out.println("請按照提示輸入合法數字");
????????}?catch?(ErrorNumException?e)?{
????????????System.out.println("輸入錯誤,請輸入1或者2");
????????}?catch?(NoBookNameException?e)?{
????????????????System.out.println("根據您輸入的書名,未找到相應的書籍");
????????}?catch?(NoBookNumException?e)?{
????????????????System.out.println("根據您輸入的序號,未找到相應的書籍");
????????}
?????}
??}
}


正在回答

1 回答

?瑪尼瑪尼

0 回復 有任何疑惑可以回復我~
package?com.example.java_basics.one.dec.twentyfour;

import?lombok.Data;

import?java.util.InputMismatchException;
import?java.util.Scanner;

/**
?*?@Description?模擬借書系統(異常練習)
?*?@Author?lcb
?*?@Date?2019/12/24
?*/
@Data
public?class?Practice?{
????Scanner?scanner?=?null;
????String[]?str?=?{"圖書1","圖書2","圖書3"};

????public?static?void?main(String[]?args)?{
????????Practice?practice?=?new?Practice();
????????practice.test1();
????}

????public?void?test1()?{
????????System.out.println("輸入命令:1、按照序號查找?2、按照書名查找");
????????try?{
????????????scanner?=?new?Scanner(System.in);
????????????int?input?=?scanner.nextInt();
????????????test2(input);
????????}catch?(InputMismatchException?e)?{
????????????System.out.println("輸入錯誤!請根據提示輸入數字命令");
????????}catch?(PracticeException?e)?{
????????????System.out.println(e.getMessage());
????????}catch?(Exception?e){
????????????e.printStackTrace();
????????}finally?{
????????????test1();
????????}
????}

????public?void?test2(int?input)?{
????????????scanner?=?new?Scanner(System.in);
????????if?(input?==?1)?{
????????????System.out.println("請輸入序號:");
????????????int?i1?=?scanner.nextInt();
????????????if?(i1?<=?0?||?i1?>?str.length)?{
????????????????throw?new?PracticeException("圖書不存在");
????????????}else{
????????????????System.out.println("book:"+str[(i1-1)]);
????????????}
????????}else?if?(input?==?2)?{
????????????System.out.println("請輸入書名:");
????????????String?i2?=?scanner.next();
????????????String?book?=?"";
????????????for?(String?s?:?str)?{
????????????????if?(s.equals(i2))?{
????????????????????book?=?s;
????????????????????System.out.println("book:"+book);
????????????????}
????????????}
????????????if?("".equals(book))?{
????????????????throw?new?PracticeException("圖書不存在");
????????????}
????????}else{
????????????throw?new?PracticeException("請輸入大于0小于3的數字");
????????}
????}
}


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

舉報

0/150
提交
取消

按照需求寫得,注解寫得很詳細,需求沒提的功能也沒寫,Book類和自定義的異常類沒放上來,供參考

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

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

幫助反饋 APP下載

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

公眾號

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