• 沒有找到結果。

火車時刻查詢系統

N/A
N/A
Protected

Academic year: 2021

Share "火車時刻查詢系統"

Copied!
55
0
0

加載中.... (立即查看全文)

全文

(1)

逢 甲 大 學

資 訊 工 程 學 系 專 題 報 告

火車時刻查詢系統

吳 建 緯 (四丙)

生: 吳 峰 佶 (四丙)

蔡 志 全 (四丙)

廖 庭 緯 (四丙)

授 : 黃 秋 煌

中華民國九十一年十二月

(2)

目 錄

目錄 ……..……….2 摘要 ………...4 第一章 導 論 ...6 1.1 簡介 …………... 6 1.2 動機 …………... 6 1.3 目的 …………... 7 1.4 目標 …………... 7 第二章 系統架構說明 2.1 系統開發工具及平臺……… 8 2.1.1 開發工具………. 8 2.1.2 各工具的使用對象………..9 2.2 系統架構功能流程………. 9 2.2.1 系統主要的主體………9 2.2.2 流程………..10 2.2.3 各主體架構功能………..10 第三章 資料庫的產生及時刻表轉檔.……….18 第四章 票價的計算……….21 第五章 系統界面操作說明……….22

(3)

第六章 系統的評估與討論………..28 第七章 結論與心得 ... 30 參考資料 ...42 附錄 一 ...44 二 ...46

(4)

摘要 : 90 年代的重要產物 PDA 經過了十多年的發展如今已逐漸成為個 人和公司的重要必備物品,許多人會想要用它的原因如下: 第一: 它很方便,今天如果你出門在外有重要的檔案文件要查詢或者跟客戶 談生意要給客戶看,以前你可能要帶一大堆文件或者找一台電腦上網 查詢,如今妳有了 PDA 這一切將會解決你所有的困擾,你可以透過 PDA 去完成這些事情。 第二:

它功能不錯,如今 Microsoft 所出產的 Win CE PDA 它功能強大,可 以說是把你的電腦濃縮在這 PDA 裡面,有 Word、記事本、計算機、 時鐘,甚至可以聽音樂等等...應有盡有。 第三: 它很輕巧,我想如今 Note Book 很流行辦公也很方便但我想沒人想帶 著一台 Note Book 到處跑,因為說實在的它實在不是很輕巧好帶如果 今天妳有一台 PDA 它就像你的皮夾一樣放在口袋即可又不佔空間,也 不會因重量太重而覺得它麻煩。 綜合以上幾點 PDA 這個產物將會是以後的主流,所以我們藉著 PDA 做出以台鐵火車時刻查詢系統為主的 PDA 線上火車時刻表系統,是利

(5)

用 Microsoft 的 Win CE 系統,做出查詢的介面和捜尋資料系統,如 此一來便可以利用到 PDA 的移動性以及輕巧可攜的好處,讓火車時 刻達到隨時隨地都可以查的境界。

(6)

第一章 導論

1.1 簡介 隨著科技的日新月異,人們的生活也越來越忙碌為了要提高生活 品質和工作效率,而電腦是 20 世紀的產物它之所以會誕生出來就是 為了要符合人生越來越忙碌的生活,它替我們解決了無數的問題,不 管在資訊、醫學、建築、通訊、交通各方面都帶來了莫大的幫助,但 是電腦畢竟是笨重的很多人出門在外談公事有時候在一家餐廳就談 了起來,或者是要立即查詢重要的資料,例如:他想知道個火車的班 次表好決定要做哪一班次的火車而不會延誤時間,此時 PDA 就成了你 最重要的工具,它方便、輕巧、好用,且功能強大現在甚至只要有 GSM Module 它就是一支手機,這種好用的東西如果不用是不是太可惜了 一點,PDA 將會成為你的好夥伴陪你出門到處打拼讓你可以處處有電 腦處處不會延誤到商機和重要的時刻,畢竟科技是來自於人性的。 1. 2 動機 基於台灣有著環島的鐵路網,所以往返台灣各地,搭乘火車一直 都是旅客們的首選,原因不外乎是方便,時刻固定,不會塞車,而且 台灣鐵路是環島的鐵路網,在台灣鐵路局有心的發展之下,即使有高 速公路依然無法替代環島鐵路的地位,所以就想要做台灣火車時刻查 詢系統,因為這是可以讓旅客在不用到火車站就可以在家或可以上網

(7)

的地點先上本系統去查詢合乎自己時間的班車,而 PDA 版本更是為了 要讓查詢的動作不只是單單在一個定點,而是可以走到那查到那,這 樣一來更是便利了旅客們,更大大減少了旅客在火車站大排長龍的景 象。 1. 3 目的 目的是為了讓旅客可以在不到火車站的原則之下先行上系統查 詢是否有班車可以搭乘及班車的開車時間,可以減少旅客在火車站的 大排長龍的景像,也可以使有限的車站資源做更有效的利用。 1. 4 目標 網頁版: 經過組員們的討論及向黃教授的請益之後,初期的目標是要做出 網頁版本的台灣鐵路火車時刻查詢系統,而且最好可以得到台灣鐵路 局的幫忙,可以拿到正確的資料,去建資料庫並且去做時刻查詢系統。 PDA 版: 如可以做出 PDA 版,即可不受限於定點查詢的功能,可以隨查隨 得資訊,至於最重要的資料更新的問題,即可透過下載最新時刻表資 料庫的方式去做更新,這樣一來就可以有更多的便利性及實用性。

