• 検索結果がありません。

Webを利用した採水場所予約プログラム

N/A
N/A
Protected

Academic year: 2021

シェア "Webを利用した採水場所予約プログラム"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

Webを

利 用 した採水場所 予約 プ ログラム

榊原

正明・坂本

光歩・南

利明・熊倉

純史・福井

裕暁

物質工学科

A Computer So百 師 are Program for Specifying Water Sampling Sites using the World Wide Web

MasaakiSAKAKIBARtt Mitsuho SAKAMOTO,Toshiaki MINAMI,Atsushi KUMAKtTRA

and Hiroaki FLKLTI

Department ofMaterins Sdence,Faculty ofEngineemg

To的

U山

弱 転 TOttOt 680-8552 Japan

E―

m

i [email protected]

u.“Jp

AbstrattA software prograln for ttcifyitt water sttling sites cottd with Visual Basic software usitt LAN was coNetted

so as to becone accessible on the World Wide Web. In addition to having the sane functions as the LAN software, this new software features a sittler directory structure.Progran revision and correction such as the addition of places and courses

can also be more easily done.

KeywOrdЫ Water ttЩ,Ltt sites, 晦ぅ cGL WOrld Wide Web

l.は

じめに 学生実験の「 天然水 の分析」では

,学

生各 自が 天然水 を採取することになっている。 しか し

,実

験の対象が一年生であるため

,大

部分 の学生は鳥 取市 はお ろか大学周辺の地理 について もほ とん ど 知識のない学生が多い。 そ こで学生 に対 して採 取場 所 が どこにあ るの か理解 させ ると同時に

,い

,ど

こで採取 するの かを予約させてぅ予約データを一元的に管理する ために

,我

々は「

LANを

用 いての採水場所予約 ソ フ ト」を作成 した

[1],[2].採

水場所 は

,鳥

取市 内の主な河川 と大学周辺の湖 山池か ら

33ヶ

所 を 選定 し

,そ

れを8つの コース に分類 した。ソフ ト の内容は

,コ

ースを選択 して周辺の地図 と写真 を 見なが ら採水場所を予約するものである。 しか しぅ採水場所付近の地図が詳 しくないぅ採 水場所 の写真が少な くてわか りに くいな どの問題 点があ った。そ こで我々は

,以

下の ような変更・ 改良を行 った[3]. コース地図については

,従

,①

コース選択画 面 (鳥取市全図

),②

採水場所選択画面 (コース 地図

),③

写真表示画面の構成であつたものを, コース地図で採水場所をクリックすると

,そ

の地 点を詳 しく表示する採水場所地図を付け加えて, ① コー ス選択画面 (鳥取 市全 図

),②

採水場所選 択画 面 (コ ース地図

),③

模水場所地 岡表示面 而 (摂水場所地岡),④写真表示画面の構成 に した 。 また

,全

て のコース地図をグラフィ ックソフ トで 描 き直 した 。採水場所 の写真の枚数 も20から141 に増 や した。地図 と写真 を ビッ トマ ップ形式か ら 」PEG形式 に変更 した 。更 に

,千

代川 コースに「新 浜坂橋 」を

,旧

袋川 コースに「 若桜橋 」を加 え, 採水場所 は

35ヶ

所 とした. 従来,コースの変更は,コース選択画面でなけ れば行 えなか ったが

,左

横 に リス トを付 けるこ と によって

)ど

の画面か らでも容易にで きるように した 。また

,採

水場所地 図では

,選

択 したコー ス と異 な るコースの採水場所地図も場所 によっては 表示で きるように した[4]. とこ ろで ぅ この よ うに改 良 した「

LANを

用 いて の採 水 場 所 予約 ソ フ ト」 は,Visual Basic言語 で 作 られ てお り

,利

用 す るため には

,コ

ン ピュー タ がLANにつ ながれ

,ソ

フ トが イ ンス トール され て い る必 要 が あ つた 。この ため研 究室 の コ ンピュー タだ けで は

,学

生 へ の対応 が 困難 で あ つた 。そ こ で ぅ この ソ フ トをWeb上へ移植 し

