第 13 回 自由課題準備 (3) レポート課題 氏名: 村上茉奈美 学籍番号: C1111352 語学クラス: 英語3 コース: 社会福祉 チーム名: 公益食堂 チームホームページアドレス: http://roy/~c111043/kosyoku.html 部門: お役立ち情報部門 プロジェクトコード名: cooking recipe チーム SNS アドレス: http://cms.is.koeki-u.ac.jp/sns/community/57 1. 自分の担当: 「今日のご飯は何?」のプログラム作成 及び、上記プロジェクトのプロジェクトページ作成 進展具合: ファイルopenが可能になったことにより、作業の効率が良くなっ た。 HTML文書で選択されたものに応じて、データから料理名を出した。 また、そのプログラム(.rb)にもCGIを使うことにより、 「料理名を選択すると、後のページで詳しいレシピを見ることが できる」ようにした。 レシピの表示については、table を使い、見やすくした。 そして、ページのデザインをするにあたって、各ロゴを作成した。 ここでは、プログラム作成について書く。 1. リンク先 http://roy/~c111135/koekisyokudou/recipe_cgi.html 2. 考えた設定 先週までは、各検索パターンに対応するプログラムのファイルopenが 出来なかった。しかし、今週は出来るようになった。 そのため、そこから先に進み、プログラムから選択し、 詳しいレシピをみることができるよう、選択後のプログラムを追加で作成した。 (なお、現時点でできているところまでを記載する。) 3. 作成したプログラム・データファイル (HTML文書の構造は前回と同様なので、ここでは記載しない。) (ファイルopenができたプログラムから記載する。) (データファイルは数が多いため、一部を記載する。) ・「料理のジャンルから選ぶ」場合のプログラム(recipe1.rb) #!/usr/bin/env ruby #coding: euc-jp require 'cgi' #「CGIを使う」と宣言する require 'kconv' cgi = CGI.new(:accept_charset => "EUC-JP") #cgi というCGI用のハッシュを新しく作り、CGIを日本語で受け付ける print("Content-type: text/html; charset=EUC-JP\n\n") #CGIの値を日本語で書き出す kind = cgi["genre"] #変数 kind には CGI変数の genre を代入する progname = "recipe1_1.rb" choice = Array.new if kind == "yasai" file = Dir.pwd + "/yasai.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "niku" file = Dir.pwd + "/niku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "gyokai" file = Dir.pwd + "/gyokai.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "gohan" file = Dir.pwd + "/gohan.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "pasgura" file = Dir.pwd + "/pasgura.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "men" file = Dir.pwd + "/men.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "soup" file = Dir.pwd + "/soup.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "curry" file = Dir.pwd + "/curry.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "salad" file = Dir.pwd + "/salad.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "flied" file = Dir.pwd + "/flied.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "nabe" file = Dir.pwd + "/nabe.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "kona" file = Dir.pwd + "/kona.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "egg" file = Dir.pwd + "/egg.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if kind == "kaisou" file = Dir.pwd + "/kaisou.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end #以下、HTML文書の中身 print("\n") print("\n") print("今日のご飯は何? -レシピ検索-\n") print("\n") print("\n") print("
\n") print("\n") print("
\n") print("

\"png\"

") printf("
\n", progname) print("

検索の結果、以下のようになりました。

") for i in choice printf("

%s

\n", i, i) end print("

") print("