(8)

第二章 系統架構說明

2.1 系統開發工具及平臺 2.1.1 開發工具 Java: 火車時刻查詢系統由於我們有事先透過和台灣鐵路 局的連繫,並且得到 黃志全先生的協助取得火車時刻的 資料,再藉由我們自己撰寫的 Java 程式來做讀檔,分析 火車時刻表的檔案,拿出此系統所需之資料,然後做寫入 資料庫的動作,完成最初資料庫的建立。 ASP: 火車時刻查詢系統的 PC 端,是使用 ASP 開發使用者 的查詢介面和使用 Windows XP Professional 的 IIS5.0 架設 Server 端,您可利用此系統在您的 PC 上利用 Browser 做線上的查詢系統,而關於時刻更新的部份,管 理者也會在 Server 上使用轉檔進資料庫的程式做資料更 新的動作。包含一般時刻的更新及臨時加班車的更新。 PDA: 火車時刻查詢系統亦有 PDA 端,使用 Microsoft 的 Win CE 作業系統,您可以藉由 PC 透過 Browser 下載最新

(9)

的 For Win CE 的資料庫,然後再利用 Active Sync 傳 資料庫進 PDA 這樣一來,就可以查詢到最新版的火車時 刻表。 2.1.2 各工具的使用對象 Java: 使用對象為開發者, 開發者可利用它做資料轉換進資料 庫的動作,是開發者不可獲缺的必備工具。 ASP: 使用對象為使用者,使用者可以透過它在 PC 端做線上查 詢或 Download Win CE 的資料庫。 PDA: 使用對象為使用者,使用者可以從 PC 透過 Browser 下載 資料庫,然後再透過 PDA 隨時做火車查詢的動作。 2.2 系統架構功能流程 2.2.1 系統主要的主體 一. Java 轉資料進資料庫程式 二. PC 查詢介面 三. PDA 查詢介面 四. 資料庫

(10)

2.2.2 流程

簡介使用流程

User -> PC -> Server 電腦線上查詢

User ->PDA ->PC ->Server PDA 資料庫取得及傳入 PDA

User ->PDA PDA 火車時刻查詢 2.2.3 各主體架構功能 介紹 主體一:Java 轉資料進資料庫程式 我們這些開發者經過多次的請求協助並得到台灣鐵路局的 火車時刻表資料,然後透過 Java 程式轉進資料庫主要功能 是把需要的資料放入資料庫。 情形如下圖: 台鐵 原始 檔 開發 者 Java 程 式 資料 庫

(11)

主體二: PC 查詢介面 當我們擁有資料庫後,我們在 PC 端也可以做查詢的動作, 藉由網頁的查詢你也可以知道火車時刻表,而使用者也可以 透過網頁上的超連結來下載 PDA 所需要的檔案 Components 情形如下圖: 使用 者 PC 查詢 介面 查詢 結果 檔 案 下 載 PDA 主體三:PDA 查詢介面

我們可下載資料到預載 Microsoft Win CE 的 PDA 做移動式 查詢系統你可以在路上、餐廳、車上做即時的火車時刻查詢 既方便,又省時而且又有效率。

(12)

PDA 查 詢結果 PDA 場所:餐廳 使用 者 主體四:資料庫 我們所有的資料庫資料都是經由台灣鐵路局所提供的檔 案,在經由程式把資料轉入我們所建立的資料庫當中,當然 我們會篩選資料,但一切都以真實的時刻為主,且資料庫的 欄位大小及格式均依台鐵的資料來做設定,而資料庫的各 table 的說明如附錄一。

(13)

功能列表 1.Java 轉資料進 資料庫程式 主要負責讓開發者把檔案傳入資 料庫的動作. 2.PC 查詢介面 使用 PDA 做移動式即時火車時刻查 詢系統 儲存由台鐵所得到的資料所轉換 的時刻表資料 4.資料庫 3.PDA 查詢介面 可查詢火車時刻,和下載 PDA 所需 要的檔案原件 功能說明 功能表 Table

(14)

Us

er

Dat

abase

火車時刻

查詢系統

火 車 時 刻 資 料 L o a d D a t a Ge t D a t a

PD

A

L

o

ad

W

in

CE

D

at

ab

as

e

系統分析 圖一

(15)

火車時刻查詢

系統Ser

ver

User

火車時刻

查詢介面

Client

火車

時刻資料

時刻表

查詢

PDA

Lo ad Win C E Datab ase

時刻表

查詢

P

DA查詢介面

要求資料

傳送資料

要求火車

時刻資料

系統分析 圖二

(16)

火車時刻

查詢系統

Server

台鐵的資料

轉換資料

資料庫

傳送已

轉換的資料

Lo

ad

Lo

ad

Data

要求

資料

系統分析 圖三

(17)

系統分析 圖一說明: 圖一的系統分析是我們整個系統大概的架構,由 Database 傳送 資料給火車時刻查詢系統 Server 再由 User 去做查詢的動作,而 也可以傳送 Database 給 PDA。 系統分析 圖二說明: 此系統分析圖是在說明此火車時各查詢系統的內部動作,火車時 刻查詢系統的 Server 可讓使用者在任何一台可上網的電腦透過 Internet 來查詢火車的時刻表,亦可在網路 Download PDA 所需 要的程式及 Database。

系統分析 圖三說明:

此系統分析圖主要是在說明程式設計者拿到台鐵的原始檔,在經 由程式設計者寫的轉檔程式把已轉好的檔案放入我們的資料庫 裡再讓火車時刻查詢系統 Server 去抓資料。

