第8回 基礎プログラミング I レポート課題 氏名:xxxxxxxx 学籍番号:c109xxx 語学クラス:中国語1 コース(系):環境サイエンス 1、 A、 学生証、パソコンにログインする際のパスワード、買い物などをする際に使用す る会員カードや、図書館の貸し出しカードが当てはまると考えられる。 B、 国立図書館の会員カードに登録されている個人データ web_data_c109067.dat を作成した。 会員番号、名前、性別、誕生日、連絡先、本の返却日を表示させるようにした。 作成したデータ # 会員番号 # 名前 # 性別 # 誕生日 # 本の返却日 # 連絡先 01. 嘉納 泰斗 男 1月 4日 5月23日 090-4663-1257 02. 齋藤 友 女 10月9日 5月10日 080-4982-6785 03. 黒坂 章吾 男 9月13日 5月29日 090-1245-7235 04. 紀村 昂 男 2月 6日 6月 3日 080-2234-5468 05. 今村 千代 女 3月26日 5月15日 090-7790-3257 06. 柿崎 一二三 女 4月22日 6月 1日 090-7322-1289 07. 小野 衛 男 8月 1日 5月22日 080-2121-5685 08. 我如古 亮 男 6月17日 6月 8日 090-5678-0974 10. 阿部 和夫 男 11月29日 5月27日 080-2124-5563 2、プログラム問題 a、考えた設定 国立図書館で本を借りた際に、誰が本を借り、いつまでに本を返却しなければならない 表示されるようにした。 b、作成したプログラム #!/usr/koeki/bin/ruby number = "01" # 会員番号をしまう変数 name = "嘉納 泰斗" # 名前をしまう変数 sei = "男" # 性別をしまう変数 birth = "1月 4日" # 誕生日をしまう変数 re = "5月23日" # 本の返却日をしまう変数 add = "090-4663-1257" # 連絡先をしまう変数 print("** 国立図書館会員会員カード **\n") # " " の文章を表示させる print("========カード登録情報========\n") printf("会員番号 %s 番\n",number) # 会員番号を表示させる printf("氏名 : %s 様\n",name) # 名前を表示させる printf("性別 : %s \n",sei) # 性別を表示させる printf("生年月日 : %s \n",birth) # 誕生日を表示させる printf("本の返却日 : %s \n",re) # 本の返却日を表示させる printf("連絡先 : %s \n",add) # 連絡先を表示させる printf("会員番号 %s 番 * %s 様 (%s) * 生年月日 %s \n",number,name,sei,birth) # 会員番号、名前、性別、誕生日を表示させる printf("本の貸し出し期間は2週間なので、%s までに本を返却してください。\n",re) # 本の返却期日を表示 print("ご注意\n") printf("貸し出し期限を過ぎた場合、%s 様の連絡先 : %s に連絡させていただきます。 \n",name,add) # 名前、連絡先を表示 c、もとにしたプログラムからの変更点 exp_html.rb のプログラムをもとにした。 変数をしまう項目名、内容、print 数を変更した。 d、実行結果 pan{c109067}% ./web_order_c109067.rb [~/public_html] ** 国立図書館会員会員カード ** ========カード登録情報======== 会員番号 01 番 氏名 : 嘉納 泰斗 様 性別 : 男 生年月日 : 1月 4日 本の返却日 : 5月23日 連絡先 : 090-4663-1257 会員番号 01 番 * 嘉納 泰斗 様 (男) * 生年月日 1月 4日 本の貸し出し期間は2週間なので、5月23日 までに本を返却してください。 ご注意 貸し出し期限を過ぎた場合、嘉納 泰斗 様の連絡先 : 090-4663-1257 に連絡させてい ただきます。 e、考察 データを自分で打ち込み表示させるプログラムなので、作成したデータと内容が 合っているか確認したところ、合っていたので、データの結果は正しい。 A、 a、考えた設定 web_order_c109067.rb で作成したデータを HTML 形式で表示させるようにした。 b、作成したプログラム #!/usr/koeki/bin/ruby number = "01" # 会員番号をしまう変数 name = "嘉納 泰斗" # 名前をしまう変数 sei = "男" # 性別をしまう変数 birth = "1月 4日" # 誕生日をしまう変数 re = "5月23日" # 本の返却日をしまう変数 add = "090-4663-1257" # 連絡先をしまう変数 print("\n\n") # HTML 文章であることと、ヘッド部分始まりを示す print("\t** 国立図書館会員会員カード **</h1>\n") # 題名 print("</head>\n") # ヘッド部分終了 print("<body>\n") # 文章本文の始まり print("<h1>==========カード登録情報===========</h1>\n") # h1 タグで大きな見出しを指定する printf("<h2>会員番号 %s 番</h2>\n",number) # 会員番号を表示させる printf("<h2>氏名 : %s 様</h2>\n",name) # 名前を表示させる # h2 タグは h1 タグの次に大きい表示となる print("<table>\n") # テーブルを作成 print("\t<tr>\n") # 新しい行の始まり printf("\t\t<td>性別 : %s</td>\n",sei) # 性別を表示させる print("\t</tr>\n") # 行終わり print("\t<tr>\n") printf("\t\t生年月日 : %s</td>\n",birth) # 誕生日を表示させる print("\t</tr>\n") print("\t<tr>\n") printf("\t\t本の返却日 : %s</td>\n",re) # 本の返却日を表示させる print("\t</tr>\n") print("\t<tr>\n") printf("\t\t連絡先 : %s</td>\n",add) # 連絡先を表示させる print("\t</tr>\n") print("</table>\n") # テーブル終了 print("<h1>==========本の返却情報==========</h1>\n") printf("<p>会員番号 %s 番 * %s 様 (%s) * 生年月日 %s</p>\n",number,name,sei, birth) # 会員番号、名前、性別、誕生日を表示させる # <p> は通常の文章 #</p> は通常の文章終了 printf("<p>本の貸し出し期間は2週間なので、%s までに本を返却してください。 </p>\n",re) # 本の返却期日を表示 print("<h2>!!ご注意!!</h2>\n") printf("<p>貸し出し期限を過ぎた場合、 %s 様の連絡先 : %s に連絡させていただきます。</p>\n",name,add) # 名前、連絡先を表示 printf("</body>\n</html>\n") # body、htmlを終了 c、もとにしたプログラムからの変更点 web_order_c109067.rb のプログラムをもとにし、「table tag 出力」に掲載さ れているプログラムを参考にした。 <html> </html> * <table> </table> * <tr> </tr> * <td></td> * \t タグを 付け加えた。 d、実行結果 pan{c109067}% ./web_html_c109067.rb [~/public_html] <html> <head> <title>** 国立図書館会員会員カード **</h1> </head> <body> <h1>==========カード登録情報===========</h1> <h2>会員番号 01 番</h2> <h2>氏名 : 嘉納 泰斗 様</h2> <table> <tr> <td>性別 : 男</td> </tr> <tr> 生年月日 : 1月 4日</td> </tr> <tr> 本の返却日 : 5月23日</td> </tr> <tr> 連絡先 : 090-4663-1257</td> </tr> </table> <h1>==========本の返却情報==========</h1> <p>会員番号 01 番 * 嘉納 泰斗 様 (男) * 生年月日 1月 4日</p> <p>本の貸し出し期間は2週間なので、5月23日 までに本を返却してください。 </p> <h2>!!ご注意!!</h2> <p>貸し出し期限を過ぎた場合、 嘉納 泰斗 様の連絡先 : 090-4663-1257 に連絡させていただきます。</p> </bpdy> </html> e、考察 タイトルも中央部分に表示され、文章の内容も正しく表示されているか確かめた ところ合っていたので、実行結果は正しいといえる。 B、 a、考えた設定 まず、プログラム web_html_c109067.rb をもとに、プログラムexp.html と express.html を参考に web_open_w_c109067.rb を作成した。 次に、express.css を参考に web_c109067.css を作成した。 b、作成したプログラム まず web_open_w_c109067.rb を作成した。 #!/usr/koeki/bin/ruby number = "01" # 会員番号をしまう変数 name = "嘉納 泰斗" # 名前をしまう変数 sei = "男" # 性別をしまう変数 birth = "1月 4日" # 誕生日をしまう変数 re = "5月23日" # 本の返却日をしまう変数 add = "090-4663-1257" # 連絡先をしまう変数 open("c109067.html","w") do |html| # ファイル変数を html とした html.print("<html>\n<head>\n") html.print("\t<title>** 国立図書館会員会員カード **\n") # スタイルシートを挿入し、c109067.css を挿入する html.print("\n") html.print("\n") html.print("

