package com.imooc;
import java.util.Scanner;
/*模拟借书系统:
* 1.定义字符串数组保存图书信息
* 2.提示用户输入,分别按“书名”和“图书序号”查找图书
* 3.根据输入信息进行适当的异常处理
* a.如果输入类型错误,抛出“错误命令异常”,并提示重新输入
* b.如果书名不存在,抛出“图书不存在异常”,并提示重新输入
* c.如果图书序号超过字符串数组范围,抛出“图书不存在异常”,并提示重新输入
* */
public class LibrarySys {
public static void main(String []args)throws LibraryException{
Book []allbook={new Book(1001,"Java"),new Book(1002,"C++"),
new Book(1003,"linux"),new Book(1004,"C#"),
new Book(1005,"PHP"),new Book(1006,"HTML")};
//用一个Book类的数组存储所有图书的图书库allbook,本库共创建了6个图书对象
System.out.println("请输入查询图书的方式:");
System.out.println("1.按照书名查找图书");
System.out.println("2.按照图书编码查找图书");
//两种查询方式
//可能出现的异常:用户输入类型错误,抛出“错误命令”异常
try{
Scanner input=new Scanner(System.in);
int userC=input.nextInt();//把用户输入的要查询方式保存在userC中
if(userC==1){
System.out.println("请输入您要查询的图书名称:");
String userBNa=input.next();
//把用户输入的要查询的图书名字保存在userBNa中
Query userQ=new Query();//创建一个用户查询对象userQ
userQ.query(allbook, userBNa);//调用按照书名查询的方法
}
else if(userC==2){
System.out.println("请输入您要查询的图书编码:");
int userBId=input.nextInt();
//把用户输入的要查询的图书编码保存在userBId中
Query userQ=new Query();//创建一个用户查询对象userQ
userQ.query(allbook, userBId);;//调用按照图书编码查询的方法
}
}catch(Exception e){
e.printStackTrace();
LibraryException newLE=new LibraryException("错误命令异常!");
throw newLE;
}
}
}
package com.imooc;
/*自定义一个借书系统的异常*/
public class LibraryException extends Exception {
//创建一个无参数的构造器
public LibraryException(){
}
//创建一个有参数的构造器
public LibraryException(String message){
super(message);//调用父类Exception的含参数的构造器
}
}
package com.imooc;
/*创建一个图书类
* 该类包括两个属性:
* 图书的编码id,图书的书名name.
* 此类中可以修改图书的id,name
* */
public class Book {
public int id;//图书编码
public String name;//图书名称
public int getBookId(){
return id;
}
public void setBookId(int id){
this.id=id;
}
public String getBookName(){
return name;
}
public void setBookName(String name){
this.name=name;
}
public Book(int id,String name){
this.id=id;
this.name=name;
}
}
package com.imooc;
/*图书查询类:
* 包含两个方法
* query(Book []book,int id)是按照图书id查询图书
* query(Book []book,String name)是按照图书name查询图书
* 查询结果均为:图书编码:图书名称
* */
public class Query{
//两种查询方式的输入均为,Book类的数组,以及图书编码id,图书名称name
public void query(Book []book,int id){
//遍历整个图书库book[],用id和每一个图书的id相比较,找到相同id则输出结果
for(int i=0;i<book.length;i++){
if(book[i].getBookId()==id)
System.out.println(id+":"+book[i].getBookName());
}
}
public void query(Book []book,String name){
//遍历整个图书库book[],用name和每一个图书的name相比较,找到相同name则输出结果
for(int i=0;i<book.length;i++){
if(name.equals(book[i].getBookName()))
System.out.println(book[i].getBookId()+":"+name);
}
}
}