(18)

第三章

資料庫的產生及時刻表轉檔

轉檔程式的介紹: 資料庫的產生是由於得到台灣鐵路局的協助,取得台鐵的時 刻表檔案,並且去做轉檔案進入資料庫的動作,使用 JAVA 來撰 寫轉檔程式。下圖為轉檔程式執行畫面 共有四個功能,轉換台鐵給的檔案為所要的格式,再來按下想要 做的動作去完成資料庫的更新。由於從台鐵取得資料時,資料做 更新的效果不及直接置換,故所有的更新資料庫是去做刪除再去 新增。

(19)

台鐵檔案的介紹: 此次可以得到黃先生的幫助對此系統的真實性加了百分 之一百的分數,唯一可惜的是只能拿到數份資料來做交叉的測 試,此乃美中不足。 台鐵的檔案共分為五個部份: 一、 時刻主檔 包含 車次(5),行駛車站序號(3),站名代碼(4),到 站時間(6),開車時間(6),任務(8),股道(12) 下圖 為檔案的一擷取圖 二、 車次資料檔 包含 車次(5),車種(4),行駛幹線(2),行駛支線 (2),起站(4),迄站(4),行駛時間(無限長) 下圖為 檔案的一擷取圖

(20)

三、 順逆行資料檔 包含 車次(5),順逆行代號(1),起站代號(4),迄站 代號(4) 下圖為檔案的一擷取圖 四、 車站代碼表 包含 車站代碼(4),車站名稱(8) 下圖為檔案的一擷 取圖 詳細的說明於附錄二

(21)
(22)

第四章

票價的計算

本系統票價的計算方法及公式亦由台鐵資訊中心黃先生所提供,由於 要讓火車時刻查詢更接近於真實,故再一次的請求黃先生的協助,得 到了下列資料,也對其算法做一說明: 下圖即台鐵的站公里數檔案之一範例: 而票價的計算是依公里數的多寡來計算,而各種車再乘上車種參數即 為票價,公式=(里程數(進整)*車種參數)(進整) 車種參數說明 2.72 自強號 1.75 莒光號 1.46 復興號 1.06 普通車

(23)

第五章 系統界面操作說明

網頁版: 主頁:Http://203.217.102.121/ASP/Train_a.ASP 當使用者選擇起程和迄程站及預計搭乘的時間間隔之後 按下進行查詢即可以查詢到如下頁圖之正確的火車時刻表 當然全部共有全線、西部含台中、東部含北迴、南迴、平溪、內灣、 集集、臨時加班車,線可供查詢,以及 Win CE 版本的 Database 供 下載至電腦上。再經由 Microsoft Active sync 將該資料庫及火車 時刻查詢程式傳入 PDA 中,如此一來,便可以隨時查詢到最正確的 火車時刻表。

(24)
(25)

當使者將 PDA 連上電腦以及安裝完 Microsoft Active sync 之後, 便會出現一個行動裝置的捷徑,並且可以透過 Active sync 達到傳 檔案進 PDA 的目的,上圖是將資料庫傳入 PDA 的擷取畫面,完成傳 入火車時刻查詢系統及最新版火車時刻資料庫之後,便可以查詢。

(26)

PDA 版: 下圖一即是將火車時刻查詢程式及最新版火車時刻資料庫傳入到 PDA 的結果,使用者可以藉由執行 TrainTimeList.vb 這個程式去開 啟火車時刻查詢系統,如下圖二,便可藉由按下各支線的按紐去執行 火車時刻查詢功能。下頁即是擷取全線查詢為一例。 圖一 圖二

(27)

上圖路即是使用全線查詢的功能展示,可以按下看上一筆或是看下一 筆去查看各單筆的火車時刻,或是選擇結束查詢離開火車時刻查詢系 統。下頁是擷取臨時加班車的畫面以及本系統的 關於。

(28)
(29)

第六章

系統的評估與討論

網頁版: 大致上,在於網頁版的部份,大都是正常而且可以實用的, 唯一不足的可以說是票價的誤差,票價的計算方法是台鐵資訊中心 黃先生所提供,但計算出來卻與台鐵網頁上查詢出來有出入,但猜 想可能是台鐵有做過變動或是其中還有更複雜的部份,所以黃先生 想說純學術性實應不用提供到如此精準。除此之外應該功能上,資 料精確上,都是正確的,因為一開始就抱持著一切都要以正確為優 先考量,所以才會多次請求黃先生的協助,也再次感謝黃先生的幫 忙。 網頁版的檔案是放在一部用 IIS5.0 架設的主機上,只要連 結到 Http://203.217.102.121/ASP/Train_a.ASP 就可以查詢及下載到最新的火車時刻表。 PDA 版: 除了因為硬體運算速度影響了查詢結果的輸出較慢之外,其 它的部份都和網頁版一樣是最真實的,只是不能將使用者界面做成 最人性化一直是我們心中的一大遺憾,不過我們想信真實和可行是 最重要的。而且希望有朝一日可以在佈有無線網路的情況之下,完

(30)