==========カード登録情報===========

\n") html.printf("

会員番号 %s 番

\n",number) # 会員番号を表示させる html.printf("

氏名 : %s 様

\n",name) # 名前を表示させる html.print("\n") html.print("\t\n") html.printf("\t\t

性別 : %s

\n",sei) # 性別を表示させる html.print("\t\n") html.print("\t\n") html.printf("\t\t

生年月日 : %s

\n",birth) # 誕生日を表示させる html.print("\t\n") html.print("\t\n") html.printf("\t\t

本の返却日 : %s\n",re) # 本の返却日を表示させる html.print("\t

\n") html.print("\t\n") html.printf("\t\t

連絡先 : %s

\n",add) # 連絡先を表示させる html.print("\t\n") html.print("
\n") html.print("

==========本の返却情報==========

\n") html.printf("

会員番号 %s 番 * %s 様 (%s) * 生年月日%s

\n",number,name,sei, birth) # 会員番号、名前、性別、誕生日を表示させる html.printf("

本の貸し出し期間は2週間なので、%s までに本を返却してください。

\n",re) # 本の返却期日を表示 html.print("

!!ご注意!!

\n") html.printf("

貸し出し期限を過ぎた場合、 %s 様の連絡先 : %s に連絡させていただきます。

\n",name,add) # 名前、連絡先を表示 html.printf("\n\n") end 次にweb_c109067.css を作成した。 body { background: LemonChiffon; # background…背景の色指定 font-size: 1em; # font-size…フォントサイズ指定 } h1 { color: Darkorange; # color…文字の色指定 background: PaleGoldenRod; font-size: 2em; text-align: center; # text-align…center に表示させる padding: 1em; # padding…背景で囲った部分を増やす } h2 { font-size: 1.5em; text-align: center; } h3 { font-size: 1em; text-align: center; color: SaddleBrown; } p{ background: LemonChiffon; color: SaddleBrown; font-size: 1em; text-align: center; } table{ border-collapse: collapse; border: 1px LemonChiffon; } tr{ border: 1px LemonChiffon; } c、もとにしたプログラムからの変更点 まず、プログラム web_html_c109067.rb をもとに、プログラムexp.html と express.html を参考に web_open_w_c109067.rb を作成した。 内部変数 html 、end、html.printf("\n\n") を付け加えた。 次に、express.css を参考に web_c109067.css を作成した。 項目数、色、フォントサイズ、文字の位置を変更した。 d、実行結果 Kterm での表示結果 pan{c109067}% cat web_open_w_c109067.rb [~/public_html] #!/usr/koeki/bin/ruby number = "01" # 会員番号をしまう変数 name = "嘉納 泰斗" # 名前をしまう変数 sei = "男" # 性別をしまう変数 birth = "1月 4日" # 誕生日をしまう変数 re = "5月23日" # 本の返却日をしまう変数 add = "090-4663-1257" # 連絡先をしまう変数 open("c109067.html","w") do |html| html.print("\n\n") html.print("\t** 国立図書館会員会員カード **\n") html.print("\t\n") html.print("\n") html.print("\n") html.print("

