第10回 基礎プログラミング II レポート課題 氏名:久保田 瑛一郎 学籍番号:c109058 語学クラス:英語1 コース:社会福祉 1筆記問題 リンクアドレス http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/dat/rpt_10.html pstoreの解説をするためにrpt_10.rb htmlを作成した ml側
でここに入力された内容を rpt_10.rbにのせて動かす。 テキストボックスを作りそこで入力されたものはnamaeという名前で保存する でここで入力されたものを送る で入力内容をリセットする rpt_10.html なんかつぶやこう!!

おなまえは? なんかつぶやいて


rb側 #以降を解説とする#!/usr/koeki/bin/ruby #!/usr/koeki/bin/ruby require 'cgi' #CGIを使うということを宣言する require 'pstore' #PStore(データベースに書きこむこと)を使うということを宣言する cgi=CGI.new("html4") #変数cgiはCGIである。そのときhtml4という規格で書込みをする db =PStore.new("rpt_10.db") #変数dbにはいってくるものはデータベースとして書きこむ。その時書きこむ先はrpt_10.dbである tubuyaki=cgi["twt"] #外部データ(html出入力されたもの)のtwtはtubuyakiとする(コピーする) name=cgi["namae"] #外部データ(html出入力されたもの)のnamaeはnameとする(コピーする) print("Content-type: text-html; charest=EUC-jp\n\n") #書込みをする準備と文字化け防止 print("\n") #htmlのはじまりであることを宣言する print("\n") #headのはじまりであることを宣言する print("つぶやいたよ!!\n") #タイトル表示 print("\n") print("\n") #本文のはじまりであることを宣言する printf("

%sさんのただいまのつぶやき:%s

\n",name,tubuyaki) #確認表示 db.transaction do #トランザクション処理(複数の処理をまとめたもの) if db== nil #もしデータベースがからっぽだったら db[name]=Hash.new #ハッシュ(●●といえば●●)を用意する end #ifのおわり db[name]=tubuyaki #今回のデータをいれる(dbというグループに入れる) alldate=db.roots #今回のもふくめた全部のデータを見やすくするために別の袋にコピーした for kobetu in alldate #その袋に入れたデータを更に取りだし易くするためにkobetuという袋に分ける printf("

%sさん:%s

\n",kobetu,db[kobetu]) #結果を全て出す end end print("\n") #本文のおわりであることを宣言する) print("\n") #htmlの終わりであることを宣言する 実行結果 roy{c109058}% ./rpt_10.rb [~/public_html/rubycgi/dat] (offline mode: enter name=value pairs on standard input) namae="kubo" twt="現在、午前1時48分!!" Content-type: text-html; charest=EUC-jp つぶやいたよ!!

kuboさんのただいまのつぶやき:現在、午前1時48分!!

さん:

kuboさん:現在、午前1時48分!!

参考文献 IT用語辞典 トランザクションとは http://e-words.jp/w/E38388E383A9E383B3E382B6E382AFE382B7E383A7E383B3.html プログラム問題 Aリンクアドレス→http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/tubuyaki.html 1ツイッター的つぶやきプログラム B作成の意図 現代のコミュニケーションの手段は情報技術の革新により多様化して来ている 今回は中でもすぐに自分の思ったことがつぶやけるツイッター的プログラムを作 成した。 C解説 tubuyaki.html
で結果をtubuyaki.rbに送ると いうことを教える 縦10行 横40文字のテキストエリアを作成する

テキストエリアの終了 tubuyaki.html つぶやきサービス

これは何処にでもあるつぶやくための掲示板です。
みなさん自由につぶやいちゃいましょう。
一応、入力された内容はそのまま全て表示されますので、個人情報の管理等そのつもりでお願いします。
みんなのつぶやき内容を見るかたはこちら 私の勉強不足で改行が出来ません。改行したいときには<br>と入力して下さい


ニックネーム
本文(全角200文字以内)

送る \n") #htmlであることを宣言する toukou.print("\n") #headのはじまりであることを宣言する toukou.print("\n") #css設定 toukou.print("つぶやき一覧\n") #タイトル表示 toukou.print("\n") #本文のはじまりであることを宣言する toukou.printf("

