java学习之借书系统
实现的图书借阅系统要处理用户输入的非法参数,并引导用户正确使用
测试结果:
主要目的就是练习异常处理中的Exception类的使用
使用的相关语法
1 try{ 2 //可能产生异常的代码块 3 }catch(Exception e){ 4 //处理异常的代码块 5 }finally{//可以根据需要选择 6 //最终执行的代码块 7 }
实现过程:
创建BorrowBook类
import java.util.InputMismatchException; import java.util.Scanner; public class BorrowBook {Scanner scn = new Scanner(System.in); }
定义三种异常类:输入的编号没有对应图书的异常、输入的书名没有对应的图书的异常、其他正常异常
private static class commanException extends Exception{private commanException() {} } private static class bookNumException extends Exception{private bookNumException() {} } private static class bookNameException extends Exception{private bookNameException() {} }
创建抛出异常方法,并抛出三种异常
private void commanExc() throws commanException{throw new commanException(); } private void bookNumExc() throws bookNumException{throw new bookNumException(); } private void bookNameExc() throws bookNameException{throw new bookNameException(); }
创建用于存储图书的Box的方法(以两类书为例)
private static String[] bookBox() {String[] bookBox = new String[] {"高数","线性代数"};return bookBox; }
创建借书入口方法
private static void borrowBook() throws Exception{System.out.println("输入命令:1-根据名称查找图书;2-根据序号查找图书");try {int inputNum = new BorrowBook().scn.nextInt();try {if(inputNum == 0) {borrowBkByName(bookBox());}else if(inputNum == 1){borrowBkByNum(bookBox());}else {new BorrowBook().commanExc();}}catch(Exception e){System.out.println("命令输入错误,请根据提示输入数字命令!");borrowBook();} }catch(InputMismatchException eInput) {System.out.println("命令输入错误,请根据提示输入数字命令!");borrowBook();} }
创建依据书名借书的方法
private static void borrowBkByName(String[] books) throws Exception{System.out.println("输入图书名称:");String bookName = new BorrowBook().scn.next();try {switch(bookName) {case "高数":System.out.println("book:" + bookName);break;case "线性代数":System.out.println("book:" + bookName);break;default:new BorrowBook().bookNameExc();}}catch(Exception e) {System.out.println("图书不存在!");borrowBkByName(books);} }
创建依据图书序号借书的方法
private static void borrowBkByNum(String[] books) throws Exception{System.out.println("输入图书序号:");try {int bookNum = new BorrowBook().scn.nextInt();try {switch(bookNum) {case 1:System.out.println("book:" + books[bookNum]);break;case 2:System.out.println("book:" + books[bookNum]);break;default:new BorrowBook().bookNumExc();}}catch(Exception e) {System.out.println("图书不存在!");borrowBkByNum(books);} }catch(InputMismatchException e) {System.out.println("命令输入错误,请根据提示输入数字命令!");borrowBkByNum(books); } }
用于初始化的main方法
public static void main(String[] args) throws Exception{borrowBook();new BorrowBook().scn.close(); }
转载于:https://www.cnblogs.com/xinglichao/p/8886313.html
java学习之借书系统相关推荐
- book类 借书 java_java学习之借书系统
实现的图书借阅系统要处理用户输入的非法参数,并引导用户正确使用 测试结果: 主要目的就是练习异常处理中的Exception类的使用 使用的相关语法 1 try{2 //可能产生异常的代码块 3 }ca ...
- 用java统计任一书名次数_Java入门第三季 借书系统源代码 加入了限制重输次数 欢迎指教交流...
昨天刷完了关于异常的视频,感觉讲的太跳跃了,让我这个新手有点不适应,摸索了很久才完成了这个借书系统,擅自命名为达达借书系统,我还没习惯写备注,如果有看不懂的地方,欢迎大家留言指教. 建立 JieShu ...
- java成绩录入系统健壮性_Java第三季第一章异常,作业,借书系统。能通过,但是健壮性和可读性不强...
一个借书系统,主要是使用异常来对借书时的情况进行把控. 基本可以跑.写的还是有点乱. 不足的地方还是很多的,希望大家指教,代码如下: package com.Library; import java. ...
- book类 借书 java_模拟借书系统(Java入门第三季第一章练习)
程序流程图我就不放上来了,慕友们将就着看看吧,注释还算清晰. 这段代码是Java入门第三季异常与异常处理这一章的练习题, 代码尚有不足,请多多指教. /** * 功能:模拟借书系统 * 要求: * 1 ...
- 模拟借书系统-慕课网
import java.util.InputMismatchException; import java.util.Scanner; /** * 借书书系统 * @author */ publi ...
- Django 图书借书系统
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.Django是什么? 二.django安装 1.安装 2.需要的pip list 安装 三.django 建立图书 ...
- 实战小项目之借书系统
项目简介 基于Qt做了一个用户管理和借书系统,主要是为了练手,学了mysql而不是白学,通过这个小软件,对数据库增删改查操作更为熟悉,对于操作失败时,能通过一些返回信息判断错误原因,不废话了,下面是这 ...
- 惊了,Alibaba内部“Java学习宝典”,居然系统到P7 ,学到就是赚到
小编把Java工程师复习分为如下几个方向: Java基础(重点) : JVM原理,排序算法,Java 集合及工具类,多线程及 并发包,设计模式(23种): 存储相关:MySQL.Redis.Mongo ...
- java异常处借接错书_Java入门第三季-异常-图书馆借书系统
参考大神的代码,实现循环查询读书, 名称输入异常类定义 NameException.java package com.imooc; /** * 书名异常类 * @author Majinglian * ...
最新文章
- Python3--有道音频下载
- CentOs7中安装sonarQube服务系列------1.CentOS7中Docker的安装
- 互联网产品研发的典型流程
- HTTP Cookie
- powderdesinger显示中英文表名
- python编程狮app题库_Python编程狮-零基础学Python App Storessa
- json在线格式化【推荐】
- .NET伪静态使用以及和纯静态的区别
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
- PMBOK--项目整合管理
- nginx服务无法停止(Windows)
- 【新书速递】计算机系统解密:从理解计算机到编写高效代码
- 为什么Android项目mainactivity中有一个变量R_教我兄弟学Android逆向12 编写xpose模块...
- cordic ip核 vivado_Xilinx Vivado Cordic 核的使用
- 网络设备设置/取消console口登陆单独密码
- Angular入门到精通系列教程(1) - Angular,Vue,React 选型
- Oil Deposits HDU - 1241 并查集思想 + bfs搜索
- python如何在手机运行内存_Python中对象的内存使用(一)
- windows10 杀掉一个端口
- Linux指令_杨小明