效果圖:
copy到項目下,運作Client.java即可。
Client.java
package views;import java.util.Scanner;public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Client client = new Client();
Scanner input = new Scanner(System.in);
Library library = new Library();
System.out.println("進入圖書系統:1是 else否");
if (input.nextInt() == 1) {
for (;;) {
System.out.println("--------圖書系統--------");
System.out.println("選擇查詢方式:1書名 2編号 0退出");
boolean existFlag = true;
boolean exitFlag = false;
switch (input.nextInt()) {
case 1:
System.out.println("請輸入圖書名稱:");
// input.nextLine(); // input.nextLine()目的在于消掉回車\n
String bookName = input.next();
try {
// System.out.println("查找中....");
for (int i = 0; i < library.Books.length; i++) {
if (library.Books[i][1].equals(bookName)) {
System.out.println("圖書編号:" + library.Books[i][0] + "圖書名稱:
" + bookName);
existFlag = false;
break;
}
}
if (existFlag) {
client.exception1();
}
} catch (BookNoExistException e) {
System.err.println("圖書不存在");
}finally { // 針對異常處理時輸出資訊不是很及時,做100ms延遲
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
break;
case 2:
System.out.println("請輸入圖書編号:");
String bookNum = input.next();
try {
// System.out.println("查找中....");
for (int i = 0; i < library.Books.length; i++) {
if (library.Books[i][0].equals(bookNum)) {
System.out.println("圖書編号:" + library.Books[i][0] + "圖書名稱:
" + library.Books[i][1]);
existFlag = false;
break;
}
}
if (existFlag) {
client.exception1();
}
} catch (BookNoExistException e) {
System.err.println("圖書不存在");
}finally {
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
break;
case 0:
exitFlag = true;
break;
default:
try {
client.exception2();
} catch (InvalidCmdException e) {
// TODO: handle exception
System.out.println("指令輸入錯誤,請根據提示重新輸入數字指令");
}
}
if(exitFlag == true) {
input.close();
System.out.println("已退出系統");
break;
}
}
} else {
input.close();
System.out.println("已退出系統");
}
}
public void exception1() throws BookNoExistException {
throw new BookNoExistException("圖書不存在");
}
public void exception2() throws InvalidCmdException {
throw new InvalidCmdException("指令輸入錯誤,請根據提示重新輸入數字指令");
}}
Library.java
package views;public class Library {
public String [][] Books = new String[][] {{"0001","HallyPotter"},{"0002","preference"},
{"0003","math"}};}
InvalidCmdException.java
package views;public class InvalidCmdException extends Exception {
public InvalidCmdException() {
// TODO Auto-generated constructor stub
}
public InvalidCmdException (String message){
super(message);
}}
BookNoExistException.java
package views;public class BookNoExistException extends Exception {
public BookNoExistException() {
// TODO Auto-generated constructor stub
}
public BookNoExistException (String message){
super(message);
}}