第10回 基礎プログラミング II レポート課題 氏名 : 藤井駿 学籍番号 :c1091307 語学クラス :英語3 コース : 地域共創 1.筆記問題 ◎Pstore を説明するにあたって 「comment.rb」をつかって説明する。 require'pstore' # 受け取ったデータを保存することを宣言 db = PStore.new("comment.db") # comment.db にデータベースを作成する db.transaction do # 入力されたデータを読みこみ、出力する if db == nil # もしデータがなかったとき db[name] = Hash.new # 新しく Hash を作る end db[name] = n onamae = db.roots # db 内のデータを onamae にする for shimei in onamae printf("

%s
%s

\n",db[shimei],shimei) # 結果を表示する end end 以上のように説明できる。 2.プログラム問題 アドレス : http://roy/~c109130/advertise2/rubycgi/r2_cgi_best.html その1. 買い物したことを記録に残す CGIスクリプト a.ホームページアドレス http://roy/~c109130/advertise2/rubycgi/kaimono.html b.CGI の題名とその意図 「買い物リストを作ろう」 → 買い物したことを入力してデータを表示さ せるプログラム c.入力部分と送信部分 入力部分 : http://roy/~c109130/advertise2/rubycgi/kaimono.html 送信部分 : http://roy/~c109130/advertise2/rubycgi/kaimono.rb d.各部分の解説 ◯「kaimono.html」 買い物リスト


買い物リストを作ろう


どんなものを買いたいですか?


名前 :
日付 (例 : ◯◯月△△日):






★注意!!★

このプログラムは東北公益文科大学2009年度生 藤井駿 が著作権を所有しています。

プログラムを入手・改変・再配布は自由に行っても構いませんが

このプログラムを取り扱って生じた問題は一切責任を負いませんのでご了承ください.

このプログラムに対する要件がありましたら下記まで連絡してください。

c109130@e.koeki-u.ac.jp


トップページへ(r2_cgi_best.html)

後期広告ページへ(advertise2/index.html)

