java實現(xiàn)圖書檢索系統(tǒng)
更新時間:2022年05月27日 13:57:16 作者:JAVA_NO.1
這篇文章主要為大家詳細介紹了java實現(xiàn)圖書檢索系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
java模擬實現(xiàn)圖書檢索系統(tǒng) (基礎版),供大家參考,具體內容如下
練習實現(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í)行如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SSM框架中測試單元的使用 spring整合Junit過程詳解
這篇文章主要介紹了SSM框架中測試單元的使用 spring整合Junit過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
SpringMVC 通過commons-fileupload實現(xiàn)文件上傳功能
這篇文章主要介紹了SpringMVC 通過commons-fileupload實現(xiàn)文件上傳,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

