JAVA入門第三季(第一章練習)模擬借書系統

johnchou發表於2021-09-09

功能:模擬借書系統
要求:
1.定義字串陣列儲存圖書資訊
2.提示使用者輸入,分別按“書名”和“圖書序號”查詢圖書
3.根據輸入資訊進行適當的異常處理:
a) 如果輸入型別錯誤,丟擲“錯誤命令異常”,並提示重新輸入
b) 如果書名不存在,丟擲“圖書不存在異常”,並提示重新輸入
c) 如果圖書序號超過字串陣列範圍,丟擲“圖書不存在異常”,並提示重新輸入

首先定義了一個書的類,裡面包含了序號和書名兩個屬性

package com.book;

/*
 * 圖書管理
 * 書的屬性*/
public class Book {

    private int number;//圖書序號
    private String name;//圖書書名

    public int getNumber() {
        return number;
    }
    public void setNumber(int NewNumber) {
        this.number = NewNumber;
    }
    public String getName() {
        return name;
    }
    public void setName(String NewName) {
        this.name = NewName;
    }

    public Book(int NewNumber, String NewName){

        this.number = NewNumber;
        this.name = NewName;
    }
}

定義了一個自定義異常類

package com.book;

/*
 *自定義異常類 */
public class InputException extends Exception {

    public InputException(){};
    public InputException(String msg){
        super(msg);
    }
}

在主類中自定義了三個異常方法,分別對應功能序號輸入異常,書名查詢異常,圖書序號超過字串陣列範圍異常

功能序號輸入異常

//自定義異常,當輸入的數字不屬於1,2,3時,報錯
    public void check(int num) throws InputException{

        if(num == 1 || num == 2 || num == 3){
            return;
        }else{
            throw new InputException("命令輸入錯誤!請根據提示輸入數字命令!");
        }
    }

書名查詢不到異常

//書名查詢不存在的異常
    public void NameNothingness(String name) throws InputException{

        for(int i=0; i 

圖書序號超過字串陣列範圍異常

//圖書序號超過字串陣列範圍異常
    public void NumNothingness(int num) throws InputException{

        //num0 && num

主類完全程式碼

package com.book;

import java.util.Scanner;

/*
 * 圖書管理
 * 借書管理*/
public class Management {

    static Book[] book = {new Book(1, "高數"),
                   new Book(2, "離散"),
                   new Book(3, "機率"),
                   new Book(4, "圖形學")};

    static Management m = new Management();

    //序號查詢方法
    public void NumberLookup(int num){
        try {
            m.NumNothingness(num);
        } catch (InputException e) {
            // TODO 自動生成的 catch 塊
            System.out.println("圖書序號超過字串陣列範圍,查無此書籍!");
        }
    }

    //書名查詢方法
    public void NameLookup(String name){

        try {
            m.NameNothingness(name);
        } catch (InputException e) {
            // TODO 自動生成的 catch 塊
            System.out.println("查無此書");
        }

    }

    //main()程式入口
    public static void main(String[] args){     

        for(;;){
            try{
                System.out.println("輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式");
                @SuppressWarnings("resource")
                Scanner s = new Scanner(System.in);
                int c = s.nextInt();
                m.check(c);
                switch (c){
                case 1:
                    System.out.print("輸入圖書名稱:");
                    String name = s.next();
                    m.NameLookup(name);
                    break;
                case 2:
                    System.out.print("輸入圖書序號:");
                    int num = s.nextInt();
                    m.NumberLookup(num);
                    break;
                case 3:
                    System.out.println("退出程式~");
                    System.exit(0);
                }

            }catch (InputException e){
                System.out.println("命令輸入錯誤!請根據提示輸入數字命令!");
            }catch (Exception e){
                System.out.println("請正確輸入書的序號!");
            }
        }
    }

    //自定義異常,當輸入的數字不屬於1,2,3時,報錯
    public void check(int num) throws InputException{

        if(num == 1 || num == 2 || num == 3){
            return;
        }else{
            throw new InputException("命令輸入錯誤!請根據提示輸入數字命令!");
        }
    }

    //書名查詢不存在的異常
    public void NameNothingness(String name) throws InputException{

        for(int i=0; i 0 && num

執行結果

輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
1
輸入圖書名稱:高數
book:高數
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
1
輸入圖書名稱:asd
查無此書
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
2
輸入圖書序號:1
book:高數
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
2
輸入圖書序號:4
book:圖形學
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
2
輸入圖書序號:5
圖書序號超過字串陣列範圍,查無此書籍!
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
2
輸入圖書序號:6
圖書序號超過字串陣列範圍,查無此書籍!
輸入命令:1-按照名稱查詢書籍;2-按照序號查詢書籍;3-退出程式
3
退出程式~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4422/viewspace-2798059/,如需轉載,請註明出處,否則將追究法律責任。

相關文章