No:%s ニックネーム:%s


\n",number,name) #基本情報の表示 toukou.printf("%s
\n",tubuyaki) #つぶやいた内容を表示 toukou.printf("(%s)
\n",day) #日付の表示 toukou.print("
\n") #線を引く toukou.print("
\n") #線を引く toukou.print("\n") #本文の終わりであることを宣言する toukou.print("\n") #headの終わりであることを宣言する toukou.print("\n") #htmlの終わりであることを宣言する end #つぶやき追加書込みの終わり number+= 1 #書きこむ通し番号を足す open("dat/tubuyaki_number.txt","w") do |wri| wri.printf("%d\n",number) end print("\n") #htmlのはじまりであることを宣言する print("\n") #headのはじまりであることを宣言する print("つぶやきました\n") #タイトル表示 print("\n") #css設定 print("\n") #本文のはじまりであることを宣言する print("

つぶやきました!!。 みんなのつぶやきを見るにはこちらからどうぞ\n") #案内を表示 print("\n") #本文の終わりであることを宣言する print("\n") #headの終わりであることを宣言する print("\n") #htmlの終わりであることを宣言する ここでつぶやいた内容がtubuyaki_all.htmlに書き込まれ表示されるようになっ ている。 tubuyaki.css body{ background-color:#ccccff tubuyaki.after.css body{ background-color:#66ccff D 実行結果 つぶやきました

つぶやきました!!。 みんなのつぶやきを見るにはこちらからどうぞ 2 空港での優先搭乗者(妊婦、障害者、高齢者など)の情報技術による特別対応ネッ トワークの構築 A リンクアドレス http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/tokubetuorder_airport.html B意図 題名は堅苦しくなってしまったが、優先搭乗者に対する対応の連絡からチケットの 出力までを行なえるシステムを作成した。 C 作成したものと解説 tokubetuorder_airport.html ラクのりサービスお客様情報入力システム


ラクのりサービスお客様情報入力システ厶

受付者情報

受付担当者氏名: 

お客様情報


お客様氏名: 

出発空港---到着空港(中継空港)


便名: 
座席番号: 

利用者基本属性

障害者
高齢者
    妊産婦
子供

受付後からの支援の必要性

必要
不要

具体的支援内容

出発空港


機内


到着空港




で tokubetuorder_airport.rbを使ってCGIを動かすことを教える  
で小さいテキス トを入力するところを用意し、そこに入れられた文字をtantounameにいれ、半角 20文字までとする とくに新たにに学んだことは、のなかに文字を入れるとその 文字が入力された状態で出現するということである。 チェックボックス チェックボックスは回答が多く存在するため 障害者
高齢者
    妊産婦
子供
それぞれ葉行ってきた答えをa1 a2 …というように別の名前の箱に入れている。 input type="radio" name="b" value ="必要">必要
ラジオボタン。 bというはこに入れる で送信する tokubetuorder_airport.rb #以降を解説とする #!/usr/koeki/bin/ruby #インタプリタであることを宣言する require 'cgi' #CGIを使うということを宣言する cgi=CGI.new #変数CGIはCGIである print("Content-type: text/html; charest=EUC-jp\n\n") #htmlに書きこむことを宣言し、文字化け防止 uketuke=cgi['tantouname'] #外部データ(html)で入力されたもの)にあるtantounameをuketukeという変数にコピーする。 name=cgi['castname'] #外部データ(html)で入力されたもの)にあるcastnameをnameという変数にコピーする。 kihondata=cgi['kuukou'] #外部データ(html)で入力されたもの)にあるkoukuuをkihondataという変数にコピーする。 binmei=cgi['number'] #外部データ(html)で入力されたもの)にあるnumberをbinmeiという変数にコピーする。 seki=cgi['sheet'] #外部データ(html)で入力されたもの)にあるsheetをsekiという変数にコピーする。 yesno=cgi['b'] #外部データ(html)で入力されたもの)にあるbをyesnoという変数にコピーする。 diphelp=cgi['dipshien'] #外部データ(html)で入力されたもの)にあるdipshienをdiphelpという変数にコピーする。 kinaihelp=cgi['kinaishien'] #外部データ(html)で入力されたもの)にあるkinaishienをkinaihelpという変数にコピーする。 arrivehelp=cgi['arriveshien'] #外部データ(html)で入力されたもの)にあるarriveshienをarrivehelpという変数にコピーする。 print("\n") #htmlの始まりであることを宣言する print("\n") #headの始まりであることを宣言する print("\n") #css設 print("連絡票送信\n") #タイトル表示 print("\n") #本文であることを宣言するb print("

