T3.リニアサーチ(番兵探索)
問題1.
コマンドラインで指定された宝石の名前が何月の誕生石かを表示するプログラムを作成してください。
【仕様】
1.コマンドラインから宝石の名前を一つ指定して実行します。
2.入力された宝石の名前を誕生石表からリニアサーチの番兵法を用いて探索し、十二か月の何番目かを求めて表示します。
3.見つからなかった場合は、その旨のメッセージを表示します。
4.引数の数が一つでない場合はエラーとしてメッセージを表示し、プログラムを終了すします。
【クラス図】
--------------------------------------
クラス名
BirthStone
--------------------------------------
フィールド定義
-stone:String[]
-key:String
--------------------------------------
メソッド定義
+BirthStone(str:String):
+stoneSearch():void
+monthSearch():void
--------------------------------------
#:protected
-:private
+:public
【実行クラス】
【実行例】
>java BirthStoneMain ダイヤモンド
ダイヤモンドは4月の誕生石です
>java BirthStoneMain ガーネット
ガーネットは1月の誕生石です
>java BirthStoneMain タンザナイト
タンザナイトは12月の誕生石です
>java BirthStoneMain キャッツアイ
キャッツアイは見つかりません
問題2.
上記1.の仕様を以下のように変更してください。
コマンドラインで指定された月の誕生石の名前を表示する。
1.コマンドラインから月の数値を一つ指定して実行する。
2.入力された月の数値を誕生石表からからリニアサーチで探索し、誕生石の名前を求めて表示する。
3.見つからなかった場合は、その旨のメッセージを表示する。
4.引数の数が一つでない場合はエラーとしてメッセージを表示し、プログラムを終了す る。
BirthStoneクラスにmonthSearch()を作成してください。
【実行例】
>java BirthStoneMain 1
1月の誕生石はガーネットです
>java BirthStoneMain 0
見つかりません
>java BirthStoneMain -1
見つかりません
>java BirthStoneMain 13
見つかりません
>java BirthStoneMain 12
12月の誕生石はタンザナイトです