为了账号安全,请及时绑定邮箱和手机立即绑定

模拟查书系统——菜鸟级

标签:
Java
package book;
public class Library {
    private String bookName;//书名
    private int id;//书的序号
    public Library(int id,String bookName){//定义有参构造方法
        this.bookName=bookName;
        this.id=id;
    }
    public String getBookName(){//getter访问private修饰的变量
        return bookName;
    }
    public int getId(){
        return id;
    }
    public Library(){}//定义无参构造方法
    public void mistake() throws MistakeException{//抛出异常 
        throw new MistakeException();
    }
    public void nothingness() throws NothingnessException{
        throw new NothingnessException();
    }
}
package book;

public class MistakeException extends Exception{//自定义输入指令错误异常
    public MistakeException(){}
    public MistakeException(String message){
        super(message);
    }

}
package book;

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

}
package book;
import java.util.InputMismatchException;
import java.util.Scanner;
public class TestLibrary {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);//导入包Scanner
        Library exception=new Library();//调用无参的构造方法
        Library[] books={new Library(1,"计算机基础"),new Library(2,"程序设计基础"),new Library(3,"高等数学"),new Library(4,"大学英语"),new Library(5,"思想与政治")};
        for(;;){//使程序循环
            try{
                System.out.print("输入1用序号查询,输入2用书名查询:");
                int select=input.nextInt();
                if(select==1){
                    System.out.println("您使用序号查询~~~");
                    System.out.print("请输入您要的书的序号:");
                    try{
                        int number=input.nextInt();
                        try{        
                            System.out.println("您要的书是:"+books[number-1].getId()+":"+books[number-1].getBookName());
                            break;//无异常时结束循环

                        }catch(ArrayIndexOutOfBoundsException e){//若输入的数大于数组长度,接收数组下标异常
                            System.out.println("你的序号没有匹配的书!!!");
                        }
                    }catch(InputMismatchException e){//若输入的不是整数,接收输入指令不匹配异常
                        System.out.println("您应该输入整数!");
                    }
                }else if(select==2){
                    input.nextLine();
                    System.out.println("您使用书名查询~~~");
                    System.out.print("请输入书名:");
                    try{
                        String c=input.nextLine();
                        boolean b=false;
                        for(int i=0;i<books.length;i++){
                            if(c.equals(books[i].getBookName())){
                                System.out.println("您要的书是:"+books[i].getId()+":"+books[i].getBookName());
                                b=true;
                            }
                        }if(b)                                          break;
                        else                                            exception.nothingness();//抛出图书不存在异常
                    }catch(NothingnessException e){//接收抛出图书不存在异常
                        System.out.println("你要的书不存在!!!");
                    }
                }else                                                   exception.mistake();//抛出输入指令错误异常
            }catch(MistakeException e){//接收输入指令错误异常
                System.out.println("您输入的指令错误!应该输入1或2~~~");
            }catch(InputMismatchException e){
                System.out.println("您应该输入整数!");
            }
        }System.out.println("感谢您的使用!~~~");
    }
}
点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消