ラクのりサービス お客様連絡票

\n") #以下 プログラムの日本語の部分のソースを見れば内容が掴めるので解説略 print("

受付者情報


\n") printf("

受付担当者氏名:%s
\n",uketuke) print("

お客様情報


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

お客様氏名:%s
\n",name) print("

御搭乗基本情報
\n") printf("

%s


\n",kihondata) printf("

便名:%s\t座席番号:%s\
",binmei,seki) printf("

受付後の支援の必要性:%s\
\n",yesno) printf("

お客様の基本属性:#{cgi['a1']},#{cgi['a2']},#{cgi['a3']},#{cgi['a4']}
\n") print("

具体的支援内容


\n") print("

出発空港での支援\n") printf("

%s


\n",diphelp) print("

機内での支援

\n") printf("

%s


\n",kinaihelp) print("

到着空港での支援\n") printf("

%s


\n",arrivehelp) #以上基本内容終わり print("

お客様用チェックイン完了確認証の出力

") print("\n") #本文の終わりであることを宣言する print("\n") #headのおわり print("\n") #htmlの終わりであることを宣言する open("dat/tokubetuorder_ticket.html","w")do |wri| #チケットの書きこみ 作成 wri.printf("\n") wri.printf("\n") wri.print("\n") #css設定 wri.printf("お客様チェックイン完了各認証\n") wri.printf("\n") wri.printf("

お客様チェックイン完了各認証

\n") wri.printf("

お客様氏名:%s
\n",name) wri.print("

御搭乗基本情報
\n") wri.printf("

%s


\n",kihondata) wri.printf("

便名:%s\t座席番号:%s\
",binmei,seki) wri.printf("


\n") wri.print("

保安検査場へは出発の15分前までにお越し下さい

\n") wri.print("

搭乗口へは出発の10分前までにお越し下さい

\n") #内容表示 wri.print("\n") #本文の終わりであることを宣言する wri.print("\n") #headのおわり wri.print("\n") #htmlの終わりであることを宣言する end tokubetuorder_airport.css body{ background-color:#33cc66 tokubetuorder_ticket.css チケットのCSS body{ background-color:#99ffff 実行結果 今回はktermで実行するとやりにくいため(文章が多いので) 実際に動かした結果 のソースを提示する。 連絡票送信

ラクのりサービス お客様連絡票

受付者情報


受付担当者氏名:東北 太朗

お客様情報



お客様氏名:公益 ルビ緒

御搭乗基本情報

(2010)年 ( 12 )月 ( 07)日( 庄内 )空港 搭乗口No ( 1 )時刻(1 8 : 50 ) ---------( 羽田 ) 空港 搭乗口No( 100) 時刻(19 : 50 ) 5


便名:JL505 座席番号:A-300

受付後の支援の必要性:必要

お客様の基本属性:,高齢者,,

具体的支援内容


出発空港での支援

機内用車椅子の手配
18:30似職員が迎えにあがる
以上をお願いします


機内での支援

とくになし


到着空港での支援

バスを利用されるようなのでバス停までのご 案内をお願いします


お客様用チェックイン完了確認証の出力

さらにこの時点で渡すチェックイン確認証(チケットのようなもの) お客様チェックイン完了各認証

お客様チェックイン完了各認証

お客様氏名:公益 ルビ緒

御搭乗基本情報

(2010)年 ( 12 )月 ( 07)日( 庄内 )空港 搭乗口No ( 1 )時刻(1 8 : 50 ) ---------( 羽田 ) 空港 搭乗口No( 100) 時刻(19 : 50 ) 5


便名:JL505 座席番号:A-300


