第10回 基礎プログラミング II レポート課題 氏名:宮原絵美里 学籍番号:c110188 語学クラス:英語6 コース(系):地域共創 1.A データをプレーンテキストの形式で書き込む open -- end とは異なるファイル 入力出力方法として データベースとして入力する方法が pstore を使ったやり 方である。 directory を全て書き込み可能にし 力されたデータを出力し、さらにデータベー スにデータをしまうプログラムを作る。データの名前 データ.db を決めたら、 あらかじめデータファイルを作る。 Hash の仕組みを利用し、データベースに訪問者が入力したデータを組み込むこ とができる。 2.CGI作品 http://roy/~c110188/advertise2/rubycgi/r2_cgi_best.html 【設定】 美容室で髮を切ってもらったり セットしてもらったら 想像と違った... ってこ とはありませんか? それを防ぐために 髪型のシュミレーションができるプログ ラムです。 【プログラム r2_cgi_best1.rb】 #!/usr/koeki/bin/ruby $KCODE = 'e' # 日本語を使用 require 'cgi' # CGI を使う cgi = CGI.new("html14") # CGI を HTML 文書に使う print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義 hair = Hash.new # hair という hash を作成 open("/home/irhome/c110/c110188/public_html/advertise2/rubycgi/r2_cgi_best.txt","r") do |kami| # 入力されているtxtファイルを読み込む while line = kami.gets if /(\S*)\s(\S*)\s(\S*)\s(\S*)\s(\S*)\s(\S*)/ =~ line # 正規表現で取り出し line に入れ込む hair[$5.to_s] = [$1.to_s,$2.to_s,$3.to_s,$4.to_s] # 後方参照で hash に入れ込む end end end # p = ["gsb","gsc","gsg","glb","glc","gpb","gpc","gpg","gtb","gtc","gtg","psb","psc","psg","plb","plc","plg","ppb","ppc","ppg","ptb","ptc","ptg","wsb","wsc","wsg","wlb","wlc","wlg","wpb","wpc","wpg","wtb","wtc","wtg"] ※ # p hair n = cgi["n"] f = cgi["f"] h = cgi["h"] c = cgi["c"] # a = [f,h,c] ※ # p a ※ if f == "g" && h == "s" && c== "b" # 選択によって表示するデータを選ぶ a = "gsb" elsif f == "g" && h == "s" && c== "c" a = "gsc" elsif f == "g" && h == "s" && c== "g" a = "gsg" elsif f == "g" && h == "l" && c== "b" a = "glb" elsif f == "g" && h == "l" && c== "c" a = "glc" elsif f == "g" && h == "l" && c== "g" a = "glg" elsif f == "g" && h == "p" && c== "b" a = "gpb" elsif f == "g" && h == "p" && c== "c" a = "gpc" elsif f == "g" && h == "p" && c== "g" a = "gpg" elsif f == "g" && h == "t" && c== "b" a = "gtb" elsif f == "g" && h == "t" && c== "c" a = "gtc" elsif f == "g" && h == "t" && c== "g" a = "gtg" elsif f == "p" && h == "s" && c== "b" a = "psb" elsif f == "p" && h == "s" && c== "c" a = "psc" elsif f == "p" && h == "s" && c== "g" a = "psg" elsif f == "p" && h == "l" && c== "b" a = "plb" elsif f == "p" && h == "l" && c== "c" a = "plc" elsif f == "p" && h == "l" && c== "g" a = "glg" elsif f == "p" && h == "p" && c== "b" a = "ppb" elsif f == "p" && h == "p" && c== "c" a = "ppc" elsif f == "p" && h == "p" && c== "g" a = "ppg" elsif f == "p" && h == "t" && c== "b" a = "ptb" elsif f == "p" && h == "t" && c== "c" a = "ptc" elsif f == "p" && h == "t" && c== "g" a = "ptg" elsif f == "w" && h == "s" && c== "b" a = "wsb" elsif f == "w" && h == "s" && c== "c" a = "wsc" elsif f == "w" && h == "s" && c== "g" a = "wsg" elsif f == "w" && h == "l" && c== "b" a = "wlb" elsif f == "w" && h == "l" && c== "c" a = "wlc" elsif f == "w" && h == "l" && c== "g" a = "wlg" elsif f == "w" && h == "p" && c== "b" a = "wpb" elsif f == "w" && h == "p" && c== "c" a = "wpc" elsif f == "w" && h == "p" && c== "g" a = "wpg" elsif f == "w" && h == "t" && c== "b" a = "wtb" elsif f == "w" && h == "t" && c== "c" a = "wtc" elsif f == "w" && h == "t" && c== "g" a = "wtg" end print("\n") # 表示する print("\n") print("\n") print("\n") print("\n") print("
\n") print("

シュミレーション結果!


\n") printf("\"完成\"\n",a) print("

このような仕上がりになります!

\n") print("

detail

") printf("

%s*%s*%s です◎

\n",hair[a][0] ,hair[a][1] ,hair[a][2]) printf("

%s って感じのイメージです!

\n",hair[a][3]) printf("

%s さん 気に入って頂けたでしょうか?

\n", n) print("
\n") print("

戻る

\n") print("\n") print("\n") 【r2_cgi_best1.html】 りくえすと

*りくえすと*

まずは お名前を教えて下さい!


一番当てはまる答えを選択してください!

forelock

前髪はどのようにしますか?

ギザギザ ぱっつん 横分け

hairstyle

髪型はどのようにしますか?

ロング ショート ポニーテール ツインテール

coler

髮色はどのようにしますか?

ブラック ブラウン ブロンド

【r2_cgi_best2.html】 おまかせ

*おまかせ*

まずは お名前を教えて下さい!


一番当てはまる答えを選択してください!

character

自分はどんな性格だと思いますか?

気さく あまえんぼう 頼れる

hobby

趣味はなんですか?

音楽 スポーツ 料理 ファッション

coler

最近はどんな感じですか?

落ち着いて充実してる 忙しいけど楽しい 大きな変化があった

【もとにしたプログラム】 今までの自分の CGI 作品と http://roy/~madoka/2011/r2/10/rpt/rpt.html に 掲載されていた学生作品例。 【実行結果】 ●りくえすと

シュミレーション結果!


完成

このような仕上がりになります!

detail

前髪横分け*ロングヘアー*ブラウン です◎

みんなの姐御 って感じのイメージです!

えみり さん 気に入って頂けたでしょうか?


戻る

●おまかせ

シュミレーション結果!


完成

このような仕上がりになります!

detail

前髪ギザギザ*ツインテール*ブラウン です◎

できる妹 って感じのイメージです!

えみり さん 気に入って頂けたでしょうか?


戻る

【考察】 選択したとおりに 画像やテキストが出たので プログラムは正しい。 本当は if を使いたくなかったが 方法が思いつかず断念した。 CGI で選択され た value を並べたものが key になるのだが どのようにしたら 3つの value を 1つの key のできるのかが分からなかった。 ※マークは思考錯誤したところで ある。 4.感想 興味のあるスクリプトは 余語さんの ネットショッピングのスプリクトです。 なぜかというと リアルで本当にありそうな公益的なプログラムだと思ったから です。 URL http://roy/~c110197/advertise2/rubycgi/shop.html 5.参考文献など 【参考文献】 礎プログラミング II 第10回 CGIことおぼえ 西村まどか http://roy/~madoka/2010/r2/10/ 【共同学習者】 余語結佳 菊地瑞紀 五十嵐兼一 見川英駿 ----------------- 東北公益文科大学 公益学部 公益学科 2年 宮原絵美里 c110188@f.koeki-u.ac.jp -----------------