成直接藉由無線網路去執行查詢的動作,就像網頁版一樣,無需下 載資料庫到 PDA 上,這樣一來就真的實行了走到那查詢到那,而 且保證一定是最新的資料。 而更新火車時刻資料庫則是連結到 Http://203.217.102.121/ASP/Train_a.ASP 就可以下載到最新的火車時刻資料庫。 討論: 此系統的完成全賴黃秋煌教授的耐心指導以及台鐵資訊中心 黃志全先生的全力協助及蔡進義學長的指導之下所完成的,雖然 並不是很理想,但我們相信這應該是一種突破,將以前大家都以 為火車時刻只能在網頁上查詢的思想打破,只要技術上可以克 服,不但是火車時刻,有著更多的便利的東西都可以移植到 PDA 上來,這樣一來,才能發揮 PDA 的功能。

(31)

第七章 結論與心得

總結: PDA 對大家都應該不陌生,而且我也覺得做 PDA 相關的專題實 用性也蠻大的,這是一份含有 PC 版本也有 PDA Win CE 版本的”台 灣鐵路局火車時刻查詢系統”,最重要的不只於它有 PC 有 PDA 更 重要的是它裡面的內容是台灣鐵路局資訊中心 黃志全先生所提供 的,所以是正確的時刻表,只是礙於我們只是屬於學術性的研究,並 且牽扯到台鐵與其外包公司之合約因素,故只能取得舊的資料數份來 做交叉的測試証明此系統是可以正常使用的,假以時日,只要排除各 種困難,並且可以一直得到最新版的台鐵火車時刻資料,那就代表著 此系統是可以在實際生活上用的。這也是這一份專題的重點,不但包 含了可行性和實用性,更有正確性。 個人心得: 吳建緯 : 為了專題也曾找過不少指導教授,原因在於自己不懂得自己的興 趣在那個領域,最後在和指導教授 黃秋煌教授討論過後,發覺自己 對 PDA 方面的東西倒還覺得蠻新鮮的,也想做相關的專題,後來就 決定和 黃教授做專題。 一開始老師是讓研究所的學長教我們 JAVA 的程式設計,目的應

(32)

該是想要磨磨我們的程式功力吧!後來覺得也五月中了,想和老師討 論題目的事,想先定下題目之後再來邊上課邊實作,後來幾經思考且 老師也有給予相關方面的題目,才決定做”台灣鐵路時刻表查詢系 統”因為覺得這不但有 PC 端的實作也有 PDA 方面的,更包含了資 料庫,所以就決定了這個題目,只是有好幾次想放棄的原因在於,既 然是鐵路時刻查詢就一定要是真的可以用的,而不只是模擬的,所以 就想辦法和台鐵相關的處室或負責人員聯絡,不過都得不到回應,但 經過 黃教授的鼓勵和教誨,覺得這正是訓練我做專題的態度的最好 方法,所以我就聽 黃教授的話來個發揮決不放棄外加死纏爛打的精 神,最後得到的是台鐵資訊中心 黃志全先生的全力協助,黃先生的 幫忙更激起了我做這專題的鬥志。 經兩個月來和黃先生的 mail 之後,也得到了台鐵的真正時刻表 的資料,並且也開始著手實作,一開始是建資料庫,即把台鐵資訊中 心 黃志全先生給序我的台鐵時刻表資訊轉入我的資料庫中,在這部 份真的是忙到不分日夜,可能是程式功力太差,也花了不少的時間, 從研究資料格式到動手寫 JAVA 的轉檔進資料庫的程式,真的蠻花心 神的,不過這一點苦又算什麼,最後幾經研究和修改之後終於把資料 庫建起來了,不過因建的不夠好,又做多次修改,最後才改好。 不過完成資料庫之後再實作 PC 的部份是用 ASP 雖然好像不

(33)

難,但是畢竟從以前到現在從來沒有碰過 ASP 所以也花了一小段時 間去找書找資料,由於仿間的書籍很少有資料庫相關的,最後參考了 幾本相關書籍,並且動手去寫查詢的程式,花了幾星期時間,最後才 完成一份網頁版的台灣鐵路時刻查詢系統,從開始做到完成網頁版剛 好三個月多,當然是包含二個多月的 mail 時間,不過光做 ASP 網 頁去查詢就花了二個多星期,原因也大都是在做除錯方面,因為時刻 查詢有很多小地方要去注意的,不然查詢出來都會有錯,最後完成時 雖然真的很累,畢竟一天花十多個小時在寫程式和除錯,連續好幾星 期,不累才怪,但是這也算是專題給予我的另一種磨練吧!不只是磨 我的程式功力也磨我的耐力,但我要把專題做好的心是決不會動搖 的。 不過,後來與指導教授 黃秋煌教授請教之後,發生了一件很嚴 重的問題就是對資料庫的觀念錯誤和程式不夠完美,例如沒有票價, 造成資料庫又重新修整,又再一次請求台灣鐵路局資訊中心 黃志全 先生的協助,取得台鐵票價的計算方法及公式,幾經修整,才將最後 的網頁版本完成,過程幾經波折,還是由衷感謝 黃教授的耐心指導, 當然功能方面不比台鐵網站完整,但其中的資料及應有的功能都沒有 缺少,版本還一再的更新,至於沒有想到的功能,可以慢慢加上去, 讓系統可以像台鐵一樣完整。

(34)

