java实现图书检索系统

作者:JAVA_NO.1 时间:2023-08-18 20:08:50 

java模拟实现图书检索系统 (基础版),供大家参考,具体内容如下

练习实现3个简单的功能,没有优化,可以根据需求,自行添加想要实现的功能。

java实现图书检索系统

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实现图书检索系统

来源:https://blog.csdn.net/qq_45399396/article/details/119239512

标签:java,图书,检索
0
投稿

猜你喜欢

  • Java中Synchronized的用法解析

    2023-07-28 22:40:51
  • 零基础入门SpringMVC拦截器的配置与使用

    2023-07-17 21:59:28
  • Android GestureDetector手势滑动使用实例讲解

    2022-01-18 01:34:12
  • C#实现上位机与欧姆龙PLC通讯(FINS)

    2022-10-05 03:10:08
  • Java 入门图形用户界面设计之复选框

    2022-06-19 15:22:53
  • 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    2022-11-09 11:40:37
  • Android 游戏开发之Canvas画布的介绍及方法

    2021-12-14 23:10:54
  • Android控件实现图片缩放功能

    2022-06-10 15:59:27
  • Android实现下拉菜单Spinner效果

    2022-03-21 07:27:07
  • C#十五子游戏编写代码

    2023-06-13 07:33:22
  • c#动态加载卸载DLL的方法

    2023-06-08 08:18:08
  • 一文详解Java中流程控制语句

    2023-11-26 11:39:49
  • mybatis批量新增、删除、查询和修改方式

    2023-11-23 10:13:01
  • Java规则引擎Easy Rules的使用介绍

    2023-05-04 01:42:57
  • java修改JFrame默认字体方式

    2022-11-16 14:02:50
  • springBoot系列常用注解(小结)

    2023-12-17 23:26:45
  • C#中的Lazy如何使用详解

    2023-10-25 12:56:34
  • Android沉浸式状态栏 + actionBar渐变 + scrollView顶部伸缩效果

    2021-09-12 01:04:16
  • springcloud中RabbitMQ死信队列与延迟交换机实现方法

    2023-05-04 04:25:54
  • Android中RecyclerView 滑动时图片加载的优化

    2021-07-29 09:58:12
  • asp之家 软件编程 m.aspxhome.com