回答編集履歴

1

補足

2017/01/09 09:02

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,235 @@
7
7
  することが原因です。
8
8
 
9
9
  私もAtomを使っています。
10
+
11
+ ```Ruby
12
+
13
+ require 'date'
14
+
15
+
16
+
17
+ class BookInfo
18
+
19
+ def initialize( title, author, page, publish_date )
20
+
21
+ @title = title
22
+
23
+ @author = author
24
+
25
+ @page = page
26
+
27
+ @publish_date = publish_date
28
+
29
+ end
30
+
31
+
32
+
33
+ attr_accessor :title, :author, :page, :publish_date
34
+
35
+ def to_s
36
+
37
+ "#{@title}, #{@author}, #{@page}, #{@publish_date}"
38
+
39
+ end
40
+
41
+
42
+
43
+ def toFormattedString( sep = "\n" )
44
+
45
+ "書籍名: #{@title}#{sep}著書名: #{author}#{sep}ページ数: #{@page}ぺ―ジ#{sep}発刊日: #{@publish_date}#{sep}"
46
+
47
+ end
48
+
49
+ end
50
+
51
+
52
+
53
+ class BookInfoManager
54
+
55
+ def initialize
56
+
57
+ @book_infos = {}
58
+
59
+ end
60
+
61
+
62
+
63
+ def setUp
64
+
65
+ @book_infos["Yamada2005"] = BookInfo.new(
66
+
67
+ "実践アジャイル ソフトウェア開発法とプロジェクト管理",
68
+
69
+ "山田 正樹",
70
+
71
+ 248,
72
+
73
+ Date.new( 2005, 1, 25 ) )
74
+
75
+ @book_infos["Ooba2006"] = BookInfo.new(
76
+
77
+ "入門LEGO MINDSTORMS NXT レゴブロックで動くロボット",
78
+
79
+ "大庭 慎一郎",
80
+
81
+ 164,
82
+
83
+ Date.new( 2006, 12, 23 ) )
84
+
85
+ end
86
+
87
+
88
+
89
+ def addBookInfo
90
+
91
+ book_info = BookInfo.new( "", "", 0, Date.new )
92
+
93
+ print "\n"
94
+
95
+ print "キー: "
96
+
97
+ key = gets.chomp.encode("UTF-8")
98
+
99
+ print "書籍名: "
100
+
101
+ book_info.title = gets.chomp.encode("UTF-8")
102
+
103
+ print "著者名: "
104
+
105
+ book_info.author = gets.chomp.encode("UTF-8")
106
+
107
+ print "ページ数: "
108
+
109
+ book_info.page = gets.chomp.encode("UTF-8").tr("0-9","0-9").to_i
110
+
111
+ print "発刊年: "
112
+
113
+ year = gets.chomp.encode("UTF-8").tr("0-9","0-9").to_i
114
+
115
+ print "発刊月: "
116
+
117
+ month = gets.chomp.encode("UTF-8").tr("0-9","0-9").to_i
118
+
119
+ print "発刊日: "
120
+
121
+ day = gets.chomp.encode("UTF-8").tr("0-9","0-9").to_i
122
+
123
+ book_info.publish_date = Date.new( year, month, day )
124
+
125
+ @book_infos[key] = book_info
126
+
127
+ end
128
+
129
+ def listAllBookInfos
130
+
131
+ puts "\n---------------------"
132
+
133
+ @book_infos.each { |key, info|
134
+
135
+ print info.toFormattedString
136
+
137
+ puts "\n----------------------------"
138
+
139
+ }
140
+
141
+ end
142
+
143
+ def run
144
+
145
+ while true
146
+
147
+ print "
148
+
149
+ 1.蔵書データの登録
150
+
151
+ 2.蔵書データの表示
152
+
153
+ 9.終了
154
+
155
+ 番号を選んでください(1,2,9) :"
156
+
157
+
158
+
159
+ num = gets.chomp.encode("UTF-8").tr("0-9","0-9").to_s
160
+
161
+ case
162
+
163
+ when '1' == num
164
+
165
+ addBookInfo
166
+
167
+ when '2' == num
168
+
169
+ listAllBookInfos
170
+
171
+ when '9' == num
172
+
173
+ break;
174
+
175
+ else
176
+
177
+ end
178
+
179
+ end
180
+
181
+ end
182
+
183
+ book_info_manager = BookInfoManager.new
184
+
185
+ book_info_manager.setUp
186
+
187
+ book_info_manager.run
188
+
189
+ end
190
+
191
+ ```
192
+
193
+ 前回のプログラムのうち、該当箇所を入れ替えたものです。
194
+
195
+ 入力したデータは以下のとおりです。
196
+
197
+ ```
198
+
199
+ (キー)821227(半角)
200
+
201
+ (書籍名)ももたろう
202
+
203
+ (著者名)山田 鈴木(山田<スペース>鈴木)
204
+
205
+ (ページ数)821(半角)
206
+
207
+ (発刊年)1981(半角)
208
+
209
+ (発刊月)4(半角)
210
+
211
+ (発刊日)6(半角)
212
+
213
+ ```
214
+
215
+ この内容で私が実行したところ、エラーは発生しませんでした。
216
+
217
+ 実行結果例
218
+
219
+ ```
220
+
221
+ ----------------------------
222
+
223
+ 書籍名: ももたろう
224
+
225
+ 著書名: 山田 鈴木
226
+
227
+ ページ数: 821ぺ―ジ
228
+
229
+ 発刊日: 1981-04-06
230
+
231
+
232
+
233
+ ----------------------------
234
+
235
+ ```
236
+
237
+ 質問者様はエラーが発生するでしょうか?
238
+
239
+ もしこれでエラーが発生するようならプログラム
240
+
241
+ 以外に問題があるのかもしれません。