第10回 基礎プログラミング II レポート課題 氏名:成澤龍空 学籍番号:c1071658 語学クラス:英語 コース(系):経営系 A. 1. pstore を使用すると、Ruby で作成したものを外部ファイルへ保存することがで きる。データベースとして入力するため、プレーンテキストの形式で書き込む open -- end とは異なる。require 'pstore'で受け取ったデータをためる宣言を する。PStore 変数 = PStore.new("データベース.db")でデータベースの作成を する。
tag で作成する部分がデータを入力させる部分であり、 PStore 変数.transaction doが入力されたデータを読み込んで出力する部分 で ある。 2. 設定 第9回で作成したfork.html fork.rbを使い12月現在のエコポイント商品の ポイントを出力するプログラムを作成した。 作成したホームページ(r2_cgi_best.html) URL:http://roy/~c107165/advertise2/rubycgi/r2_cgi_best.html body {background-color:lightgreen;color:black;} --> h1{background:yellow;} h2{background:white;}

エコポイント申請窓口

こんにちは!こちらはエコポイント申請窓口です。
お持ちの商品とリサイクルの有無でポイントを照会できます。

商品名: 液晶テレビ

  • 申請者名:

  • 大きさ:

    廃家電の有無

    無し 有り(+3000点)

  • 商品名: 冷蔵庫

  • 申請者名:

  • 大きさ:

    廃家電の有無

    無し 有り(+3000点)

  • 商品名: エアコン

  • 申請者名:

  • 大きさ:

    廃家電の有無

    無し 有り(+3000点)

  • 作成したプログラム(tv.rb) #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") size = cgi["size"] point = cgi["point"] name = cgi["name"] print("\n") print("\n") print("\tエコポイント申請窓口\n") print("") print("\n") print("\n") print("

    申請結果

    ") printf("申請者名: %s", name) print("

    \n") printf("商品名 : 液晶テレビ %s ",size) print("
    ") printf("廃家電 : %s \n " ,point) print("
    ") if size == "26型未満" size = 4000 elsif size == "26,32型" size = 6000 elsif size == "37型" size = 8000 elsif size == "40,42型" size = 11000 else size == "46型以上" size = 17000 end print("
    ") print("あなたのポイントは") if point == "無し" printf("

    %d 点

    \n", size) else point == "有り" printf("

    %d 点

    ", size+3000) end print("となりました。") print("

    \n") print("\n") print("\n") 作成したプログラム(fz.rb) #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") size = cgi["size"] point = cgi["point"] name = cgi["name"] print("\n") print("\n") print("\tエコポイント申請窓口\n") print("") print("\n") print("\n") print("

    申請結果

    ") printf("申請者名: %s", name) print("

    \n") printf("商品名 : 冷蔵庫 %s ",size) print("
    ") printf("廃家電 : %s \n " ,point) print("
    ") if size == "250リットル以下" size = 2000 elsif size == "251〜400リットル" size = 3000 elsif size == "401〜500リットル" size = 5000 else size == "501リットル以上" size = 5000 end print("
    ") print("あなたのポイントは") if point == "無し" printf("

    %d 点

    \n", size) else point == "有り" printf("

    %d 点

    ", size+3000) end print("となりました。") print("

    \n") print("\n") print("\n") 作成したプログラム(ec.rb) #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") size = cgi["size"] point = cgi["point"] name = cgi["name"] print("\n") print("\n") print("\tエコポイント申請窓口\n") print("") print("\n") print("\n") print("

    申請結果

    ") printf("ユーザー名: %s", name) print("

    \n") printf("商品名 : 冷蔵庫 %s ",size) print("
    ") printf("廃家電 : %s \n " ,point) print("
    ") if size == "2.2kW以下" size = 3000 elsif size == "2.5kW,2.8kW" size = 4000 else size == "3.6kW以上" size = 5000 end print("
    ") print("あなたのポイントは") if point == "無し" printf("

    %d 点

    \n", size) else point == "有り" printf("

    %d 点

    ", size+3000) end print("となりました。") print("

    \n") print("\n") print("\n") ktermでの実行結果 pan{c107165}% ./tv.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="Ryu" size="46型以上" Content-type: text/html; charset=EUC-jp エコポイント申請窓口

    申請結果

    ユーザー名: Ryu

    商品名 : 液晶テレビ 46型以上
    廃家電 :

    あなたのポイントは

    20000 点

    となりました。

    pan{c107165}% ./fz.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="Ryu" size="250以下" Content-type: text/html; charset=EUC-jp エコポイント申請窓口

    申請結果

    申請者名: Ryu

    商品名 : 冷蔵庫 250以下
    廃家電 :

    あなたのポイントは

    8000 点

    となりました。

    pan{c107165}% ./ec.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) name="Ryu" size="3.6kW以上" Content-type: text/html; charset=EUC-jp エコポイント申請窓口

    申請結果

    ユーザー名: Ryu

    商品名 : 冷蔵庫 3.6kW以上
    廃家電 :

    あなたのポイントは

    8000 点

    となりました。

    firefoxでの実行結果 エコポイント申請窓口 こんにちは!こちらはエコポイント申請窓口です。 お持ちの商品とリサイクルの有無でポイントを照会できます。 商品名: 液晶テレビ # 申請者名: # 大きさ: 廃家電の有無 無し 有り(+3000点) 商品名: 冷蔵庫 # 申請者名: # 大きさ: 廃家電の有無 無し 有り(+3000点) 商品名: エアコン # 申請者名: # 大きさ: 廃家電の有無 (tv.rb) 申請結果 ユーザー名: Ryu 商品名 : 液晶テレビ 40,42型 廃家電 : 無し あなたのポイントは 11000 点 となりました。 (fz.rb) 申請結果 申請者名: Ryu 商品名 : 冷蔵庫 501リットル以上 廃家電 : 無し あなたのポイントは 5000 点 となりました。 (ec.rb) 申請結果 ユーザー名: Ryu 商品名 : 冷蔵庫 2.2kW以下 廃家電 : 無し あなたのポイントは 3000 点 となりました。 考察 今回は複数の商品を申請できるようにしたが、3つそれぞれプログラムを作成す ることにより可能にした。 申請者名を入力する項目もそれぞれに作成する必要があった。 name = cgi["name"] と、 printf("申請者名: %s", name) をそれぞれに追加した。 感想 前回のプログラムを利用したが、rbは3つ作る必要があり面倒だった。 CGIを上手く組み合わせることができて良かった。 他の人で自分が興味を持ったのは、c109056の木内雄さんの作品です。 CGIが上手く使われていると思います。 参考アドレス http://eco-points.jp/ グリーン家電普及促進事業 エコポイント http://roy/~madoka/2010/r2/10/10_02_theme_02_program.html 基礎プログラミング II 第10回 CGIことおぼえ 「プログラム部分について」 TA: 大沼拓海 さん