第8回 基礎プログラミング I レポート課題 xxxxxxxx C109xxx 英語3 政策マネジメント 1-A Amazonなどのショッピングサイトで商品を注文した際に送られてくる注文確認の メールも、受注データをテンプレートに当てはめて作成されていると思われる。 1-B 注文確認に必要だと思われる、商品名・請求額・氏名・届け先・ 発送予定日のデータ、web_data_c109046.dat を作成した。 文字数が多く体裁は悪いが、途中で改行をしていないため、正しく動作する。 #名前 #住所 #商品 # 値段 #発送日 徳川家康 東京都千代田区千代田1-1 体脂肪計タニタの社員食堂 1000 6/10 徳川秀忠 東京都千代田区千代田1-2 13歳のハローワーク 2500 6/4 徳川家光 東京都千代田区千代田1-3 ドグラマグラ 600 6/30 徳川家綱 東京都千代田区千代田1-4 アイアンマン 3500 6/15 徳川綱吉 東京都千代田区千代田1-5 かんたん! 手づくり犬ごはん 1000 6/21 徳川家宣 東京都千代田区千代田1-6 絶体絶命都市 1800 6/11 徳川家継 東京都千代田区千代田1-7 もののけ姫 5000 6/24 徳川吉宗 東京都千代田区千代田1-8 マネジメント 2000 6/3 徳川家重 東京都千代田区千代田1-9 フードプロセッサー 10000 8/19 徳川家治 東京都千代田区千代田1-10 それでもボクはやってない 3000 6/7 徳川家斉 東京都千代田区千代田1-11 車輪の下 400 6/14 徳川家慶 東京都千代田区千代田1-12 ティファール 10000 6/1 徳川家定 東京都千代田区千代田1-13 ∞プチプチ 800 5/5 徳川家茂 東京都千代田区千代田1-14 バイオハザード 1500 6/8 徳川慶喜 東京都千代田区千代田1-15 ホームベーカリー 30000 6/21 ---------------------------------- 2. Bを選択した。 a) 上記の設定とデータを使い、授業で作成した ticket/exp_html.rb と プログラム問題Aで作成した web_html_c109046.rb を元に、 ショッピングサイトで注文をした客に送信される、注文確認のHTMLメール という設定のプログラム、web_open_w_c109046.rb を作成した。 cssについては余力がなかったので作成できなかった。 b) #!/usr/koeki/bin/ruby name = "徳川慶喜" # 出力の際に代入される変数 address = "東京都千代田区千代田1-15" product = "ホームベーカリー" price = 30000 # 数字なので""がいらない day = 6/21 # これも数字と記号なのでいらない open("web.html","w") do |order| # open-end文で後ろの()内のファイルを開き、"w"で左のファイルに書き込んでいる order はこれから書く中身を入れる変数。これを実行して出力する。 order.print("\n\n") # 変数にhtml と head のタグが代入される。 order.print("ご注文確認 Anazon.co.jp\n") # 変数にタイトルが代入される。 order.print("\n") # 変数に headタグの終わりを指示。 order.print("\n") # 変数に bodyタグが代入され、ここから本文 order.print("

ご注文確認

\n") # 変数に h1タグで囲まれた文字列が大見出しになって代入される。 order.print("

Anazon.co.jpをご利用頂きありがとうございます。ご注文 内容は以下のとおりです。

