【Java言語】オブジェクト指向(演習課題)

【Java言語】オブジェクト指向(演習課題)

参考  An introduction to c++ Programming and Object Oriented Programming  with Tutorials and Hands-On Examples 



1.円ドル変換

【仕様】
円と為替レート(1ドルが何円?)を設定して実行するとドルに変換した値を返すClassを作成してください。

【クラス図】
--------------------------------------  //クラス名
YenDollar                                
--------------------------------------  //フィールド(プロパティ)
- yen:double                       
- dollar:double
- rate:double
--------------------------------------  //メソッド
+ YenDollar():                     //コンストラクタ
+ calcDollar():void                     //ロジック
+ setYen(yen:double):void       //セッター
+ setRate(rate:double):void       //セッター
+ getRate():double                    //ゲッター
+ getDollar():double                  //ゲッター
--------------------------------------
- private
+ public




2.うるう年判定

【仕様】
西暦年を設定して実行すると「うるう年」かどうかを文字列で返すClassを作成してください。
うるう年の時は「LeapYear」、平年の時は「Year」で返します。

うるう年の判定方法:

    判定する年が 4 で割り切れ かつ 100で割り切れなければ うるう年
    または
    判定する年が 400 で割り切れるならば うるう年 

【クラス図】
--------------------------------------  //クラス名
LeapYear                                
--------------------------------------  //フィールド(プロパティ)
- year:String                       
- input:int                       
--------------------------------------  //メソッド
+ LeapYear():                  //コンストラクタ
+ leapYear():void                   //ロジック
+ setInput(input:int):void       //セッター
+ getInput():int                     //ゲッター
+ getYear():String                  //ゲッター
--------------------------------------
- private
+ public


3.曜日判定

【仕様】
西暦年月日を設定して実行すると曜日を整数値で返すClassを作成してください。
/*** 曜日を求めるツェラーの公式 ***/
/* (仮引数)y:西暦年 m:月 d:日 (返却値)曜日 0=日 1=月 2=火 3=水 4=木 5=金 6=土 */
public static int week_of_day(int y, int m, int d) {
     if(m == 1) {
        y = y - 1;
        m = 13;
    }  else if(m == 2) {
        y = y - 1;
        m = 14;
    }
// ツェラーの公式より
return (5 * y / 4 - y / 100 + y / 400 + (26 * m + 16) / 10 + d ) % 7;
}

【クラス図】
--------------------------------------  //クラス名
Youbi                             
--------------------------------------  //フィールド(プロパティ)
- year:int                      
- month:int                       
- day:int                      
- youbi:int                       
--------------------------------------  //メソッド
+ Youbi():                         //コンストラクタ
+ youbi():void                         //ロジック
+ setYear(year:int):void           //セッター
+ setMonth(month:int):void     //セッター
+ setDay(day:int):void             //セッター
+ getYear():int                        //ゲッター
+ getMonth():int                     //ゲッター
+ getDay():int                        //ゲッター
+ getYoubi():int                      //ゲッター
--------------------------------------
- private
+ public


4.おみくじ

【仕様】
実行すると運勢を返すClassを作成してください。
大吉:中吉:小吉:凶を1:4:4:1の確率で乱数を使い出現させます。

10個の乱数を発生させるコードは以下の通りです。
int r = new java.util.Random().nextInt(10);


【クラス図】
--------------------------------------  //クラス名
Omikuji                                
--------------------------------------  //フィールド(プロパティ)
- unsei:String                       
--------------------------------------  //メソッド
+ Omikuji():                       //コンストラクタ,ロジック
+ getUnsei():String                   //ゲッター
--------------------------------------
- private
+ public


5.ランダムウォーク

【仕様】
コイントスを繰り返します。表が出ると1点加点され、裏が出ると1点減点されます。
繰り返しの回数を設定して実行すると最終的な点数を返すClassを作成してください。

【クラス図】
--------------------------------------  //クラス名
RandomWalk                                
--------------------------------------  //フィールド(プロパティ)
- money:int                       
- kurikaeshi:int                       
- random:int                       
--------------------------------------  //メソッド
+ RandomWalk():                  //コンストラクタ
+ randomToss():void                          //ロジック
+ setKurikaeshi(kurikaeshi:int):void     //セッター
+ getKurikaeshi():int                          //ゲッター
+ getMoney():int                               //ゲッター
--------------------------------------
- private
+ public

6.じゃんけん

【仕様】
プレイヤーの手を設定して実行するとコンピュータとじゃんけんをして結果を整数値とメッセージで返すClassを作成してください。プレイヤーの設定した手とコンピュータの選んだ手も返却するようにしてください。

じゃんけんの決まり
0:グー 1:チョキ 2:パー とする
コンピュータはグー・チョキ・パーのいずれかを乱数を用いて決定する
プレイヤーの設定した手とコンピュータの出した手を比較して勝敗の結果を「勝ち」「負け」「あいこ」のメッセージとして返す
プレイヤーの設定した手とコンピュータの出した手を0,1,2のいずれかの整数値でも返す

【クラス図】
--------------------------------------  //クラス名
Jyanken                                
--------------------------------------  //フィールド(プロパティ)
- player:int                      
- computer:int                       
- hantei:int                      
- hanteiStr:String                       
--------------------------------------  //メソッド
+ Jyanken()                  //コンストラクタ
+ jyankenPon():void                     //ロジック
+ setPlayer(player:int):void     //セッター
+ getPlayer():int                     //ゲッター
+ getComputer():int               //ゲッター
+ getHantei():int                    //ゲッター
+ getHanteiStr():String           //ゲッター
--------------------------------------
- private
+ public


7.ユーザID作成

【仕様】
userNameを設定すると設定したuserNameにict.を付加して
userIdを4桁の乱数で返してくれるClassを作成してください。

【クラス図
--------------------------------------  //クラス名
User                                
--------------------------------------  //フィールド(プロパティ)
- userName:String                       
- userId:int
--------------------------------------  //メソッド
+ User():                            //コンストラクタ
+ userNameId():void                                //ロジック
+ setUserName(userName:String):void     //セッター
+ getUserName():String                          //ゲッター
+ getUserId():int                                     //ゲッター
--------------------------------------
- private
+ public