") print("
\n") print("
\n") print("
\n") print("\n") print("\n") ・「食材から選ぶ」場合のプログラム(recipe2.rb) #!/usr/bin/env ruby #coding: euc-jp require 'cgi' #「CGIを使う」と宣言する require 'kconv' cgi = CGI.new(:accept_charset => "EUC-JP") #cgi というCGI用のハッシュを新しく作り、CGIを日本語で受け付ける print("Content-type: text/html; charset=EUC-JP\n\n") #CGIの値を日本語で書き出す food = cgi["syokuzai"] #変数 food には CGI変数の syokuzai を代入する progname = "recipe2_1.rb" choice = Array.new if food == "淡色野菜" file = Dir.pwd + "/tansyoku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "緑黄色野菜" file = Dir.pwd + "/ryoku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "いも類" file = Dir.pwd + "/imo.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "きのこ" file = Dir.pwd + "/kinoko.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "牛肉" file = Dir.pwd + "/gyu.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "豚肉" file = Dir.pwd + "/buta.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "鶏肉" file = Dir.pwd + "/tori.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "ひき肉、ハム、ウインナー" file = Dir.pwd + "/kakou.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "魚" file = Dir.pwd + "/fish.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "貝" file = Dir.pwd + "/kai.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "米" file = Dir.pwd + "/kome.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "麺(パスタ含む)" file = Dir.pwd + "/noodle.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "卵" file = Dir.pwd + "/egg1.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "大豆・大豆加工品" file = Dir.pwd + "/daizu.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if food == "海藻・乾物・こんにゃく" file = Dir.pwd + "/kaisou1.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end #以下、HTML文書の中身 print("\n") print("\n") print("今日のご飯は何? -レシピ検索-\n") print("\n") print("\n") print("
\n") print("\n") print("
\n") print("

\"png\"

") printf("
\n", progname) print("

検索の結果、以下のようになりました。

") for i in choice printf("

%s

\n", choice.rindex(i), i) end print("

") print("

") print("
\n") print("
\n") print("
\n") print("\n") print("\n") ・「調理時間から選ぶ」場合のプログラム(recipe3.rb) #!/usr/bin/env ruby #coding: euc-jp require 'cgi' #「CGIを使う」と宣言する require 'kconv' cgi = CGI.new(:accept_charset => "EUC-JP") #cgi というCGI用のハッシュを新しく作り、CGIを日本語で受け付ける print("Content-type: text/html; charset=EUC-JP\n\n") #CGIの値を日本語で書き出す jikan = cgi["time"] #変数 jikan には CGI変数の time を代入する progname = "recipe3_1.rb" choice = Array.new if jikan == "jyugo" file = Dir.pwd + "/jyugo.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if jikan == "sanjyu" file = Dir.pwd + "/sanjyu.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if jikan == "yonjyu" file = Dir.pwd + "/yonjyu.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if jikan == "gojyu" file = Dir.pwd + "/gojyu.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if jikan == "hour" file = Dir.pwd + "/hour.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end #以下、HTML文書の中身 print("\n") print("\n") print("今日のご飯は何? -レシピ検索-\n") print("\n") print("\n") print("
\n") print("\n") print("
\n") print("

\"png\"

") printf("
\n", progname) print("

検索の結果、以下のようになりました。

") for i in choice printf("

%s

\n", choice.rindex(i), i) end print("

") print("

") print("
\n") print("
\n") print("
\n") print("\n") print("\n") ・「カロリーから選ぶ」場合のプログラム(recipe4.rb) #!/usr/bin/env ruby #coding: euc-jp require 'cgi' #「CGIを使う」と宣言する require 'kconv' cgi = CGI.new(:accept_charset => "EUC-JP") #cgi というCGI用のハッシュを新しく作り、CGIを日本語で受け付ける print("Content-type: text/html; charset=EUC-JP\n\n") #CGIの値を日本語で書き出す health = cgi["cal"] #変数 health には CGI変数の cal を代入する progname = "recipe4_1.rb" choice = Array.new if health == "miman" file = Dir.pwd + "/miman.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if health == "nihyaku" file = Dir.pwd + "/nihyaku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if health == "sanbyaku" file = Dir.pwd + "/sanbyaku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if health == "yonhyaku" file = Dir.pwd + "/yonhyaku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if health == "gohyaku" file = Dir.pwd + "/gohyaku.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end if health == "ijyou" file = Dir.pwd + "/ijyou.dat" open(file, 'r:euc-jp') do |cook| while jyanru = cook.gets if /(\S+)/ =~ jyanru choice << jyanru.toeuc.chomp end end end end #以下、HTML文書の中身 print("\n") print("\n") print("今日のご飯は何? -レシピ検索-\n") print("\n") print("\n") print("
\n") print("\n") print("
\n") print("

