第 13回 自由課題準備(3) レポート課題 氏名:山野 駿 学籍番号:c1111429 語学クラス:英語2 コース:社会福祉 チーム名:やすおかさんちの冷蔵庫 チームホームページアドレス: 部門:お役立ち情報部門 プロジェクトコード名: チーム SNS アドレス:http://cms.is.koeki-u.ac.jp/sns/community/47 1. 私は、自由課題のプログラムを担当することとなった。プログラムの軸となる仕 組みは完成した。あとは、体裁や見えやすさを考慮したウェブページを作成する のみとなった。 ◯作成したもの ・分類を選択させるページ(html) ・食材を選択させるページ(rb) ・結果を表示させるページ(rb) 最初に 分類を選択させるページ(html)の URL とソースを載せる。 http://roy.e.koeki-u.ac.jp/~c111142/yonin/syokuzai.html 食材の保存方法検索

食材の保存方法検索

分類を選んでください。

いも・でんぷん類 果実 きのこ
魚介類 種実 大豆
調味料・香辛料 肉類
乳類
野菜 油脂類
 

食材保存検索トップへ やすおかさんちの冷蔵庫トップへ

次に 食材を選択させるページ(rb)について 作成したプログラム #!/usr/bin/env ruby #coding: euc-jp require'cgi' #CGIを使用するという宣言 require'kconv' #ライブラリを加える cgi = CGI.new(:accept_charset => "EUC-JP") #cgiはCGIを関連付ける print("Content-type: text/html; charset=EUC-JP\n\n") #日本語を取って来る。 syurui = cgi["kubun"] syoku = Array.new #食材 bunrui = Array.new #分類 yomi = Array.new #読み #hoho = Array.new if syurui == "麺" fairu = Dir.pwd + "/hozon_menrui.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "いも・でんぷん類" fairu = Dir.pwd + "/hozon_imo_denpun.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "大豆" fairu = Dir.pwd + "/hozon_daizu.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "種実" fairu = Dir.pwd + "/hozon_syujitu.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "野菜" fairu = Dir.pwd + "/hozon_yasai.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "果実" fairu = Dir.pwd + "/hozon_kajitu.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "きのこ" fairu = Dir.pwd + "/hozon_kinoko.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "藻" fairu = Dir.pwd + "/hozon_mo.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "魚介類" fairu = Dir.pwd + "/hozon_gyokai.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "肉類" fairu = Dir.pwd + "/hozon_nikurui.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "卵" fairu = Dir.pwd + "/hozon_tamago.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "乳類" fairu = Dir.pwd + "/hozon_nyurui.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "油脂類" fairu = Dir.pwd + "/hozon_yusi.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end elsif syurui == "調味料・香辛料" fairu = Dir.pwd + "/hozon_tyoumiryo.dat" #fairuにhozon.datを入れる open(fairu,"r:euc-jp") do |hozon| #fairu にいれたものを開く while select = hozon.gets # p select if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ select syoku << $1.toeuc.chomp #日本語文字コードが異なる場合に使用 bunrui << $2 yomi << $3 end end end end #p fairu #p syoku #p yomi #p bunrui #p syurui print("\n") print("\n") print("保存方法一覧\n") print("\n") print("\n") print("\n") printf("

%s

\n",syurui) # #for sentaku in syoku # # printf("

%s

\n",sentaku) # #end print("
\n") #HTML文をrubyで書こうとするとエラーが出る。その場合は"\"\でそれぞれ囲うと表示される。 j = syoku.length # for文を書くときにsyoku.lengthではエラーが出るため、変数に置き変える。 for ban in 0 .. j-1 #名前を抜きだす。 # p ban # printf("

%s

\n",sentaku) # print("\n") printf("

%s

\n",bunrui[ban],syoku[ban], syoku[ban]) #チェ # print("
") #ックボックスを作る。 end print("\n") #次のページへ飛ぶ print("\n") print("
\n") print("

\n") print("食材保存検索ページへ\n") print("食材保存検索トップへ\n") print("やすおかさんちの冷蔵庫トップへ\n") print("

\n") print("\n") print("\n") 前回との変更点 ・体裁を整える為にcssを付け加えた 実行結果 ソース 保存方法一覧

いも・でんぷん類

こんにゃく

さつまいも

里芋

しらたき

じゃがいも

長芋

春雨

食材保存検索ページへ 食材保存検索トップへ やすおかさんちの冷蔵庫トップへ

kterm pan{c111142}% ./syokuzai.rb [~/public_html/yonin] (offline mode: enter name=value pairs on standard input) kubun="いも・でんぷん類" 保存方法一覧

