コンピューター サイエンスのクラスでプロジェクトを行う必要があります。問題は:
図書館の利用者は、3冊まで借りることができます。したがって、パトロンには名前と最大 3 冊の本があります。本には著者とタイトルがあります。これらのオブジェクトと次の動作を表すために、Patron と Book の 2 つのクラスを設計して実装します。
- クライアントは、タイトルと著者で本をインスタンス化できます
- クライアントは本のタイトルや著者を調べることはできますが、変更することはできません
- クライアントは、特定の本 (タイトルで識別) を借りたかどうかを利用者に尋ねることができます。
- クライアントは、特定の本 (タイトルで識別) を返却するよう利用者に伝えることができます。
- クライアントは、常連客に特定の本を借りるように伝えることができます。
Patron クラスは、書籍ごとに個別のインスタンス変数を使用する必要があります (合計 3 つ)。これらの変数はそれぞれ、最初は null です。本を借りるとき、利用者は null ではない変数を探します。そのような変数が見つからない場合、メソッドは false を返します。null 変数が見つかった場合、新しいブックにリセットされ、メソッドは true を返します。同様の考慮事項が他の方法にも当てはまります。メソッド aString.equals(aString) を使用して、2 つの文字列が等しいかどうかを比較します。クラスに適切な toString メソッドを含めて、テスター プログラムでテストしてください。
これがメソッドを含む私のClient
クラスです: http://pastebin.com/JpxCT2F6main
今私の問題は、プログラムを実行すると、プログラムがユーザーの入力を待たないことです。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」を入力しました。これは、本を返さないことを意味しますが、代わりに無効な入力出力が得られます。