保安検査場へは出発の15分前までにお越し下さい

搭乗口へは出発の10分前までにお越し下さい

3 教員が講義に関する情報を入力するとシラバスが作成できるシステム onlinesyrabus.html Aリンクアドレス http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/onlinesyrabus.html B意図 シラバスを作成できるシステムを、東北公益文科大学履修ガイドの内容を思い出 しながら作成した。 C 解説と作成したもの onlinesyrabus.html オンラインシラバスセンター これまでに作成されたシラバスを見るかたはこちら
講義名
:
担当教員名
:
講義概要(200字以内)
:

到達目標(200字以内)
:

講義計画(800字以内)
:

成績評価方法:

参考書など:

受講生へ一言:


html解説
でonlinesyrabus.rbに結果 を送るということを教える。 テキストボックス 短いテキストボックスは で作成できる kouzaという 箱にいれて80文字以内で テキストエリア

始めから入力されているところの終わり ドロップダウンメニュー 選択子の終わり input type="submit" value="送信する"> 押すと送信する 押すと入力されている内容 を全て消す。 rb側 #以降を解説とする #!/usr/koeki/bin/ruby #インタプリタであることを宣言する require 'cgi' #CGIを使うことを教える cgi =CGI.new("html4") #変数cgiはCGIである。このときhtml4という規格で書く print("Content-type: text/html; charest=EUC-jp\n\n") #文字化け防止 htmlをrbに書き込む name=cgi["kouza"] #外部データ(html)で入力されたもの)にあるkouzaをnameという変数にコピーする。 kyouin=cgi["teacher"] #外部データ(html)で入力されたもの)にあるteacherをkyouinという変数にコピーする。 semester=cgi["ziki"] #外部データ(html)で入力されたもの)にあるzikiをsemesterという変数にコピーする。 gaiyou=cgi["what"] #外部データ(html)で入力されたもの)にあるwhatをgaiyouという変数にコピーする。 toutatu=cgi["mokuhyou"] #外部データ(html)で入力されたもの)にあるmokuhyouをtoutatuという変数にコピーする。 plan=cgi["keikaku"] #外部データ(html)で入力されたもの)にあるkeikakuをplanという変数にコピーする。 seiseki=cgi["houhou"] #外部データ(html)で入力されたもの)にあるhouhouをseisekiという変数にコピーする。 sankousyo=cgi["book"] #外部データ(html)で入力されたもの)にあるbookをsankousyoいう変数にコピーする。 hitokoto =cgi["com"] #外部データ(html)で入力されたもの)にあるhitokotoをcomという変数にコピーする。 print("\n") #htmlであることを宣言する print("\n") #headであることを宣言する print("科目登録が完了しました<title>\n") #タイトル表示 print("<body>\n") #本文であることを宣言する print("<p><a href =\"dat/all_syrabus.html \">登録ページへ</a></p>\n") #登録ページに飛ぶリンク print("</body>\n") #本文の終わりであることを宣言する print("</head>\n") #headの終わりであることを宣言する print("</html>\n") #htmlの終わりであることを宣言する open("dat/all_syrabus.html","a" )do |sira| #追加書き込みモードで書き込みをする。この時siraというところに集める(内部変数) sira.print("<html>\n") #htmlであることを宣言する sira.print("<head>\n") #headであることを宣言する sira.print("<title>オンラインシラバス<title>\n") #タイトル表示 sira.print("<body>\n") #本文であることを宣言する sira.printf("<h2>講義名:%s\t担当者:%s\t開講学期%s</h2>\n",name,kyouin,semester) #以下色々なデータの書き込み sira.print("<hr>\n") sira.print("<p>講義概要</p><br>\n") sira.printf("<p>%s</p>\n",gaiyou) sira.print("<hr>\n") sira.print("<p>講義のねらい/到達目標</p><br>\n") sira.printf("<p>%s</p>\n",toutatu) sira.print("<hr>\n") sira.print("<p>講義計画</p><br>\n") sira.printf("<p>%s</p>\n",plan) sira.print("<hr>\n") sira.print("<p>成績評価方法</p><br>\n") sira.printf("<p>%s</p>\n",seiseki) sira.print("<hr>\n") sira.print("<p>参考書など</p><br>\n") sira.printf("<p>%s</p>\n",sankousyo) sira.print("<hr>\n") sira.print("<p>受講生へ一言</p><br>\n") sira.printf("<p>%s</p>\n",hitokoto) sira.print("<hr>\n") #以下データの書き込みのおわり sira.print("</body>\n") #本文のおわりであることを宣言する sira.print("</head>\n") #headのおわりであることを宣言する sira.print("</html>\n") #htmlのおわりであることを宣言する end #open書き込みの終わり D実行結果 今回も文章が多いため、ブラウザ上で実行したソースの結果を張り付ける html> <head> <title>オンラインシラバス<title> <body> <h2>講義名:商品と流通 担当者:久保田 瑛一郎 開講学期前期</h2> <hr> <p>講義概要</p><br> <p>ソフト化社会を迎えた現代において、必要な流通と商品に関する知識について講義する。</p> <hr> <p>講義のねらい/到達目標</p><br> <p>1、基本的な商品に関する知識の修得 2、ビジネスを見る目の養成</p> <hr> <p>講義計画</p><br> <p>1ガイダンス<br> 2産業構造の発展と消費生活<br> 3情報化、国際化とビジネス<br> 4消費生活の動向<br> 5 商品1<br> 6商品2<br> 7商品の多様化<br> 8流通の仕組みとその担い手1<br> 9流通の仕組みとその担い手2<br> 10流通を支える諸活動1<br> 11流通を支える諸活動2<br> 12商品研究<br> 13商品研究<br> 14予備日<br> 15まとめ<br> </p> <hr> <p>成績評価方法</p><br> <p>出席状況、定期試験の結果等総合的に判断する。 </p> <hr> <p>参考書など</p><br> <p>実教出版『商品と流通』<br> 参考書は講義内で紹介する。<br></p> <hr> <p>受講生へ一言</p><br> <p>現代をとりまく商品と流通について学ぼう!!</p> <hr> </body> </head> </html> ブラウザ上で確認したところきちんと表示されている。 4 ブログ Aリンクアドレス http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/bloglike.html B意図 一番最初に作ったツイッター的プログラムの応用をすればブログが出来るのでは ないかと考え作成した。ブログ管理者以外が書き込み出来ないようパスワードを 設定している。 C解説と作成したもの bloglike.html <html> <head> <link rel="stylesheet"type="text/css"href="bloglike.css"> <title>ブログを書こう!

