java實現(xiàn)圖書檢索系統(tǒng)
更新時間:2022年05月27日 13:57:16 作者:JAVA_NO.1
這篇文章主要為大家詳細介紹了java實現(xiàn)圖書檢索系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
java模擬實現(xiàn)圖書檢索系統(tǒng) (基礎版),供大家參考,具體內(nèi)容如下
練習實現(xiàn)3個簡單的功能,沒有優(yōu)化,可以根據(jù)需求,自行添加想要實現(xiàn)的功能。
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; ? ? } ? ? /*根據(jù)編號查詢圖書*/ ? ? 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("暫無信息"); ? ? ? ? } ? ? } ? ? /*根據(jù)價格查找圖書,返回一個新的數(shù)組*/ ? ? 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的話,則就會出現(xiàn)nullpointerexception異常,因為if程序體中的 i的取值不是連續(xù)的*/ ? ? ? ? ? ? ? ? newBooks[j++]= books[i]; ? ? ? ? ? ? ? ? length++; ? ? ? ? ? ? } ? ? ? ? ? ? i++; ? ? ? ? } ? ? ? ? /*這里用到了Array集合類中的copyRange靜態(tài)方法*/ ? ? ? ? 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); ? ? ? ? /*創(chuàng)建工具類,對其進行初始化*/ ? ? ? ? Tools tool = new Tools(); ? ? ? ? tool.init(); ? ? ? ?prof: while(true) { ? ? ? ? ? ? System.out.println("========圖書檢索系統(tǒng)======="); ? ? ? ? ? ? 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; ? ? ? ? ? ? } ? ? ? ? } ? ? } }
程序執(zhí)行如下:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SSM框架中測試單元的使用 spring整合Junit過程詳解
這篇文章主要介紹了SSM框架中測試單元的使用 spring整合Junit過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09SpringMVC 通過commons-fileupload實現(xiàn)文件上傳功能
這篇文章主要介紹了SpringMVC 通過commons-fileupload實現(xiàn)文件上傳,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02