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

借书系统手记练习,不足之处请指点。

qq_红尘如梦_0
关注TA
已关注
手记 2
粉丝 2
获赞 70

图书类

package com.book;
public class Book {

    private int Id;          //序号
    private String bookName; //书名

    /*get和set方法封装属性*/
    public int getId() { 
        return Id;
    }
    public void setId(int id) {
        Id = id;
    }

    public String getBookName() {
        return bookName;
    }
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

}

小学知识类,继承图书类

package com.book;

public class BookSub1 extends Book{

    public BookSub1(){//无参构造方法

    }

    public BookSub1(int Id,String bookName){//有参构造方法
        this.setId(Id);
        this.setBookName(bookName);
    }

}

技术知识类,继承图书类

package com.book;

public class Booksub2 extends Book {

    public Booksub2(){//无参构造方法

    }
    public Booksub2(int Id,String bookName){//有参构造方法
        this.setId(Id);
        this.setBookName(bookName);
    }

}

mian方法

package com.book;
import java.util.InputMismatchException;
public class test {
    public static void main(String[] args) {

        Book[] books ={new BookSub1(1,"数学"),
                       new BookSub1(2,"语文"),
                       new BookSub1(3,"英语"),
                       new Booksub2(4, "Ios 教程"),
                       new Booksub2(5, "Java教程"),
                       new Booksub2(6, "C++ 教程")};

        test te =new test();
        Scanner input =new Scanner(System.in);

        while(true){
            System.out.println("输入命令:1.按照名称查找图书 ,2.按照序号查找图书");
        try {

             String str =input.next();

            if(str.equals("1")  str.equals("2")){//如果是1或2就进入方法块

                int val =Integer.parseInt(str);     

                   switch (val) {
                       case 1:       te.BookWhitName(books,input);
                         break;
                      default:       te.BookWhitNumber(books,input);
                         break;   }

           }else
               throw new InputMismatchException("按提示输入数字命令");//否则就抛出异常

        } catch (InputMismatchException e) {
             e.printStackTrace();
             System.out.println("按提示输入正确数字命令!");
        }
      }
    }

BookWhitName(Book[] books, Scanner input)//通过序号查找图书

public void BookWhitName(Book[] books, Scanner input){//通过名称查找图书

        System.out.println("输入图书名称:");

        String strin ="图书不存在";                        //记录图书是否存在的标识符;
            try {
                String str = input.next();
                for(int i=0;i<books.length;i++){           //遍历数组

                    if(books[i].getBookName().equals(str)){//获取数组每位元素来对比,图书存在就打印
                    System.out.println("book:"+str); 
                    strin = books[i].getBookName();  //记录图书,存在就赋值给标识符;
                   }
                }
                if(strin.equals("图书不存在")){       //如果标识符的值未变,代表图书不存在
                    System.out.println("图书不存在");
                    throw new Exception("图书不存在");//抛出异常
                }

            } catch (Exception e) {
                e.printStackTrace();

            }
    }

BookWhitNumber(Book[] books, Scanner input)//通过序号查找图书

public void BookWhitNumber(Book[] books, Scanner input){//通过序号查找图书

        System.out.println("输入图书序号:");
        String strin ="图书不存在";                     //记录图书是否存在的标识符;
            try {
                String str = input.next();
                for(int i=0;i<books.length;i++){        //遍历数组

                    String arrStr =String.valueOf(books[i].getId());//获取数组每个ID元素,转变成字符串

                    if(arrStr.equals(str)){ //判断图书是否存在,存在就打印

                    strin = books[i].getBookName();   //记录图书,存在就赋值给标识符;

                    System.out.println("book:"+strin); 
                   }
                }
                if(strin.equals("图书不存在")){        //如果标识符的值未变,代表图书不存在
                    System.out.println("图书不存在");
                    throw new Exception("图书不存在"); //抛出异常
                }
            } catch (Exception e) {
                e.printStackTrace();    
        }
    }
}

测试结果

输入命令:1.按照名称查找图书 ,2.按照序号查找图书
1
输入图书名称:
2
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
    at com.book.test.BookWhitName(test.java:71)
    at com.book.test.main(test.java:39)
1
输入图书名称:
的
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
    at com.book.test.BookWhitName(test.java:71)
    at com.book.test.main(test.java:39)
1
输入图书名称:
数学
book:数学
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
2
输入图书序号:
2372
图书不存在
java.lang.Exception: 图书不存在
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
    at com.book.test.BookWhitNumber(test.java:102)
    at com.book.test.main(test.java:41)
2
输入图书序号:
5
book:Java教程
输入命令:1.按照名称查找图书 ,2.按照序号查找图书
打开App,阅读手记
17人推荐
发表评论
随时随地看视频慕课网APP

热门评论

感觉两类图书的区分在这道题里没有具体区别

查看全部评论