昨天刷完了关于异常的视频,感觉讲的太跳跃了,让我这个新手有点不适应,摸索了很久才完成了这个借书系统,擅自命名为达达借书系统,我还没习惯写备注,如果有看不懂的地方,欢迎大家留言指教。

建立 JieShuXiTong包,包内建立Book类,重写Book类构造方法,方便建立Book类的数组。

package JieShuXiTong;

public class Book {

int id;

String name;

public Book(int id,String name) {

this.id = id;

this.name = name;

// TODO Auto-generated constructor stub

}

public String getinfo(){

return id + ".\t" + name;

}

}

建立XiTong类,主程序写在该类内,把借书系统拆分成三个子程序,控制子程序,查询序号子程序,查询书名子程序,在主程序中调用控制子程序,我觉得这么写便于管理。欢迎大家指教

package JieShuXiTong;

import java.util.InputMismatchException;

import java.util.Scanner;

public class XiTong {

static XiTong test = new XiTong();

static Book[] book = { new Book(1, "亮剑"), new Book(2, "血色浪漫"),

new Book(3, "JAVA学习"), new Book(4, "加勒比海盗"), new Book(5, "金刚"),

new Book(6, "钢铁侠") };

static int countid = 4;

static int countname = 4;

public XiTong() {

// TODO Auto-generated constructor stub

}

public static void main(String[] args){

// TODO Auto-generated method stub

System.out.println("欢迎使用达达借书系统");

test.firstChoise();

}

public void firstChoise() {

System.out.println("请选择检索方法:1.图书序号 2.图书名称");

Scanner input1 = new Scanner(System.in);

int choise = input1.nextInt();

switch (choise) {

case (1):

test.findBookId();

break;

case (2):

test.findBookName();

break;

default:

System.out.println("您输入的数字信息不在可选范围之内,请重新输入");

test.firstChoise();

}

}

public void findBookId(){

Scanner input2 = new Scanner(System.in);

if (countid != 0) {

try {

System.out.println("请输入图书序号(1-6)");

int bookid = (input2.nextInt() - 1);

if (bookid < book.length) {

System.out.println("找到一个匹配,书名为:" + book[bookid].name);

System.out.println("感谢您的使用,再见!");

} else {

System.out.println("对不起,您搜索的序号不存在!请重新输入");

test.findBookId();

}

} catch (InputMismatchException e) {

System.out.println("您输入的信息有误,请重新输入,您还有" + (countid-1) + "次机会");

countid--;

test.findBookId();

}

} else {

System.out.println("您的输入次数已用完,感谢您的使用");

}

}

public void findBookName(){

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

Scanner input3 = new Scanner(System.in);

String bookname = input3.next();

if (countname != 0) {

try {

boolean flag = true;

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

if (bookname.equals(book[i].name)) {

flag = false;

System.out.println("找到一个匹配,该书序号为:" + book[i].id);

System.out.println("感谢您的使用,再见!");

break;

}

}

if(flag) {

System.out.println("对不起,您搜索的图书不存在!请重新输入");

test.findBookName();

}

} catch (InputMismatchException e) {

System.out.println("您输入的信息有误,请重新输入,您还有" + (countname-1) + "次机会");

countname--;

test.findBookName();

}

} else {

System.out.println("您的输入次数已用完,感谢您的使用");

}

}

}

