手记

Java入门第三季第一章课后练习-模拟借书系统

package com.exception;
import java.util.Scanner;

//首先创建一个名叫书的类,包含id和name两个属性
class Book {
String name;
int id;
Book(int id,String name){
this.id = id;
this.name = name;
}
}

public class ExcDemo {
//主方法
public static void main(String[] args) {

    Book library[] = new Book[5];//创建了一个叫图书馆的数组,用于存放5本书籍
    library[0] = new Book(1,"数学");
    library[1] = new Book(2,"线代");
    library[2] = new Book(3,"英语");
    library[3] = new Book(4,"物理");
    library[4] = new Book(5,"语文");

    //自定义一个类,该类包含三个方法,用于抛出三种异常
    class Uexcption{
        //第一个方法,当输入整数不是1和2的时候(用于用户选择是输入书名还是序号的时候),反之,返回输入的整数
        public int select1(int i) throws Exception{
            if (i!=1&&i!=2) {
                throw new Exception();
            }else {
                return i;
            }
        }
        //第二个方法,当输入的书籍名字不在这5本书之内时,抛出异常,反之,返回输入的书籍名字
        public String select2(String bookName) throws Exception{
            if (bookName.equals(library[0].name)||bookName.equals(library[1].name)||bookName.equals(library[2].name)
                    ||bookName.equals(library[3].name)||bookName.equals(library[4].name)
                    ) {
                return bookName;
            }else {
                throw new Exception();
            }
        }
        //第三个方法,当输入的id不是这5本书的id的时候,抛出异常,反之,返回输入的id
        public int select3(int id) throws Exception{
            if (id>5||id<0) {
                throw new Exception();
            }else {
                return id;
            }
        }
    }

    Scanner input = new Scanner(System.in);//创建Scanner对象,用于键盘输入
    Uexcption uexc = new Uexcption();//新建一个自定义类的对象

    System.out.println("输入命令:1-按照书名查找图书;2-按照序号查找图书");//提示用户选择模式

    //创建一个循环,直到输入的为1或者2
    int i=0;
    while(i!=1&&i!=2){
        try {
            i = uexc.select1(input.nextInt());//调用第一个抛出异常的方法
        }
        catch (Exception e) {
            System.out.println("输入命令错误,请根据提示输入数字命令(1或者2):");
            input.nextLine();//如果没有这一行,当输入为非整形时,会陷入死循环(新手查了好久才知道,汗)
        }
    }

    //如果用户输入1,进入书籍名字查找模式
    if(i==1) {
        System.out.println("请输入书名:");
        String bookName = " ";
        //创建一个循环,直到输入书名正确
        while((bookName.equals(library[0].name)||bookName.equals(library[1].name)||bookName.equals(library[2].name)
                ||bookName.equals(library[3].name)||bookName.equals(library[4].name)
                )==false
                ) {
            try {
                bookName = uexc.select2(input.next());//调用第二个抛出异常的方法
            }
            catch(Exception e){
                System.out.println("输入书名有误,请重新输入:");
                input.nextLine();
            }
        }
        System.out.println("您要租借的书已经找到,书名为:"+bookName);
    }
    else {
    //用户输入0,进入序号查找模式    
        System.out.println("请输入书籍的序号:");

        //创建一个循环,直到序号输入正确
        int id = 0;
        while(id>5||id<1) {
            try {
                id = uexc.select3(input.nextInt());
            }
            catch(Exception e) {
                System.out.println("输入的序号有误,请重新输入:");
                input.nextLine();
            }
        }
        System.out.println("您要租借的书已经找到,书名为:"+library[id-1].name);
    }
    input.close();//全部程序执行结束,关闭input
}

}

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