继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java入门第三季--图书馆借书系统

等时钟成长
关注TA
已关注
手记 4
粉丝 19
获赞 176

效果图:
图片描述
copy到项目下,运行Client.java即可。

Client.java

package views;

import java.util.Scanner;

public class Client {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Client client = new Client();
        Scanner input = new Scanner(System.in);
        Library library = new Library();
        System.out.println("进入图书系统:1是 else否");

        if (input.nextInt() == 1) {
            for (;;) {
                System.out.println("--------图书系统--------");
                System.out.println("选择查询方式:1书名 2编号 0退出");
                boolean existFlag = true;
                boolean exitFlag = false;
                switch (input.nextInt()) {
                case 1:                 
                    System.out.println("请输入图书名称:");
                    // input.nextLine(); // input.nextLine()目的在于消掉回车\n
                    String bookName = input.next();
                    try {
                        // System.out.println("查找中....");
                        for (int i = 0; i < library.Books.length; i++) {
                            if (library.Books[i][1].equals(bookName)) {
                                System.out.println("图书编号:" + library.Books[i][0] + "图书名称:" + bookName);
                                existFlag = false;
                                break;
                            }
                        }
                        if (existFlag) {
                            client.exception1();
                        }
                    } catch (BookNoExistException e) {
                        System.err.println("图书不存在");
                    }finally { // 针对异常处理时输出信息不是很及时,做100ms延迟
                        try
                        {
                            Thread.sleep(100);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }
                    }

                    break;

                case 2:                 
                    System.out.println("请输入图书编号:");                 
                    String bookNum = input.next();
                    try {
                        // System.out.println("查找中....");
                        for (int i = 0; i < library.Books.length; i++) {
                            if (library.Books[i][0].equals(bookNum)) {
                                System.out.println("图书编号:" + library.Books[i][0] + "图书名称:" + library.Books[i][1]);
                                existFlag = false;
                                break;
                            }
                        }
                        if (existFlag) {
                            client.exception1();
                        }
                    } catch (BookNoExistException e) {
                        System.err.println("图书不存在");
                    }finally {
                        try
                        {
                            Thread.sleep(100);
                        }
                        catch (InterruptedException e)
                        {
                            e.printStackTrace();
                        }   
                    }
                    break;
                case 0:
                    exitFlag = true;
                    break;

                default:
                    try {
                        client.exception2();
                    } catch (InvalidCmdException e) {
                        // TODO: handle exception
                        System.out.println("命令输入错误,请根据提示重新输入数字命令");
                    }

                }
                if(exitFlag == true) {
                    input.close();
                    System.out.println("已退出系统");
                    break;
                }
            }
        } else {
            input.close();
            System.out.println("已退出系统");
        }

    }

    public void exception1() throws BookNoExistException {
        throw new BookNoExistException("图书不存在");
    }

    public void exception2() throws InvalidCmdException {
        throw new InvalidCmdException("命令输入错误,请根据提示重新输入数字命令");
    }

}

Library.java

package views;

public class Library {
    public String [][] Books = new String[][] {{"0001","HallyPotter"},{"0002","preference"},{"0003","math"}};
}

InvalidCmdException.java

package views;

public class InvalidCmdException extends Exception {

    public InvalidCmdException() {
        // TODO Auto-generated constructor stub
    }

    public InvalidCmdException (String message){
        super(message);
    }

}

BookNoExistException.java

package views;

public class BookNoExistException extends Exception {

    public BookNoExistException() {
        // TODO Auto-generated constructor stub
    }
    public BookNoExistException (String message){
        super(message);
    }
}
打开App,阅读手记
22人推荐
发表评论
随时随地看视频慕课网APP

热门评论

兄弟这个代码有错误,选择查询方式:1书名 2编号 0退出中的输入应该用input.next();这样才可以防止输入类型为飞数字时switch无法匹配的问题。

兄弟这个代码有错误,选择查询方式:1书名 2编号 0退出中的输入应该用input.next();这样才可以防止输入类型为飞数字时switch无法匹配的问题。

for (;;) {}

请问这个代码是什么意思,为什么这样写?

查看全部评论