【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