再來就是要做 WIN CE 的部份了,從來沒有用過 PDA 真的不知 如何下手,不過還是憑著一股熱血,先找相關書籍來念,也多次請教 研究所的蔡進義學長,瞭解 PDA 上開發工具 EVB 及一些相關要注意的 事項,原本還天真的以為不會很難,畢竟只是將 pc 版本移到 PDA 上, 但事實上與我所預想的完全不同,PDA 不可能像 pc 一樣支援那麼多 東西,所以寫起程式來特別讓人費心,甚至於 SQL 的部份並非完全支 援,或許說根本支援的少之又少,但還是得一一的去克服,在克服的 當中數次煩請黃教授的指導,也由哀感謝黃教授的指導,讓我們可以 更加的用心去克服問題,畢竟 PDA 和 pc 是不同的,光硬體支援上就 差多了,像資料庫的轉檔使用 Microsoft Active sync 來傳檔案進 機器,就會有超奇怪的問題出現,找尋資料的速度超慢的,這一些問 題都困擾著我很久,畢竟 PDA 和 pc 的主要方法都是大同小異的,所 以在除錯的時間花費上讓我感到困擾。建立介面方面也傷透腦筋,畢 竟有版面大小的問題,不過還是得以清晰為主,幾經過很多令人不解 的奇怪問題之後,才做出來一個較可行的火車時刻查詢系統,當然 PDA 的硬體支援一定不如 pc ,所以應由低階語言來完成實作較為恰 當,或許如此一來便可以增快速度許多,但也由於 Win CE 的支援資 料庫,所以當然直接拿資料庫來用是再好不過了,也才導致衍生出很 多問題,畢竟光是運算速度上的差異就很大,這也難怪 Win CE 對

(35)

SQL 的支援並不完全,以致於速度上慢了很多,檢討出大致上會慢是 因為運算的筆數過於龐大,也無可奈何的是因為一切都要以真實性為 前提之下,資料是一定會很龐大的,這也就應證了當初尋求台鐵的幫 助時,黃先生建議我們理應多方評估再做計畫,但其實只要硬體運算 可以再提高的一日,應該不是問題才是。 不過蠻慶幸的就是因為做 PDA 版,而讓我找出一些網頁版上沒有 找出來的錯誤,與其說錯誤倒不如說是缺點,最終做出來的成品也是 花我們超多心思的努力結果,雖不盡理想,但卻是我努力許久的專 題,也算是我們上大學以來做的最好的一個程式,學習了如何從只有 概念再去實作,回想起來真的是很好,好的是努力了這麼久用了這麼 多的心思,日日夜夜的只為這專題,真的很欣慰,更令我們感動的是 黃秋煌教授的耐心指導及黃志全先生的大力協助和蔡進義學長的教 導。 吳峰佶: 起初,因為不曉得自己的興趣為何,所以找過幾個教授,再經過 一連串的討論後,我們決定跟黃秋煌教授做火車時刻查詢系統,不僅 作網路版的火車查詢系統,也作 PDA 上的,隨著科技的日新月異,想 必越輕薄的東西應該會更流行才對,PDA 很小而且攜帶方便,然而我 們做 PDA 的火車查詢系統,這樣不僅走到哪、查到哪,隨時都可知道

(36)

最新的火車時刻表,真是方便阿;一開始教授就安排研究所的學長教 我們學 JAVA,從來都沒學過的我們,想當然爾,一開始接觸到新的 東西,是需要花一段時間去適應的,經過學長一番的教導後,就開始 著手寫轉檔程式,將從台鐵那邊拿到的資料,利用 JAVA 程式一步一 步轉檔到資料庫中,完成現在所使用的資料(TrainTimeList.mdb)。 再來就是 ASP 部分,ASP 支援兩種語言,一種是 VB 例外一種是 JavaScript,我們是採取 JavaScript 來寫程式,再經由黃秋煌教授 指導的巢狀式 SQL,將有關聯的欄位從 Table 中取出,而不必要的資 料就不從資料庫拿出,這樣才能避免不必要的浪費記憶體空間,完成 後,幾乎都在 Debug 程式的錯誤,一開始查出來的班車跟台鐵完全是 兩碼子的事情,不過這只是我們的起步,再經過一而再、再而三的除 錯後,總算顯示出正確的資料,跟台鐵網站上查出的結果一模一樣 了,這算是蠻欣慰的地方。

最後,利用 EVB(Embedded Visual Basic)來寫 WIN CE 的程式, WIN CE 是最頭痛的部分,雖然它少掉了 PALM OS 轉檔的部分,不過 比較起來仍蠻吃力的,將原本的資料庫轉進 WIN CE 裡面都沒問題, 隨著 ASP 中加班車的陸續增加,使得原本的資料庫瞬間變大 2~3 倍, 接著要轉成 WIN CE 格式的資料庫也就比想像中困難很多,轉個三天 三夜,PDA 的資料庫還是轉不進去,最後在老師的建議之下,將過站

(37)

不停的班車在 JAVA 執行轉換程式時不要寫入資料庫才得以解決,也 就是減少資料庫的容量,避免過於龐大而造成轉檔的負擔;還有就是 WIN CE 支援的東西太少,在 ASP 中能跑的 Code,拿到 WIN CE 中會發 生錯誤,導致於我們要重新改寫 WIN CE 專用的程式,而且 WIN CE 中 不接受同樣的 Table 開兩次欄位(因為會使用到同一 Table 的起站時 間與迄站時間),所以只好分段寫,相對的,本來合併寫的程式碼就 變成要拆開來寫,感覺有點事倍功半,最後在老師的建議下,使用 Array 儲存查詢的結果,本來在 WIN CE 中查詢一筆資料必須 Run 好 久,經過黃老師指導拿掉過站不停的資料,查詢時變的更有效率,而 且省時多了,感覺起來很不錯。 要將程式碼寫成具體的東西,就我而言還是太抽象了,我會盡一 己之力好好的把專題給完成的,從原本的一無所有,慢慢一點一滴累 積而成,最後完成後的專題,這種喜悅是無與倫比的,也是我們這組 值得驕傲的地方,或許對別人而言沒什麼意義,但對我們而言,關係 重大,這是我們努力許久所完成的作品,我以此專題為榮;最後,感 謝黃秋煌教授、以及蔡進義學長,在我們無助的時候適時的拉我們一 把,以致於我們的專題得以完成,在此謝謝他們。 蔡志全: 這次專題重之前的準備到之後的實作也有半年多了,Java 語言的學

