第 7 回 ゼミ紹介 レポート課題 氏名:小林愛実 学籍番号:c1100816 語学クラス:英語6 コース(系):政策マネジメント A a、仕様書 * 企画意図 アルバイトでファーストフードの接客をしていて、レジの会計のプログラムが、 どのような仕組みで作られているのか気になった。 そのため、レジの計算ができるようなプログラムを作成したいと思った。 * 遊び方 メニューが出てくるので、そのメニューに載っている商品と個数を入力する。 最後に、購入したものの合計金額が表示される。 * 連絡先 御意見・質問がありましたら下記のアドレスまでご連絡ください。 c110081@e.koeki-u.ac.jp b、プログラムに関するレポート *考えた設定 メニューの中から、購入したい商品とその個数を入力し、最終的に購入したすべ ての金額の合計を表示させるプログラム(KFC2.rb)を作成した。 *作成したプログラム #!/usr/koeki/bin/ruby $KCODE= "e" # 文字コード指定 menyu = Hash.new # Hash.newで新しくハッシュをつくる menyu["オリジナルチキン"] = 240 # hashの設定 menyu["フィレサンド"] = 380 menyu["和風カツサンド"] = 380 menyu["ツイスター"] = 300 menyu["てりやきツイスター"] = 300 menyu["フィレサンドセット"] = 680 menyu["和風カツサンドセット"] = 680 menyu["ツイスターセット"] = 560 menyu["てりやきツイスター"] = 560 menyu["ポテトS"] = 200 menyu["ポテトL"] = 290 menyu["ビスケット"] = 170 menyu["コールスローS"] = 170 menyu["コールスローM"] = 290 menyu["コーンサラダ"] = 290 menyu["コカコーラS"] = 170 menyu["コカコーラM"] = 200 menyu["コカコーラL"] = 230 menyu["オレンジS"] = 170 menyu["オレンジM"] = 200 menyu["オレンジL"] = 230 menyu["ジンジャエールS"] = 170 menyu["ジンジャエールM"] = 200 menyu["ジンジャエールL"] = 230 menyu["メロンソーダS"] = 170 menyu["メロンソーダM"] = 200 menyu["メロンソーダL"] = 230 menyu["ウーロン茶S"] = 170 menyu["ウーロン茶M"] = 200 menyu["ウーロン茶L"] = 230 menyu["アイスティーS"] = 170 menyu["アイスティーM"] = 200 menyu["アイスティーL"] = 230 menyu["アイスコーヒーS"] = 170 menyu["アイスコーヒーM"] = 200 menyu["アイスコーヒーL"] = 230 menyu["ホットコーヒー"] = 100 # p menyu print("いらっしゃいませ!こんにちは!\n") print("本日は店内でお召し上がりですか?\n") print("店内でお召し上がり:1\n") print("お持ち帰り:2\n") print("を押してください。\n") answer = gets.chomp!.to_i # answerをとってきて整数にする if answer == 1 # もしanswerが1の場合 print("かしこまりました。お召し上がりですね。\n") elsif answer == 2 # もしanswerが2の場合 print("かしこまりました。お持ち帰りですね。\n") end print("\n") # 改行 sleep 1 # 1秒待つ print("こちらメニューになります。\n") sleep 1 menyu.keys.each{|shouhin| # メニューと値段の表示 printf("%-20s %5d円\n" ,shouhin,menyu[shouhin])} print("\n") total = 0 shouhin = 0 kosuu = 0 sleep 1 while true # while true で繰り返しをさせる STDERR.print("\nご注文はいかがなさいますか?\n") print("(以上でしたらCtrl-Dを押してください)\n") shouhin = gets if shouhin == nil # もしshouhinが空の場合 break # breakする else shouhin = shouhin.chomp end print("\n") if menyu.key?(shouhin) == false # もしhashの中にないのが入力されたら printf("大変申し訳ありません。\n") printf("%sはおいておりません。\n",shouhin) break # breakする end print("お一つでよろしいですか?\n") print("(ひとつの場合は1と入力してください)\n") STDERR.print("個数を入力:") # 個数を入力させる kosuu = gets.chomp.to_f # kosuuをとってきて整数にする print("\n") print("*------------------------------*\n") if menyu.key?(shouhin) == true # もしhashの中にあるものが入力されたら printf("%s(%d個)\t%5.0d円\n",shouhin,kosuu,menyu[shouhin]*kosuu) end # 表示させる print("*------------------------------*\n") sum = menyu[shouhin]*kosuu # 合計は 入力されたものの値段×個数 total += sum.to_i # 合計を足していく end # while trueの終わり print("\n") sleep 1 print("\n") printf("お買い計%d円になります。\n",total) # totalの表示 printf("ありがとうございました。\n") printf("またご利用くださいませ。\n") * 変更点 授業で作成した hash_item.rb を参考に作成した。 変更点 ・while true を使い、繰り返し計算できるようにしたこと。 ・each method を使い、menyuの情報を表示したこと。 * 実行結果 pan{c110081}% ./KFC2.rb [~/Ruby] いらっしゃいませ!こんにちは! 本日は店内でお召し上がりですか? 店内でお召し上がり:1 お持ち帰り:2 を押してください。 1 かしこまりました。お召し上がりですね。 こちらメニューになります。 アイスコーヒーL 230円 アイスティーS 170円 オレンジL 230円 和風カツサンドセット 680円 アイスコーヒーM 200円 ウーロン茶S 170円 メロンソーダL 230円 メロンソーダM 200円 ジンジャエールL 230円 オレンジM 200円 コカコーラL 230円 ジンジャエールM 200円 コカコーラM 200円 ツイスターセット 560円 フィレサンド 380円 アイスティーL 230円 ウーロン茶L 230円 コールスローS 170円 アイスティーM 200円 ウーロン茶M 200円 ポテトS 200円 てりやきツイスター 560円 和風カツサンド 380円 オリジナルチキン 240円 アイスコーヒーS 170円 フィレサンドセット 680円 ツイスター 300円 ホットコーヒー 100円 メロンソーダS 170円 オレンジS 170円 コーンサラダ 290円 ビスケット 170円 ジンジャエールS 170円 コカコーラS 170円 コールスローM 290円 ポテトL 290円 ご注文はいかがなさいますか? (以上でしたらCtrl-Dを押してください) オリジナルチキン お一つでよろしいですか? (ひとつの場合は1と入力してください) 個数を入力:5 *------------------------------* オリジナルチキン(5個) 1200円 *------------------------------* ご注文はいかがなさいますか? (以上でしたらCtrl-Dを押してください) ビスケット お一つでよろしいですか? (ひとつの場合は1と入力してください) 個数を入力:3 *------------------------------* ビスケット(3個) 510円 *------------------------------* ご注文はいかがなさいますか? (以上でしたらCtrl-Dを押してください) ^D お買い計1710円になります。 ありがとうございました。 またご利用くださいませ。 * 考察 実際に計算が合っているのかbc -lを使い、計算してみた。 pan{c110081}% bc -l [~/Ruby] 240*5 1200 170*3 510 1200+510 1710 プログラムの計算結果と一致するため、このプログラムは正しいと言える。 また、始めに 店内でお召し上がり:1 お持ち帰り:2 と、聞いているが、1と入力すると かしこまりました。お召し上がりですね。 と、表示されるため、この部分のプログラムも正しい。 d、広告ページ(リンク先) http://roy/~c110081/advertise2/ 2、感想 今回は、最高傑作のプログラムを作るということで、かなり大変であった。 プログラムは、ハッシュを中心に作成したが、ハッシュのプログラムの作り方を 忘れてしまい、復習しながら作成した。 このプログラムは、まだまだ改良の余地があると思うので、これで終わらせない で、もっと良いプログラムになるよう頑張りたい。 3、参考文献 西村まどか 基礎プログラミングII 2、なになにといえばこれこれ http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/02/ ケンタッキーフライドチキン http://www.kfc.co.jp/top.html 東北公益文化大学 公益学部 公益学科 2年 小林愛実 c110081f.koeki-u.ac.jp