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

模拟借书系统满足老师的所有要求~~

看书大王
关注TA
已关注
手记 3
粉丝 1
获赞 69
import java.util.*;

public class BorrowBook{
    //自定义错误命令异常
    public class WrongCommandException extends Exception{
        public WrongCommandException(String str){
            super(str);
        }
    }

    //自定义图书不存在异常
    public class NoBookException extends Exception{
        public NoBookException(String str){
            super(str);
        }
    }

    //抛出图书不存在异常
    public void noBook() throws NoBookException{
        throw new NoBookException("图书不存在");
    }

    //抛出错误命令异常
    public void wrongCommand() throws WrongCommandException{
        throw new WrongCommandException("命令输入错误!请根据提示输入数字命令!");
    }

    public static void main(String[] args){
        String[] book1 = {"1","数据结构"};//创建包含书的信息的数组
        String[] book2 = {"2","高数"};
        //用do-while循环维持输入错误时继续输入
        do{
            System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
            Scanner bb = new Scanner(System.in);
            String bk = bb.next();//用户输入第一步的命令
            //当用户输入1的时候
            if(bk.equals("1")){
                System.out.println("输入图书名称:");
                String bn = bb.next();//用户输入第二步的命令
                //当用户输入没有的书名的时候
                if(!bn.equals(book1[1]) && !bn.equals(book2[1])){
                    BorrowBook nobook = new BorrowBook();//创建nobook对象
                    //尝试捕获图书不存在异常
                    try{
                        nobook.noBook();
                    }catch(NoBookException e){
                        System.out.println(e.getMessage());//输出图书不存在异常里面的字符串
                    }
                    continue;//结束当次循环
                }
                //当用户输入正确图书名的时候输出书名并结束循环
                else if(bn.equals(book1[1])){
                    System.out.println("book:"+book1[1]);
                    break;//结束循环
                }
                else{
                    System.out.println("book:"+book2[1]);
                    break;//结束循环
                }
            }
            //当用户输入2的时候
            else if(bk.equals("2")){
                System.out.println("输入图书序号:");
                String bx = bb.next();
                //当用户输入不存在的序号的时候
                if(!bx.equals(book1[0]) && !bx.equals(book2[0])){
                    BorrowBook nobook2 = new BorrowBook();
                    //尝试捕获图书不存在异常
                    try{
                        nobook2.noBook();
                    }catch(NoBookException e){
                        System.out.println(e.getMessage());//输出图书不存在异常里面的字符串
                    }
                    //结束档次循环
                    continue;
                }
                //当用户输入正确序号时输出书名并结束循环
                else if(bx.equals(book1[0])){
                    System.out.println("book:"+book1[1]);
                    break;//结束循环
                }
                else{
                    System.out.println("book:"+book2[1]);
                    break;//结束循环
                }
            }
            //当用户在第一步操作输入错误的命令
            else{
                BorrowBook wrongcommand = new BorrowBook();
                //尝试捕获错误命令异常
                try{
                    wrongcommand.wrongCommand();
                }catch(WrongCommandException e){
                    System.out.println(e.getMessage());//输出错误命令异常里面的字符串
                }
                continue;//结束当次循环
            }
        }while(true);
    }
}
打开App,阅读手记
10人推荐
发表评论
随时随地看视频慕课网APP

热门评论

你这个还是不行,仅仅是两本书,所以你进行两本书的比较,如果增加几本书,你改的地方可多了。

兄弟 可以的 ,加油啊

查看全部评论