本文小編為大家詳細介紹“java如何實現圖書檢索系統”,內容詳細,步驟清晰,細節處理妥當,希望這篇“java如何實現圖書檢索系統”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
練習實現3個簡單的功能,沒有優化,可以根據需求,自行添加想要實現的功能。
Book.java
package com.demo3; public class Book { private int id; private String name; private double price; public Book(){} public Book(int id, String name, double price) { this.id = id; this.name = name; this.price = price; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public void showMess() { System.out.println("Book{" + "編號=" + getId() + ", 書名='" + getName() + ", 價格=" + getPrice() + '}'); } }
Tool.java
package com.demo3; import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import java.math.BigDecimal; import java.util.Arrays; public class Tools { private Book[] books = new Book[20]; private int size; public void init(){ Book book1 = new Book(1,"老人與海",29.8); Book book2 = new Book(2,"狂人日記",36.7); Book book3 = new Book(3,"玫瑰的葬禮",19.2); Book book4 = new Book(4,"宇宙源頭",19.2); books[0]=book1; books[1]=book2; books[2]=book3; books[3]=book4; size=4; } public Book[] getBooks() { return books; } public void setSize(int size) { this.size = size; } /*根據編號查詢圖書*/ public void fingBookById(Book[] books,int id){ int i=0; while(i<size){ if(books[i].getId()== id){ System.out.println("檢索信息: "); System.out.println("-------------------Content----------------------"); books[i].showMess(); System.out.println("------------------------------------------------"); break; } i++; } if(i>=size){ System.out.println("暫無信息"); } } /*根據價格查找圖書,返回一個新的數組*/ public Book[] findBookeByPrice(Book[] books,double price){ Book[] newBooks=new Book[books.length]; int length=0; int i=0; int j=0;/*注意,這里添加一個j*/ while(i<size){ /*提高精度,這里用到了BigDecimal類*/ BigDecimal x1 = new BigDecimal(books[i].getPrice()); BigDecimal x2 = new BigDecimal(price); if(x1.floatValue()==x2.floatValue()){ /*這里用到j,而不是下標i,如果是下標i的話,則就會出現nullpointerexception異常,因為if程序體中的 i的取值不是連續的*/ newBooks[j++]= books[i]; length++; } i++; } /*這里用到了Array集合類中的copyRange靜態方法*/ newBooks= Arrays.copyOfRange(newBooks,0,length); return newBooks; } }
BookTest.java
package com.demo3; import java.util.Scanner; public class BookTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /*創建工具類,對其進行初始化*/ Tools tool = new Tools(); tool.init(); prof: while(true) { System.out.println("========圖書檢索系統======="); System.out.println("1,【編號檢索】 2,【價格檢索】 3,【退出】"); System.out.print("【輸入檢索【類型】: "); int num = scanner.nextInt(); while (true) { switch (num) { case 1: System.out.println("進入圖書【編號】檢索:"); System.out.print("輸入檢索【編號】: "); int checkId = scanner.nextInt(); tool.fingBookById(tool.getBooks(), checkId);break; case 2: System.out.println("進入圖書【價格】檢索"); System.out.print("輸入檢索【價格】:"); double price = scanner.nextDouble(); Book[] books = tool.findBookeByPrice(tool.getBooks(),price); if(books.length>0){ System.out.println("-------------------Content----------------------"); for(Book book :books){ book.showMess(); } System.out.println("------------------------------------------------"); };break; case 3: System.out.println("退出成功"); break prof; }; break; } } } }
程序執行如下:
讀到這里,這篇“java如何實現圖書檢索系統”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
推薦內容:盲反饋檢索系統實驗記錄三
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。