\"png\"

") printf("
\n", progname) print("

検索の結果、以下のようになりました。

") for i in choice printf("

%s

\n", choice.rindex(i), i) end print("

") print("

") print("
\n") print("
\n") print("
\n") print("\n") print("\n") ・上記プログラムのもととなるデータの一部(yasai.dat) 大根のごまみそ汁 めかじきのトマト煮 キャベツとツナのドレッシングサラダ なすのはさみ蒸し ごぼうの卵とじ にんじんといんげんのふんわり揚げ 水菜の梅白和え みょうがとおくらの吸い物 キャベツとえびのクリームパスタ ツナと赤ピーマンのサラダ かぼちゃのチーズ焼き カラフルピーマンのいりたらこ ししとうのおかか炒め ミックスピスルス ほうれん草の卵ソテー 根菜とツナのサラダ アスパラと桜えびの炊き込みご飯 ブロッコリーとにんじんの豆乳みそ汁 アスパラとえのきの中華和え にんじんのポタージュ ほうれん草のソテー コンソメジュリエンヌ パプリカといかのガーリック炒め 豆腐とトマトのサラダ かぶと干しえびのさっと炒め ゴーヤのジョン レタスとコーンのペッパースープ わかめときゅうりのサラダ ピーマンの焼き浸し トマト茶碗蒸し ロール白菜 里いもと鶏肉のおろし煮 しいたけの肉詰め ごぼうと水菜の炒めあえ トマトと卵の中華スープ きのことごぼうのスープ ブロッコリーのごまみそあえ 桜えびとれんこんの炒め物 アボカドと長いものあえ物 かぼちゃのピーナッツサラダ カリフラワーとほうれん草のクリーム煮 レタスとチーズのサラダ いんげんのアーモンドあえ キャベツの塩昆布炒め 具だくさんスープ プチトマトのマリネ トマトと大豆のスープ トマトと牛ひき肉のチーズ焼き グリルかぼちゃのオリーブしょうゆ ・recipe1.rb(料理のジャンルから選ぶ)の各レシピを表示する プログラム(recipe1_1.rb) #!/usr/bin/env ruby #coding: euc-jp require 'cgi' #「CGIを使う」と宣言する cgi = CGI.new(:accept_charset => "EUC-JP") #cgi というCGI用のハッシュを新しく作り、CGIを日本語で受け付ける print("Content-type: text/html; charset=EUC-JP\n\n") #CGIの値を日本語で書き出す kind = cgi["genre"] #変数 kind には CGI変数の genre を代入する sentaku= Array.new #以下、HTML文書の中身 print("\n") print("\n") print("今日のご飯は何? -レシピ検索-\n") print("\n") print("\n") print("
\n") print("\n") print("
\n") print("

\"png\"

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

検索した結果、次のようになりました。

