java模拟借书系统E R图_作业—模拟借书系统

源自:1-9 经验总结

作业—模拟借书系统

package com.imooc;

import java.util.Scanner;

public class BookLending {

// 定义图书数组

static Books[] booksToInquery = { new Books(1, "Java开发实战修炼"),

new Books(2, "JavaWeb开发实战经典"), new Books(3, "疯狂android讲义"),

new Books(4, "android权威指南"), new Books(5, "HeadFirst设计模式") };

static Scanner sc = new Scanner(System.in);

// 主查询方法

public static void inquery() throws Exception {

System.out.println("欢迎登录模拟借书系统!"); // 进入系统

System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书"); // 选择查询类型

try {

int input = inputCommand(); // 将控制台输入的数字、字符、字符串转化1,2,-1

switch (input) {

case 1: // 输入1,则按照书名查询

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

String bookName = sc.next();

checkName(bookName);

break;

case 2: // 输入2,则按照编号查询

checkSerial();

break;

case -1: // 输入字符或字符串,则提示错误,重新输入

System.out.println("命令输入错误!请根据提示输入数字命令!");

inquery();

default: // 输入其他类型,提示错误

System.out.println("命令输入错误!");

inquery();

}

} catch (Exception e) {

// 捕获”图书不存在异常“时,要求重新输入命令

System.out.println(e.getMessage());

inquery();

}

}

// 从控制台输入命令,用于选择查询类型以及选择查询编号

public static int inputCommand() {

try {

int input = sc.nextInt();

return input;

} catch (Exception e) {

// 若输入字符型或者字符串,则抛出异常,捕获该异常,抛出"错误命令异常"

sc = new Scanner(System.in);

return -1;

}

}

// 按照书名查找图书

public static void checkName(String st) throws Exception {

for (int i = 0; i < booksToInquery.length; i++) {

// 如输入书名正确,则返回相应位置图书

if (st.equals(booksToInquery[i].getName())) {

System.out.println("序号: " + booksToInquery[i].serial + "\t"

+ "书名: " + booksToInquery[i].name);

System.exit(0);

}

}

throw new Exception("图书不存在哦!");

}

// 按照编号查找图书

public static void checkSerial() throws Exception {

System.out.println("输入图书序号:");

try {

int bookSerial = inputCommand(); // 将输入的序号做一个转化,输入数字则返回数字,输入字符和字符串则返回-1

// 如果输入字符及字符型,则提示错误,重新输入

if (bookSerial == -1) {

System.out.println("命令输入错误!请根据提示输入数字命令!");

checkSerial();

}

// 如输入序号正确,则返回相应位置图书

for (int i = 0; i < booksToInquery.length; i++) {

if (bookSerial == booksToInquery[i].serial) {

System.out.println("序号: " + booksToInquery[i].serial + "\t"

+ "书名: " + booksToInquery[i].name);

System.exit(0);

}

}

} catch (ArrayIndexOutOfBoundsException e) {

// 输入的序号不存在(引发"数组下标越界异常"),则抛出"图书不存在异常"

Exception bookNotExists = new Exception("图书不存在哦!");

bookNotExists.initCause(e);

throw bookNotExists;

}

}

public static void main(String[] args) throws Exception {

inquery();

}

}

package com.imooc;

public class Books {

public String name;

public int serial;

public Books(int serial, String name) {

this.name = name;

this.serial = serial;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getSerial() {

return serial;

}

public void setSerial(int serial) {

this.serial = serial;

}

}

提问者:古典牧童

2015-04-29 08:13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值