ブログを書こう!!


ブログ閲覧ページはこちら
タイトル:

本文(全角1000字以内)


画像添付


(添付しないときは消して下さい)



パスワード:
html解説
でbloglike.rbを使ってうごかす ということを教える で短いテキストボックスを 使いその結果を変数daimeiにいれる テキストエリア
送信する リセットする rb 解説 bloglike.rb #以降を解説する #!/usr/koeki/bin/ruby #インタプリタであることを宣言する require 'cgi' #CGIを使うことを宣言する b = 0 #正しいパスワードを取って来る変数 day=Time.now #日にちを取って来る変数 cgi=CGI.new #変数CGIはCGIである print("Content-type: text/html; charest=EUC-jp\n\n") #htmlに書きこむことを宣言し、文字化け防止 title=cgi["daimei"] #外部データ(htmlで入力されたもの)にある変数daimeiをtitleにコピーする bun=cgi["honbun"] #外部データ(htmlで入力されたもの)にある変数honbunをbunにコピーする picture=cgi["gazou"] #外部データ(htmlで入力されたもの)にある変数gazouをpictureにコピーする password=cgi["pass"] #外部データ(htmlで入力されたもの)にある変数passをpasswardにコピーする open("bloglike_passward.dat","r")do |himitu| #bloglike_passward.dat(正しいパスワード)の読みこみ while a = himitu.gets #よみこみをくりかえす if/(\S+)/=~a #もし外部データが文字だけだったら b=$1 #取ってきた1個目をbとする end #ifのおわり end #whileのおわり end #openのおわり if password==b #もしそのパスワードが正しかったら open("dat/bloglike_all.html","a") do |kaku| #追加書き込みモードdat/bloglike_all.html(投稿ページ) kaku.print("\n") #htmlであることを宣言する kaku.print("\n") #headであることを宣言する kaku.print("MyBlog!\n") #タイトル表示 kaku.print("\n") #css設定 kaku.print("\n") #本文であることを宣言する kaku.printf("

