第10回 基礎プログラミング II レポート課題 氏名: 金田麻美 学籍番号: C1090466 語学クラス: 英語3 コース(系): 政策マネジメント 1 Pstoreを使用すると、open-end文のように外部ファイルへのデータの記録、 外部ファイルからのデータの読み出しが可能になる。 しかし、open-end文がデータをただのテキスト(文字列)として処理するのに対し、 Pstore はデータとして貯蔵をする。また、空白文字を気にしなくてもよい。 実際に授業で作成した comment.db を見てみると、 { " というふうに、コンピュータが自動的に何らかの処理をして、 記録しているのがわかる。 CGIを使用したプログラムでPstoreを使用するときの構成としては、 require 'pstore' で入力されたデータを貯める宣言をし、 変数 = PStore.new("データベース名.db") で、データを貯める データベースを作成する。 そして入力されたデータは Hash の仕組みで記録される。 データを呼び出して出力するには、 変数.transaction do -end を使用する。 また、CGIを使用して、WEBページからの訪問者による入力をデータベースに 利用する際には、第三者からもファイルへの書き込みが可能となるように しなければならない。 しかし改変されたくないファイルまで書き込み可能になってしまうと トラブルが生じるため、データベース専用のディレクトリを作成し、 そのディレクトリだけ、chmod o+w で第三者も書き込み可能にすべきである。 参考文献 基礎プログラミング II 第10回 CGIことおぼえ 「CGI で使うことのできるデータベース」 http://roy/~madoka/2010/r2/10/10_01_theme_01_pstore.html 基礎プログラミング II 第10回 CGIことおぼえ 「プログラム部分について」 http://roy/~madoka/2010/r2/10/10_02_theme_02_program.html 作者はどちらも、西村まどか ---------------------------------------------------------------------------- 2. オンライン授業アンケートに挑戦しました。 作品のURL http://roy/~c109046/advertise2/rubycgi/r2_cgi_best.html a. 公益大の授業アンケートを参考に、CGIを利用してオンラインで記入できる 授業アンケートプログラム r2_cgi_best.rbを作成した。 送信ボタンを押すと、送信した内容を確認できるようにした。 b. ●送信ページ r2_cgi_best.html オンライン授業アンケート

授業アンケート

よりよい授業へと改善していくために、アンケートにご協力ください。
入力していただいた情報は、授業改善以外には利用いたしませんのでご安心ください。


# 結果の出力先のプログラムを指定

科目名:

# テキストフィールドの使用。半角で40文字まで

授業コード:

学年: 1年 2年 3年 4年

# ラジオボタンの使用

Q1 授業内容は分かりやすかったですか?:

Q2 授業内容の分量はどうでしたか?:
多い ちょうど良い 少ない

Q3 教員の話は聴きとりやすかったですか?:

Q4 教員の熱意は感じられましたか?:

Q5 あなたの欠席率はどのくらいでしたか?:
0回 1回 2回 3回 4回以上

# 出力プログラムで選択肢をそのまま表示させるために valueと選択肢が同一

Q6 理解に役立ったのはどれですか?(複数回答可):
板書 口頭説明 レジュメ等の資料 参考書
その他(よろしければお教えください。)

# テキストエリアの使用。40文字 × 5行。

Q7 授業を受けて、あなたの興味関心は増えましたか?:

Q8 その他、意見・要望・感想などありましたら、ご自由にお書きください(200文字以内)。

# submit で選択したoption を出力先プログラムに送信。

# reset は選択したoption を取り消し。


このプログラムは東北公益文科大学2009年度生 金田麻美 が著作権を保有しています。
このプログラムの入手・実行・改変・再配布は、いずれも無料で自由に行なうことができます。
ただしこのプログラムを取り扱うことで生じたいかなる結果に対しても著作権者は責任を負いません。

このプログラムに対する、感想・助言・要望などがありましたら、以下のメールアドレスまでお寄せいただけると嬉しいです。
c109046@e.koeki-u.ac.jp

トップページに戻る
基礎プログラミングIIのページへ


© C1090466 金田麻美

●出力プログラム r2_cgi_best.rb #!/usr/koeki/bin/ruby require 'cgi' # CGIの使用を宣言 cgi = CGI.new("html4") # htmlでCGIを使用する print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードの使用を宣言 subject = cgi["subject"] # 各nameを変数に代入。以下のprintfで出力。 code = cgi["code"] year = cgi["year"] understand = cgi["understand"] quantity = cgi["quantity"] hearing = cgi["hearing"] motivation = cgi["motivation"] miss = cgi["miss"] writing = cgi["writing"] # チェックボックスはnameがそれぞれ違うので、一つ一つ変数を設ける。 speaking = cgi["speaking"] resume = cgi["resume"] book = cgi["book"] other = cgi["other"] reason = cgi["reason"] interest = cgi["interest"] free = cgi["free"] print("\n") print("\n") print("送信完了\n") print("</head>\n") print("<body>\n") print("<h2>以下の情報を送信しました。ご協力ありがとうございました。</h2>") print("<br>\n") printf("<h3>科目名: %s</h3>", subject) printf("<h3>授業コード: %s</h3>", code) printf("<h3>学年: %s</h3>", year) print("<br>\n") printf("<h3>Q1 授業内容は分かりやすかったか: %s</h3>", understand) printf("<h3>Q2 授業内容の分量はどうだったか: %s</h3>", quantity) printf("<h3>Q3 教員の話は聴きとりやすかったか: %s</h3>", hearing) printf("<h3>Q4 教員の話の熱意: %s</h3>", motivation) printf("<h3>Q5 あなたの欠席率: %s</h3>", miss) printf("<h3>Q6 理解に役立ったのは: %s %s %s %s %s</h3>", writing, speaking, resume, book, other) printf("<h4>%s</h4>",reason) printf("<h3>Q7 興味関心は増えたか: %s</h3>", interest) print("<h3>Q8 その他の意見・要望・感想:</h3>") printf("<h4>%s</h4>", free) print("</body>\n") print("</html>\n") c. 基にしたプログラムは特になく、講義ページの各CGIスクリプトの説明を 参考にしながら作成した。 変更した点としては、チェックボックスを使用する際に、 出力プログラムで選ばれた選択肢をそのまま表示させるために、 valueと選択肢を同一にした。 valueが日本語で設定可能である意義がわかった。 d. roy{c109046}% ./r2_cgi_best.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) subject="日本語B" code="5555" year="4年" understand="分かりにくかった" quantity="ちょうどいい" hearing="まあまあ聴きとりやすかった" motivation="とても感じた" miss="4回以上" book="参考書" other="その他" reason="VTR鑑賞" interest="むしろ減った" free="アニメの話に脱線しないでください。" Content-type: text/html; charset=EUC-jp <html> <head> <link rel="stylesheet" type="text/css" href="r2_cgi_best.css" <title>送信完了<title> </head> <body> <h2>以下の情報を送信しました。ご協力ありがとうございました。</h2><br> <h3>科目名: 日本語B</h3><h3>授業コード: 5555</h3><h3>学年: 4年</h3><br> <h3>Q1 授業内容は分かりやすかったか: 分かりにくかった</h3><h3>Q2 授業内容の分量はどうだったか: ちょうどいい</h3><h3>Q3 教員の話は聴きとりやすかったか: まあまあ聴きとりやすかった</h3><h3>Q4 教員の話の熱意: とても感じた</h3><h3>Q5 あなたの欠席率: 4回以上</h3><h3>Q6 理解に役立ったのは: 参考書 その他</h3><h4>VTR鑑賞</h4><h3>Q7 興味関心は増えたか: むしろ減った</h3><h3>Q8 その他の意見・要望・感想:</h3><h4>アニメの話に脱線しないでください。</h4></body> </html> 改行文字ではなく段落分けしていたのでごちゃごちゃと表示されたが、 すべて代入されている。よってこのプログラムは正しい。 e. チェックボックスは nameがそれぞれ違うので、出力プログラムでは if文を使ってnameにoptionが入っていたら表示としようかと思ったが、 よくわからなくなったし、単純に%sとname変数で問題なく表示されたので そのようにした。 同じように、if文でその他が選択されたらテキストエリアも表示と 定義付けようかと思ったが、これも単に%sとname変数で、 空のときは代入されないので見えない、という形にした。 参考文献 基礎プログラミング II 第8回 CGIことはじめ 「基本の CGI ホームページの作りかた」 http://roy/~madoka/2010/r2/08/08_06_theme_05_firstcgi.html 基礎プログラミング II 第9回 CGIことえらび 「ラジオボタンの作り方」 http://roy/~madoka/2010/r2/09/09_04_theme_02_radio.html 基礎プログラミング II 第9回 CGIことえらび 「チェックボックスの作り方」 http://roy/~madoka/2010/r2/09/09_05_theme_03_checkbox.html 基礎プログラミング II 第9回 CGIことえらび 「テキストフィールドの作り方」 http://roy/~madoka/2010/r2/09/09_06_theme_04_textfield.html 基礎プログラミング II 第9回 CGIことえらび 「テキストエリアの作り方」 http://roy/~madoka/2010/r2/09/09_07_theme_05_textarea.html 以上の作者: 西村まどか (CSSの参考文献) 情報リテラシー2 第9回 http://roy/~yamamoto/text09/k209.html --------------------------------------------------------------------------- 3. 今回は久々にCSSを使った。敬遠していたが使っているうちに仕組みが 今更ながらわかってきて、好きになった。 段落の背景色が決められるので、帯のようなデザインができてよいと思う。 CGIスクリプトも苦戦してきたが、htmlのように正しい書き方で書いていけば 完成するので、書き方を覚えれば楽だと思った。 すごいと思った作品: 沓沢 悠治先輩 http://roy/~c108032/advertise2/rubycgi/r2_cgi_best.html ベストセラーやカテゴリー別など結果の分岐がすごいとおもった。 正直「よかったレポート」でプログラムを見てみても、どうなっているのか よくわからなかった。 絵やパロディのしかたもセンスが感じられて良いと思った。 共同学習者: 笹原千珠子