好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

java实现图书检索系统

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

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

Book.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

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 ;

            }

        }

    }

}

程序执行如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/qq_45399396/article/details/119239512

查看更多关于java实现图书检索系统的详细内容...

  阅读:21次