java练习1:
java实现模拟借书系统:
程序可实现:
1.提示用户输入,按书名和序号查找图书。
2.根据输入信息进行适当的异常处理:
a.输入类型错误,抛出“错误命令异常”,提示重新输入
b.书名不存在或输入序号超出书本库范围,抛出“图书不存在异常”,提示重新输入
不足:
未学过sql,书名常用的模糊搜索无法实现,其他实现途径不详
。。。。
import java.util.Scanner;
public class BorrowBooksWorking {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] books= {"高数","计算机原理","线代","操作系统","计算机网络"};//书本库
int flag=0;
while(flag==0) {
System.out.println("输入命令:1--按名称查;2--按序号查;3--退出查阅系统");
try {
int input1=selectNum();
switch(input1) {
case 1://按名称查
String book1=byName(books);
System.out.println(" 图书名称:"+book1);
break;
case 2://按序号查
String book2=bySeq(books);
System.out.println("图书名称:"+book2);
break;
case 3://退出程序
System.out.println("********欢迎下次使用本系统");
flag=1;
break;
case -1://输入有误
System.out.println("命令输入错误!输入字符串?请根据提示输入数字命令,朋友!");
continue;
default://输入其他信息都是错的
System.out.println("命令输入错误!请根据提示输入!~~~~~");
continue;
}
}catch(Exception bne) {
//捕获图书不存在异常要重新输入
System.out.println(bne.getMessage());
continue;
}
}
}
//序号型输入
public static int selectNum() {
int s1;
try {
s1=sc.nextInt();
} catch (Exception e) {
// 若输入字符型则异常
sc=new Scanner(System.in);
s1=-1;
}
return s1;
}
//按序号查书
public static String bySeq(String[] books) throws Exception{
while(true) {
System.out.println("输入图书序号:");
try {
int seq=selectNum();
if(seq==-1) {
System.out.println("输入错误!请根据提示输入数字!");
continue;
}
String book=books[seq-1];
return book;
}catch(ArrayIndexOutOfBoundsException e) {
// 数组越界异常
throw new Exception("图书不存在!");
}
}
}
//按图书名查书
//模糊搜索?
public static String byName(String[] books) throws Exception{
System.out.println("输入图书名称:");
String str1=sc.next();
for(int i=0;i<books.length;i++) {
if(books[i].equals(str1))
return books[i];
}
throw new Exception("图书不存在!");
}
}