第8回 基礎プログラミング II レポート課題
氏名:小松 由里
学籍番号:c1090673
語学クラス:中国語1
コース(系):環境サイエンス
1、筆記問題 =================================================================
A、CGI と Hash の似ている点
CGT の場合、ユーザーがデータを入力すると、そのデータを確定させ、他のプロ
グラムに受け渡して表示させる。
Hash の場合、key は value とが対になり、登録されているデータが表示され
る。
上記のことから、CGI と Hash の似ている点は、ある値を選択すると、特定の値を
返すことであると思う。
------------------------------------------------------------------------------
B、.htaccess, *.html, *.rb は互いにどのような関係か
.htaccess は CGI を使用するためのディレクトリとなる。そしてそのディレク
トリ内に、*.html を作成し、どのように画面に表示させるかを決める。そして
*.rb を作成すると、ユーザーから入力されたデータを受け取って、その値を返
す関係であるといえる。
ディレクトリ内で作成された *.rb は、CGIスクリプトと認識されるようになる。
------------------------------------------------------------------------------
C、*.html で CGI 変数を渡す仕組み
ユーザーにデータを入力させるためには、form というタグを作成する。
タグは以下のようになる。
このタグによって、*.html で CGI 変数を渡すことができるようになる。
------------------------------------------------------------------------------
D、*.rb で CGI 変数を受け取って HTML 文書にする仕組み
*.rb で CGI 変数を受け取って HTML 文書にする仕組みは下記のようになって
いる。
CGI での結果を HTML で表示させるには、Ruby を使用するので、まず、Ruby を
動かす宣言をする。
#!/usr/bin/koeki/env ruby
次に、受け取ったデータを使用する宣言をする。
require 'cgi'
CGI 変数 = CGI.new("html4")
print("Content-type: text/html; charest=EUC_JP\n\n")
そして最後に、作成したCGIスクリプトの名前を定義するために Hash を使用し、
実行して結果を表示させる HTML 文章 print文を作ることにより、HTML文章が表
示される。
2、プログラム問題 ============================================================
A、オンライン発券システム
a、考えた設定
出発駅と終点駅をユーザーが選択し、決定を押すと、その選択した駅名が記載さ
れたチケットが表示されるプログラム。
b、作成したプログラム
[ hakken.html ]
庄内鉄道発券システム
庄内鉄道発券システム
------------------------------------------------------------------------------
[ hakken.css ]
body{
background: #ffff99 ;
}
h1{
color: #ffffff ;
font-size: 2em;
text-align: center;
background: #339900 ;
}
h2{
color: #ffffff;
font-size: 1.5em;
text-align: center;
background: #999900 ;
}
------------------------------------------------------------------------------
[ hakken.rb ]
#!/usr/koeki/bin/ruby
require'cgi' # CGI を使用するための宣言
cgi = CGI.new("html4") # HTML で CGI を使用する
print("Content-type: text/html; charest=EUC-jp\n\n") # 日本語表記にする
arv = cgi["arrive"] # 受け取ったデータを使用する宣言
fin = cgi["finish"]
print("\n")
print("\n") # html
print("\n") # head
print("庄内鉄道発券システム\n") # title・title 終わり
print("\n") # head 終わり
print("\n") # body
print("\n")
print("
==================== 庄内鉄道チケット =====================
\n")
printf("出発駅 %s -- 到着駅 %s まで\n
", arv, fin)
print("チケット有効期限は発券してから1週間となっています。\n
")
print("\n")
print("\n") # body 終わり
print("\n") # html 終わり
# print文で HTML 文章を表示させる
c、もとにしたプログラム
プログラム ticket.rb を参考にした。
受け取ったデータを使用するための宣言を付け足し、css 文・を新たに付け加え
た。
d、実行結果
<酒田から余目まで>
pan{c109067}% ./hakken.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
arrive="酒田"
finish="余目"
Content-type: text/html; charest=EUC-jp
庄内鉄道発券システム
==================== 庄内鉄道チケット =====================
出発駅 酒田 -- 到着駅 余目 まで
チケット有効期限は発券してから1週間となっています。
------------------------------------------------------------------------------
<砂越から鶴岡まで>
pan{c109067}% ./hakken.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
arrive="砂越"
finish="鶴岡"
Content-type: text/html; charest=EUC-jp
庄内鉄道発券システム
==================== 庄内鉄道チケット =====================
出発駅 砂越 -- 到着駅 鶴岡 まで
チケット有効期限は発券してから1週間となっています。
------------------------------------------------------------------------------
pan{c109067}% ./hakken.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
arrive="酒田"
finish="山形"
Content-type: text/html; charest=EUC-jp
庄内鉄道発券システム
==================== 庄内鉄道チケット =====================
出発駅 酒田 -- 到着駅 山形 まで
チケット有効期限は発券してから1週間となっています。
e、考察
設定通りにプログラムが起動し、きちんと出発駅・終点駅・print文が表示
されたので、このプログラムは正しく実行されているといえる。
また、データ内にない地名を打ち込んでもきちんと結果が表示された。
f、参考文献
最後に記載
B、基礎プログラミング II のバナー (logo_r2_c109067.png) ======================
掲載したアドレス
http://roy/~c109067/logo_r2_c109067.png
C、Writer の復習 =============================================================
プログラミング後期の感想 リンク先
http://roy/~c109067/advertise2/r2_c109067.pdf
ホームページ リンク先
http://roy/~c109067/
最高傑作 リンク先
http://roy/~c109067/advertise2/index.html
3、感想 ======================================================================
今回は CGIスクリプトを学んだが、身近によく見かけるものなので、プログラム
を作成していて、このような仕組みになっていたのか。と考えながら作成した。こ
れまで意識して考えたことがなかった仕組みだったので、新鮮に感じた。
実際に自分で作成し、正しく動いたのが嬉しかった。
また、Tgif の操作や、ロゴの貼り付けでは、忘れている操作が多かったので、良
い復習になった。
4、参考文献 ==================================================================
西村 まどか
基礎プログラミング II 第8回 CGIことはじめ 第 8 回目次
http://roy/~madoka/2010/r2/08/
「Ruby で CGI スクリプト」
http://roy/~madoka/2010/r2/08/08_01_theme_01_rubycgi.html
「CGI を使用することを宣言しよう」
http://roy/~madoka/2010/r2/08/08_04_theme_03_declare.html
「利用者にデータを入力させる部品」
http://roy/~madoka/2010/r2/08/08_05_theme_04_form.html
「基本の CGI ホームページの作りかた」
http://roy/~madoka/2010/r2/08/08_06_theme_05_firstcgi.html
「動作プログラム作成」
http://roy/~madoka/2010/r2/08/08_08_theme_07_ruby.html
「Ruby で CGI を作る宣言」
http://roy/~madoka/2010/r2/08/08_09_theme_08_declare.html
共同学習者
久保田 瑛一郎