亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    本篇文章給大家?guī)?lái)了關(guān)于java的相關(guān)知識(shí),其中主要整理了實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)的相關(guān)問(wèn)題,包括了分析圖書(shū)管理系統(tǒng)的功能、在IDEA中進(jìn)行功能類的創(chuàng)建、進(jìn)行用戶相關(guān)的處理等等內(nèi)容,下面一起來(lái)看一下,希望對(duì)大家有幫助。

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    推薦學(xué)習(xí):《java視頻教程》

    1.分析圖書(shū)管理系統(tǒng)的功能

    我們先分析一下,一個(gè)圖書(shū)管理系統(tǒng)應(yīng)該具備的功能,進(jìn)行一個(gè)簡(jiǎn)單的框架搭建。

    (1)登錄

    正常情況下圖書(shū)管理系統(tǒng)只有兩種人會(huì)使用,一種是學(xué)生,一種是圖書(shū)管理員

    這個(gè)就是我學(xué)校的網(wǎng)上圖書(shū)館的登錄界面,學(xué)生查找書(shū)籍通過(guò)網(wǎng)絡(luò)就可以查閱

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    而管理員的登錄界面,我這里看不到,但肯定會(huì)有后臺(tái)的管理人員登錄的窗口,進(jìn)行系統(tǒng)維護(hù)

    所以根據(jù)使用人員不同,就要在登錄時(shí)進(jìn)行選擇,是普通用戶還是管理員。

    (2)分析功能

    簡(jiǎn)單的圖書(shū)管理系統(tǒng)應(yīng)該具備的功能,

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    2.在IDEA中進(jìn)行功能類的創(chuàng)建

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    2.1 創(chuàng)建一個(gè)名為book的包,里面存放書(shū)相關(guān)的

    (1)創(chuàng)建一個(gè)Book的類,來(lái)顯示書(shū)的屬性

    對(duì)一個(gè)圖書(shū)進(jìn)行查找,應(yīng)該一本書(shū)應(yīng)該具有這些屬性

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

        private String name;//書(shū)名     private String author;//作者     private int price;//價(jià)格     private String type;//類型     private boolean isBorrowed;//借閱情況

    注意這里給書(shū)提供的控制符都是私有的,在類外是不能訪問(wèn)的

    所以要再提供get()和set()對(duì)屬性進(jìn)行設(shè)置和獲取

        public String getName() {          return name;     }         public void setName(String name) {         this.name = name;     }      public String getAuthor() {         return author;     }      public void setAuthor(String author) {         this.author = author;     }      public int getPrice() {         return price;     }      public void setPrice(int price) {         this.price = price;     }      public String getType() {         return type;     }      public void setType(String type) {         this.type = type;     }      public boolean isBorrowed() {         return isBorrowed;     }      public void setBorrowed(boolean borrowed) {         isBorrowed = borrowed;     }

    再給書(shū)的屬性提供一個(gè)構(gòu)造方法,

    這里注意,在構(gòu)造方法中不給書(shū)加isBorrowed,isBorrowed是boolean類型的,默認(rèn) false,也就是未被借出去。如果條件一本書(shū),它默認(rèn)就是沒(méi)有被借出去

        public Book(String name, String author, int price, String type) {         this.name = name;         this.author = author;         this.price = price;         this.type = type;     }

    最后,再提供一個(gè)toString方法來(lái)顯示書(shū)的信息

        @Override     public String toString() {         return "BookList{" +                 "name='" + name + ''' +                 ", author='" + author + ''' +                 ", price=" + price +                 ", type='" + type + ''' +                 ", isBorrowed=" + isBorrowed +                 '}';     }

    (2) 創(chuàng)建一個(gè)BookList的類,這個(gè)就是書(shū)庫(kù)

    因?yàn)槭菚?shū)庫(kù),要存放書(shū),所以設(shè)置一個(gè)數(shù)組來(lái)存放書(shū)籍

       //最多存放20本書(shū)     private Book[] books = new Book[20];

    再提供一個(gè)成員變量,來(lái)實(shí)時(shí)記錄當(dāng)前books數(shù)組中書(shū)的個(gè)數(shù)

     private int usedSize;//實(shí)時(shí)記錄 當(dāng)前Books這個(gè)數(shù)組中有多少本書(shū)

    下面就可以提供一個(gè)構(gòu)造方法,給里面先存上幾本書(shū)

        public BookList() {         books[0] = new Book("西游記","吳承恩",25,"小說(shuō)");         books[1] = new Book("紅樓夢(mèng)","曹雪芹",26,"小說(shuō)");         books[2] = new Book("三國(guó)演義","羅貫中",27,"小說(shuō)");         books[3] = new Book("水滸傳","施耐庵",28,"小說(shuō)");         usedSize = 4;//當(dāng)前有4本書(shū)     }

    提供一個(gè)方法,如果給一個(gè)合法的數(shù)組下標(biāo),就能找到這本書(shū)

        public Book getBook(int pos) {         return books[pos];     }

    提供一個(gè)方法,給一個(gè)合法的數(shù)組下標(biāo),和一本書(shū),就能存放這本書(shū)到書(shū)庫(kù)中

        public void setBooks(int pos,Book book) {         books[pos] = book;     }

    提供一個(gè)方法,給一個(gè)參數(shù),來(lái)實(shí)時(shí)修改當(dāng)前書(shū)架上的書(shū)的個(gè)數(shù)

        public void setUsedSize(int size) {         usedSize = size;     }

    2.2 創(chuàng)建一個(gè)名為Operation的包,里面存放對(duì)書(shū)的所有操作

    (1)創(chuàng)建一個(gè)IOperation的接口,實(shí)現(xiàn)對(duì)數(shù)組的操作引用

    因?yàn)椴徽撌枪芾韱T或是普通用戶,對(duì)書(shū)的操作都是在BookList類的數(shù)組books中進(jìn)行操作,

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    所以可以提供一個(gè)IOperation的接口,實(shí)現(xiàn)對(duì)數(shù)組的操作,

    public interface IOperation {     /*     * 對(duì)書(shū)的所有操作都是通過(guò)BookList類里面的books數(shù)組進(jìn)行操作     * 可以將這個(gè)寫(xiě)成一個(gè)接口     **/     void work(BookList bookList); }

    (2)創(chuàng)建各種類,來(lái)實(shí)現(xiàn)對(duì)書(shū)的所有操作

    比如說(shuō),普通用戶和管理員都要對(duì)書(shū)進(jìn)行顯示操作,這個(gè)顯示是一個(gè)效果,

    所以只需寫(xiě)一個(gè)類,普通用戶和管理員就都可以調(diào)用。

    合起來(lái),創(chuàng)建這些類就可以了,

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    然后就可以對(duì)這些類引用接口了,再重寫(xiě)一下

    比如新增圖書(shū)

    public class AddOperation implements IOperation {      @Override     public void work(BookList bookList) {         System.out.println("新增圖書(shū)!");     } }

    3.進(jìn)行用戶相關(guān)的處理

    也就是對(duì)普通用戶和管理員進(jìn)行處理

    (1)創(chuàng)建一個(gè)user的包,在包中創(chuàng)建一個(gè)類

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    這里只創(chuàng)建一個(gè)類,是因?yàn)閷?duì)于普通用戶和管理員來(lái)說(shuō),他們兩個(gè)都是用戶

    所以創(chuàng)建一個(gè)成員變量,來(lái)表示用戶

        //寫(xiě)protected是后面要繼承     protected String name;//用戶名

    下面提供一個(gè)構(gòu)造方法對(duì)其初始化

        //提供一個(gè)構(gòu)造方法,用來(lái)初始化當(dāng)前對(duì)象name屬性     public User(String name) {         this.name = name;     }

    (2)在user包中再創(chuàng)建兩個(gè)類

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    子類NormalUser繼承父類User,提供一個(gè)構(gòu)造方法來(lái)顯示幫助父類進(jìn)行構(gòu)造

    public class NormalUser extends User{     public NormalUser(String name) {         super(name);     } }

    子類AdminUser繼承父類User和前面一樣

    下來(lái)就是打印菜單了,根據(jù)兩個(gè)用戶所需功能進(jìn)行打印菜單

    先看AdminUser管理員的

        public int menu() {         System.out.println("hello " + this.name + "歡迎進(jìn)入圖書(shū)管理系統(tǒng)!");         System.out.println("1.查找圖書(shū)!");         System.out.println("2.新增圖書(shū)!");         System.out.println("3.刪除圖書(shū)!");         System.out.println("4.顯示圖書(shū)!");         System.out.println("0.退出系統(tǒng)!");         System.out.println("請(qǐng)輸入你的操作:");         Scanner scanner = new Scanner(System.in);         int choice = scanner.nextInt();         return choice;         //因?yàn)檫@個(gè)是個(gè)菜單,所以要把這個(gè)輸入的值傳出去,才能使用     }

    再看NormalUser普通用戶的

            System.out.println("hello " + this.name + "歡迎進(jìn)入圖書(shū)管理系統(tǒng)!");         System.out.println("1.查找圖書(shū)!");         System.out.println("2.借閱圖書(shū)!");         System.out.println("3.歸還圖書(shū)!");         System.out.println("0.退出系統(tǒng)!");         System.out.println("請(qǐng)輸入你的操作:");         Scanner scanner = new Scanner(System.in);         int choice = scanner.nextInt();         return choice;         //因?yàn)檫@個(gè)是個(gè)菜單,所以要把這個(gè)輸入的值傳出去,才能使用

    (3)單獨(dú)創(chuàng)建一個(gè)Main的類,將前面所有整合起來(lái)

    菜單用戶都有了,下面就是要把這些都整合起來(lái),

    先準(zhǔn)備圖書(shū)

      BookList bookList = new BookList();//準(zhǔn)備圖書(shū)

    結(jié)下來(lái)就是登錄了,

    先寫(xiě)一個(gè)判斷你是普通用戶還是管理員的方法

        public static User login() {         System.out.println("請(qǐng)輸入你的姓名:");         Scanner scanner = new Scanner(System.in);         String name = scanner.nextLine();         System.out.println("請(qǐng)輸入你的身份:1:-》管理員.0:-》普通用戶");         int choice = scanner.nextInt();          if (choice == 1) {              return new AdminUser(name);         }else {             return new NormalUser(name);         }     }

    注意觀察這段代碼,返回類型是User,這是因?yàn)椴徽搃f中返回是AdminUser還是NormalUser,User作為父類都可以接收,這個(gè)過(guò)程就發(fā)生了向上轉(zhuǎn)型

    然后再在main方法中引用這個(gè)login()方法,就可以實(shí)現(xiàn)選擇登錄了

            //登錄-》user這個(gè)引用 引用哪個(gè)對(duì)象看前面if         User user = login();

    選擇完你是哪種用戶后,就打印對(duì)應(yīng)功能菜單

    但是注意,剛剛把菜單寫(xiě)在了對(duì)應(yīng)子類中去了

    如果現(xiàn)在要在父類中訪問(wèn),是訪問(wèn)不了的,所以就要在父類中也引用出菜單

    public abstract class User {     //寫(xiě)protected是后面要繼承     protected String name;//用戶名     //提供一個(gè)構(gòu)造方法,用來(lái)初始化當(dāng)前對(duì)象name屬性     public User(String name) {         this.name = name;     }      public abstract int menu(); }

    看代碼中,只需將父類寫(xiě)成抽象類,然后在抽象類中,引出抽象方法的菜單,

    就可以在Main類中通過(guò)父類訪問(wèn)到菜單,這就實(shí)現(xiàn)了動(dòng)態(tài)綁定

        public static void main(String[] args) {         //開(kāi)始整合         BookList bookList = new BookList();//準(zhǔn)備圖書(shū)         //登錄-》user這個(gè)引用 引用哪個(gè)對(duì)象看前面if         User user = login();          user.menu();//動(dòng)態(tài)綁定         //要想訪問(wèn)子類中的菜單,那就要將父類寫(xiě)成抽象類,         //然后子類重寫(xiě)父類的方法,才可以訪問(wèn)菜單     } }

    然后此時(shí)代碼就可以運(yùn)行了

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    4.開(kāi)始實(shí)現(xiàn)對(duì)書(shū)所有具體的操作功能

    4.1先實(shí)現(xiàn)可以調(diào)用具體操作的功能方法

    先在User中寫(xiě)一個(gè)方法,這個(gè)方法的作用是

    通過(guò)某個(gè)用戶,訪問(wèn)這個(gè)用戶對(duì)應(yīng)方法功能的數(shù)組下標(biāo),然后通過(guò)調(diào)用work方法,來(lái)實(shí)現(xiàn)功能

        public void doOperation(int choice, BookList bookList) {         this.iOperations[choice].work(bookList);     }

    然后在mian中,通過(guò)選擇用戶引用這個(gè)方法

        public static void main(String[] args) {         //開(kāi)始整合         BookList bookList = new BookList();//準(zhǔn)備圖書(shū)         //登錄-》user這個(gè)引用 引用哪個(gè)對(duì)象看前面if         User user = login();         int choice = user.menu();//動(dòng)態(tài)綁定          user.doOperation(choice,bookList);     }

    細(xì)節(jié)可以看這個(gè)圖片

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    下面來(lái)看一下具體細(xì)節(jié)分析

    (1)mian函數(shù)先調(diào)用

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (2)現(xiàn)在user引用,有可能是兩個(gè)對(duì)象 實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (3)

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    當(dāng)引用doOperation時(shí),根據(jù)菜單選擇來(lái)訪問(wèn)數(shù)組元素

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (4)具體選擇哪個(gè)用戶根據(jù),前面login()中輸入的選擇對(duì)象

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (5)根據(jù)前面選擇需要的功能,調(diào)用work方法

    比如這個(gè)實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    4.2 測(cè)試一下

    現(xiàn)在已經(jīng)整合完成了,就差具體操作功能實(shí)現(xiàn)了,先運(yùn)行代碼試試

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    代碼成功運(yùn)行起來(lái)了,但是就用了一個(gè)功能就結(jié)束了,

    所以我們可以加一個(gè)循環(huán),來(lái)使用多個(gè)功能

        public static void main(String[] args) {         //開(kāi)始整合         BookList bookList = new BookList();//準(zhǔn)備圖書(shū)         //登錄-》user這個(gè)引用 引用哪個(gè)對(duì)象看前面if         User user = login();         while(true){             int choice = user.menu();//動(dòng)態(tài)綁定             user.doOperation(choice,bookList);         }     }

    4.3 實(shí)現(xiàn)單獨(dú)具體的操作的功能

    (1)新增圖書(shū) AppOperation類

    新增一本圖書(shū)我們需要考慮輸入這些

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    不用考慮isBorrowed 因?yàn)槟J(rèn)狀態(tài)是未被借出的

    將這些屬性進(jìn)行輸入

       Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入圖書(shū)的名字:");         String name = scanner.nextLine();         System.out.println("請(qǐng)輸入圖書(shū)的作者:");         String author = scanner.nextLine();         System.out.println("請(qǐng)輸入圖書(shū)的價(jià)格:");         int price = scanner.nextInt();         System.out.println("請(qǐng)輸入圖書(shū)的類型:");         String type = scanner.nextLine();

    然后將這些屬性存放到new Book中

            Book book = new Book(name,author,price,type);

    獲取當(dāng)前下標(biāo),然后賦給currentSize,將前面輸入的那本書(shū)放到數(shù)組下標(biāo)為currentSize中,

    然后給 currentSize加1

            int currentSize = bookList.getUsedSize();         bookList.setBooks(currentSize,book);          bookList.getUsedSize(currentSize+1);

    運(yùn)行一下,試試看

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    新增圖書(shū) AppOperation類的所有代碼

    public class AddOperation implements IOperation {     @Override     public void work(BookList bookList) {         System.out.println("新增圖書(shū)!");         Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入圖書(shū)的名字:");         String name = scanner.nextLine();         System.out.println("請(qǐng)輸入圖書(shū)的作者:");         String author = scanner.nextLine();         System.out.println("請(qǐng)輸入圖書(shū)的類型:");         String type = scanner.nextLine();         System.out.println("請(qǐng)輸入圖書(shū)的價(jià)格:");         int price = scanner.nextInt();          Book book = new Book(name,author,price,type);         int currentSize = bookList.getUsedSize();         bookList.setBooks(currentSize,book);         bookList.getUsedSize(currentSize+1);         System.out.println("新增書(shū)籍成功!");     } }

    (2)借閱圖書(shū) orrowOperation類

    先輸入要借閱圖書(shū)的名字

            Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入借閱圖書(shū)的名字:");         String name = scanner.nextLine();

    通過(guò)for循環(huán)遍歷一遍,然后將遍歷的每一本書(shū)賦給變量 book ,

    再通過(guò)equals,來(lái)判斷book和輸入的書(shū)的名字是否相同,

    如果相同就通過(guò)setBorrowed修改此時(shí)借閱狀態(tài),顯示借閱成功

    如果不同就顯示沒(méi)有這本書(shū)

            int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(true);                 System.out.println("借閱成功!");                 return;             }         }         System.out.println("沒(méi)有這本書(shū)!");

    運(yùn)行一下,試試看

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    借閱圖書(shū) orrowOperation類的所有代碼

    public class BorrowOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("借閱圖書(shū)!");          Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入借閱圖書(shū)的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(true);                 System.out.println("借閱成功!");                 return;             }         }         System.out.println("沒(méi)有這本書(shū)!");     } }

    (3)刪除圖書(shū) DelOperation類

    輸入刪除圖書(shū)的名字

      Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入刪除圖書(shū)的名字:");         String name = scanner.nextLine();

    找到圖書(shū),然后刪除

            int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 for (int j = i; j < currentSize; j++) {                     bookList.getBook(j);                 }                 bookList.getUsedSize(currentSize-1);//不要忘記更新圖書(shū)種類                  bookList.getUsedSize(currentSize-1);                 System.out.println("刪除成功!");                 return;             }         }         System.out.println("沒(méi)有找到要?jiǎng)h除的圖書(shū)!");

    運(yùn)行程序,試試看

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    刪除圖書(shū) DelOperation類的全部代碼

    public class DelOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("刪除圖書(shū)!");          Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入刪除圖書(shū)的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 for (int j = i; j < currentSize; j++) {                     bookList.getBook(j);                 }                 bookList.getUsedSize(currentSize-1);//不要忘記更新圖書(shū)種類                  bookList.getUsedSize(currentSize-1);                 System.out.println("刪除成功!");                 return;             }         }         System.out.println("沒(méi)有找到要?jiǎng)h除的圖書(shū)!");     } }

    (4)顯示圖書(shū) DisplayOperation類

    將當(dāng)前有幾本書(shū)記錄下來(lái)

            int currentSize = bookList.getUsedSize();

    然后for循環(huán)全部遍歷一遍就可以了 ,直接看代碼吧

    public class DisplayOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("顯示圖書(shū)!");          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             System.out.println(bookList.getBook(i));             }         } }

    運(yùn)行結(jié)果就是這樣

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (5)退出系統(tǒng) ExitOperation類

    直接調(diào)用狀態(tài)碼exit來(lái)退出系統(tǒng)

    public class ExitOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("退出系統(tǒng)!");         System.exit(0);     } }

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng)

    (6)查找圖書(shū) FindOperation類

    要查找圖書(shū),肯定是先要輸入你需要查找書(shū)的名字

            Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入圖書(shū)的名字:");         String name = scanner.nextLine();

    通過(guò)for循環(huán)遍歷一遍,然后將遍歷的每一本書(shū)賦給變量 book ,

    再通過(guò)equals,來(lái)判斷book和輸入的書(shū)的名字是否相同,

    如果相同就打印,并顯示找到了,如果不相同,就直接顯示沒(méi)有找到,

    但這里有一個(gè)問(wèn)題在前面給每一本書(shū)默認(rèn)都是false,現(xiàn)在打印還是這樣,所以要修改一下

    在Book類中,修改toString,給借閱狀態(tài)一個(gè)三目運(yùn)算符,來(lái)判斷是否借出了

        @Override     public String toString() {         return "Book{" +                 "name='" + name + ''' +                 ", author='" + author + ''' +                 ", price=" + price +                 ", type='" + type + ''' +                 ((isBorrowed == true)?" 已經(jīng)借出":" 未借出")+                 '}';     }

    運(yùn)行一下,試試

    實(shí)例詳解Java實(shí)現(xiàn)簡(jiǎn)易版的圖書(shū)管理系統(tǒng) 查找圖書(shū) FindOperation類的全部代碼就是

    public class FindOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("查找圖書(shū)!");          Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入圖書(shū)的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 System.out.println("這本書(shū)找到了!");                 System.out.println(book);                 return;             }         }         System.out.println("這本書(shū)沒(méi)有找到!");     } }

    (7)歸還圖書(shū) ReturnOperation類

    先輸入要?dú)w還圖書(shū)的名字

            Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入歸還圖書(shū)的名字:");         String name = scanner.nextLine();

    和前面借閱基本一樣,修改一下setBorrowed的狀態(tài)就可以了

            int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(false);                 System.out.println("歸還成功!");                 return;             }         }

    運(yùn)行代碼,試試看


    歸還圖書(shū) ReturnOperation類的全部代碼

    public class ReturnOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("歸還圖書(shū)!");         Scanner scanner = new Scanner(System.in);         System.out.println("請(qǐng)輸入歸還圖書(shū)的名字:");         String name = scanner.nextLine();         int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(false);                 System.out.println("歸還成功!");                 return;             }         }     } }

    推薦學(xué)習(xí):《java視頻教程》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)