第 7 回 専門演習紹介 レポート課題 氏名:岡田遼 学籍番号:c1110370 語学クラス:中国語3 コース:政策マネジメント 1 A a、仕様書 〜仕様書〜 通信販売の仕組みを作ってみたいと思い、プログラムを作成しました。 今回はチーズとワインの購入した品数と金額の合計を求めるプログラムです。 Hashを使い、商品の一覧を見れるようにしてあります。 〜使用方法〜 ・始めに準備するもの kikakusho.txt …企画書兼、取り扱い説明書 cheese_wine.rb …プログラム本体 以上2つのファイルをダウンロードしたら、同じディレクトリに保存して下さい。 ・プログラムを実際にご使用していただくために 1、ktermを起動させ、chmod +x cheese_wine.rbと入力し、Enterを押します。 2、./cheese_wine.rbと入力したら、再度 Enterキーを押して下さい。 3、価格の安い順番に商品の一覧が表示されます。 4、一覧の中から購入したい品物の番号と個数を入力します。 5、買い物を続けるならEnter、会計するならCtrl-dを入力します。 6、買い物を終了させて会計に進むと、お買い上げ金額が表示されます。 〜著作権について〜 このプログラムの著作権は、東北公益文科大学 岡田遼に帰属します。 プログラムの入手、実行、改変、再配布は自由に無料で行うことが可能です。 しかし、このプログラムを利用した事によって生じた如何なる結果につきましても、著作者は責任を負いかねます。 プログラムに対するご意見・ご感想は下記のメールアドレスまでお願いいたします。 c111037@g.koeki-u.ac.jp b、レポート 設定 チーズとワインの通信販売を行うという設定。 商品の一覧を表示して、商品の番号と個数を入力してもらい、その合計金額を計 算する。 作成したプログラム #!/usr/koeki/bin/ruby #coding: euc-jp print("お好きな商品をお選び下さい!!\n") print("チーズをご購入の際は100gで1個の計算とさせて頂きます。\n") print("(但し、商品名の後に(1ホール)の表記があるものは1ホールずつのご購入となります。)\n") print("\n") ichiran = Hash.new ichiran[1] = ["アルスア ウジョア","ハード","牛乳","スペイン",660] ichiran[2] = ["モンテ エネブロ","シェーブル","山羊乳","スペイン",1160] ichiran[3] = ["ケソ マンチェゴ アルテサーノ","ハード","羊乳","スペイン",1030] ichiran[4] = ["サン シモン ダ コスタ","セミハード","牛乳","スペイン",790] ichiran[5] = ["フェタ(オーガニック)","フレッシュ","混乳","ギリシャ",1100] ichiran[6] = ["グリュイエール","ハード","牛乳","スイス",630] ichiran[7] = ["ラクレット デュ ヴァレ","ハード","牛乳","スイス",945] ichiran[8] = ["ゴルゴンゾーラ ドルチェ","青カビ","牛乳","イタリア",830] ichiran[9] = ["ペコリーノ ロマーノ","ハード","牛乳","イタリア",770] ichiran[10] = ["エポワス(1ホール)","ウォッシュ","牛乳","フランス",3130] ichiran[11] = ["コンテ ド モンターニュ24ヵ月","ハード","牛乳","フランス",1210] ichiran[12] = ["ブリケット ダ ゴール(1ホール)","シェーブル","山羊乳","フランス",2760] ichiran[13] = ["エーデルピルツ ケーゼ","青カビ","牛乳","ドイツ",470] ichiran[14] = ["マルケス デ ラ コンコルディア クリアランサ" ,"赤ワイン","辛口","スペイン・リオハ",2205] ichiran[15] = ["デ ムリェール シャルドネ","白ワイン","辛口","スペイン",1830] ichiran[16] = ["ボデガ イヌリエータ メディオディア ロサード","ロゼワイン","辛口","スペイン",1365] ichiran[17] = ["カレラ マスカット オブ パトラス","デザートワイン","甘口","ギリシャ",1260] ichiran[18] = ["ネミオス イノス","赤ワイン","辛口","ギリシャ",1680] ichiran[19] = ["フラスカティ スーペリオーレ セッコ","白ワイン","中辛口","イタリア",1470] ichiran[20] = ["ドゥエマーニ","赤ワイン","辛口","イタリア",6900] ichiran[21] = ["マルセル マルタン アンジュ ラ プリモーデ","白ワイン","中甘口","フランス",1575] ichiran[22] = ["ロゼ ブリュット","ロゼワイン","辛口","フランス",7350] ichiran[23] = ["ロゼ ダンジュ","ロゼワイン","やや甘口","フランス",1365] ichiran[24] = ["リンゲンフェルダー シュペートブルグンダー","赤ワイン","辛口","ドイツ",2835] #p ichiran print("価格の安い順に並んでいます。\n") print("チーズは品名タイプ・使用されている乳・産地、価格、\n") print("ワインは品名:タイプ・味・産地・価格がそれぞれ表示されています。\n") ichiran.keys.sort{ |goods,kakaku| ichiran[goods][4] <=> ichiran[kakaku][4] }.each{|shouhin| printf("番号%s、%s・%s・%s・%s産・%d円\n",shouhin,ichiran[shouhin][0],ichiran[shouhin][1],ichiran[shouhin][2],ichiran[shouhin][3],ichiran[shouhin][4])} total = 0 goukei =0 kosuu = 0 while true print("ご購入したい商品の番号と個数を入力して下さい!!\n") print("まずは商品の番号をどうぞ:") bangou = gets.to_i print("個数を入力して下さい:") kosuu = gets.to_i total = ichiran[bangou][4] * kosuu goukei += ichiran[bangou][4] * kosuu print("【カートの中身】\n") printf("%sが%d個入っています。\n",ichiran[bangou][0],kosuu) print("お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい\n") kaikei = gets if kaikei == nil break end end print("\n") printf("%d円のお買い上げです。\n",goukei) print("ありがとうございました!!\n") 実行した結果 22番を1個、1番を2個買った場合 pan{c111037}% ./cheese_wine.rb [~/public_html/adv2] お好きな商品をお選び下さい!! チーズをご購入の際は100gで1個の計算とさせて頂きます。 (但し、商品名の後に(1ホール)の表記があるものは1ホールずつのご購入となります。) 価格の安い順に並んでいます。 チーズは品名タイプ・使用されている乳・産地、価格、 ワインは品名:タイプ・味・産地・価格がそれぞれ表示されています。 番号13、エーデルピルツ ケーゼ・青カビ・牛乳・ドイツ産・470円 番号6、グリュイエール・ハード・牛乳・スイス産・630円 番号1、アルスア ウジョア・ハード・牛乳・スペイン産・660円 番号9、ペコリーノ ロマーノ・ハード・牛乳・イタリア産・770円 番号4、サン シモン ダ コスタ・セミハード・牛乳・スペイン産・790円 番号8、ゴルゴンゾーラ ドルチェ・青カビ・牛乳・イタリア産・830円 番号7、ラクレット デュ ヴァレ・ハード・牛乳・スイス産・945円 番号3、ケソ マンチェゴ アルテサーノ・ハード・羊乳・スペイン産・1030円 番号5、フェタ(オーガニック)・フレッシュ・混乳・ギリシャ産・1100円 番号2、モンテ エネブロ・シェーブル・山羊乳・スペイン産・1160円 番号11、コンテ ド モンターニュ24ヵ月・ハード・牛乳・フランス産・1210円 番号17、カレラ マスカット オブ パトラス・デザートワイン・甘口・ギリシャ産・1260円 番号23、ロゼ ダンジュ・ロゼワイン・やや甘口・フランス産・1365円 番号16、ボデガ イヌリエータ メディオディア ロサード・ロゼワイン・辛口・スペイン産・1365円 番号19、フラスカティ スーペリオーレ セッコ・白ワイン・中辛口・イタリア産・1470円 番号21、マルセル マルタン アンジュ ラ プリモーデ・白ワイン・中甘口・フランス産・1575円 番号18、ネミオス イノス・赤ワイン・辛口・ギリシャ産・1680円 番号15、デ ムリェール シャルドネ・白ワイン・辛口・スペイン産・1830円 番号14、マルケス デ ラ コンコルディア クリアランサ・赤ワイン・辛口・スペイン・リオハ産・2205円 番号12、ブリケット ダ ゴール(1ホール)・シェーブル・山羊乳・フランス産・2760円 番号24、リンゲンフェルダー シュペートブルグンダー・赤ワイン・辛口・ドイツ産・2835円 番号10、エポワス(1ホール)・ウォッシュ・牛乳・フランス産・3130円 番号20、ドゥエマーニ・赤ワイン・辛口・イタリア産・6900円 番号22、ロゼ ブリュット・ロゼワイン・辛口・フランス産・7350円 ご購入したい商品の番号と個数を入力して下さい!! まずは商品の番号をどうぞ:22 個数を入力して下さい:1 【カートの中身】 ロゼ ブリュットが1個入っています。 お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい ご購入したい商品の番号と個数を入力して下さい!! まずは商品の番号をどうぞ:1 個数を入力して下さい:2 【カートの中身】 アルスア ウジョアが2個入っています。 お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい ^D 8670円のお買い上げです。 ありがとうございました!! 9番が3個14番が1個5番が2個の場合 pan{OKADA Haruka}% ./cheese_wine.rb [~/public_html/adv2] お好きな商品をお選び下さい!! チーズをご購入の際は100gで1個の計算とさせて頂きます。 (但し、商品名の後に(1ホール)の表記があるものは1ホールずつのご購入となります。) 価格の安い順に並んでいます。 チーズは品名タイプ・使用されている乳・産地、価格、 ワインは品名:タイプ・味・産地・価格がそれぞれ表示されています。 番号13、エーデルピルツ ケーゼ・青カビ・牛乳・ドイツ産・470円 番号6、グリュイエール・ハード・牛乳・スイス産・630円 番号1、アルスア ウジョア・ハード・牛乳・スペイン産・660円 番号9、ペコリーノ ロマーノ・ハード・牛乳・イタリア産・770円 番号4、サン シモン ダ コスタ・セミハード・牛乳・スペイン産・790円 番号8、ゴルゴンゾーラ ドルチェ・青カビ・牛乳・イタリア産・830円 番号7、ラクレット デュ ヴァレ・ハード・牛乳・スイス産・945円 番号3、ケソ マンチェゴ アルテサーノ・ハード・羊乳・スペイン産・1030円 番号5、フェタ(オーガニック)・フレッシュ・混乳・ギリシャ産・1100円 番号2、モンテ エネブロ・シェーブル・山羊乳・スペイン産・1160円 番号11、コンテ ド モンターニュ24ヵ月・ハード・牛乳・フランス産・1210円 番号17、カレラ マスカット オブ パトラス・デザートワイン・甘口・ギリシャ産・1260円 番号23、ロゼ ダンジュ・ロゼワイン・やや甘口・フランス産・1365円 番号16、ボデガ イヌリエータ メディオディア ロサード・ロゼワイン・辛口・スペイン産・1365円 番号19、フラスカティ スーペリオーレ セッコ・白ワイン・中辛口・イタリア産・1470円 番号21、マルセル マルタン アンジュ ラ プリモーデ・白ワイン・中甘口・フランス産・1575円 番号18、ネミオス イノス・赤ワイン・辛口・ギリシャ産・1680円 番号15、デ ムリェール シャルドネ・白ワイン・辛口・スペイン産・1830円 番号14、マルケス デ ラ コンコルディア クリアランサ・赤ワイン・辛口・スペイン・リオハ産・2205円 番号12、ブリケット ダ ゴール(1ホール)・シェーブル・山羊乳・フランス産・2760円 番号24、リンゲンフェルダー シュペートブルグンダー・赤ワイン・辛口・ドイツ産・2835円 番号10、エポワス(1ホール)・ウォッシュ・牛乳・フランス産・3130円 番号20、ドゥエマーニ・赤ワイン・辛口・イタリア産・6900円 番号22、ロゼ ブリュット・ロゼワイン・辛口・フランス産・7350円 ご購入したい商品の番号と個数を入力して下さい!! まずは商品の番号をどうぞ:9 個数を入力して下さい:3 【カートの中身】 ペコリーノ ロマーノが3個入っています。 お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい ご購入したい商品の番号と個数を入力して下さい!! まずは商品の番号をどうぞ:14 個数を入力して下さい:1 【カートの中身】 マルケス デ ラ コンコルディア クリアランサが1個入っています。 お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい ご購入したい商品の番号と個数を入力して下さい!! まずは商品の番号をどうぞ:5 個数を入力して下さい:2 【カートの中身】 フェタ(オーガニック)が2個入っています。 お買い物を続けるなら Returnキーを、お会計に進むならCtrl-dを押して下さい ^D 6715円のお買い上げです。 ありがとうございました!! 考察 22番を1個、1番を2個買った場合 pan{c111037}% bc -l [~/public_html/adv2] 7350 + 660 * 2 8670 quit] 9番を3個、14番を1個、5番を2個買った場合 pan{OKADA Haruka}% bc -l [~/public_html/adv2] 770 * 3 + 2205 * 1 + 1100 * 2 6715 quit bc -lで検算した結果とプログラムの実行結果が一致したので、プログラムは正 しく動作したと言える。 c、今回は作成していない。 d、広告ページのurl http://roy/~c111037/adv2/ 2、感想 今回は非常に時間がかかった。 その割りには自分で思っていたようなプログラムを作ることは出来なかったので 悔しく思う。 本当であれば、Hashだけでなく methodも使いたかったのだが、時間が無かった ために断念した。 以降はこの様なことが無いようにしたい。 3、参考文献 昨年度の先輩方のレポート 製作者:西村まどか http://roy/~madoka/2011/r2/07/rpt/c110205.txt 昨年度の先輩方のレポート 製作者:西村まどか http://roy/~madoka/2011/r2/07/rpt/c110026.txt ナチュラルチーズ専門店フェルミエ。チーズを種類豊富に取り揃えています。 ナチュラルチーズ専門店のフェルミエ。チーズを種類豊富にご用意。 製作者:Fermier https://shopping.fermier.co.jp/ ワイン通販専門ショップ。世界のワイン販売は葡萄屋へ 製作者:葡萄屋 http://www.budouya.jp/?gclid=CJHAhZyix7MCFUhLpgodGXkAiA 共同学習者 高橋真優 長谷川真亜子 渡邉千尋