(38)

習資料的收集花了不少的精力和時間心血,不過現在實做起來才發現 之前的努力並沒有白費,實做時所需要的大量資料和所需要的技術很 多都是之前並沒有學過的,很多都是要現學現賣的像一開始的 Java 語言從開始不會到有一點知道到現在會用它撰寫程式在這中間經歷 了許多的經驗,每一次經驗的累積都是作為現在寫程式的基礎,記得 剛開始寫 Java 程式的時候聽學長說他很多功能都弄成了物件所以寫 起來應該不難可是在自己真正寫起來時又不是那麼一回事,許多的用 法不熟加上自己撰寫程式的功力又不強,寫程式時所遇到的問題真是 一籮筐,現在我們開始實做大概分 2 大部分前一半部是做檔案的轉換 放入資料庫跟 server 介面的部分和後半部分是做 PDA 的作業系統而 我們使用的是 Win CE 然後 PDA 連結 server 做查詢。

在 server 端: 我覺得之前的資料的收集應該是比較困難的不過由於台鐵的配合他 們願意提供資料給我們讓我們省下去他們網頁抓資料的功夫,這一點 真的很感謝他們,至於資料分析的部分也沒有做很久在介面方面我們 所使用的是 ASP 原本是想用 ASP.Net 不過想一想還是不需要用到那麼 新的東西,所以選用 ASP 比 JSP 跟 PHP 好學多了不過這之中也遇到了 許多問題例如許多資料庫專用的語法不知道讓我們遇到了麻煩譬如 兩欄位的比較我們之前是用普通的語法去做但發現 bug 很嚴重所幸

(39)

找到了可以用的資料庫專用語法來代替才解決問題還有資料庫裡的 更新當初也是一個問題不過幸好一一解決了經過了無數次的 debug 終於做好了前半部分算一算剛好歷時一個月此時做好時心情有點高 興但更緊張因為接下來的才是我們比較困難的,是我們從未碰過的 PDA 程式跟與 server 的連結這是我們真正的挑戰。 在 WIN CE 端: 在這方面我們可以說是費了很大的心力才去完成的,怎麼說呢,原因 是我們對於 Win CE 這台機器上的 OS 可以用的指令限制不瞭解,在我 們製作的過程當中遭遇到我們之前從來沒有想像過的問題。 第一 : SQL 指令集的問題,我們在做 ASP 方面的程式時可以用所有的 SQL 的 指令,但是這些在 Win CE 這台機器上似乎都不行做,只能用單純的 SQL 指令去做搜尋的動作,由於 Win CE 的速度不快所以我們先把資 料暫存然後去抓資料才大大提昇了我們搜尋的速度但是還是沒辦法 要求它達到我們所要預期的速度這是一件令人頭痛的事情。 第二: Win CE 所要求資料庫的規格,我們資料庫是用 Access 做的所以我們 是直接與 Win CE 的機器連結,然而我們在這一方面的 Debug 花了很 長一段時間才做好。

(40)

光在 PDA 方面就花了我們好長一段時間才用好,其中求助了老師、 學長許多次,而我想主要原因是 PDA 方面我們一點都不熟,再加上書 籍的介紹又不多,才會造成費時已久的局面,不過經過這一次的訓練 我想在這一方面我的歷練又更多加深了一步,這一次的專題是很好的 經驗,雖然很苦但收穫也增加了不少了。 廖庭緯: 在做這個專題的過程中,經歷很多事,記得從一開始二年級下學期的 時候,學校要系上同學開始準備填名單,找自己想要做的專題,去請 老師收起來當專題學生,那時候的自己還是懵懵懂懂的,根本不知道 那是什麼,也不知道自己想做的是什麼,所以就找班上的同學一起商 量,想來想去,最後跟同學商量後,一起去找黃老師做,老師同意收 我們當專題學生後,要我們回去想想看要做什麼,因為老師是指導有 關於 PDA 方面的,所以經過大家的討論後,決定要在 PDA 上做台鐵的 火車時刻表查詢系統,定好題目之後,就開始構想如何把台鐵火車時 刻表的查詢系統,之後就開始準備資料的取得,於是大家就開始上台 鐵網站去找,找到和台鐵取得資料的聯絡方法,然後寫 E-Mail 請他 們提供協助,一切都好像進行的蠻順利的,但是台鐵卻一直遲遲沒有 回信,到最後只好去找老師,跟老師說因為資料拿不到,所以只好放 棄,結果老師還是繼續鼓勵我們,要我們堅持下去,老師說這也是做

(41)