用java统计任一书名次数_Java入门第三季 借书系统源代码 加入了限制重输次数 欢迎指教交流...相关推荐

  1. java了解异常_ID检测_Java入门第三季7-1简易扑克牌游戏(自定义玩家个数,玩家个数和ID异常检测)...

    玩家类: package playingCardsGame; import java.util.ArrayList; import java.util.List; /* * 玩家类 */ public ...

  2. book类 借书 java_模拟借书系统(Java入门第三季第一章练习)

    程序流程图我就不放上来了,慕友们将就着看看吧,注释还算清晰. 这段代码是Java入门第三季异常与异常处理这一章的练习题, 代码尚有不足,请多多指教. /** * 功能:模拟借书系统 * 要求: * 1 ...

  3. java成绩录入系统健壮性_Java第三季第一章异常,作业,借书系统。能通过,但是健壮性和可读性不强...

    一个借书系统,主要是使用异常来对借书时的情况进行把控. 基本可以跑.写的还是有点乱. 不足的地方还是很多的,希望大家指教,代码如下: package com.Library; import java. ...

  4. 阿克斯java表_java 入门第三季的6-5 作业, 希望大家指点

    java 入门第三季的6-5 作业, 希望大家指点 public static void main(String[] args) { // TODO Auto-generated method stu ...

  5. java 个人博客开发_Java实现个人博客系统

    导读:进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生.其中以论坛.博客.社区.空间最为受广大网民朋友的欢迎,也是目前为 ...

  6. java学习之借书系统

    实现的图书借阅系统要处理用户输入的非法参数,并引导用户正确使用 测试结果: 主要目的就是练习异常处理中的Exception类的使用 使用的相关语法 1 try{ 2 //可能产生异常的代码块 3 }c ...

  7. java统计有多少个单词_Java不同单词个数统计

    描述 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数.例如:对于句子"one little two little three little boys",总共有5个 ...

  8. java 一次性输入与输出_Java入门——(7)IO(输入与输出)

    IO流位于java.io包中,根据操作数据不同,分为字节流和字符流:根据数据输入方面的不同又可分为输入流和输出流,无论是何种流,最终都依赖于操作系统. 一.字节流: 1.字节流,主要用于图片.音频.视 ...

  9. java异常处借接错书_Java入门第三季-异常-图书馆借书系统

    参考大神的代码,实现循环查询读书, 名称输入异常类定义 NameException.java package com.imooc; /** * 书名异常类 * @author Majinglian * ...

最新文章

  1. 硬件断点反跳似乎_高性能应用程序:多路复用,反跳,系统字体和其他技巧
  2. ipsec 网络安全协议
  3. 对学校公开课信息网站一次渗透测试
  4. Edge Linking
  5. 看完这篇,你还不能理解 ‘数据库架构’?趁早回家吧
  6. 批量修改远程linux服务器密码
  7. 男生给女生最牛B的告白
  8. web.config 指定的默认页失效
  9. hashmap头插法和尾插法区别_Java程序员必知:HashMap进行put操作会不会引起死循
  10. Java一次跳出多重循环
  11. 二进制安装kubernetes1.14.1
  12. 微分方程数值解法(2)——椭圆型方程的有限差分法
  13. 2013职称计算机幻灯片题库,2013职称计算机考试题库宝典及答案解析(全).doc
  14. 软件质量控制、质量保证和质量管理区别
  15. U盘装系统工具哪个好用?
  16. 一图看懂人工智能技术体系
  17. Python进阶之路(2):批量下载豆瓣FM红心音乐MP3到本地
  18. 【论文推荐】了解《目标跟踪》必看的6篇论文(附打包下载地址)
  19. android 比较靠谱的图片压缩
  20. 利用java实现发送邮件

热门文章

  1. 【日本語勉強】日本語四級文法突撃(11~20)
  2. 程序员的进阶课-架构师之路(13)-B-树
  3. 设置servlet或action作为欢迎页面
  4. js60秒倒计时防刷新
  5. 宿州学院省二计算机什么时候报名,宿州学院2017年9月全国计算机等级考试报名时间及报名网址公布...
  6. pico park无法连接至远程服务器,pico park怎么联机玩?pico park怎么邀请朋友一起玩?[多图]...
  7. 归并排序python实现
  8. 基本数据结构 - 栈和队列
  9. eclipse : java项目中的web.xml( Deployment Descriptor 部署描述文件 )配置说明
  10. IDC发布2017年中国智慧城市IT十大预测