【发布时间】:2012-06-12 21:04:11
【问题描述】:
我必须为我的计算机科学课做一个项目。问题是:
图书馆的读者最多可以借三本书。因此,赞助人有一个名字和最多三本书。一本书有作者和书名。设计和实现两个类,Patron 和 Book,来表示这些对象和以下行为:
- 客户端可以用标题和作者实例化一本书
- 客户可以检查但不能修改书名或作者
- 客户可以询问顾客是否借过一本书(按书名标识)。
- 客户可以告诉顾客归还给定书籍(由书名标识)。
- 客户可以告诉顾客借一本书。
Patron 类应该为每本书使用一个单独的实例变量(总共三个)。 这些变量中的每一个最初都是空的。借书时,读者会查找不为空的变量。如果没有找到这样的变量,则该方法返回 false。如果找到空变量,则将其重置为新书并且该方法返回 true。类似的考虑适用于其他方法。使用方法 aString.equals(aString) 比较两个字符串是否相等。确保为您的类包含适当的 toString 方法并使用测试程序对其进行测试。
这是我的Client 类,其中包含main 方法:http://pastebin.com/JpxCT2F6
现在我的问题是,当我运行程序时,程序不会等待用户输入。以下是 Eclipse 控制台中出现的内容:
Please enter title of book 1:
s
Please enter author of book 1:
e
Please enter title of book 2:
f
Please enter author of book 2:
t
Please enter title of book 3:
g
Please enter author of book 3:
d
Which book would you like to check for?
s
The patron has taken out the book s
Would you like to return a book? (1 yes or 2 no)
1
Which book would you like to return?
Sorry, could not find the book
Would you like to take out a book? (1 yes or 2 no)
2
Invalid option
Which book would you like to check for?
The patron does not have taken out
Would you like to return a book? (1 yes or 2 no)
如您所见,控制台不会在“您想归还哪本书?”之后等待用户输入。相反,它需要一个空白值。后来在代码中,我输入了“2”,这意味着不返回任何书,而是给我一个无效的输入输出。
【问题讨论】:
-
似乎
nextInt()不吃换行符。 -
我将从这里开始:Java Debugging with Eclipse Tutorial。使用它,您将能够放大代码并确定问题所在;那么如有必要,您可以提出更具体的问题。
-
欢迎来到 *。请不要发布指向您的整个代码的链接,而是发布您需要帮助的代码片段(异常、编译错误等)。
-
我复制粘贴了您的
pastebin代码,创建了空的Patron和Book类,它等待用户输入。当试图说“不”来退书时,它只给出“无效选项”