專題的過程中,會遇到的困難,要我們就把它當作是一種磨練,終於, 台鐵有了回應,並且請在台鐵的資訊組人員協助幫忙,有了台鐵的資 料,讓我們又有動力繼續往下做下去,因為向台鐵取得的資料並不是 拿來就馬上可以用,所以必須先做一個 JAVA 程式來取出我們自己要 用的資料,完成之後開始一步一步建立資料庫,資料庫建好之後 接 下來就是做 SEVER 端部分的 ASP 程式,把經過程式過濾建好的資料庫 放上 SEVER,在 SEVER 端上做一個查詢的網頁,接下來就是在 PDA 上 面做查詢的部分,PDA 上面用的作業系統是 Win CE 3.0 ,一開始看 到那麼漂亮的畫面,簡直就跟在個人電腦上用 Windows 一樣,覺得使 用起來相當熟悉,一開始做的時候以為應該可以做的比較輕鬆一點, 但是事實上卻不是這樣,由於 Win CE 畢竟只是在 PDA 上,不是一般 的桌上型個人電腦,在記憶體和運算能力上並不能與個人電腦相比, 所以在資料庫的應用方面,也比在個人電腦上的使用更為簡單,沒有 很深入的應用,所以在做的時候,會遇到一些原本只要幾個 SOL 敘述 能做好的事,都必須重新想辦法找其他的方法來代替。例如在 Win CE 上面並不能使用一次開 2 個 Table 的指令,類似這種的語法限制一直 困擾著我們,因為以前完全沒有碰過 PDA,所以有很多的地方都是做 了才知道哪些可以用,哪些不能用,只能一個一個利用在程式裡穿插 的訊息慢慢試出來,讓我們覺得每一步都很辛苦,先前在 ASP 上面可

(42)

以用的 SQL 指令變成有的可以有的不行,還有在資料庫方面,資料庫 的資料量太大,導致於在 PDA 上面查詢的時候,搜尋速度變的很慢很 慢,最後,先把資料放到 Array 裡面,再做處理。如此一來,查詢速 度比先前的速度好多了,不過在和老師的討論之後,還是決定要把過 站不停的車次資料去掉,這樣子搜尋速度才比較能接受,除此之外, 資料庫當初是由 Access 去做的,當要透過連線程式轉完傳進去的時 候,Win CE 沒辦法有太複雜的資料庫應用,在主鍵那邊一直有問題, 造成轉檔失敗,沒辦法把資料庫傳進去 PDA 裡面,到最後把主鍵拿掉 才可以,這中間的過程,除了遇到問題和學長老師不斷討論以外,大 部分都是花在除錯上面,這部分讓我們相當感到頭疼,只要一有錯 誤,就要花很多時間來解決,感覺就像在大海撈針一樣,而且還會出 現一些很奇怪的錯誤,常常讓我們傷透腦筋,不知道該如何是好,卻 也因為如此,讓我們跟老師和學長一直不斷討論和改進,支持我們完 成專題,尤其是學長蔡進義,學長在我們遇到問題的時候,總是不厭 其煩的給我們指導, 常常有問題去請教學長,學長還要犧牲自己的 休息時間來幫我們解決問題,真的是非常謝謝學長給予我們的幫助, 雖然在做的過程中,老是跌跌撞撞的,不過在老師和學長的支持下, 給了我們往前的動力,完成這個專題,讓我們有機會接觸到 PDA 這方 面的東西,多了一些經驗和磨練,在這裡要謝謝黃秋煌老師和蔡進義

(43)
(44)

參考資料 :

[1] : JAVA HOW TO PROGRAM THIRD EDITION (Java 程式設計第三 版) 原著 : H.M.Deitel,P.J.Deitel 編譯 : 楊錦文 鄧永亥 謝金興 出版社 : 全華科技圖書 90/10 [2] : JAVA 2 語言實務 作者 : 袁葆宏 劉豐豪 吳建和 出版社 : 旗標 90/5

[3] : ASP 3.0 動態網頁入門實務 JavaScript JScript 篇 作者 : 位元文化 出版社 : 文魁資訊

[4] : Palm OS Programming Bible (Palm OS 程式設計大全) 原著 : Lonnon R.Foster 編譯 : 陳永昱 出版社 : 旗標 90/6 [5] : Palm OS 3.5 程式設計速成 作者 : 張致成 出版社 : 儒林圖書 格致圖書 89/12 [6] : Pocket PC 程式設計最新版 作者 : 林偉豐 出版社 : 文魁 初版 1 刷 2002 年 3 月 [7] : 實戰 Pocket PC 程式設計 作者 : 楊先民 出版社 : 學貫行銷股份有限公司 初版三刷 2001 年 7 月

(45)

[8] : 輕鬆使用 Visual Basic 6.0 中文版 作者 : 蕭世彰、周千 代

出版社 : 儒林 1998年12月初版

[9] : DATABASE SYSTEM(A Practical Approach to Design, Implementation,and Management)

作者 : THOMAS CONNOLLY、CAROLYN BEGG 出版社 : ADDISON WESLEY 第二版

[10] : ASP3.0 網際網路應用系統實作 作者 : 科南資訊 出版社 : 松崗 2000 年 9 月 初版、2001 年 4 月初版二刷 [11] : Microsoft WINDOWS CE API 程式開發指南 第二版

作者 : Douglas Boling

(46)

附錄一:

TABLE-TrainTime

TABLE-TrainTimeAdd

TABLE-Train

(47)

TABLE-TrainName

TABLE-RoadName

(48)

附錄二(台灣鐵路局資訊中心黃志全先生提供): 輸出格式檔格式說明 一、時刻主檔(排點結果檔)(ttime): 固定欄寬對齊,以下均比照 欄位名稱 資料型態 長度 (byte) 附註 車次 文數字 5 行駛車站序號 文數字 3 站名代碼 文數字 4 註 1 到站時間 文數字 6 格式:hhmmss 開車時間 文數字 6 任務 文數字 8 註 2 股道 文數字 2 註 1:「站名代號」欄之內容為 4 bytes,由左->右排列,以下均比 照: 第 1,2 byte 路線代號 10 ~ 99 第 3,4 byte 流水號 01 ~ 99

