为了账号安全,请及时绑定邮箱和手机立即绑定

课后习题已编 求大神指出不足之处 不会的朋友也可以参考一下

package library;
import java.util.Scanner;//扫描
public class Library {
 public void library(){
	System.out.println("输入命令:1。按照名称查找图书;2.按照序号查找图书");//打印输出
	try{//try{}catch(){}语句块的应用
		Scanner input=new Scanner(System.in);
	int a=input.nextInt();
	 if(a==1){
		library1();//输入1,调用library1方法
	 }else if(a==2){
		 library2();//输入2调用library2方法
	 }else {
		 System.out.println("命令输入错误,请根据提示输入数字命令!(1或2)");
			library();//输入其它整数则提示重新输入
	 }
	}catch(Exception e){//异常捕获
		System.out.println("命令输入错误,请根据提示输入数字命令!");
		library();//异常处理,回滚重新输入
	}
	}
 public void library1(){
	 System.out.println("输入图书名称:");
	 try{
		 Scanner input=new Scanner(System.in);
	 String b=input.next();//扫描 输入字符串(输入图书名称)
	 for(int i=0;;i++){//用for循环遍历 搜索系统中是否有要借的图书
		 if((Books.books[i].name).equals(b)){
			 System.out.println("book:"+b);
			 break;//有则结束循环,没有则抛出一个异常
		 }
		
	 }
		 
	 }catch(Exception e){
		 System.out.println("图书不存在!");//异常处理方式 重新输入图书
			library1();
	 }
	 
 }
 public void library2(){//参照library1
	 System.out.println("输入图书序号:");
	 try{
		 Scanner input=new Scanner(System.in);
	 int b=input.nextInt();
	 for(int i=0;;i++){
		 if(Books.books[i].num==b){
			 System.out.println("book:"+Books.books[i].name);
			 break;
		 }
		
	 }
		 
	 }catch(Exception e){
		 System.out.println("图书不存在!");
			library2();
	 }
 }
}
package library;

public class Books {//数据模型
	int num;
	String name;
	public Books(int num,String name){//构造函数  存储书本序号,及名字
		this.num=num;
		this.name=name;
	}
public static Books[]books={new Books(1,"数据结构"),new Books(2,"高数"),new Books(3,"线性代数")
		
};//数组信息

}
package library;//测试类

public class Initail {

	/**
	 * @param args 
	 */
	public static void main(String[] args){
		// TODO Auto-generated method stub
		System.out.println("欢迎登录借书系统");
		Library input=new Library();//建立对象
		input.library();
	}

}


正在回答

13 回答

 int num;

    String name;

这个地方最好用private进行封装调用时是用get的方法;其他我觉得挺好的

2 回复 有任何疑惑可以回复我~
#1

富真好 提问者

非常感谢!
2016-01-27 回复 有任何疑惑可以回复我~
#2

qq_倔強人生_0 回复 富真好 提问者

不客气,我也是刚开始。大家可以一起学习。也可以加个好友哈
2016-01-28 回复 有任何疑惑可以回复我~
#3

Myles小帅哥

类与类之间本来就是有作用域的吧,可以加private吗?private是Procedure之间,不是Class之间吧
2016-02-22 回复 有任何疑惑可以回复我~
#4

富真好 提问者 回复 Myles小帅哥

可以回过头去看一看封装的内容
2016-02-24 回复 有任何疑惑可以回复我~
查看2条回复

int num;

String name;

这个地方最好用private进行封装,对于这样,private只是限于在本类中使用,那Library类中岂不是不能 用他的

信息?

0 回复 有任何疑惑可以回复我~

我刚才运行了一下代码,发现没有必要回滚啊

0 回复 有任何疑惑可以回复我~

你好,参考打印出了,查找原因,目前是同时定义了 两个类型的变量b ,分别是String ,int ,尝试将变量变换两者不能相同吧,问题解决。小白请教。

0 回复 有任何疑惑可以回复我~

我运行了代码 之后,发现,没有运行catch()块中的代码

0 回复 有任何疑惑可以回复我~
#1

富真好 提问者

没有打印输出catch()块的内容 但当程序运行异常时能捕获到异常 并输出图书不存在的提示
2016-03-02 回复 有任何疑惑可以回复我~

对于Scanner input.楼主要记得调用input.close()关闭会比较好

0 回复 有任何疑惑可以回复我~

问下 输入的书名不匹配 为什么会抛出一个异常 

0 回复 有任何疑惑可以回复我~
#1

富真好 提问者

我用的是一个数组来存储数据 数组里面没有搜索到这个书名会抛出数组下标越界异常
2016-02-24 回复 有任何疑惑可以回复我~

想问问能写出这样的代码,需要怎么学习,自己也看了问题但是仍然没有思路和想法,只是知道最基本的一些简单知识,求指教。

0 回复 有任何疑惑可以回复我~
#1

富真好 提问者

自己多去敲代码练习啊 完了之后自己再敲 没思路了参考别人的 多敲多问多练 没有技巧
2016-02-24 回复 有任何疑惑可以回复我~

问题:在Books类里定义的静态数组books,在类Library类里不能直接调用吧,我尝试了下,不对啊,应该在Liberay里调用一下Books的构造函数吧!

0 回复 有任何疑惑可以回复我~
#1

富真好 提问者

可以的
2016-02-24 回复 有任何疑惑可以回复我~
#2

慕先生2246827

你好请问具体的代码应该怎样写?
2016-03-02 回复 有任何疑惑可以回复我~

根据书名找不到书不会提示错误。

0 回复 有任何疑惑可以回复我~
#1

富真好 提问者

不是有提示么 会输出图书不存在啊
2016-02-14 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消

课后习题已编 求大神指出不足之处 不会的朋友也可以参考一下

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信