HTML,CGIを

用 いれ ば,Visual Basicで 行 った こと と同 じよ うに で きる こ とがわ か った 。しか も,CGIを用 い れ ば, ネ ッ ト上 で の プ ログラム の作 成 や

,修

正 が容易 に

(2)

で きることがわか り

,我

々は

,こ

れ を応用 して

N

MRの

予約管理 システムの作成 も行 った[5].

2.ソ

フ トの概要 以前 の ソフ トは ぅ「 コース」を選んでか ら「場 所選択画面」に行 き

,「

場所 」を決めてか ら予約 をす る とい う手順 が決 まっていた[1]ぅ [2],[3]. 今回の ソフ トは

,図

1に 示すように。「 開始」か ら始 ま り

,「

使 い方」

,「

予約す る」

)「

予約状 況を見 る」

,「

鳥取市全 図」 ぅ「 コース」

,「

場 所」のいずれか を選択 す るもの とな ってお り

,ど

の項 目も対等 となっている,そ の結果 ,「 コース」 を選 ばな くても「場所 」へい くことが出来 るよう にな り

,ま

,「

場所 」 を決 めな くて も最初 か ら 予約 をする事が 出来 るようになった。選択 したコ ース と異なるコースの採水場所 も自由に見 ること がで きるようになった。採水場所選択画面 (コー ス地図

)か

ら採水場所 を選んで表示 される採水場 所地図は

,図

の左上部分 が表示され るが

,サ

イズ が大 きいため

,目

的の場所を見 るためにはスクロ ールする必要がある。 以下に一般的な操作 の流れを示す。 ①

.Webブ

ラ ウザ ソフ トを立ち上げ,URLにア ク セス し

,画

面上の「 開始」を左 ク リックする。 ②

.右

フレームの「 ソフ トの使い方」をよ く読 んでか ら

,左

フ レームの「採水場所 を見 る」以下 のコース名 ぅ場所名 または,"鳥取市全 図"を左 ク リックする。 する と右 フレームに地図があ らわれ る。地図上 には

,黄

緑の線 で囲 まれた"コース名",″場所名″,″ 写真"等が現れ るので,その部分 を左 ク リック して, 別の「 コース」や「場所」へ移動 した り

,新

たな 「写真」を表示 した りす る。そ して採水する場所 を決定する。 (実行画面を図 2に 示す) 図

2

実行画面 ③

.左

フレームの「 予約状況 を見 る」を左 ク リッ クす る と

,パ

ス ワー ドの入力画面にな り

,入

力す るとぅそれ までの予約状況の表が新 しいウイン ド ウを開いて表示される。予約状況の表 を図3に示 す。 図

3

予約状況の表 図

1

採水場所予約ソフ トの概要

(3)

鳥 取 大 学 工 学 部 研 究 報 告 第 31巻 ④

.左

フ レームの「 予約す る」を左 ク リックす ると

,右

フ レームに予約データの入力画面が表示 され るので

,そ

れ ぞれ の要素 を埋めて

,送

信 ボ タ ンを左 ク リックす ると予約データがサーバ コンピ ュータに保存されて予約は終了する。 予約画面を図4に示す。 図

4

予約画面 予約データの 入力画面で

,任

意のパ ス ワー ドを 入力す る。このパ ス ワー ドは予約 を訂正す る場合 に使用する。 イ ンター ネ ッ トにつ なが ったコ ンピュー タ を 利用 して

,い

,ど

こででもこのソフ トを利用 す ることが可能になった。ただ し

,フ

レーム機能 を 使えるブラウザを想定 している. そこで

,パ

スワー ドを設定 して

,対

象学生以外 は

,「

コース」

,「

場所」は見 られるが,「予約状 況 を見 る」,「 予約 する」は見 られないように して いる.

3.フ

ァイル構成 ソフ トは

,HTMLフ

ァイル ぅCGIフ ァイル ぅ」PEG フアイル,TXTフ ァイル によって構成 されている。 各デ ィ レク トリの ファイル構成 を図5に示 す

.地

,写

