以下是我写的借书系统,参考了各位dalao作品
其中看了 @Parva 的无限循环解决方法:
其中比较难的一点我提一下:
用Scanner时,用户输入数据后按下了回车键
数据会被Scanner获取,但回车键会变成"\n"字符溢出
下一次用Scanner时,Scanner就会出错
作者: Parva
链接:http://www.imooc.com/article/19695
来源:慕课网
package so.book;
import java.util.Scanner;
import java.util.InputMismatchException;
public class main {
//图书搜索类型
private int type = 0 ;
//图书名称
private String name = "" ;
public static void main(String[] args)
{
String[] books = {"时间简史","人类简史","三体","JAVA从入门到放弃","Mysql从删库到跑路","黑客攻防从入门到入狱"} ;
//欢迎
System.out.println("欢迎使用图书管理系统!");
//实例化
main m = new main() ;
//图书列表
m.book_list(books);
//选择搜索类型
m.search_type();
//搜索图书
m.search_book( books );
//显示图书
System.out.println("你选择的图书为:"+m.name);
}
/**
* 图书列表
* @param books
*/
public void book_list(String[] books)
{
int number = 0 ;
System.out.println(" 序号 名称");
for ( String book : books )
{
number++ ;
System.out.println(" "+number+" "+book);
}
}
/**
* 设置搜索类型
*/
public void search_type()
{
Scanner type_number = new Scanner(System.in);
while (true)
{
try {
System.out.println("输入命令: 1-按照名称查找图书 ; 2-按照序号查找图书 " );
int number = type_number.nextInt();
if ( number == 1 || number == 2 )
{
this.type = number ;
break;
}
else
{
throw new Exception();
}
}
catch ( InputMismatchException e )
{
System.out.println("命令输入错误!请根据提示输入数字命令!");
type_number.nextLine();
}
catch ( Exception e )
{
System.out.println("命令输入错误!请根据提示输入数字命令!" );
}
}
}
/**
* 搜索图书
* @param books
*/
public void search_book(String[] books)
{
while( true )
{
try {
Scanner search = new Scanner( System.in) ;
if( this.type == 1 )
{
System.out.println("输入图书名称:");
String book_name = search.nextLine();
//初始化
boolean is_true = false ;
//循环判断图书名称是否存在
for( String book : books )
{
if ( book.equals(book_name) )
{
is_true = true ;
}
}
if ( is_true == false )
{
throw new Exception() ;
}
this.name = book_name ;
break;
}
else if( this.type == 2 )
{
System.out.println("输入图书序号:");
int book_number = search.nextInt() ;
if ( book_number < 1 || book_number > books.length )
{
throw new Exception() ;
}
this.name = books[book_number-1] ;
break;
}
else
{
System.out.println("系统错误!");
System.exit(0);
}
}
catch ( Exception e )
{
System.out.println("图书不存在");
}
}
}
}
以上就是我的借书系统,各位友友可以相互参考,互相学习!
热门评论
谢谢分享~帮了很大的忙
那个scanner似乎不能连续输入啊