==========カード登録情報===========

\n") html.printf("

会員番号 %s 番

\n",number) # 会員番号を表示させる html.printf("

氏名 : %s 様

\n",name) # 名前を表示させる html.print("\n") html.print("\t\n") html.printf("\t\t

性別 : %s

\n",sei) # 性別を表示させる html.print("\t\n") html.print("\t\n") html.printf("\t\t

生年月日 : %s

\n",birth) # 誕生日を表示させる html.print("\t\n") html.print("\t\n") html.printf("\t\t

本の返却日 : %s

\n",re) # 本の返却日を表示させる html.print("\t\n") html.print("\t\n") html.printf("\t\t

連絡先 : %s

\n",add) # 連絡先を表示させる html.print("\t\n") html.print("
") html.print("

==========本の返却情報==========

\n") html.printf("

会員番号 %s 番 * %s 様 (%s) * 生年月日%s

\n",number,name,sei, birth) # 会員番号、名前、性別、誕生日を表示させる html.printf("

本の貸し出し期間は2週間なので、%s までに本を返却してください。

\n",re) # 本の返却期日を表示 html.print("

!!ご注意!!

\n") html.printf("

貸し出し期限を過ぎた場合、 %s 様の連絡先 : %s に連絡させていただきます。

\n",name,add) # 名前、連絡先を表示 html.printf("\n\n") end ホームページ画面 pan{c109067}% cat c109067.html [~/public_html] ** 国立図書館会員会員カード **