ホームページへ(http://roy/~c109130)

◯「kaimono1.css」 body { background: #0099ff ; } h1 { color: #ffffff; font-size: 25pt; text-align: center; padding: 0.5em; } p { background: #00ffff ; color: black; font-size: 13pt; text-align: center; } ◯「kaimono.rb」 #!/usr/bin/env ruby $KCODE = 'e' # 文字化け防止 require 'cgi' # CGIの形式に変換する c = CGI.new("html4") # CGIをHTML文書で使用する print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コード name =c["namae"] # CGI の namae を name に変換する hizu =c["hizuke"] # CGI の hizuke を hizu に変換する ido =c["idou"] # CGI の idou を ido に変換する kou = c["koumoku"] # CGI の koumoku を kou に変換する print("\n") # HTML文書 print("\n") print("実行結果\n") print("\n") print("\n") print("

\n") print("

実行結果は・・・

\n") print("
\n") # 改行する p rintf("

☆ 名前 : %s

\n",name) # name を代入する printf("

☆ 買い物実施日 : %s

\n",hizu) # hizu を代入する printf("

☆ 移動手段 : %s

\n",ido) # ido を代入する print("
\n") # 改行する print("
\n") # 改行する print("

◯買い物リスト◯

\n") printf("

%s さんが購入した商品は %s です。

\n",name,kou) # name と kou を代入する print("

\n") print("\n") print("\n") ◯「kaimono2.css」 body { background: #0099ff ; } h1 { color: #ffffff; font-size: 25pt; text-align: center; padding: 0.5em; } e.実行結果 ◯ 「名前 = shun 日付 = 12月9日 移動手段 = 車 商品 = テレビ 」のとき pan{c109130}% ./kaimono.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) namae="shun" hizuke="12月9日" idou="車" koumoku="テレビ" Content-type: text/html; charset=EUC-JP 実行結果

実行結果は・・・


☆ 名前 : shun

☆ 買い物実施日 : 12月9日

☆ 移動手段 : 車



◯買い物リスト◯

shun さんが購入した商品は テレビ です。

◯「名前 = 藤井 日付 = 3月18日 移動手段 = 電車 商品 = パン 」のとき pan{c109130}% ./kaimono.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) namae="藤井" hizuke="3月18日" idou="電車" koumoku="パン" Content-type: text/html; charset=EUC-JP 実行結果

実行結果は・・・


☆ 名前 : 藤井

☆ 買い物実施日 : 3月18日

☆ 移動手段 : 電車



◯買い物リスト◯

藤井 さんが購入した商品は パン です。

その2.ストレス度を知ることが出来るCGIスクリプト a.ホームページアドレス http://roy/~c109130/advertise2/rubycgi/stress.html b.CGI の題名とその意図 「ストレス度チェック」 → 日常のストレス度を25項目の質問を答えるこ とで知ることができる c.入力部分と送信部分 入力部分 : http://roy/~c109130/advertise2/rubycgi/stress.html 送信部分 : http://roy/~c109130/advertise2/rubycgi/stress.rb d.各部分の解説 ◯「stress.html」 ストレス度チェック


ストレス度チェック


日ごろストレスを感じることはありますか?

ここでストレス度を確認してみましょう


名前 :

    性別 :


◯チェック項目(全25項目)

Q1 朝起きるのが辛いことが多いですか?

はい いいえ

Q2 疲れているのになかなか眠れないときはありますか?

はい いいえ

Q3 夜中によく目を覚ましますか?

はい いいえ

Q4 学校に行きたくないと思うことがよくありますか?

はい いいえ

Q5 下痢や便秘をしやすい方ですか?

はい いいえ

Q6 食欲がなかったり過食をしてしまうことがありますか?

はい いいえ

Q7 ひどい肩こりはありますか?

はい いいえ

Q8 なにかするとすぐ疲れますか?

はい いいえ

Q9 お酒や買い物が止められないことがありますか?

はい いいえ

Q10 一人で過ごしたいと思うことが多いですか?

はい いいえ

Q11 最近痩せてきたように思いますか?

はい いいえ

Q12 人に会うのが苦痛なときがありますか?

はい いいえ

Q13 漠然と不安になることがよくありますか?

はい いいえ

Q14 いつも勉強に追われている気がしますか?

はい いいえ

Q15 グチが多いですか?

はい いいえ

Q16 異性に興味が持てませんか?

はい いいえ

Q17 胃が痛んだり胸やけのすることが多いですか?

はい いいえ

Q18 気分が落ち込みやすいですか?

はい いいえ

Q19 無駄なことばかり考えてしまいますか?

はい いいえ

Q20 何をしても楽しくないですか?

はい いいえ

Q21 周囲に気の合わない人がいて困りますか?

はい いいえ

Q22 他人にどう思われているか気になりますか?

はい いいえ

Q23 何もかも放りだしたくなりますか?

はい いいえ

Q24 イライラすることが多いですか?

はい いいえ

Q25 小さなことが気になってしょうがないことがありますか?

はい いいえ





★注意!!★

このプログラムは東北公益文科大学2009年度生 藤井駿 が著作権を所有しています。

プログラムを入手・改変・再配布は自由に行っても構いませんが

このプログラムを取り扱って生じた問題は一切責任を負いませんのでご了承ください.

このプログラムに対する要件がありましたら下記まで連絡してください。

c109130@e.koeki-u.ac.jp




トップページへ(r2_cgi_best.html)

後期広告ページへ(advertise2/index.html)

ホームページへ(http://roy/~c109130)

◯「stress1.css」 body { background: #ffff33 ; } h1 { color: #66ff99; font-size: 25pt; text-align: center; padding: 0.5em; } h2 { background: #ffffff; padding: 0.5em; } p { background: #ffff66 ; color: black; font-size: 13pt; text-align: center; } ◯「stress.rb」 #!/usr/bin/env ruby $KCODE = 'e' # 文字化け防止 require 'cgi' # CGIの形式に変換する c = CGI.new("html4") # CGIをHTML文書で使用する print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コード name =c["goshimei"] # CGI の namae を name に変換する sei =c["seibetsu"] # CGI の hizuke を hizu に変換する total = 0 # total = 0からスタート k1 =c["kotae1"] # CGI の kotae1 を k1 に変換する k2 =c["kotae2"] # 以下同様 k3 =c["kotae3"] k4 =c["kotae4"] k5 =c["kotae5"] k6 =c["kotae6"] k7 =c["kotae7"] k8 =c["kotae8"] k9 =c["kotae9"] k10 =c["kotae10"] k11 =c["kotae11"] k12 =c["kotae12"] k13 =c["kotae13"] k14 =c["kotae14"] k15 =c["kotae15"] k16 =c["kotae16"] k17 =c["kotae17"] k18 =c["kotae18"] k19 =c["kotae19"] k20 =c["kotae20"] k21 =c["kotae21"] k22 =c["kotae22"] k23 =c["kotae23"] k24 =c["kotae24"] k25 =c["kotae25"] print("\n") # HTML文書 print("\n") print("ストレス度チェック実行結果\n") print("\n") print("\n") print("

\n") printf("

%sさんの実行結果は・・・

\n",name) print("

◎ 診断結果 ◎

\n") if k1 == "はい" # もし k1 == "はい" なら total +=1 # total に +1 する end # 以下同様 if k2 == "はい" total +=1 end if k3 == "はい" total +=1 end if k4 == "はい" total +=1 end if k5 == "はい" total +=1 end if k6 == "はい" total +=1 end if k7 == "はい" total +=1 end if k8 == "はい" total +=1 end if k9 == "はい" total +=1 end if k10 == "はい" total +=1 end if k11 == "はい" total +=1 end if k12 == "はい" total +=1 end if k13 == "はい" total +=1 end if k14 == "はい" total +=1 end if k15 == "はい" total +=1 end if k16 == "はい" total +=1 end if k17 == "はい" total +=1 end if k18 == "はい" total +=1 end if k19 == "はい" total +=1 end if k20 == "はい" total +=1 end if k21 == "はい" total +=1 end if k22 == "はい" total +=1 end if k23 == "はい" total +=1 end if k24 == "はい" total +=1 end if k25 == "はい" total +=1 end print("
\n") if total >=6 && total <= 10 # もし total が6以上10以下なら print("

ややストレスがありますがそれほど問題はないでしょう

\n") # これを表示 elsif total >= 11 && total<= 15 # もし total が11以上15以下なら print("

ストレスが溜まっているかもしれません

\n") # これを表示 elsif total >= 16 && total <= 25 # もし total が16以上25以下なら print("

かなりストレスが溜まっています

\n") # これを表示 else # それ以外なら print("

ストレスはほとんどないと思われます!!

\n") # これを表示 end print("
\n") print("
\n") # 改行する print("
\n") print("
\n") # 改行する print("
\n") printf("

氏名 : %s さん

\n",name) printf("

性別 : %s

\n",sei) print("
\n") print("
\n") # 改行する print("
\n") # 改行する print("

☆回答一覧

\n") printf("

Q1 朝起きるのが辛いことが多いですか? A : %s

\n",k1) printf("

Q2 疲れているのになかなか眠れないときはありますか? A : %s

\n",k2) printf("

Q3 夜中によく目を覚ましますか? A : %s

\n",k3) printf("

Q4 学校に行きたくないと思うことがよくありますか? A : %s

\n",k4) printf("

Q5 下痢や便秘をしやすい方ですか? A : %s

\n",k5) printf("

Q6 食欲がなかったり過食をしてしまうことがありますか? A : %s

\n",k6) printf("

Q7 ひどい肩こりはありますか? A : %s

\n",k7) printf("

Q8 なにかするとすぐ疲れますか?A : %s

\n",k8) printf("

>Q9 お酒や買い物が止められないことがありますか? A : %s

\n",k9) printf("

Q10 一人で過ごしたいと思うことが多いですか? A : %s

\n",k10) printf("

Q11 最近痩せてきたように思いますか? A : %s

\n",k11) printf("

Q12 人に会うのが苦痛なときがありますか? A : %s

\n",k12) printf("

Q13 漠然と不安になることがよくありますか? A : %s

\n",k13) printf("

Q14 いつも勉強に追われている気がしますか? A : %s

\n",k14) printf("

Q15 グチが多いですか? A : %s

\n",k15) printf("

Q16 異性に興味が持てませんか? A : %s

\n",k16) printf("

Q17 胃が痛んだり胸やけのすることが多いですか? A : %s

\n",k17) printf("

Q18 気分が落ち込みやすいですか? A : %s

\n",k18) printf("

Q19 無駄なことばかり考えてしまいますか? A : %s

\n",k19) printf("

Q20 何をしても楽しくないですか? A : %s

\n",k20) printf("

Q21 周囲に気の合わない人がいて困りますか? A : %s

\n",k21) printf("

Q22 他人にどう思われているか気になりますか? A : %s

\n",k22) printf("

Q23 何もかも放りだしたくなりますか? A : %s

\n",k23) printf("

Q24 イライラすることが多いですか? A : %s

\n",k24) printf("

Q25 小さなことが気になってしょうがないことがありますか? A : %s

\n",k25) print("

\n") print("\n") print("\n") ◯「stress2.css」 body { background: #ffff66 ; } h1 { color: #66ff99; font-size: 25pt; text-align: center; padding: 0.5em; } p { background: #ffffff ; color: black; font-size: 13pt; } e.実行結果 ◯「"はい" が 6 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

ややストレスがありますがそれほど問題はないでしょう




氏名 : fujii さん

性別 : 男性

以下、省略。 ◯「"はい" が 10 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" kotae7="はい" kotae8="はい" kotae9="はい" kotae10="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

ややストレスがありますがそれほど問題はないでしょう




氏名 : fujii さん

性別 : 男性

以下、省略。 ◯「"はい" が 11 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" kotae7="はい" kotae8="はい" kotae9="はい" kotae10="はい" kotae11="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

ストレスが溜まっているかもしれません




氏名 : fujii さん

性別 : 男性

以下、省略。 ◯「"はい" が 15 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" kotae7="はい" kotae8="はい" kotae9="はい" kotae10="はい" kotae11="はい" kotae12="はい" kotae13="はい" kotae14="はい" kotae15="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

ストレスが溜まっているかもしれません

以下、省略。 ◯「"はい" が 16 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" kotae7="はい" kotae8="はい" kotae9="はい" kotae10="はい" kotae11="はい" kotae12="はい" kotae13="はい" kotae14="はい" kotae15="はい" kotae16="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

かなりストレスが溜まっています




氏名 : fujii さん

性別 : 男性

以下、省略。 ◯「"はい" が 25 のとき」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" kotae1="はい" kotae2="はい" kotae3="はい" kotae4="はい" kotae5="はい" kotae6="はい" kotae7="はい" kotae8="はい" kotae9="はい" kotae10="はい" kotae11="はい" kotae12="はい" kotae13="はい" kotae14="はい" kotae15="はい" kotae16="はい" kotae17="はい" kotae18="はい" kotae19="はい" kotae20="はい" kotae21="はい" kotae22="はい" kotae23="はい" kotae24="はい" kotae25="はい" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

かなりストレスが溜まっています




氏名 : fujii さん

性別 : 男性

以下、省略。 ◯「それ以外」 pan{c109130}% ./stress.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) goshimei="fujii" seibetsu="男性" Content-type: text/html; charset=EUC-JP ストレス度チェック実行結果

fujiiさんの実行結果は・・・

◎ 診断結果 ◎

ストレスはほとんどないと思われます!!




氏名 : fujii さん

性別 : 男性

以下、省略。 3.感想 私が興味を持ったCGI作品は c109066 の人の作品です。 アドレスは「 http://roy/~c109066/advertise2/rubycgi/fork.html」 根拠は誕生日と血液型を入力すると、星座が分かるほかに、性格も分かると いうことが画期的だと思ったからである。 また、スタイルシートも利用しており、とても見やすい作品で印象に残った からである。 今回の課題は今出来ることをすべて盛り込むことが出来たとおもう。 CGI ははじめとてもむずかしくて理解するのに手間が掛かったが、今となっ ては大体のことが出来るようになったので良かった。 次回からも今まで以上に凄い作品が作れるように頑張っていきたい。 4.参考文献等 ◯共同学習者 ・池田博哉 ・遠藤孝之 ・花木剛志