\n") # pタグで囲まれた文字列が平文で変数に代入される。 order.print("\n") # テーブルタグはじまりを代入。 order.print("\t\n") # テーブルの1段目を代入。 order.print("\t\t\n") # テーブル1段目の1列目を代入 order.printf("\t\t\n",price) # テーブル1段目の2列目を代入。 また、%d に price = 30000 が代入され表示される。 order.print("\t\n") # テーブルの1段目は終わることを代入。 order.print("\t\n") #テーブルの2段目のはじまりを代入。 order.printf("\t\t\n",name) # テーブル2段目の1列目が代入され、文字列には name = "徳川慶喜"が 代入され表示される。文字列なので %s order.printf("\t\t\n",product) # テーブル2段目の2列目が代入され、文字列には product = "ホームベーカリー"が代入され表示される。 order.print("\t\n") # テーブルの2段目の終わりを代入。 order.print("\t\n") # テーブルの3段目のはじまりを代入。 order.printf("\t\t\n",address) # テーブル3段目の1列目が代入され、文字列に address = "東京都千代田区千代田1-15"が代入され表示される。 order.printf("\t\t\n",day) # テーブル3段目の2列目が代入され、文字列に day = 6/21 が代入され表示される。 order.print("\t\n") # テーブル3段目の終わりを代入。 order.print("
請求先住所:注文合計: %d
%s%s
%s配送予定日: %s
\n") # テーブルの終わりを代入。 order.printf("\n\n") # body,html すなわち、本文も文書全体も終わったと代入。 end # open の end c) web_html_c109046.rb からの変更としては open -- end文を追加して、 自動的にhtmlファイルに書き込むようにし、それに合わせてprint文の前に 変数をつけた。また、自分の設定に合わせて変数や print文の内容を変更した。 d) ただ実行すると、すべて入ってしまって表示されないので cat で実行した。 プログラム) pan{c109046}% cat web_open_w_c109046.rb [~/public_html] #!/usr/koeki/bin/ruby name = "徳川慶喜" address = "東京都千代田区千代田1-15" product = "ホームベーカリー" price = 30000 day = 6/21 open("web.html","w") do |order| order.print("\n\n") order.print("ご注文確認 Anazon.co.jp\n") order.print("\n") order.print("\n") order.print("

ご注文確認

\n") order.print("

Anazon.co.jpをご利用頂きありがとうございます。ご注文内容は以下のとおりです。

\n") order.print("\n") order.print("\t\n") order.print("\t\t\n") order.printf("\t\t\n",price) order.print("\t\n") order.print("\t\n") order.printf("\t\t\n",name) order.printf("\t\t\n",product) order.print("\t\n") order.print("\t\n") order.printf("\t\t\n",address) order.printf("\t\t\n",day) order.print("\t\n") order.print("
請求先住所:注文合計: %d
%s%s
%s配送予定日: %d
\n") order.printf("\n\n") end 作成されたhtmlファイル) pan{c109046}% cat c109046.html [~/public_html] ご注文確認 Anazon.co.jp

ご注文確認

Anazon.co.jpをご利用頂きありがとうございます。ご注文内容は以下のとおりです。

請求先住所: 注文合計: 30000
徳川慶喜 ホームベーカリー
東京都千代田区千代田1-15 配送予定日: 6/21
pan{c109046}% エラーは出ず、正常に表示された。 WEBページ http://roy/~c109046/c109046.html d) 想定した通りにブラウザに表示された。 htmlファイルはそのままでは実行できないが、catで実行することが出来た。 WEBページのソースのように表示されるので、きちんと動作していることが 確認できた。 参考文献 基礎プログラミング I 第8回 電子チケットを作ろう 「HTML 文書の打ち出し」 http://roy/~madoka/2010/r1/08/08_10_theme_05_writehtml.html 著者: 西村まどか --------------------------- 3 今回はプログラムで html を書くことを学んだ。Kterm で実行して 確認できるので便利だと思う。個人的に、リテラシーで書いたときより大変ではあったが 頭を悩ますのが楽しかった。ただ、プログラムだということを忘れて、 チェンジモードをせずに、ブラウザで表示されない失敗があったので 気を付けたい。 レポートでは、最初書き込むhtmlファイルを自分で作らなければならないのだと 勘違いし、いちいちhtmlファイル作って、そのうえ内容を間違えて、 ブラウザで表示されないという大変時間を無駄にする勘違いをしていた。 自動でhtmlファイルが作られるからこそプログラムでhtmlを書く意味、 便利さをこの失敗で実感した。 また、今回は設問を考える上で多くの勘違いをしていて、file openの 書き込みと読み込みを使うのだと思い、open - w の上に open - r を作り 空白を使って筆記問題で作成したデータを読み込ませた。 ブラウザで表示できたのだが、データの一番最後しか表示されず、 変数 += 1 を使うのかなど行き詰まっているところで勘違いに気付いた。 しかし、授業で学んできた方法を組み合わせてプログラムを作ってみて、 もっと自由に作れる、上の世界があるのだと感じた。 しかし時間をかなり無駄にしてしまって、A問題の解説などが出来なかったので 設問と自分が何をすればよいかが、すばやく理解できるように頑張ります。 共同学習者: 笹原千珠子