(49)

註 2:「任務」欄之內容為 8 bytes 第 8 byte 通過 第 7 byte 載客 第 6 byte 待避 第 5 byte 交會 第 4 byte 避讓 第 3 byte 貨車調車 第 2 byte 其它 第 1 byte 保留

(50)

二、車次資料檔(行車計劃檔)(tplan) 欄位名稱 資料型態 長度(byte) 附註 車次 文數字 5 車種 文數字 4 註 3 經由(行駛幹線) 文數字 2 註 4 行駛支線 文數字 2 註 5 起站 文數字 4 迄站 文數字 4 行駛期間 文數字 *無限長度* 請參閱行駛期間 表示法 註 3:「車種(列車等級代號)」欄之內容為 4 bytes: 第 4 byte 流水號 0 ~ 9 0 ~ 9 第 3 byte 排點順序 A ~ F 第 2 byte 列車類別 1 : 客車

(51)

2 : 貨車 1 : 一般列車 2 : 特種列車 (軍用) 第 1 byte 排點類別 3 : 臨時旅客列車 車種(列車等級代號) : 1101 PP 1100 自強號 1110 莒光號 1120 復興號 1130 電車 1131 DRC 1140 平快車 1141 柴快車 1150 柴油車 1151 普通車 1152 行包專車 1153 報紙專車 1260 直達貨車 1270 普通貨車 1280 客車迴送 1281 柴客迴送 1182 路用客車 1290 路用貨車 1291 路用混合 12A0 調車列車 12A1 單機迴送 12B0 試運轉 2100 不定期 1 級 2110 不定期 2 級 2120 不定期 3 級 2130 不定期 4 級 2270 不定期 5 級 2280 不定期 6 級 3130 臨時旅客 3161 臨時迴送 4200 特種(戰) 5230 特種(警)

(52)
(53)

註 5:支線代號 10 縱北線 11 縱海線 12 縱南線 13 台中線 14 屏東線 15 南迴線 16 花東線 17 北迴線 18 宜蘭線 19 平溪線 20 深澳線 21 林口線 22 內灣線 23 台中港線 24 龍井儲煤場 線 25 神岡線 26 成追線 27 集集線 28 松山-南調線 29 鼓山-高雄港 線 30 鼓山-高雄線 31 高雄-前鎮線 32 南花蓮港線 33 中興ㄧ號線 34 中興二號線 36 基隆-八堵線 37 八堵-七調線 38 新貨-新竹線 39 松山-機廠線 40 松山-台北線 41 樹調-1 線 42 東港支線 43 東南支線 44 北花蓮港線 45 46 47 48 談文線 49 樹調-2 線

(54)

三、順/逆行資料檔(tdir)之欄位內容為: 欄位名稱 資料型態 長度(byte) 附註 車次 文數字 5 0 表示順行 順逆行代號 文數字 1 1 表示逆行 起站代號 文數字 4 迄站代號 文數字 4 四、牽引種別資料檔(tengine)之欄位內容為: 欄位名稱 資料型 態 長度 (byte) 附註 車次 文數字 5 牽引種別代 號 文數字 2 註 6 起站代號 文數字 4 迄站代號 文數字 4

(55)

註 6: 牽引種別代號 0 EMU 1 E 客甲 A 2 E 客甲 B 3 E 客乙 A 4 E 客乙 B 5 客甲 A 6 客甲 B 7 客乙 A 8 客乙 B 9 客乙 C 10 客丙 A 11 客丙 C 12 柴(特) 13 柴(普) 14 DMU 15 E 貨甲 16 E 貨乙 17 貨乙 A 18 貨乙 B 19 電車 20 特 EMU 21 客丙 B 22 特客甲 A 23 柴(普小) 24 客丙 D 25 E 客乙 C 26 E 特客甲 A 27 E 特客甲 B 28 貨乙(60km) 29 PP 30 DRC 99 固定時分 五、車站代碼表(tstation) 欄位名稱 資料型態 長度(byte) 車站代碼 數字 4 車站名稱 文字 8 EOF

參考文獻

相關文件

動態時間扭曲:又稱為 DTW(Dynamic Time Wraping, DTW) ,主要是用來比

審查整理呈現資料:蒐集到的資料應先審核 是否完整、正確、合理與一致,然後利用敘

但三路之中左右兩 路的主要目的是牽 制敵人,中間沿穎 水南下一路才是主 戰力所在。又,前 秦動員規模過於龐 大,在軍事行動展

你有權要求查閱及更正教育局所持有關於你的個人資料。如需查閱或更正個人資料,請以書面向有關高級學校發

參加者有權要求查閱和改正有關的個人資料,包括在支付費用 後索取表格內個人資料部分的副本。如欲改正或查閱本表格內 所填報的個人資料,可向教育局提出申請(地址:香港灣仔皇

要讀書,就是提醒我們要了解和重視前人研究的成果。要有心得,則

▸ 學校在收集學生的個人資料前,必須徵得學生的同意,並向所

 想要設計一個具有兩個輸入G(gate閘控)和 D(data資料)以及一個輸出Q的閘控閂電 路。當G等於1時,在輸入D出現的二進位資料