第 9 回 ことえらび レポート課題 氏名:佐藤 汰紀 学籍番号:C1101046 語学クラス:英語2 コース(系):環境サイエンスコース 筆記問題 A、ラジオボタンは、選択肢の中から1つにチェックをいれる時に使われる。 通路 希望なし これは、授業内で作成したプログラムだが、それぞれ最初にinputを使い type,name,valueで区別していく。その際、同じグループに分ける時は""内は 同じ文字をいれておく。 seat = cgi["seat"] この文章を.rbに入れることによって、htmlで選択されたものが、seatに反映 される。 B、チェックボックスは、複数の選択をしてもらいたい時に使用する。 inputやnameなどで選択肢を作成していくことに変わりはないが、 項目を選択した際に、onとoffの設定が入れ換わるようにしておく。 C、作品名・・・ペンギン 解説・・・円と直線を駆使して書いた。色塗りはきちんと色を分けられた。 工夫点・・・下から順番に塗り分けることで、手と体の色に変化をつけた。 http://roy/~c110104/advertise2/char_r2_c110104.png 掲載しているホームページ http://roy/~c110104/advertise2/ プログラム問題 A、初めに、.htaccessファイルを事前に作っておく。 プログラムはカウンタープログラムで、自分のページに何人人が来たかカウ ントするプログラムである。 count.css body{ background: #ffff99 ; text-align: center; } h1{ color: #ffffff ; font-size: 2em; text-align: center; background: #339922 ; } h2{ color: #000000; font-size: 1.5em; background: #ccffcc ; } count.rb #!/usr/bin/env ruby require 'cgi'# CGIを使う宣言をする cgi = CGI.new("html4")# htmlにCGIを関連付ける定義 print("Content-type: text/html; charset=EUC-JP\n\n")# 日本語を使用する。 #arv = cgi["arrive"] number = 0# 初期値を0とする open("number.txt","r") do |read|# open,endを利用することで、number.txtを開き、rで読み込む。 while data = read.gets# dataにgetsの中身を入れる。 if /(\d+)/ =~ data# もしもnumber.txtが1桁を超えた場合は、 number = $1.to_i# その数字に置き換える。 end end end print("\n") print("\n") print("

訪問した人数

\n") print("

\n") print("いらっしゃい\n") print("\n") print("\n") printf("

あなたは%d番目にこの場所に来ました。

\n", number) print("

どうぞ、ごゆっくり

\n") print("\n") print("\n") print("\n") number += 1# WEBページでnumberが1ずつ増える。 open("number.txt","w") do |write| #open,endを利用することで、number.txtを開き、wで読み込む。 write.printf("%d\n",number) # writeにnumberを代入することで、訪問者の数が増える。 end 実行結果 1回だけだと、きちんと機能しているかわからないため、2回行なった。 1回目 pan{SATO Taiki}% ./count.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP

訪問した人数

いらっしゃい

あなたは43番目にこの場所に来ました。

どうぞ、ごゆっくり

2回目 pan{c110104}% ./count.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP

訪問した人数

いらっしゃい

あなたは44番目にこの場所に来ました。

どうぞ、ごゆっくり

結果としてnumberがきちんと1ずつ増えて、結果が表示されていたので、プログ ラムは正しい。 考察 最初に.htaccessファイルをrubycgiの中につくっておかなければ、CGIとして使 用できないことを忘れていた。また、chmod o+w number.txtとktermで入力する ことで、属性を変化させ自分だけでなく利用者も書き込むことができるようになっ た。結果としてカウンタはカウントされるようになった。 B、 プログラムは計算プログラムで足算や引算などができる。 keisann.rbファイル #!/usr/koeki/bin/ruby require 'cgi' # CGIを使えるようにする cgi = CGI.new("html4") # print("Content-type: text/html; charset=EUC-jp\n\n") suji1 = cgi["suji1"]# 最初にsujiをそれぞれ3つ定義しておく suji2 = cgi["suji2"] suji3 = cgi["suji3"] print("\n") print("\n") print("計算プログラム\n") print("\n") # cssで色や大きさを決める print("\n") print("\n") if suji3 == "tasu"# もしも、足算なら s = suji1.to_i + suji2.to_i# 1と2を足す elsif suji3 == "hiku"# もしも、引算なら s = suji1.to_i - suji2.to_i# 1から2を引く elsif suji3 == "kakeru"#もしも、かけ算なら s = suji1.to_i * suji2.to_i#1と2をかける else s = suji1.to_f / suji2.to_f# それ以外は、1を2で割る end print("

計算結果

\n") if suji3 == "tasu" printf("

%d + %d = %d

\n",suji1 ,suji2 ,s) elsif suji3 == "hiku" printf("

%d - %d = %d

\n",suji1 ,suji2 ,s) elsif suji3 == "kakeru" printf("

%d * %d = %d

\n",suji1 ,suji2 ,s) else printf("

%d / %d = %f

\n",suji1 ,suji2 ,s.to_f)# 実数に変換するため end print("\n") print("\n") keisann.htmlファイル 計算プログラム

計算プログラム