真はそのまま使用 した[3]. 「saisui」 デ ィレク トリの中には「 コース」デ ィレク トリ

(8個 )と

「YOYAKU」 デ ィレク トリ, index.html,head.htnl,frame.htmlっ R.html,Ll.ht ml,*.jpgが ぁる. 「コース」ディレク トリの中には「場所」デ イ レク トリと indexohtml,R.html,*.jpgが ある。 「場所」デ ィレク トリの中には index.html) R.html,*.jpgが ある. 「YOYAKU」 デ ィレク トリにはパ スワー ドをかけ てあ り

,2つ

CGIプ

ログラム(yoyaku.cgi,kaku

nin. cgi),index.htmと ,yoyaku.html,data.txt 力葛

ある. 「 コース」デ イレク トリ

,「

場所」デ イレク ト リ

,「

YOYAKU」 デ ィ レク トリの 中の index.html は

,ダ

ミー として置いている。 「 コー ス」 または「場所 」を増 やす場合は「 コ ース」 または「場所」のデ イレク トリを増やせば 簡単 に出来 るようにな った。ただ し「 コース」を 増や した場合 には「 予約す る」CGIの 判定 の″8Pと ″

Tの

値 を一つ増 や し

,「

予約状 況 を見 る」CGI Iこ 追加 したコースを付け加える. 図

5

各デ ィレク トリのフアイル構成

4.各

ファイルの説明 「saisui」 デ ィレク トリの中のフアイルについて index.htnlは 表紙画面を示す。 head.ht皿1は ソフ トの使い方を表示 している. framethtmと は フレーム機能 を使 いWebブラ ウザ の画面を左右に分割 して

,左

側 に H.ht皿 1の 内容 を表示 しぅ右側 にはそれ以外 の フアイルを表示す る。 ページの分割は

,左

20パ

ーセ ン ト

,右

が8 0パーセ ン トに している。

R.htmlは

右 フ レー ムに読 み込 まれ た画像上の R.html *.」

pg

YOYAKU

index.htttl yoyaku.html head.html yoyakuocgi frame.htnl kakunin.cgi LI.html

(4)

特定 の部分 に

,ク

リッカ ブル マ ップの座標 を指定 して リンク機能を持たせている. 写真 の座標 の原点 は左 上で

,数

字 の並びは

Xl,

Yl,X2,Y2で

あ る。

(Xl,Yl)は

四角 形の左上を示 し

,(X2)Y2)は

右下 を示す。 Ll.ht皿とはフレーム機能 によ り

,分

割 された左 側 の画面に読み込 まれ るフアイルで

,ソ

フ ト開始 後のメニューを表示する。 「YOYAKU」 デ ィレク トリの中のyoyaku.htmと , 予約データ入力画面を表 示 して

,ユ

ーザが入力 し た予約情報 を

,Webサ

ー バ ヘ 送 るものであ り, data.txtは予約デ ー タ を保 存 す るフ アイル であ る。 予約 の 日付 については

,当

日よ り以前 の 日

,あ

るいは 4月

31日

のよ うに

,あ

りえない 日付 の入 力が行われてもチェックを していない。 予 約 情 報 は

,変

数 bangou,passwdぅplacel∼ place8,monthsぅ days,timebandに代入 され る。場 所 の指定は ,ア ル ファベ ッ トのa,b,c,_を用いて いる。 以下 に狐 川 コー ス と狐 川採 水場 所 のそれ ぞれの R.htmlと yoyttu.htmlの リス トを示す 狐川コースの ユ.html <HTML> くHEAD> くTITLE></TITLE> く/HEAD〉 くBODY>

くIMC SiC='0.jpg"usEMAP=P#kitu■ o'BORDER='0'> <MAP NAME='kitune">

くAREA SHAPE=rect C00RDS=488,343,524,363 HREF="。 / kitunegawa/ユ .htal'>く1-―』咀 'II― ―> </MAP> </BODY> く/HTML> 狐川採水場所 のn.html <HTML> <HEAD> くTITLE></TITLE〉 く/HEAD> <30DY>

くIMC SRC='0.jpg' USEMAP='lkitune" BORDER='0'> (MAP NAME="kitune'>