いも・でんぷん類

こんにゃく

さつまいも

里芋

しらたき

じゃがいも

長芋

春雨

食材保存検索ページへ 食材保存検索トップへ やすおかさんちの冷蔵庫トップへ

考察 ソースとktermでの結果が同じであったため、このプログラムは正しい。 最後に 検索結果を表示するページ((rb)を載せる。 作成したプログラム #!/usr/bin/env ruby #coding: euc-jp require'cgi' require'kconv' cgi = CGI.new(:accept_charset => "EUC-JP") print("Content-type: text/html; charset=EUC-JP\n\n") imo = cgi["imo_denpun"] kaji = cgi["kajitu"] kino = cgi["kinoko"] gyoka = cgi["gyokai_rui"] syuji = cgi["syujitu"] daiz = cgi["daizu_rui"] tama = cgi["tamago_rui"] tyomi = cgi["tyoumiryo_rui"] niku = cgi["niku_rui"] nyu = cgi["nyu_rui"] men = cgi["men_rui"] moru = cgi["mo_rui"] yasai = cgi["yasai_rui"] yushi = cgi["yusi_rui"] name = Array.new hoho = Array.new syosai = Hash.new file = Dir.pwd + "/hozon.dat" open(file,"r:euc-jp") do |hyouji| while data = hyouji.gets if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ data name << $1 hoho << $4 syosai[$1] = $4 end end end #p hoho #p syosai print("\n") print("\n") print("保存方法\n") print("\n") print("\n") print("\n") print("

検索結果

\n") if syosai[name] = imo printf("

%s

\n",imo) printf("

%s

\n",syosai[imo]) end if syosai[name] = kaji printf("

%s

\n",kaji) printf("

%s

\n",syosai[kaji]) end if syosai[name] = kino printf("

%s

\n",kino) printf("

%s

\n",syosai[kino]) end if syosai[name] = gyoka printf("

%s

\n",gyoka) printf("

%s

\n",syosai[gyoka]) end if syosai[name] = syuji printf("

%s

\n",syuji) printf("

%s

\n",syosai[syuji]) end if syosai[name] = daiz printf("

%s

\n",daiz) printf("

%s

\n",syosai[daiz]) end if syosai[name] = tama printf("

%s

\n",tama) printf("

%s

\n",syosai[tama]) end if syosai[name] = tyomi printf("

%s

\n",tyomi) printf("

%s

\n",syosai[tyomi]) end if syosai[name] = niku printf("

%s

\n",niku) printf("

%s

\n",syosai[niku]) end if syosai[name] = nyu printf("

%s

\n",nyu) printf("

%s

\n",syosai[nyu]) end if syosai[name] = men printf("

%s

\n",men) printf("

%s

\n",syosai[men]) end if syosai[name] = moru printf("

%s

\n",moru) printf("

%s

\n",syosai[moru]) end if syosai[name] = yasai printf("

%s

\n",yasai) printf("

%s

\n",syosai[yasai]) end if syosai[name] = yushi printf("

%s

\n",yushi) printf("

%s

\n",syosai[yushi]) end print("\"yasuoka_san\" \n") print("

\n") print("食材保存検索ページへ\n") print("食材保存検索トップへ\n") print("やすおかさんちの冷蔵庫トップへ\n") print("

\n") print("\n") print("\n") 実行結果 ソース 保存方法

検索結果

こんにゃく

水の入った包装のまま冷蔵で保存する。

yasuoka_san

食材保存検索ページへ 食材保存検索トップへ やすおかさんちの冷蔵庫トップへ

kterm pan{YAMANO Shun}% ./syokuzai_hozon.rb [~/public_html/yonin] (offline mode: enter name=value pairs on standard input) imo_denpun="こんにゃく" 保存方法

検索結果

こんにゃく

水の入った包装のまま冷蔵で保存する。

yasuoka_san

食材保存検索ページへ 食材保存検索トップへ やすおかさんちの冷蔵庫トップへ

考察 ソースとktermの結果が一致していたため、このプログラムは正しい。 2. 発表するプロジェクトは保存検索に決まった。その理由として扱っているデータ の量が多いからである。デモ版については、須藤さんに担当して頂き、プログラ ムが完成し次第、報告する予定だ。ポスターは小野さんから作成して頂いたため、 パンフレットを誰が作成するのか決め、完成させることが必要である。 3. http://roy/~c111088/yonin/demae.redme 4. 5. http://cms.is.koeki-u.ac.jp/sns/diary/1094 6. 7. よく、「熊っぽい」と呼ばれるので熊をイメージして描いた。