手记

JAVA第二课图书借书系统

以下是我写的借书系统,参考了各位dalao作品

其中看了 @Parva 的无限循环解决方法:

其中比较难的一点我提一下:
用Scanner时,用户输入数据后按下了回车键
数据会被Scanner获取,但回车键会变成"\n"字符溢出
下一次用Scanner时,Scanner就会出错
作者: Parva
链接:http://www.imooc.com/article/19695
来源:慕课网

package so.book;
import java.util.Scanner;
import java.util.InputMismatchException;

public class main {
    //图书搜索类型
    private int type = 0 ;
    //图书名称
    private String name = "" ;

    public static void main(String[] args)
    {
        String[] books = {"时间简史","人类简史","三体","JAVA从入门到放弃","Mysql从删库到跑路","黑客攻防从入门到入狱"} ;
        //欢迎
        System.out.println("欢迎使用图书管理系统!");
        //实例化
        main m = new main() ;

        //图书列表
        m.book_list(books);

        //选择搜索类型
        m.search_type();

        //搜索图书
        m.search_book( books );

        //显示图书
        System.out.println("你选择的图书为:"+m.name);

    }

    /**
     * 图书列表
     * @param books
     */
    public void book_list(String[] books)
    {
        int number = 0 ;
        System.out.println(" 序号   名称");
        for ( String book : books )
        {
            number++ ;
            System.out.println("  "+number+"   "+book);
        }
    }

    /**
     * 设置搜索类型
     */
    public void search_type()
    {
        Scanner type_number = new Scanner(System.in);
        while (true)
        {
            try {
                System.out.println("输入命令: 1-按照名称查找图书 ; 2-按照序号查找图书 " );
                int number = type_number.nextInt();
                if ( number == 1 || number == 2 )
                {
                    this.type = number ;
                    break;
                }
                else
                {
                    throw new Exception();
                }
            }
            catch ( InputMismatchException e )
            {
                System.out.println("命令输入错误!请根据提示输入数字命令!");
                type_number.nextLine();
            }
            catch ( Exception e )
            {
                System.out.println("命令输入错误!请根据提示输入数字命令!" );
            }

        }
    }

    /**
     * 搜索图书
     * @param books
     */
    public void search_book(String[] books)
    {
        while( true )
        {
            try {
                Scanner search = new Scanner( System.in) ;
                if( this.type == 1 )
                {
                    System.out.println("输入图书名称:");
                    String book_name = search.nextLine();
                    //初始化
                    boolean is_true = false ;
                    //循环判断图书名称是否存在
                    for( String book : books )
                    {
                        if ( book.equals(book_name) )
                        {
                            is_true = true ;
                        }
                    }
                    if ( is_true == false )
                    {
                        throw new Exception() ;
                    }
                    this.name = book_name ;
                    break;

                }
                else if( this.type == 2 )
                {
                    System.out.println("输入图书序号:");
                    int book_number = search.nextInt() ;
                    if ( book_number < 1 || book_number > books.length )
                    {
                        throw new Exception() ;
                    }
                    this.name = books[book_number-1] ;
                    break;
                }
                else
                {
                    System.out.println("系统错误!");
                    System.exit(0);
                }
            }
            catch ( Exception e )
            {
                System.out.println("图书不存在");
            }
        }

    }
}

以上就是我的借书系统,各位友友可以相互参考,互相学习!

7人推荐
随时随地看视频
慕课网APP

热门评论

谢谢分享~帮了很大的忙

那个scanner似乎不能连续输入啊


查看全部评论