%s


\n",title) #タイトル表示 kaku.printf("

%s


\n",day) #日にち書き込み kaku.print("
\n") #線書き込み kaku.printf("

%s


\n",bun) #本文書き込み kaku.printf("

%s

\n",picture) #画像書き込み kaku.print("
\n") #線書き込み kaku.print("
\n") #線書き込み kaku.print("\n") #本文のおわりであることを宣言する kaku.print("\n") #headのおわりであることを宣言する kaku.print("\n") #htmlのおわりであることを宣言する end #追加書き込みのおわり print("\n") #htmlであることを宣言する print("\n") #headであることを宣言する print("\n") #css設定 print("投稿しました!!\n") #タイトル表示 print("\n") #本文であることを宣言する print("

投稿しました!

\n") #投稿したことを表示 print("閲覧ページへ\n") #リンク表示 print("\n") #本文の終わりであることを宣言する print("\n") #headの終わりであることを宣言する print("\n") #htmlの終わりであることを宣言する else #それいがいは print("\n") #htmlの始まりであることを宣言する print("\n") #headの始まりであることを宣言する print("エラー!!\n") #タイトル表示 print("\n") #css設定 print("\n") #本文の始まりであることを宣言する print("

パスワードが、間違っています!確認して下さい!

\n") #間違っていることの表示 print("閲覧ページへ\n") #リンクの表示 print("\n") #本文の終わりであることを宣言する print("\n") #headの終わりであることを宣言する print("\n") #htmlの終わりであることを宣言する end #ifのおわり bloglike.css body{ background-color:#ff9999 bloglike_passward.dat パスワードを設定し動かすファイル rubiokoeki D実行結果 文章が多いのでブラウザで実行した結果のソースを提示する 投稿しました!!

投稿しました!

閲覧ページへ 投稿ページのソース MyBlog!

実行結果だよ


Fri Dec 10 01:51:57 +0900 2010



結果





パターン2 パスワード間違いパターン エラー!!

パスワードが、間違っています!確認して下さい!

閲覧ページへ 投稿ページ MyBlog!

実行結果だよ


Fri Dec 10 01:51:57 +0900 2010



結果





パスワードが間違っていたので書き込みがなされなかった。よってこのプログラ ムは正しい。 これらのまとめページのアドレスは http://roy.e.koeki-u.ac.jp/~c109058/advertise2/rubycgi/r2_cgi_best.html である。 4 観想 今回で個人でのレポートは最後になるが、基礎プログラミング I II通して一番 時間をかけ、長いレポートとなった。まさにレポートの最高傑作だろう。 実社会で使われることを意識しながら作成したので、完ぺきといっても良いのだ が、ただ1つテキストエリアの改行に
を使わなければ行けないのは今後の課 題である。しかし、最高傑作が楽しく作成できたので良かった。次回以降に繋げ て行きたい。 CGIで興味があったのは http://roy.e.koeki-u.ac.jp/~c108157/advertise2/rubycgi/r2_cgi_best.html である。ほのぼのしていて良かったと思う。 参考文献 西村まどか 2010講義ノート基礎プログラミング I 第 8 回 「電子チケットを作ろう」CSS の色見本 (講義ノート) http://roy.e.koeki-u.ac.jp/~madoka/2010/r1/08/08_12_appendix_01_safecolor.html 西村まどか 2010講義ノート基礎プログラミング II 第 8 回 「CGIことはじめ」基本の CGI ホームページの作りかた (講義ノート) http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/08/08_06_theme_05_firstcgi.html 西村まどか 2010講義ノート基礎プログラミング II 第 9 回 「CGIことえらび」テキストエリアの作り方 (講義ノート) http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/09/09_07_theme_05_textarea.html 西村まどか 2010講義ノート http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/rubycgi/cgi/more.html 共同学習者:横山 広樹、小松 由里