締切 11月21日(火)
宛先 ruby-2-08@e.koeki-u.ac.jp
下記の1と2について解答せよ。
ある店の情報を記録したファイル ra-order.csv、 ra-menu.csv、 ra-member.csv がある。 これを読み込んで処理を行なうプログラムを作成する。 以下の各小問のできるところまで解答せよ。 後半のものほど高度なので、解答提出は できたうちの最後のものだけでよい。 括弧内は標準最高点。
ra-order.csv を自動的に開いて読み込み、 すべての行をそのまま出力する(D)。
ra-order.csv は、各行に「客ID」、「品ID」の2つの項目を持つCSVファイルである。 これを自動的に開いて読み込み、
c001さんがi101を注文しました。 c001さんがi102を注文しました。 c002さんがi101を注文しました。 :
のように言葉で注文結果を出力するプログラムを作成せよ(C)。
ra-menu.csv は、各行に「品ID」、「品名」、「値段」の3つの項目を持つ CSV ファイルである。これを自動的に開いて読み込み、 品IDとそれに対する品名、値段の対応を持つハッシュを 返すメソッドを作成し、それを用いて
c001さんがすな麺(650円)を注文しました。 c001さんが汁マシマシ(100円)を注文しました。 c002さんがすな麺(650円)を注文しました。 : guestさんがすな麺(650円)を注文しました。 ----------------------------------------- 今日の売り上げは5960円でした。
のように集計出力するプログラムを作成せよ(B)。
(ヒント)
会員名簿 ra-member.csv を自動的に参照し、客IDが会員登録してある人であればその人の名前で 集計出力するプログラムを作成せよ。出力の一例を以下に示す(A)。
榊原一麺さんがすな麺(650円)を注文しました。 榊原一麺さんが汁マシマシ(100円)を注文しました。 佐藤麺人さんがすな麺(650円)を注文しました。 麺田哲さんがすな麺(650円)を注文しました。 : ゲストさんがすな麺(650円)を注文しました。 ------------------------------------------------------------------ 今日の売り上げは5960円でした。
会員名簿の各行の第3項目は誕生日(または誕生月)である。 この情報を利用して、当日の日付に応じた 何らかの付加サービスを実装せよ。 たとえば誕生月に該当する場合は各品を1割引にしたり、 曜日によって割り引きできる年代を変えたりすることが考えられる。 なお現在時刻は Time.now で得られ、現在の年、月、日、曜日はそれぞれ、 Time.now.year, Time.now.month, Time.now.day, Time.now.wday で得られる。
(A+)
(ホ)までの条件をすべて満たした上で、3つの CSV ファイルにある情報と関連があるという範囲内で、 人気点になりそうと自分が考える任意の付加サービスを実装せよ。
(上限なし)
tgifで好きなものを作図せよ。
他人のプログラムの丸写しは減点。完成しないときは、できたところまでを 送ること。試行錯誤した結果があれば、それら全てについてどのように考えたが どんな結果になった、などの解説をすること。 プログラムの構成の独自性を重視して評価する。
Subjectに
文字列処理 解いた番号
を書き(例: 「文字列処理 1のロ と 2」)、本文の先頭に
氏名: | 公益太郎 |
学籍番号: | c116xxx |
クラス: | XX |
のように自分の氏名番号クラスを入れて上記の宛先に送ること。 レポート本体は以下のようにすること。