<AREA SHAPE=rect C00RDS=35,84,117,107 HREF='../.. /sendaigawa/tottoriOohasi/R.htnF>(ト ー鳥取大橋―>

くAREA SIAPE=rect C00RDS=34,224,116,245 HREF="../..

/sendaigawa/yachiyobasi/R.ht■ 1'>く!一八千代橋―>

くAREA SHAPE=rect C00RDS=59,508,122,534 HREF='../。 .

/sendaigawa/sendaibasi/R.htnl'>く !一千代橋一>

くAREA SHAPE=rect C00RDS=94,630,179,656 HREF=″../..

/sendaigawa/sendai00hasi/R.htnF>く !一千代大橋一>

くAREA SHAPE=rect C00RDS=434,905,498,929 HlEF='../..

/sinfukurOgtta/mihobasi/Roht■ 1'>く!一美保橋―>

<AREA SHAPE=rect C001DS=220,646,260,662 HREF='1.jpg″

TARGET=DneWP B01DER="0"><!一 ―写子多髯1-―>

くAREA SHAPE=rect C00RDS=543,882,583,899 HREF="2.jpg"

TARGET="newP 301DEl='0″ >く1-―

=子 5髯2-―>

くAREA SHAPE=rect C00RDS=530,856,576,874 HREF='3.jpg'

TARGET='newP 30RDER='0">く 1-― T3夢筆3-―〉

<AREA SHAPE=rect C00RDS=239,628,277,642 HREF='4.jpg"

TARGET="newP 30RDER='0'>く !――写≡5黒4-―〉

くAREA SHAPE=rect C00RDS=275,659,315,675 HREF="5。 jpg" TARGET='newP BORDER='0">く !――写子5黒5-―> </MAP> </BODY> </HTML〉 ´ yoyaku.html <HTML> <HEAD> <TITLE>予約画面</TITLE> くHEAD> くBODY> 予約データを完成させて、送信ボタンを押 して下さい.

<FORM ACT10N="yoyaku.Cgi' MET10D="POST'> 学生番号 を入力 して下さい。

