模拟借书系统
来源:互联网 发布:淘宝众筹的产品怎么样 编辑:程序博客网 时间:2024/06/05 15:43
要求如下:
主要是对异常try-catch-finally语句的一个深入理解过程
实现代码:
public class BookSystem {
public static void main(String[] args) {
Book[] bookStore={new Book("math",1),new Book("physical",2),new Book("biological",3)};
//String[][] books=new String[][] {{"高数","1"},{"物理","2"},{"生物","3"}};数组存书的相关信息
BookSystem BS=new BookSystem();
Scanner input= new Scanner(System.in);
while(true) {
System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
int i=0;
boolean flag0=true;
try {
i=input.nextInt();
}
catch(Exception e) {
System.out.println("输入命令错误!请根据提示输入数字命令!");
flag0=false;
}
if(i==1) {
System.out.println("输入图书的名称:");
String str=input.next();
System.out.println(str);
int k;
boolean flag=true;
try {
for( k=0;k<bookStore.length;k++) {
String s1=bookStore[k].getName();
if(s1.equals(str))
//if(books[k][1].equals(str))
{
System.out.println("book:"+str);
flag=false;
break;
}
}
if(flag) {
BS.exception1();
}
}catch(BookNoExistException e) {
System.out.println("图书不存在!");
}
}
else if(i==2) {
System.out.println("输入图书序号:");
int id=0;
boolean flag2=true;
try {
id=input.nextInt();
}
catch(Exception e) {
System.out.println("输入命令错误!请根据提示输入数字命令!");
flag2=false;
}
int k;
try{
for( k=0;k<bookStore.length;k++) {
//if(books[k][0].equals(str))
if((id-1)==k) {
System.out.println("book:"+bookStore[id-1].getName());
flag2=false;
break;
}
}
if(flag2) {
BS.exception1();
}
}
catch(BookNoExistException e) {
System.out.println("图书不存在!");
}
}
else {
if(flag0) {
try{
BS.exception2();
}
catch( InputMismatchException e) {
System.out.println("输入命令错误!请根据提示输入数字命令!");
}
}
}
if(input.nextLine().equals("exist"))
break;
}
input.close();
}
public void exception1() throws BookNoExistException{
throw new BookNoExistException("图书不存在");
}
public void exception2() throws InputMismatchException{
throw new InputMismatchException("输入命令错误!请根据提示输入数字命令");
}
}
总结:
本次代码还有优化的地方,同时可以采用switch语句来实现;
遇到的重大问题:输入中文时,显示的是中文拼音加中文,可能是字符编码问题;但是还未解决。。。。。
- 模拟借书系统
- 模拟借书系统
- 模拟借书系统
- 用java语言编写一个“模拟借书系统”
- 模拟借书系统简易版(慕课网java入门第三季异常)
- java自学笔记9:异常练习(模拟借书系统)
- 电梯调度模拟系统
- 模拟学生选课系统
- 模拟数据库系统
- 银行业务模拟系统
- 银行模拟系统(2)
- 通信系统模拟
- 通信系统模拟(续)
- kwic系统模拟
- 模拟学员信息管理系统
- 模拟交通灯管理系统
- 电梯调度模拟系统
- *多线程 模拟售票系统
- 关于消息推拉流选择问题——思考两天
- 执行mysql命令报错,提示:mysql:command not found
- How to reprint the blogs from BoKeYuan to CSDN
- 关于rem加载闪烁的问题
- L1-039. 古风排版
- 模拟借书系统
- Scala 可变参数函数的灵活调用
- unity实现简单的加密使用次数限制时间限制功能
- CADMeister.v6.1-ISO 1DVD中文版,冲模设计软件
- oracle输出文本格式化命令
- Java多线程系列--【基础篇02】- 常用的实现多线程的两种方式
- Xcode9.1:swift自定义tableview下拉刷新
- C语言小游戏 三子棋
- 【Python学习之路】My Forth journey