第 10 回 ことおぼえ レポート課題 氏名:齋藤慶太 学籍番号:c110085 語学クラス:英語2 コース(系):政策マネジメント 1 筆記問題 directoryをつくる事によって、製作者だけではなくホームページを閲覧してい る利用者の書き込みなどを可能にしているのがpstoreの役割である。 作成する際に rubycgi の下に作成する。上に作成してしまうと、その下のペー ジが全て書き込み可能になり、多くのファイルが第三者によって書き換えられ てしまう場合があるため注意が必要となる。 2 プログラム問題 http://roy/~c110085/advertise2/rubycgi/r2_cgi_best.html #作成するために必要な大きなまとまり 野菜 #タイトル

野菜を買います

#表示する
#リンク先
  • 買うものを選択してください
  • 値段表

    #値段表
  • きゃべつ 44円
  • とまと 55円
  • にんじん 38円
  • れたす 48円
  • なす 84円
  • たまねぎ 949円
  • ほうれんそう 387円
  • ぴーまん 487円
  • かぼちゃ 4748円
  • もやし 2円

  • きゃべつ #チェック とまと #ボタン作成 にんじん れたす なす たまねぎ ほうれんそう ぴーまん かぼちゃ もやし

    #よければ会計へ #やり直し

    プログラム #!/usr/bin/env ruby #宣言文 total = 0 #合計の値 $KCODE ="e" #日本語にする require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUG-jp\n\n") #cgiのかたち date1 = cgi["vegi1"] #それぞれnameを変換する date2 = cgi["vegi2"] date3 = cgi["vegi3"] date4 = cgi["vegi4"] date5 = cgi["vegi5"] date6 = cgi["vegi6"] date7 = cgi["vegi7"] date8 = cgi["vegi8"] date9 = cgi["vegi9"] date10 = cgi["vegi10"] print("\n") print("\n") print("合計金額\n") print("\n") print("\n") if date1 == "cabe" #条件に応じて合計にプラス total += 44 end if date2 == "toma" total += 55 end if date3 == "nin" total += 38 end if date4 == "reta" total += 48 end if date5 == "nasu" total += 84 end if date6 == "tama" total += 949 end if date7 == "hour" total += 387 end if date8 == "pi" total += 487 end if date9 == "kabo" total += 4748 end if date10 == "moya" total += 2 end cabe1 = 0 #それぞれの値を設定する toma1 = 0 nin1 = 0 reta1 = 0 nasu1 = 0 tama1 = 0 hour1 = 0 pi1 = 0 kabo1 = 0 moya1 = 0 open("r2_cgi_best.dat","r+") do |yasai| #指定したファイルに値をいれる while line = yasai.gets if /cabe/ =~ line #指定した条件が入力されていたら値をプラス cabe1 += 1 elsif /toma/ =~ line toma1 += 1 elsif /nin/ =~ line nin1 += 1 elsif /reta/ =~ line teta1 += 1 elsif /nasu/ =~ line nasu1 += 1 elsif /tama/ =~ line tama1 += 1 elsif /hour/ =~ line hour1 += 1 elsif /pi/ =~ line pi1 += 1 elsif /kabo/ =~ line kabo1 += 1 elsif /moya/ =~ line moya1 += 1 end end print" 売れ筋 \n" print"

    投票数:#{cabe+toma+nin+reta+nasu+tama+hour+pi+kabo+moya}

    \n" #選択された項目の集計を行う print"\n" #ラインを出力 print"\n",cabe) print"\n",toma) print"\n",nin) print"\n",reta) print"\n",nasu) print"\n",tama) print"\n",hour) print"\n",pi) print"\n",kabo) print"
    きゃべつ" #それぞれの集計を出力する 1.upto(cabe) do |i| if i%20 == 0 #20個で折り返す print"■
    " #■の数で個数を表現 else print"■" end end printf(" %d
    とまとo" 1.upto(toma) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    にんじんo" 1.upto(nin) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    れたすo" 1.upto(reta) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    なすo" 1.upto(nasu) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    たまねぎo" 1.upto(tama) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    ほうれんそうo" 1.upto(hour) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    ぴーまんo" 1.upto(pi) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    かぼちゃo" 1.upto(kabo) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    もやしo" 1.upto(moya) do |i| if i%20 == 0 print"■
    " else print"■" end end printf(" %d
    \n",moya) if data1 == "cabe" #条件にあっていたら集計を増やす cabe += 1 yasai.printf("%s\n",data1) elsif data2 == "toma" toma += 1 yasai.printf("%s\n",data2) elsif data3 == "nin" nin += 1 yasai.printf("%s\n",data3) elsif data4 == "reta" reta += 1 yasai.printf("%s\n",data4) elsif data5 == "nasu" nasu += 1 yasai.printf("%s\n",data5) elsif data6 == "tama" tama += 1 yasai.printf("%s\n",data6) elsif data7 == "hour" hour += 1 yasai.printf("%s\n",data7) elsif data8 == "pi" pi += 1 yasai.printf("%s\n",data8) elsif data9 == "kabo" kabo += 1 yasai.printf("%s\n",data9) elsif data10 == "moya" pi += 1 yasai.printf("%s\n",data10) end end end print("

    合計金額は

    \n") #合計の出力 printf("

    %d円になります

    ",total) print("\n") print("\n") 考察 前回の課題にプログラムをつけ加え作成した。 チェックボックスでの加算が前回出来なかったが今回成功した。 どの商品がどのくらいの個数売れたかを最終的に表示したかったが、何処が間 違っているのか全く分からなくなってしまったので、完成させることが出来な かった。時間を有効に使えなかった。 datのファイルを作成しそこに値をどんどんいれていき集計することができる。 3 感想 http://roy.e.koeki-u.ac.jp/~c106034/rubycgi/purezent.html 上記のURLの作品に興味があるというか純粋に凄いと感じた。 プログラム自体はあまり複雑では無さそうだが画像を作成したりの段階から 丁寧に作られている印象がある。 簡単なプログラムでもしっかりとした手間をかけて作成すればよいものができる と思う。 4 参考文献 神田先生ホームページ http://roy/~naoya/rubyII/index.html 西村先生ホームページ http://roy/~madoka/2011/r2/