") if kind == "大根のごまみそ汁" print("") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "めかじきのトマト煮" print("
料理名大根のごまみそ汁
材料
  • 大根 … 80g
  • 大根の葉 … 適量
  • だし汁 … 400ml
  • みそ … 大さじ1
  • 白すりごま … 適量
  • 作り方
    1. 大根は皮をむき、5mm厚さのいちょう切りにする。
    2. 大根の葉は1cm長さに切る。
    3. 鍋にだし汁、1 を入れて火にかけ、材料がやわらかくなったら 2 の大根の葉を加え、みそを溶き入れる。
    4. 3 を器に盛り、白すりごまをふる。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "キャベツとツナのドレッシングサラダ" print("
    料理名めかじきのトマト煮
    材料
  • めかじき(切り身) … 小2切れ(160g)
  • 塩、こしょう … 各少々
  • 小麦粉 … 適量
  • トマト … 2個(400g)
  • マッシュルーム … 5個(40g)
  • 玉ねぎ … 1/4個(50g)
  • ブラックオリーブ(種抜き) … 6粒
  • オリーブ油 … 大さじ1
  • にんにく(みじん切り) … 1片分(10g)
  • 白ワイン … 大さじ4 →A
  • 生クリーム … 大さじ2(30g) →A
  • 塩 … 小さじ1/4 →A
  • コンソメスープの素(顆粒) … 大さじ1/2 →A
  • イタリアンパセリ … 少々
  • ライ麦パン … 4切れ(120g)(お好みで)
  • 作り方
    1. めかじきはひと口大に切って、塩、こしょうをふり、小麦粉を薄くまぶす。
    2. トマトはへたを除いてくし形に切り、マッシュルームは汚れをふいて1/4のくし形に切る。玉ねぎは薄切りにし、ブラックオリーブは半分に切る。
    3. フライパンにオリーブ油とにんにくのみじん切りを入れて火にかけ、香りが出たら 1 を焼く。
    4. 2 を加えて炒め、A を加えて混ぜながら煮て、器に盛り、イタリアンパセリをのせる。お好みでライ麦パンを添える。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "なすのはさみ蒸し" print("
    料理名キャベツとツナのドレッシングサラダ
    材料
  • キャベツ … 2枚(100g)
  • にんじん … 20g
  • レモン汁 … 大さじ2 →A
  • ツナ缶(小) … 1/2缶(40g) →A
  • はちみつ … 小さじ1 →A
  • 粗びきこしょう … 少々 →A
  • 作り方
    1. キャベツ、にんじんはせん切りにする。
    2. A をボウルに混ぜ合わせ、1 を加えてあえる。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "ごぼうの卵とじ" print("
    料理名なすのはさみ蒸し
    材料
  • なす … 2本(140g)
  • 片栗粉 … 適量
  • 鶏ひき肉 … 120g →A
  • 酒、しょうゆ、おろししょうが … 各小さじ1/2 →A
  • 青じそ … 2枚 →A
  • だし汁 … 200ml →B
  • 酒、みりん … 各大さじ1 →B
  • しょうゆ … 小さじ2 →C
  • しょうがの絞り汁 … 小さじ1 →C
  • 塩 … 少々 →C
  • 水溶き片栗粉 … 大さじ1
  • おろししょうが … 適量
  • 青じそ(せん切り) … 2枚
  • 作り方
    1. なすは縦に4等分に切り込みを入れ、水にさらしアクを抜く。
    2. A の青じそは粗みじん切りにする。
    3. A をボウルに入れて混ぜ合わせ、2等分にする。
    4. 1 の水けをよくふき取り、断面に片栗粉をまぶし、3 をはさむ。
    5. 耐熱皿に並べラップをして、電子レンジで4分30秒加熱する。
    6. 鍋に B を煮立て、C を加えて味を調え、水溶き片栗粉でとろみをつける。
    7. 器に 5 を切って盛り、6 をかけ、おろししょうがと青じそのせん切りを添える。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "にんじんといんげんのふんわり揚げ" print("
    料理名ごぼうの卵とじ
    材料
  • ごぼう … 1/4本(50g)
  • さやえんどう … 4枚
  • 卵 … 1個(60g)
  • だし汁 … 200ml~ →A
  • みりん … 大さじ1 →A
  • しょうゆ … 大さじ1と1/2 →A
  • 砂糖 … 小さじ1/2 →A
  • 作り方
    1. ごぼうはよく洗い、皮つきのまま大きめのささがきにする。
    2. さやえんどうはへたと筋を取り除き、塩ゆでし、せん切りにする。
    3. 鍋に A を入れて火にかけ、煮立ったら 1 を加えてふたをし、中弱火で7~8分煮る。
    4. 卵を溶きほぐし、3 に回し入れ、火を止めてふたをして蒸らす。
    5. 器に盛りつけ、2 をあしらう。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "水菜の梅白和え" print("
    料理名にんじんといんげんのふんわり揚げ
    材料
  • にんじん … 1/2本(100g)
  • いんげん … 5本(50g)
  • 長ひじき … 2g
  • えび(ブラックタイガーなど) … 3尾(120g)
  • はんぺん … 2/3枚(70g)
  • 酒 … 小さじ1
  • 卵黄 … 1個分 →A
  • 片栗粉 … 大さじ1 →A
  • 塩、こしょう … 各少々 →A
  • 揚げ油 … 適量
  • ポン酢しょうゆ、おろししょうが … 各適量
  • サラダ菜 … 2~4枚
  • 作り方
    1. にんじんは皮をむいて、3~4cm長さの細切りに、いんげんは筋を取りにんじんと同様に切る。ひじきは水でもどし、水けをきる。
    2. えびは殻をむいて背わたを取り、塩水(分量外)でさっと洗って水けをふき取る。はんぺんはひと口大に手でちぎる。
    3. 2 をフードプロセッサーに入れ、酒を加えて、ペースト状にする。
    4. A を加え、さらにかくはんし、ボウルに取り出し、1 を加えて混ぜ合わせる。
    5. 170℃の揚げ油に 4 をスプーンで落とし入れ、きつね色になるまで揚げる。
    6. サラダ菜を敷いた器に盛り、ポン酢しょうゆとおろししょうがを混ぜたものを添える。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end if kind == "みょうがとおくらの吸い物" print("
    料理名水菜の梅白和え
    材料
  • 水菜 … 80g
  • 白こんにゃく … 1/3枚(70g)
  • しょうゆ、みりん … 各小さじ1/2 →A
  • 木綿豆腐 … 1/3丁(100g)
  • 砂糖 … 小さじ1/2 →B
  • 塩 … 少々 →B
  • 梅干し … 1個(12g)
  • 作り方
    1. 水菜はさっとゆでて、冷水に取り、水けを絞って。3cm長さに切る。
    2. こんにゃくは薄い短冊形に切り、水からゆでてざるに上げ、しっかり水けをきって、ボウルに入れる。熱いうちに A をからめ、冷ます。
    3. 豆腐は水切りして、すり鉢に入れてすりつぶし B を加えてよく混ぜ合わせる。
    4. 梅干しは種を取り除いて細かくたたき、3 に加えて混ぜる。
    5. 2 の水けをきり、1 とともに 4 に加えてあえる。
    ") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") print("\n") end print("\n") print("\n") print("\n") print("\n") 4. もとにしたプログラムからの変更点 基礎プログラミングIIの第10回目のページに掲載されていた ./cgisrc/choice.rb をもとにした。 CGI変数やファイルopenの際の変数の名前などを変更した。 また、結果画面にCSSを付け加え、背景等の色を表示するようにした。 それとともに、結果表示の画面にロゴを入れた。 5. 実行結果 (Webページ上での出力結果を出すため、ソースを貼り付ける。) ・recipe1.rb(プログラム)の実行結果(「野菜」を選択した場合) 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    大根のごまみそ汁

    めかじきのトマト煮

    キャベツとツナのドレッシングサラダ

    なすのはさみ蒸し

    ごぼうの卵とじ

    にんじんといんげんのふんわり揚げ

    水菜の梅白和え

    みょうがとおくらの吸い物

    キャベツとえびのクリームパスタ

    ツナと赤ピーマンのサラダ

    かぼちゃのチーズ焼き

    カラフルピーマンのいりたらこ

    ししとうのおかか炒め

    ミックスピスルス

    ほうれん草の卵ソテー

    根菜とツナのサラダ

    アスパラと桜えびの炊き込みご飯

    ブロッコリーとにんじんの豆乳みそ汁

    アスパラとえのきの中華和え

    にんじんのポタージュ

    ほうれん草のソテー

    コンソメジュリエンヌ

    パプリカといかのガーリック炒め

    豆腐とトマトのサラダ

    かぶと干しえびのさっと炒め

    ゴーヤのジョン

    レタスとコーンのペッパースープ

    わかめときゅうりのサラダ

    ピーマンの焼き浸し

    トマト茶碗蒸し

    ロール白菜

    里いもと鶏肉のおろし煮

    しいたけの肉詰め

    ごぼうと水菜の炒めあえ

    トマトと卵の中華スープ

    きのことごぼうのスープ

    ブロッコリーのごまみそあえ

    桜えびとれんこんの炒め物

    アボカドと長いものあえ物

    かぼちゃのピーナッツサラダ

    カリフラワーとほうれん草のクリーム煮

    レタスとチーズのサラダ

    いんげんのアーモンドあえ

    キャベツの塩昆布炒め

    具だくさんスープ

    プチトマトのマリネ

    トマトと大豆のスープ

    トマトと牛ひき肉のチーズ焼き

    グリルかぼちゃのオリーブしょうゆ

    ・recipe2.rb(プログラム)の実行結果(「きのこ」を選択した場合) 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    鶏ときのこのピラフ

    エリンギのあわび風煮込み

    きのことベーコンのシチュー

    しいたけの肉詰め

    きのことごぼうのスープ

    ・recipe3.rb(プログラム)の実行結果(「46~1時間」を選択した場合) 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    にんじんといんげんのふんわり揚げ

    わかめご飯

    野菜巻きカツ

    アスパラと桜えびの炊き込みご飯

    サーモンのハーブチーズ焼き

    ほたてとスキムミルクの中華粥

    黒豆ご飯

    おからのヘルシー担々麺

    まろやかトマトチキンカレー

    揚げさば南蛮

    れんこんハンバーグ

    豆腐のグラタン

    まいたけご飯

    ・recipe4.rb(プログラム)の実行結果(「401~500kcal」を選択した場合) 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    キャベツとえびのクリームパスタ

    玄米トマトリゾット

    たらのにんにくパン粉焼き

    きのことベーコンのシチュー

    おからのヘルシー担々麺

    あじの漬け丼

    6. 考察 プログラムがきちんと表示されるのか、Kterm上でも確認する。 ・recipe1.rb(プログラム)の実行結果(「野菜」を選択した場合) roy{c111135}% ./recipe1.rb [~/public_html/koekisyokudou] (offline mode: enter name=value pairs on standard input) genre="yasai" Content-type: text/html; charset=EUC-JP 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    大根のごまみそ汁

    めかじきのトマト煮

    キャベツとツナのドレッシングサラダ

    なすのはさみ蒸し

    ごぼうの卵とじ

    にんじんといんげんのふんわり揚げ

    水菜の梅白和え

    みょうがとおくらの吸い物

    キャベツとえびのクリームパスタ

    ツナと赤ピーマンのサラダ

    かぼちゃのチーズ焼き

    カラフルピーマンのいりたらこ

    ししとうのおかか炒め

    ミックスピスルス

    ほうれん草の卵ソテー

    根菜とツナのサラダ

    アスパラと桜えびの炊き込みご飯

    ブロッコリーとにんじんの豆乳みそ汁

    アスパラとえのきの中華和え

    にんじんのポタージュ

    ほうれん草のソテー

    コンソメジュリエンヌ

    パプリカといかのガーリック炒め

    豆腐とトマトのサラダ

    かぶと干しえびのさっと炒め

    ゴーヤのジョン

    レタスとコーンのペッパースープ

    わかめときゅうりのサラダ

    ピーマンの焼き浸し

    トマト茶碗蒸し

    ロール白菜

    里いもと鶏肉のおろし煮

    しいたけの肉詰め

    ごぼうと水菜の炒めあえ

    トマトと卵の中華スープ

    きのことごぼうのスープ

    ブロッコリーのごまみそあえ

    桜えびとれんこんの炒め物

    アボカドと長いものあえ物

    かぼちゃのピーナッツサラダ

    カリフラワーとほうれん草のクリーム煮

    レタスとチーズのサラダ

    いんげんのアーモンドあえ

    キャベツの塩昆布炒め

    具だくさんスープ

    プチトマトのマリネ

    トマトと大豆のスープ

    トマトと牛ひき肉のチーズ焼き

    グリルかぼちゃのオリーブしょうゆ

    ・recipe2.rb(プログラム)の実行結果(「きのこ」を選択した場合) roy{c111135}% ./recipe2.rb [~/public_html/koekisyokudou] (offline mode: enter name=value pairs on standard input) syokuzai="きのこ" /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:610: warning: regexp match /.../n against to EUC-JP string Content-type: text/html; charset=EUC-JP 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    鶏ときのこのピラフ

    エリンギのあわび風煮込み

    きのことベーコンのシチュー

    しいたけの肉詰め

    きのことごぼうのスープ

    ・recipe3.rb(プログラム)の実行結果(「46~1時間」を選択した場合) oy{MURAKAMI Manami}% ./recipe3.rb [~/public_html/koekisyokudou] (offline mode: enter name=value pairs on standard input) time="gojyu" Content-type: text/html; charset=EUC-JP 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    にんじんといんげんのふんわり揚げ

    わかめご飯

    野菜巻きカツ

    アスパラと桜えびの炊き込みご飯

    サーモンのハーブチーズ焼き

    ほたてとスキムミルクの中華粥

    黒豆ご飯

    おからのヘルシー担々麺

    まろやかトマトチキンカレー

    揚げさば南蛮

    れんこんハンバーグ

    豆腐のグラタン

    まいたけご飯

    ・recipe4.rb(プログラム)の実行結果(「401~500kcal」を選択した場合) roy{c111135}% ./recipe4.rb [~/public_html/koekisyokudou] (offline mode: enter name=value pairs on standard input) cal="gohyaku" Content-type: text/html; charset=EUC-JP 今日のご飯は何? -レシピ検索-

    png

    検索の結果、以下のようになりました。

    キャベツとえびのクリームパスタ

    玄米トマトリゾット

    たらのにんにくパン粉焼き

    きのことベーコンのシチュー

    おからのヘルシー担々麺

    あじの漬け丼

    ・recipe1.rb(料理のジャンルから選ぶ)の各レシピを表示する プログラム(recipe1_1.rb)の実行結果 (「大根のごまみそ汁」を選択した場合) roy{c111135}% ./recipe1_1.rb [~/public_html/koekisyokudou] (offline mode: enter name=value pairs on standard input) genre="大根のごまみそ汁" /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:602: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:592: warning: regexp match /.../n against to EUC-JP string /usr/local/ruby/1.9/lib/ruby/1.9.1/cgi/core.rb:610: warning: regexp match /.../n against to EUC-JP string Content-type: text/html; charset=EUC-JP 今日のご飯は何? -レシピ検索-

    png


    検索した結果、次のようになりました。

    料理名みょうがとおくらの吸い物
    材料
  • オクラ … 4本(32g)
  • みょうが … 1個(10g)
  • しょうが … 1片(10g)
  • だし汁 … 400ml
  • 酒 … 大さじ1/2 →A
  • みりん、薄口しょうゆ … 各小さじ1 →A
  • 塩 … 小さじ1/4 →A
  • 作り方
    1. オクラは塩少々(分量外)で板ずりして、水洗いし、へたを切り落として、5mm幅の小口切りにする。みょうがも5mm幅の薄切りにし、さっと水に放って水けをきる。しょうがはせん切りにする。
    2. 鍋にだし汁を入れて中火にかけ、煮立ったら A を加え、再び煮立ったら 1 を加える。さらにひと煮立ちしたら器にそそぐ。
    確認した結果、ファイルopenにした部分が正しく表示されていた。 また、データと表示されているものが一致していることが分かった。 よって、このプログラムは正しいということができる。 recipe2.rb や recipe3.rb、recipe4.rb で選択された料理のレシピを 表示するプログラム(recipe2_1.rb、recipe3_1.rb、recipe4_1.rb)は 冬休み中に完成させる。 今後、レシピの充実、プログラムの完成と共に、 発表の練習をして、本番に望みたい。 7. 参考文献 ・http://roy/~madoka/2012/r2/10/r2_10_16_appendix_08_fileopenkconv.html 2012年度 基礎プログラミングII 第10回 (CGI ことおぼえ) 「open -- end の読み込み」 作者: 西村まどか 2. 全体の進み具合: 今週は ・活動風景写真撮影 ・チームパンフレット作成 ・発表のメインにするプロジェクトの決定 ・プログラムの内容の充実 を主に行った。 メンバー同士で連絡を取り合って話し合い、発表へ向けて 準備している段階だ。 プログラムに関しては、掲示板の方は大まかに完成してい るので、私が作成しているレシピ検索を冬休み中に完成さ せていく。 それと同時に、発表の練習も行い、スムーズにできるよう にしていく。 3. 「はらぺこ掲示板」の解説書URL http://roy/~c111043/koekisyokudou/keiziban/kaisetu.txt 「今日のご飯は何?」の解説書URL http://roy/~c111043/koekisyokudou/recipe/kaisetu.txt 4. 添付するもの (データファイル・ロゴに関しては、容量が大きくなるため、一部を添付する。) ・「料理のジャンルから選ぶ」場合のプログラム(recipe1.rb) ・「食材から選ぶ」場合のプログラム(recipe2.rb) ・「調理時間から選ぶ」場合のプログラム(recipe3.rb) ・「カロリーから選ぶ」場合のプログラム(recipe4.rb) ・上記プログラムのもととなるデータの一部(yasai.dat) ・recipe1.rb(料理のジャンルから選ぶ)の各レシピを表示する プログラム(recipe1_1.rb) ・今日のご飯は何?(プロジェクトページ)のロゴ(recipe1.png) ・今回のレポート課題の自画像(ptrt_r2_c111135.obj) ・自画像のPNG形式(ptrt_r2_c111135.png) 5. 活動風景写真 一人2枚ずつ撮影した写真を全て同一のトピックで公開している。 活動風景写真を公開しているトピックのURL http://cms.is.koeki-u.ac.jp/sns/communityTopic/322 7. 自画像 ファイル名: ptrt_r2_c111135.obj / ptrt_r2_c111135.png 今回の画像では、髪型に着目した。 単に直線で表現するのではなく、曲線にして丸みを帯びるようにした。 自画像を adv2 に掲載した。 リンク先: http://roy/~c111135/adv2/ なお、そのページに自画像へのリンクを貼り、 そこからも見ることができるようにしている。 共同学習者: 公益食堂のメンバー
    料理名 大根のごまみそ汁
    材料
  • 大根 … 80g
  • 大根の葉 … 適量
  • だし汁 … 400ml
  • みそ … 大さじ1
  • 白すりごま … 適量
  • 作り方
    1. 大根は皮をむき、5mm厚さのいちょう切りにする。
    2. 大根の葉は1cm長さに切る。
    3. 鍋にだし汁、1 を入れて火にかけ、材料がやわらかくなったら 2 の大根の葉を加え、みそを溶き入れる。
    4. 3 を器に盛り、白すりごまをふる。