第 12 回 自由課題準備 (2) レポート課題 氏名:菊地瑞紀 学籍番号:c110067 語学クラス:英語6 コース(系):地域共創コース チーム名:最長6時間 チームホームページアドレス:http://roy/~c110127/6hour/ プロジェクト名:最短6秒 1、チームの進み具合はプログラムを作成中です。 デモ版は両プロジェクト共に完成しました。プレゼンテーション原稿、ポスター なども完成しました。 2、プロジェクト全体の進み具合は、デモ版が完成しました。 冬休み中は各自でデータを作成してくるという分担をし、時間調整をしながら各 自で集まってプログラムを完成させていきます。 今のところまだデータが出来ていないのでプログラムはあまり進んでいませんが、 学校が年明け開くので、皆で集まって考えていきます。 3、 プロジェクトの担当部分は、 チームのHP作成 データの作成 デモ版の作成 を担当しました。 4、 病院の科によってアイコンのような画像を表示させたらいいのではないかという 意見がありました。 5、その指摘による改良はアイコン画像の作成をするというところまでしました。 これから、作成したアイコン画像を表示させ、見やすいページにしていきます。 7、デモ版係 [作成意図] デモ版なので簡単なものを作ろうと思った。 鶴岡のみのデータなのでそこまで複雑なプログラムではないが、これをもっと発 展させたプログラムにしていきたい。 [プログラム本体] ■表示部分 #!/usr/koeki/bin/ruby require 'cgi' # cgiを使う宣言をする cgi = CGI.new("html4") # CGIをHTML文書に使う宣言 print("Content-type: text/html; charset=EUC-jp\n\n") ka = cgi["ka"] # kaとしてcgiでもってくる tiku = cgi["tiku"] # tikuとしてcgiでもってくる read = Hash.new # readで新しく配列をつくる print("\n") print("
\n") print("\n") print("<\head>\n") print("\n") printf("ありません
") # こっちを表示 elsif if tiku == "turuoka" # 鶴岡を選択した場合 print("病院名 : %s\n
",$1) # htmlで表示 printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "sinryou" # 心療内科の場合 open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*心療+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "seisin" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*精神+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "kokyu" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*呼吸+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "syouka" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*消化+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "junkan" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*循環+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "riumati" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*リウマチ+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "syouni" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*小児+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "geka" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+\:+外科+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "seikeigeka" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*整形+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "rihabiri" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*リハビリ+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end if ka == "housya" open("turuoka.txt","r") do |date| while line = date.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S*放射+\S+)/ =~ line printf("病院名 : %s\n
",$1) printf("電話番号 : %s\n
",$2) printf("診察時間 :%s\n
",$3) printf("休診日 : %s\n
",$4) printf("科 : %s\n
",$5) print("------------------------------
\n") end end end end end end print("\n") print("\n") ■入力部分(html)病院名 : 宮原病院
電話番号 : 0235233311
診察時間 :午前午後
休診日 : 水土午後日祝
科 : 内科:外科:呼吸器科:消化器科:循環器科
------------------------------
病院名 : 桂医院
電話番号 : 0235573303
診察時間 :午前
休診日 : 日祝
科 : 内科:消化器科
------------------------------
病院名 : 荻原医院
電話番号 : 0235253131
診察時間 :午前午後
休診日 : 土午後日祝
科 : 内科:整形外科
------------------------------
病院名 : 藤吉内科医院
電話番号 : 0235230072
診察時間 :午前
休診日 : 日祝
科 : 内科:心療内科:呼吸器科:消化器科:循環器科:放射線科
------------------------------
*鶴岡市で心療内科を選択の場合 pan{KIKUCHI Mizuki}% ./demo.rb [~/public_html/6hour] (offline mode: enter name=value pairs on standard input) ka="sinryou" tiku="turuoka" Content-type: text/html; charset=EUC-jp病院名 : 山形県立鶴岡病院
電話番号 : 0235222690
診察時間 :月水金午前火木午後
休診日 : 土日祝
科 : 心療内科:精神科:小児科
------------------------------
病院名 : 藤吉内科医院
電話番号 : 0235230072
診察時間 :午前
休診日 : 日祝
科 : 内科:心療内科:呼吸器科:消化器科:循環器科:放射線科
------------------------------
*鶴岡市で外科を選択の場合 pan{c110067}% ./demo.rb [~/public_html/6hour] (offline mode: enter name=value pairs on standard input) ka="geka" tiku="turuoka" Content-type: text/html; charset=EUC-jp病院名 : 宮原病院
電話番号 : 0235233311
診察時間 :午前午後
休診日 : 水土午後日祝
科 : 内科:外科:呼吸器科:消化器科:循環器科
------------------------------
*鶴岡市で整形外科を選択の場合 pan{c110067}% ./demo.rb [~/public_html/6hour] (offline mode: enter name=value pairs on standard input) ka="seikeigeka" tiku="turuoka" Content-type: text/html; charset=EUC-jp病院名 : 宝田整形外科クリニック
電話番号 : 0120915608
診察時間 :午前,午後
休診日 : 水曜午後土日午後日祝
科 : 整形外科:リハビリテーション科:リウマチ科
------------------------------
病院名 : 佐藤整形外科クリニック
電話番号 : 0235222333
診察時間 :午前午後
休診日 : 木曜午後土午後日祝
科 : 整形外科:リハビリテーション科
------------------------------
病院名 : 荻原医院
電話番号 : 0235253131
診察時間 :午前午後
休診日 : 土午後日祝
科 : 内科:整形外科
------------------------------
[考察] 作成中、内科を選択すると心療内科も出てしまったり、外科を選択すると整形外 科も出てしまうというエラーが出たが、データの順番を変えたり、正規表現を工 夫することでエラーは無くなった。 ちゃんとマッチしていて、データもちゃんと出ているのでこのプログラムは正し く動作していると言えます。 9、添付 ・デモ版プログラム ・デモ版用データ を添付します。 ----------------------- 東北公益文化大学 公益学部 公益学科 2年 菊地瑞紀 c110067@f.koeki-u.ac.jp -----------------------