(BR>

(半角英数字 で、大 文字 を入力 す るには [Shift]キ ー を押 し なが らアルフアベ ッ トキーを押す。)くBR>

くINPUT TYPE="text“ NAME=コbangou' SIZE='10'

MAXLENGTH='10"> くP>

半角英数字で8桁のパ ス ワー ドを入力 して下さい 。(予約後 、 データの変更を行 うためのものです。)くBR>

<INPUT TYPE="text"NAME='passwd' SIZE='8'MAXLENGTH="8'〉

<P> 水を採取する場所 を選んで下さい。(一つだけ) くTABLE 30RDER> くTR> <TD〉湖山池コース</TD〉 <TD〉 <SELECT NAME='placel"><ト ー湖山池―>

くOPT10N VALUE='1' SELECTED> くOPT10N VALUE="♂>青島大橋 くOPT10N VALUE="b">アド‐―卜/1ヽ握三 <OPT10N VALUE="c'>た莞,H <OPT10N VALUEゴd">高住公園 <OPT10N VALUE="e">鳥 大廃水処理施設の排水口 (OPT10N VALUE='P>吉 岡湖山川 </SELECT> </TD> く/TR> 他 の コー ス は略 </TABLE> くP> 水 を採取 す る月、 日、 時間帯 を選 んで下 さい。 (BR〉

<SELECT NAME='■onths“ >

くOPT10N SELECTED> <OPT10N VALUE="1">1月 残 りの月 は 略 </SELECT> くSELECT NAME='days'> (OPT10N SELECTED> くOPT10N VALUE='1'>1日 残 りの 日は略 く/SELECT> くSELECT NAME='tineband'> (OPT10N VALUE="0' SELECTED>

(5)

鳥 取 大 学 工 学 部 研 究 報 告 第 31巻 くOPT10N VALUE='午 前'>午前 くOPT10N VALUE='年 ">午/SELECT> <P>

針ぞ

;ぐ

g隷

)鼈

f郎

.ヒ

争やり

直し

くINPUT TYPEゴ subnit' VALUE="送 信 ″>くINPUT TYPE='reseF

VALUE="リセッ ト"> く/F01M> </BODY> く/HTML>

5.CGIプ

ログラム

CGIフ

ァィルは

2種

類 あ りぅそれぞれ「 予約す る」CGIプログラム と「 予約状況 を見 る」CGIプロ グラムに分かれている。

5.1「

予約する」CGIプログラム 「 予約する」

CGIプ

ログラムの流れは

,図

6に

示す。クライア ン トコンピュータか ら送 られて く 名票甲褒系密,(百Ⅲ苺昌粋;`途ヱτ成偽恐示為跡 して data.txtへ 書 き込む作業 をする.具体 的には, まず

,送

られ て くる予約 デ ー タ (変数 bangou,

翡響弐

,と

焙叩夢

ザ科移

腺期

│と

│:忌

Iを

1甘

1尊

14i:

mebandに 代入 し直す。次 に予約データ中の必要な 情報 が欠けていないか調べ る。また

,複

数 の場所 を選択 していないか

,デ

ータが重複 していないか どうか を調べて

,問

題 があれ ば

,ェ

ラーメ ッセー ジを返す (&errorlぅ

&error2)&error4).問

題 が なけれ ば次に進む 。さ らに

,初

めての予約データ か どうか調べ (学生番号 を使用 して調べ る)ぅ 初 めての予約データであれば

,フ

ァィルヘ予約デー タを書 き込みぅ書 き込み内容 を表示 して

,書

き込 み終 了メッセージを返 す (&successl)。 初 めての 予約データでなければ

,予

約データの変更 とみな して

,パ

スヮー ドを確認する。パス ワー ドが間違 つていれば

,エ

ラーメ ッセー ジを返す(&error3). パスワー ドが正 しければ

,予

約データを上書 きし 彗笞療 子奪 ぅξ瑞 盈£命農蟄 。 て

'上

データエラーの場合は,変 数$kakikomiに ″off″ を代入 して

,data,txtへ

の書 き込 み を禁止 する。 データの重複のチ ェ ックについては

,ま

ずクラ イア ン トか ら送 られて きたデータ を変数$Y_data

鰤触撻撥争

酔箋

' 図

6

「 予約する」CGIプログラムの流れ 予約データ を変更する場合は data.txtか ら予 約デー タを読み出 して,$bangouと$Obttgouを 比 較 して,同 じであればその予約データを変更 する。 予約データは

,予

約 す る学生1人につ き―行 と なっている。コース と場所 についてのデータ (コ ース・場所データ

)は ,次

のようになっている。 コ ー ス が

8個

あ る の で コ ー ス を placel∼ place8で 表 している。コースの順番は以下のよう 学生番号、パ スワー ド、 コー ス、場所、採水月、 日、時間帯入力 入カデータが エ ラ ー メ ッ セ ー ジ 複 数 の 場 所 を選 してい るか データが重複 ているか 初めての予約 パスワー ドは つてい るか フアイルヘデータを書き込む データをファイルヘ上書きする 書き込み終了メ ッセージ 上書き終了メ ッセージ

(6)

になっている. 1番

2番

3番

4番

5番

6番

7番

8番 湖 山池 コース 湖 山川 コース 旧袋川 コース 千代川 コー ス 狐川 コース 栗谷川

,鳥

取城 お堀 コース 山 白川 コース 新袋川 コース 選択 されない コー ス に対応 す る変数 には″1"が入 る。選択されたコースに対応する変数 には選択 さ れた場所のアルフアベ ッ トが入る. 場所 が一つ も選 ばれていない場合 は

,8個

の変 数の値 が全て力1″になるので コース・場所データの 数字の合計 ($place)が 8になる. 複 数 の 場 所 が 選 ば れ て い る 場 合 は

,合

計 (Splace)が 6以下 となる. プログラム リス トを以下に示す。 変数への代入部分は略 #場所の値をすべて足 しておいて,判断の材料にする.

$place ='splacel" 十'$place2' 十'$place3' 十 '$place4コ 十 "$place5'十 'Splace6'十 '$place7"+'$place8';

#送られてきたデータの判定.

‖それぞれの変数 に値が入 つていなかつた らデータファイル ヘの書き込みを禁上してエラー 1を 返す。

if(3bangou eq''){$kakikoni='ofF i&errori;} elsif (Splace == 力8"){$kakiko■ i = "off';&errorl;}

elsif (Sno■ths =二 "'){$kakikomi = 'off';&errorl,}

elsif (Sdays == ""){$kakikomi = 'off";&erro,1;} elsif(stineband eq"0"){$kakikoni='ofF i&errorl;} elSif(3passwd eq""){$kakikomi="off",&errorl,} #場所が二つ以上選ばれていた らデータファイルヘの書 き込 みを禁上してェラー4を 返す。 elsif($place ne'7'){$kakikomi='ofF,&error4,} elset #データファイルを開いて、クライアントか ら送 られてきたデ ータがすでに存在するか調べる。 #($kakikoniの値が offに 成 ることによって書 き込みを禁止 する。) $Y_data = '$placel,Splace2,$place3,$plaCe4, Splace5,Splace6,$place7,$place8,$■ onths,Sdays,$tineban d'; $data='dataotx♂; open(DATA,"$data"); flock(DATA,2); while (くDATA>)モ Chop($_); (30bango■,SOplacel,80,lace2,$OplaCe3,$OplaCe 4,$Oplace5,$OplaCe6,SOplace7,$OplaCe8,$0■ onths,$Odays, $Otineband,30passwd)= split(/,/,$_); #予約データが重なるのを防ぐ. If($Y_data eq'30placel¥,$Oplace2¥,$Oplace3¥, $Oplace4¥,$0,l ace5¥,SOplace6¥,$0,lace7Y,$OplaCe8¥,$Oalo nths¥,$Odays¥,$Otineband"){$kakikomi ='off';&error2;} #予約済みの学生がもう一度データ入力 した場合、 パスワー ドを確認する。 elsif(30bangou eq 〕SbangOu'){ if($Opasswd eq '$passwd"){$kakikoni = 'ofF;$uwagaki='on″ ;} else{$kakikO■ i = 'off';&error3,} } } flock(DATA,8); close(DATA); } #データの書 き込み. if($kakikOni eq "onコ){ $data = "data.txt'; open(DATA,力>〉$data'), flock(DATA,2), print DATA "$bangou,splacel,Splace2,$place3,SplaCe4,$plaCe5,$plac e6,$place7,Splace8,$■onthS,$days,Stineband,$passwd,平n″ flock(DATA,8); close(DATA); &ho■yaku; &successl; } #データの上書 き elsif(Suwagaki eq "on″ ){ #まずデータファイルか らデータを読み出 して編集 し直す. $data = 'data.txt'; open(DATA,'Sdata"); flock(DATA,2); while((DATA>){ ($Obango■,$OplaCel,$Oplace2,30place3,$OplaCe 4,$Oplace5,$Oplac06,$OplaCe7,$OplaCe8,30■ onths,$Odays, $Otineband,30passwd)= split(/,/,$_); if($bangou eq $Obangou){ $dataTMP='SdataTMP'.'$bangou,splacelデ $plaCe 2,$plaCe3,$place4,$plaCe5,$plaCe6,$place7,$plaCe8,$■ on ths,$days,$tineband,Spassld,¥n'; }elset $dataTMP='SdataTp"。 's=ゆ; } } flock(DATA,8); closc(DATA); #編集 し直 したデータ を ファイル に上書 き保 存 す る 。 $data = "datattxt口, open(DATA,'>$data'); flock(DATA,2);

print DATA '$dataTMP';

flock(DATA,8); close(DATA); &lo■yaku; &success2; } #場所番号の翻訳. sub honyaku{ if(Splacel oq'a"){$PLACE="湖山池 コー ス、 青島大橋"} elsif($place1 9q"b'){SPLACE="湖 山池 コース、 ポー ト小屋"} elsif($placel eq'c'){$PLACE='湖 山池 コース、 枝川D} elsif($placel eq'd"){$PLACE="湖 山池 コース、 高住公園"} elsif($plaCel eq'9'){$PLACE='湖 山池 コース、 鳥大廃水処理施設の排水 口'} elsif($plaCei eq'f"){$PLACE="湖 山池 コース、 吉岡湖山川〕}

(7)

鳥 取 大 学 工 学 部 研 究 報 告 第 31巻 他 の コ ー ス は 略 } #HTMLの 出力. #予約成功 (予約データが記録されたときに返す。) sub successl{

print 'Content― typei text/ht■1¥■Yn'; print 'く HTML>Y■';

::1士 t :こ 1:∫I争こ;1:LE>¥F酔

¥糸9月完】力</TITLE〉く/HEAD>¥n";

print'¥予¥約¥成¥功です。¥n″;

print 'くTABLE BORDER>¥n";

print"<TR><TD>学 生番号</TD>¥n'; print'<TD>採 水場所く/TD>¥n'; print'<TD>採 水月、日、時間帯く/TD〉Yn"; pFint "く/TR>¥n'; print '<TR>く TD>$bango■く/TD>¥n"; print "く TD>SPLACEく/TD>平n'; ::i4を :と 'It:!:]:hS月 ,$dayξ

,Stinebandく/TD>¥n"; print '</TABLE>Yn'; print '</BoDY>平n'; print "く /HTML>平n"; } 綴 守データの上書 き(予約データが上書 きされた ときに返 sub success2{ 以 下 は 略

5.2「

予約状況を見 る」CGIプログラム 「予約状況 を見 る」

CGIプ

ログラムの流れ を図 7に 示す。data.txtか ら予約データを1行ずつ読 み出 し

,連

想配列olinesに代入 す る。予約データ を月 日順 に並び替える。次 に

,連

想配列か らコー ス

,場

所 を識別 して

,場

所 に対応 する変数 に学生 番号

,採

水 月 日

,時

間帯 を代入 する。これ をデー タがな くなるまで繰 り返す。そ して この変数 を表 の形に して画面に表示する。 プログラムを以下に示す。 #フアイルか らデータ を一行 ずつ読み込んで連想配列 Ohnes に代入 してい く。 $data = 〕data,txt"; open(DATA,'$dat♂ ); flock(DATA,2); 01ines = くDATA>, flock(DATA,8), Close(DATA); #sort 01ines = nap {$_ ―>[0]}

$b」

H]評

魂嶋材

靴〒義謝

10]° r sa→

[H]⇔

map{[$_, split /,/]}01ines;

Y弥

;腔

宴≡蚕

統票

所番号で判断し

て表

fOFeaCh (01ines)(

C::ilこ i兄

llせlil:と

':;:i:を

:;阜:二

i!:;::子 :itil阜::til;l

if($placel ne'1')($UNITl($placel}=″$UNITl

{$placel}″ .″$bangou、$■ o■ths tt Sdays日、$tineband<BR>",}

place2 からplace8イmg.

}

#HTML出 力.

print 'Content― type: text/ht■ l¥n¥n"; print "<HTML>¥n";

print'くHEAD>(1lTLE>¥予¥約状況</TITLE>く/HEAD>¥♂;

print "<BODY>¥n';

print'現在の¥予¥約状況です。くP>¥■ ';

print'湖 山池コース¥n),

print '<TABLE BORDER>¥n";

print"く TR><TH>採 水場所名く/TH>くTH>採 水者学生番号、採水 月日、時間帯く/TH></TR>¥n"; print'<TR>くTD>青島大橋 く/TD>くTD>$UNITl(a}</TD></TR>¥n"; print kTR><TD〉 メドーートJヽ屋 く/TD〉くTD>$UNITl(b}</TD>く /TR>¥n"; pri■t'くTR〉<TD>枝川く/TD><TD>$UNITl{c}</TD></TR>¥■ "; print″くTR〉くTD>高住公園 〈/TD〉くTD>$UNITl(d}く/TD>く /TR>平n"; print"<TR><TD〉 鳥大廃水処理施設の排水 口 く/TD>くTD>$UNITl{e}く/TD>く /TR〉¥n'; print'くTR>くTD〉吉岡湖山川 </TD><TD>$UNITl{f}く/TD〉</TR>¥n"; print '</TABLE><P>¥n"; 他 の コ ー ス は 略 print '¥n); print "く/BODY>¥n'; print '</HTML>Yn'; 図 7 変数 デ ー タ を連 想 変 数 に代 入 連 想 変 数 か ら 予 約 デ ー タ を 1行 読 み 出 す 予約 デ ー タか ら採 水 場 所番 号 を取 り出す 予約 され た場 所 の行 に学生番号、採水 月 日、 時間帯を記入する 予約データを全 て読み出 したか 予約状況 の表 を画面 に出力 「 予約状況を見 る」CGIプログラムの流れ

(8)

6。 まとめと今後の課題

LANを 利用 した Visual Basicに よる予約 システ ムをWeb上の予約 システムに変換 した 。これによ ってイ ンターネ ッ トに接続 している端末か らぅ自 由に このシステムを利用 で きるようになった。 し かも

,デ

ィレク トリ構成 は簡単であ り

,変

更・修 正 も容易に行えることがわか った。コースや場所 の移 動 は リンク で行 つ て い る た め に

,Visual

Basicの システムよ り動 きはスムーズである. ところで採水場所 地 図 はサ イズが大 きいため にっ目的の場所 を表示す るためには場合 によって はスク ロールさせ る必要があ る。これは図の どの 部分 を表示 させ るかの指定がで きないためであ り, 図のサイズを小さ くする必要がある. 用 いて い る鳥取市全 図 は著作 権 の問題 で公開 で きないため

,こ

のシステムを外部 に公開するこ とはで きない。自製の地図作成が急務である. 今後 は水 質 のデ ー タ を記録 させ るな どの機 能 を付 け加えるな どシステムの充実を図 る必要があ ろう。また

,予

約 の 日付 につ いてはタイムテー ブ ル方式[5]を導入 したい。 参考文献 と注 [1]榊原正 明 ぅ立花 良―

,高

見和 邦

,松

本法子, 堀 内欲 史

:LANを

用 いて の採 水 場 所 予約 プ ログラム

)鳥

取 大学工学部研 究報告 ぅ

28巻

, 第 1号 ,1997,pp.119-124. [2]榊原正明ぅ立花良―

,松

本法子:採水場所決定 の た めの プログラム の作 成 ―身近 な 自然環境 の探索を兼ねて―

,コ

ンピュータ

&エ

デ ュケー ション,Vol.4,1998,pp.75-81. [3]南和 明 :鳥 取大学工学 部物 質工学科 卒業論 がt 1998. [4]湖山池 コー スの鳥大廃水処理施 設 の排水 日か ら湖山川コースの井津水橋

,先

津橋. 狐川 コースの狐川か ら千代川 コースの鳥取大橋, 八千代橋

,千

代橋

,千

代 大橋 ぅ新袋川 コースの 美保僑. 山 白川 コースの山 白川 か ら新袋川 コースの美保 橋. 以上 の場合

,い

ずれ も左 の場所 か ら右 の場所 に しかいけない。 [5]榊原 正明

,太

田祐市:ネ ッ トワークを利用 した

NMR予

約管理 システ ム

,鳥

取 大学工学 部研 究報告

,30巻

,第

1号

,1999,pp.27-32.

(受理 平成

12年 9月

21日)

参照

関連したドキュメント

■はじめに

・性能評価試験における生活排水の流入パターンでのピーク流入は 250L が 59L/min (お風呂の

一貫教育ならではの ビッグブラ ザーシステム 。大学生が学生 コーチとして高等部や中学部の

2012 年度時点では、我が国は年間約 13.6 億トンの天然資源を消費しているが、その

2012 年度時点では、我が国は年間約 13.6 億トンの天然資源を消費しているが、その

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

 自然科学の場合、実験や観測などによって「防御帯」の

自分ではおかしいと思って も、「自分の体は汚れてい るのではないか」「ひどい ことを周りの人にしたので