質問編集履歴

1

具体的な質問

2021/08/05 10:30

投稿

oppaiboinboin17
oppaiboinboin17

スコア1

test CHANGED
@@ -1 +1 @@
1
- 問題を解いください。
1
+ rubyオブジェクト指向に関し
test CHANGED
@@ -1 +1,171 @@
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
+
3
+ class Team
4
+
5
+
6
+
7
+ # インスタンスが持つ変数(値)
8
+
9
+ attr_accessor :name, :win, :lose, :draw,
10
+
11
+
12
+
13
+ # インスタンスを初期化するための、特別なメソッド
14
+
15
+ def initialize
16
+
17
+ self.name = "Giants"
18
+
19
+ self.win = 67
20
+
21
+ self.lose = 45
22
+
23
+ self.draw = 8
24
+
25
+ end
26
+
27
+ def initialize
28
+
29
+ self.name = "Tigers"
30
+
31
+ self.win = 60
32
+
33
+ self.lose = 53
34
+
35
+ self.draw = 7
36
+
37
+ end
38
+
39
+ def initialize
40
+
41
+ self.name = "Dragons"
42
+
43
+ self.win = 60
44
+
45
+ self.lose = 55
46
+
47
+ self.draw = 5
48
+
49
+ end
50
+
51
+ def initialize
52
+
53
+ self.name = "BayStars"
54
+
55
+ self.win = 56
56
+
57
+ self.lose = 58
58
+
59
+ self.draw = 6
60
+
61
+ end
62
+
63
+ def initialize
64
+
65
+ self.name = "Carp"
66
+
67
+ self.win = 52
68
+
69
+ self.lose = 56
70
+
71
+ self.draw = 12
72
+
73
+ end
74
+
75
+ def initialize
76
+
77
+ self.name = "Swallows"
78
+
79
+ self.win = 41
80
+
81
+ self.lose = 69
82
+
83
+ self.draw = 10
84
+
85
+ end
86
+
87
+
88
+
89
+ # インスタンスが持つメソッド(処理)
90
+
91
+ def calc_win_rate
92
+
93
+ return win.to_f/(win+lose)
94
+
95
+ end
96
+
97
+
98
+
99
+ def show_team_result
100
+
101
+ puts "#{self.name}の2020年の成績は#{self.win}勝#{self.lose}敗#{self.draw}分、勝率は#{self.calc_win_rate}"
102
+
103
+ end
104
+
105
+ end
106
+
107
+
108
+
109
+ # インスタンスの生成と、変数への代入
110
+
111
+ giants = Team.new()
112
+
113
+ tigers = Team.new
114
+
115
+ dragons = Team.new
116
+
117
+ baystars = Team.new
118
+
119
+ carp = Team.new
120
+
121
+ swallows = Team.new
122
+
123
+
124
+
125
+
126
+
127
+ # インスタンスの使用
128
+
129
+ giants.show_team_result
130
+
131
+ tigers.show_team_result
132
+
133
+ dragons.show_team_result
134
+
135
+ baystars.show_team_result
136
+
137
+ carp.show_team_result
138
+
139
+ swallows.show_team_result
140
+
141
+
142
+
143
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
144
+
145
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
146
+
147
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
148
+
149
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
150
+
151
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
152
+
153
+ Swallowsの2020年の成績は41勝69敗10分、勝率は0.37272727272727274
154
+
155
+ になってしまいます。
156
+
157
+
158
+
159
+ Giants の2020年の成績は 67勝 45敗 8分、勝率は 0.5982142857142857です。
160
+
161
+ Tigers の2020年の成績は 60勝 53敗 7分、勝率は 0.5309734513274337です。
162
+
163
+ Dragons の2020年の成績は 60勝 55敗 5分、勝率は 0.5217391304347826です。
164
+
165
+ BayStars の2020年の成績は 56勝 58敗 6分、勝率は 0.49122807017543857です。
166
+
167
+ Carp の2020年の成績は 52勝 56敗 12分、勝率は 0.48148148148148145です。
168
+
169
+ Swallows の2020年の成績は 41勝 69敗 10分、勝率は 0.37272727272727274です。
170
+
171
+ にするにはどうしたらいいでしょうか?よろしくお願いいたします。