参考文献を入力し忘れたので、再度送信致します。 第 13 回 自由課題準備 (3) レポート課題 氏名:齋藤允貴 学籍番号:C111069A 語学クラス:英語 2 コース:地域共創コース チーム名:ずんだ チームホームページアドレス:http://roy/~c111028/zunda/ 部門:お役立ち生活部門 プロジェクトコード名:もっけだ チーム SNS アドレス:http://cms.is.koeki-u.ac.jp/sns/community/53 1、・注文するページの進展具合 まず変更点として、チェックボックスの< > の中にある「value」の部分は、 今までは家電の名前を入力していたが、今回からは、値段を入力することに した。 チェックボックスの部分は以下の通りに変更した。

テレビ
洗濯機
冷蔵庫
空気清浄機
エアコン
DVD プレイヤー
炊飯器
掃除機
電子レンジ
電子辞書

こうすることによって、各家電の値段を合計の計算機能に反映して、合計金 額を求めるようにする。 また、前回のレポート課題の評価に「山形県全域よりも、むしろ近隣の市町 村くらいが妥当な気がします。」といわれたので、市町村の選択項目を半分 減らし、庄内地方と最上地方の市町村だけを選択することにした。

注文した家電をどこに運びますか?

  • そして、注文ページに色を付け加えてみた。色は、「mokkeda.css」として、 前期の css の機能を使って色の構成を考えてみた。 ・結果を確認するページの進展具合 前回までは、値段を決めていたがその値段を合計するプログラムのしかたが 分からなかった。計算をするプログラムを作成し、利用者が選択した家電製 品だけを計算することに成功した。 結果を確認するページ(cgi_mokkeda.rb)には、計算をする機能を付け加えな ければならないので、新たに「total」という変数を用いた。もちろん、始め の数字は 0 である。 total = 0 そして、値段の合計を計算するプログラムとして「for」という機能を使って 作成してみた。 for i in denki case i when "" else total += i.to_i end end この when の隣に入力されている、「""」に、利用者が選択した家電を代入 する。 また、「total += i.to_i」という機能は、あらかじめ指定しておいた値段を 利用者が選択した家電のそれぞれの値段だけを足すことができる。 ちなみに値段は、注文するページに書いてある値段を配列機能を使って以下 のように作成した。 syouhin = { 1980 => "テレビ", 2480 => "洗濯機", 3980 => "冷蔵庫", 780 => "空気清浄機", 3680 => "エアコン", 4980 => "DVD プレイヤー", 1480 => "炊飯器", 1280 => "掃除機", 650 => "電子レンジ", 980 => "電子辞書", } 配列の中には、「値段 => "家電商品"」と書きこんだ。 そして、こうした機能をウェブページに反映されなければ意味がないので、 以前まで作っておいた、html 文の中にある、「table」機能の間に、以下の 項目を付け加えた。 print("") # table 文の始まり for kaden in denki # for 文の始まり case kaden # case 文の始まり when "" else printf("", syouhin[kaden.to_i]) # %s の所に利用者が選択した家電を代入す る。 end # case 文の終わり end # for 文の終わり print("
    %s
    \n") 先ほどと同様、「when」の隣にある 「""」の所に利用者が選択した家電を代 入する。それを表示させるには printf 文に書いてある、%s に代入させて結 果を表示させる。 また、料金を表示させなければならないため、以下のように作成した。 printf("

    料金は、%d 円です。

    \n", total) # 「%d」には、利用者が選択した家電の値段を計算し、その商品の合計金額 を代入する。 さらに、いままでウィンドウに表示させるタイトルは、「(仮)確認書」となっ ていたが、今回からは、「領収書」と変更した。 こうして作成したプログラムは各々以下の通りである。 注文するページ 家電マーケット

    家電量販店 もっけだ

    これから新生活を始めたいというあなた、このページを利用しよう!!

    オススメ商品

    あなたの名前を教えて下さい。

    この中で購入したい家電がありましたら、□の中をクリックし、「注文」 ボタンをクリックして下さい。

    ※もし、途中で失敗してしまった時には、「やりなおし」ボタンをクリックして下 さい。

    注文した家電をどこに運びますか?

  • 色の構成 body { background: greenyellow; } h1 { background: fuchsia; text-align: center; color: white; font-size: 4.0em; } h2 { background: lightblue; } h3 { text-align: center; color: red; font-size: 2.0em; } h4 { background: orangered; font-size: 1.5em; color: white; } h5 { font-size: 1.3em; } p { font-size: 1.2em; } 結果を確認するページ #!/usr/bin/env ruby #coding: euc-jp require 'cgi' cgi = CGI.new(:accept_charset => "EUC-JP") print("Content-type: text/html; charset=EUC-JP\n\n") name2 = cgi["name"] ninzu = 0 open("count.txt","r") do |read| while data = read.gets if/(\d+)/ =~ data ninzu = $1.to_i end end end denki = Array.new total = 0 denki[0] = cgi["tv"] denki[1] = cgi["washing"] denki[2] = cgi["refrigerator"] denki[3] = cgi["cleaner"] denki[4] = cgi["conditioner"] denki[5] = cgi["dvd"] denki[6] = cgi["ricecooker"] denki[7] = cgi["vecuumcleaner"] denki[8] = cgi["microwaveoven"] denki[9] = cgi["electronic"] arv = cgi["where"] for i in denki case i when "" else total += i.to_i end end syouhin = { 1980 => "テレビ", 2480 => "洗濯機", 3980 => "冷蔵庫", 780 => "空気清浄機", 3680 => "エアコン", 4980 => "DVD プレイヤー", 1480 => "炊飯器", 1280 => "掃除機", 650 => "電子レンジ", 980 => "電子辞書", } print("\n") print("\n") print("領収書\n") print("\n") print("\n") printf("

    %s様は %d 人目の訪問者です

    \n",name2, ninzu) printf("

    今購入したい家電

    \n") print("") for kaden in denki case kaden when "" else printf("", syouhin[kaden.to_i]) end end print("
    %s
    \n") printf("

    これらの家電を %s に持っていきます。

    \n", arv) printf("

    料金は、%d 円です。

    \n", total) print("\n") print("\n") ninzu += 1 open("count.txt","w") do |write| write.printf("%d\n",ninzu) end 実行結果 いままで Kterm の所には、「名前="家電"」と入力していたが、今回からは、 「名前="値段"」と入力した。 pan{c111069}% ./cgi_mokkeda.rb [~/public_html/mokkeda] (offline mode: enter name=value pairs on standard input) name="齋藤允貴" tv="1980" washing="2480" refrigerator="3980" where="酒田市" /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:610: warning: regexp match /.../n against to EUC-JP string Content-type: text/html; charset=EUC-JP 領収書

    齋藤允貴様は 168 人目の訪問者です

    今購入したい家電

    テレビ
    洗濯機
    冷蔵庫

    これらの家電を 酒田市 に持っていきます。

    料金は、8440 円です。

    pan{c111069}% ./cgi_mokkeda.rb [~/public_html/mokkeda] (offline mode: enter name=value pairs on standard input) name="齋藤允貴" cleaner="780" conditioner="3680" dvd="4980" where="真室川町" /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:610: warning: regexp match /.../n against to EUC-JP string Content-type: text/html; charset=EUC-JP 領収書

    齋藤允貴様は 169 人目の訪問者です

    今購入したい家電

    空気清浄機
    エアコン
    DVD プレイヤー

    これらの家電を 真室川町 に持っていきます。

    料金は、9440 円です。

    pan{c111069}% ./cgi_mokkeda.rb [~/public_html/mokkeda] (offline mode: enter name=value pairs on standard input) name="齋藤允貴" ricecooker="1480" vecuumcleaner="1280" microwaveoven="650" electronic="980" where="尾花沢市" /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/koeki/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:610: warning: regexp match /.../n against to EUC-JP string Content-type: text/html; charset=EUC-JP 領収書

    齋藤允貴様は 170 人目の訪問者です

    今購入したい家電

    炊飯器
    掃除機
    電子レンジ
    電子辞書

    これらの家電を 尾花沢市 に持っていきます。

    料金は、4390 円です。

    考察 pan{c111069}% bc -l [~/public_html/mokkeda] 1980 + 2480 + 3980 8440 780 + 3680 + 4980 9440 1480 + 1280 + 650 + 980 4390 quit 実際に計算すると、どの方法も選択した家電の合計金額がしっかりと表示さ せることができたので、このプログラムは成立する。 2、全体の進み具合 先日、メンバー全員が集合し「おーだー」と「もっけだ」のどちらを発表す るのかを話し合った。その結果、「おーだー」を発表することになった。プ ログラムの方は、どちらのプロジェクトも順調に進んでいる。 また、チームパンフレットの方は、渡辺 駿君が担当することになった。チー ムのホームページに掲載している。 また私は、SNS に写真を掲載した。メンバーが作業している様子の写真であ り、管理者である私が撮影した。 3、「もっけだ」のプログラムの説明書 http://roy/~c111146/mookeda_kaisetu.txt 「おーだー」のプログラムの説明書 http://roy/~c111028/zunda/kaisetu.txt 5、今回の課題で私が撮影したチームの活動風景写真は、以下のアドレスに掲載 されている。 http://cms.is.koeki-u.ac.jp/sns/communityTopic/310 そして、以下の文章も入力した。 チームで集まってプログラミングを作成している写真を掲載します。 なお、1 人だけ写っていませんが、このコミュニティの管理者である齋藤允 貴が携帯で撮影しました。 「ずんだ」では、お役立ち生活部門にエントリーしており、2 つのプロジェ クトを作成しています。 一つ目は、引っ越してから必要になる家具についての情報を提供する、「おー だー」、もう一つは、引っ越してから必要となる家電についての情報を提供 する、「もっけだ」です。 現在作成中です。 7、自画像は、自分の顔をイメージして作成した。顔を肌色にし、口を赤色にし て作成した。また、最近髪が伸びているので、髪の毛の範囲を大きめにして、 黒色にした。更に、私は授業のときや、車を運転しているときなど普段の生 活の中で「メガネ」を掛けているので、メガネも描いてみた。水色である。 そして、一番工夫したところは「眉毛」である。私の眉毛は、よくみるとは み出ている部分もある。その部分を含めて眉毛を描きたかったので、少し太 めに眉毛を描いてみた。 参考文献 http://roy/~madoka/2012/r1/08/r1_08_11_review_06_colorandfonts.html 西村まどか 基礎プログラミングI 第 8 回 電子チケットを作ろう 「色をつけよう」 http://roy/~madoka/2012/r1/12/r1_12_02_theme_02_painttool.html 西村まどか 基礎プログラミングI 第 12 回 自由課題コンペディション / 画像作成 「描画ソフト」 http://roy/~madoka/2012/r1/12/r1_12_04_theme_04_tgifpng.html 西村まどか 基礎プログラミングI 第 12 回 自由課題コンペディション / 画像作成 「PNG 形式への出力」 http://roy/~madoka/2012/r1/12/r1_12_05_theme_05_tgifexample.html 西村まどか 基礎プログラミングI 第 12 回 自由課題コンペディション / 画像作成 「2D Draw 系ツールでの作画」 http://roy/~madoka/2012/r1/12/r1_12_06_theme_06_tgiftoolbar.html 西村まどか 基礎プログラミングI 第 12 回 自由課題コンペディション / 画像作成 「ツールバー各部分の解説」