==========カード登録情報===========

会員番号 01 番

氏名 : 嘉納 泰斗 様

性別 : 男

生年月日 : 1月 4日

本の返却日 : 5月23日

連絡先 : 090-4663-1257

==========本の返却情報==========

会員番号 01 番 * 嘉納 泰斗 様 (男) * 生年月日1月 4日

本の貸し出し期間は2週間なので、5月23日 までに本を返却してください。

!!ご注意!!

貸し出し期限を過ぎた場合、 嘉納 泰斗 様の連絡先 : 090-4663-1257 に連絡させていただきます。

ホームページアドレスは http://roy/~c109067/c109067.html です。 e、考察 web_c109067.css ファイルを読み込ませ、ホームページ画面を確認したところ、自分が 指定した文字部分がセンターに表示される予定だった部分が、表示されず端に寄ったま まの状態になっていた。確認したところ自分がセンターに表示させたい部分が、他の指 定場所に含まれていたことが分かった。なので、

を新たに加え、指定場所を 増やした。そして再度web_open_w_c109067.rb プログラムを実行したところ、正しく表 示された。 web_c109067.css ファイルを読み込ませても、フォントサイズや色もきちんと表 示されたため、正確にプログラムが起動しているといえる。 学んだこと ・  …HTML 文書であることを示すタグ。 ・ …情報の題名や情報に関連することを表示させるタグ。 ・ …題名を表示させるタグ。 ・ …本文を表示させるタグ。 ・

…文章の見出しを表示させるタグ。 ・

…通常の文章を表示させるタグ。 ・
…行全てに効果を付けるタグ。 ・ …数文字に効果を付けるタグ。 ・ …HTML 文書のタイトルを表示させるタグ。 ・text-align: center; …center に表示させる。 ・em …M という文字で測った大きさ。 ・color: …色を指定。 ・font-size: …フォントサイズ指定。 ・background: …背景の色指定。 ・padding: …背景で囲った部分を増やす。 感想 講義の際は、HTMLのプログラム作成の工程・内容が分からずとても苦労したので、今回 の課題をこなせるか不安だったが、自分の力でプログラムを作成することができた。 css ファイルの作成では、自分が指定した文字部分がセンターに表示される予定だった が、表示されず端に寄ったままの状態で、何故センターにならなかったのか分からなか ったため、友達に教えてもらいながら作成した。問題は、自分がセンターに表示させたい 部分が、他の指定場所の項目に含まれていたためだということが分かった。教えてもら ったことにより、何処に原因があったのか、理解しながら問題を解決することができた。 ホームページに自分で作成したプログラムがきちんと表示された時は、この工程に辿り 着くまでが大変だったので、とても嬉しかった。 web_c109067.css ファイルを作成し、フォントサイズや色も変える最終段階まででき、 配色されたページを見て、達成感が湧いた。 再度講義ノートを見直しながら、作成したファイルをpublic_htmlファイルの中に保存 する工程から、タグの意味の確認、どのようにホームページに掲載するのかなど、始め から見直ししながらの作業となったので、よい復習になった。 プログラムの意味を理解しながら、プログラムを作成していけるようになりたい。 共同学習者 青木 千紗 久保田 瑛一郎 参考文献 西村 まどか 基礎プログラミング I 第8回 電子チケットを作ろう 「HTML 文書を自動で作る前に」 http://roy/~madoka/2010/r1/08/08_07_theme_02_preperation.html 「HTML 文書への変換予想」 http://roy/~madoka/2010/r1/08/08_08_theme_03_htmlcheck.html 「HTML 文書の打ち出し」 http://roy/~madoka/2010/r1/08/08_10_theme_05_writehtml.html 「table tag 出力」 http://roy/~madoka/2010/r1/08/08_09_theme_04_tabletag.html 「CSS の復習」 http://roy/~madoka/2010/r1/08/08_05_review_05_cascadingstylesheet.html 「色をつけよう」 http://roy/~madoka/2010/r1/08/08_11_review_06_colorandfonts.html 「w3schools」(本家の初心者向けの色見本) http://www.w3schools.com/css/css_colorsfull.asp