質問するログイン新規登録

質問編集履歴

1

具体的な質問

2021/08/05 10:30

投稿

oppaiboinboin17
oppaiboinboin17

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- 問題を解いください。
1
+ rubyオブジェクト指向に関し
body CHANGED
@@ -1,1 +1,86 @@
1
- 勝ち負け数を管理するための Team クラスを作成して、インスタンスを6チーム分生成した後に各チームの勝ち負け数を表示するプログラムを作成してください。 課題に取り組む上で、下記の仕様を満たすようにしましょう。 仕様 1. Teamクラスの定義 以下の4つのインスタンス変数を Team クラスに持たせてください: name(英語のチーム名:Giants Tigers Dragons BayStars Carp Swallows) win(勝ち数) lose(負け数) draw(引き分け数) initialize の処理を定義してください: 各インスタンス変数(名前・勝ち数・負け数・引き分け数)を初期化できるようにしてください 以下の2つのインスタンスメソッドを Team クラスに持たせてください: calc_win_rate(勝率) 勝率を戻り値とするメソッドにしてください。勝率は 勝ち数/(勝ち数+負け数) で算出できます。引き分け数は除きますので注意してください(記録の計算方法 | 野球の記録について より)。また、勝率は計算で算出できるので、メソッドで定義する形としています ヒント:勝ち数と負け数は、ともに整数のため、to_f を使って割り算をしましょう show_team_result(チームの成績をターミナルに表示する) インスタンス変数の値を使って ○○ の2020年の成績は △△勝 □□敗 ☆☆分、勝率は 0.▽▽▽▽▽▽です。 と表示するメソッドにしてください 2. インスタンスの生成 6チーム分の Team クラスのインスタンスを生成しinitializeで各インスタンス変数(名前・勝ち数・負け数・引き分け数)を初期化してください 3. show_team_result の呼び出し 表の見出しを表示したあと、各インスタンスの show_team_result メソッドを呼び出して、勝敗情報を表示してください。 出力結果 Giants の2020年の成績は 67勝 45敗 8分、勝率は 0.5982142857142857です。 Tigers の2020年の成績は 60勝 53敗 7分、勝率は 0.5309734513274337です。 Dragons の2020年の成績は 60勝 55敗 5分、勝率は 0.5217391304347826です。 BayStars の2020年の成績は 56勝 58敗 6分、勝率は 0.49122807017543857です。 Carp の2020年の成績は 52勝 56敗 12分、勝率は 0.48148148148148145です。 Swallows の2020年の成績は 41勝 69敗 10分、勝率は 0.37272727272727274です。 Rubyのプログラミングの問題です。解いてください。よろしくお願い致します。
1
+ # クラス定義
2
+ class Team
3
+
4
+ # インスタンスが持つ変数(値)
5
+ attr_accessor :name, :win, :lose, :draw,
6
+
7
+ # インスタンスを初期化するための、特別なメソッド
8
+ def initialize
9
+ self.name = "Giants"
10
+ self.win = 67
11
+ self.lose = 45
12
+ self.draw = 8
13
+ end
14
+ def initialize
15
+ self.name = "Tigers"
16
+ self.win = 60
17
+ self.lose = 53
18
+ self.draw = 7
19
+ end
20
+ def initialize
21
+ self.name = "Dragons"
22
+ self.win = 60
23
+ self.lose = 55
24
+ self.draw = 5
25
+ end
26
+ def initialize
27
+ self.name = "BayStars"
28
+ self.win = 56
29
+ self.lose = 58
30
+ self.draw = 6
31
+ end
32
+ def initialize
33
+ self.name = "Carp"
34
+ self.win = 52
35
+ self.lose = 56
36
+ self.draw = 12
37
+ end
38
+ def initialize
39
+ self.name = "Swallows"
40
+ self.win = 41
41
+ self.lose = 69
42
+ self.draw = 10
43
+ end
44
+
45
+ # インスタンスが持つメソッド(処理)
46
+ def calc_win_rate
47
+ return win.to_f/(win+lose)
48
+ end
49
+
50
+ def show_team_result
51
+ puts "#{self.name}の2020年の成績は#{self.win}勝#{self.lose}敗#{self.draw}分、勝率は#{self.calc_win_rate}"
52
+ end
53
+ end
54
+
55
+ # インスタンスの生成と、変数への代入
56
+ giants = Team.new()
57
+ tigers = Team.new
58
+ dragons = Team.new
59
+ baystars = Team.new
60
+ carp = Team.new
61
+ swallows = Team.new
62
+
63
+
64
+ # インスタンスの使用
65
+ giants.show_team_result
66
+ tigers.show_team_result
67
+ dragons.show_team_result
68
+ baystars.show_team_result
69
+ carp.show_team_result
70
+ swallows.show_team_result
71
+
72
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
73
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
74
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
75
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
76
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
77
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
78
+ になってしまいます。
79
+
80
+ Giants の2020年の成績は 67勝 45敗 8分、勝率は 0.5982142857142857です。
81
+ Tigers の2020年の成績は 60勝 53敗 7分、勝率は 0.5309734513274337です。
82
+ Dragons の2020年の成績は 60勝 55敗 5分、勝率は 0.5217391304347826です。
83
+ BayStars の2020年の成績は 56勝 58敗 6分、勝率は 0.49122807017543857です。
84
+ Carp の2020年の成績は 52勝 56敗 12分、勝率は 0.48148148148148145です。
85
+ Swallows の2020年の成績は 41勝 69敗 10分、勝率は 0.37272727272727274です。
86
+ にするにはどうしたらいいでしょうか?よろしくお願いいたします。