利用Delphi開發旅遊景點微機售票系統

2021-03-31 18:22:46 字數 3650 閱讀 7429

一、引言

隨著計算機區域網和廣域網的出現,網路產品(包括軟、硬體)質量不斷提高;品種、數量迅速增長和發展;以及資料庫技術的成熟和軟體工程方法的發展,各種計算機網路管理系統越來越完善。旅遊景點微機售票系統是計算機技術與網路技術相結合的產物。方便快捷的查詢統計使管理者能準確地掌握景點的經營情況並對售票人員進行監督、管理,並為其提供準確、可信的決策依據。其成功實現提高了旅遊景點的售票效率和管理水平,使一直由人工售票的局面劃上句號,從而進入智慧型化售票的新階段。

本文介紹以delphi 4.0為開發語言,microsoft sql server 6.5為後台,執行於windows nt 4.0的旅遊景點微機售票系統的開發方法。該系統適合各大、中、小旅遊景點售票系統的自動化管理,具有較強的實際推廣應用價值。

二、系統總體方案設計

微機售票系統採用星形拓撲區域網結構,由伺服器、集線器、計算機、印表機組成,見圖1。伺服器上執行資料庫及系統管理程式,實現查詢、統計、報表列印、系統維護等功能。各售票微機與相應的印表機放置在售票視窗,執行售票程式,完成介面輸入、門票列印及售票員個人資訊查詢統計等功能。

對於售票系統來說,印表機的速度和資料通過網路的傳輸速度是非常關鍵的指標。如秦皇島野生動物園在其高峰期,每天有大約2萬人入園遊覽,要求使用三颱微機進行售票,而入園客人大都集中在同一段時間,如早晨剛開園到上午10點左右,下午2點~3點之間等,所以減少遊客排隊等候時間、加快售票速度就是微機售票系統必須解決的問題。影響售票速度有兩方面因素,一是硬體印表機的列印速度,二是列印程式啟動列印和傳輸資料的速度。經實際測試,epson stylus color 850彩色噴墨印表機,其列印速度為a4紙8頁/分鐘,能夠滿足要求。

在程式方面為了滿足列印速度的要求,經過測試和精心選擇,確定用delphi 4.0做為程式語言。delphi把強大的物件pascal語言和快捷便利的rad相結合,是乙個通用的圖形使用者介面(gui)開發工具,它是基於視覺化和元件的概念而設計出來的,而且能非常方便地操縱資料庫及實現各種報表,使得程式設計迅速,且是目前除錯編譯速度最快的程式語言之一。在門票列印時直接呼叫delphi的類printers中的各種過程和函式,如printers.canvas.textout(x:integer;y:integer;const text:string)再結合其他的過程和函式即可實現快速列印,解決了程式列印速度的問題。

系統選擇sql sever做為資料庫,sql sever是乙個客戶機/伺服器關係型資料管理系統(rdbms),使用transact-sql在客戶機和sql sever之間傳送請求,能夠滿足系統的網路傳輸要求。delphi中可以通過bde(資料庫引擎)和odbc進行資料庫訪問,或者通過ado直接進行資料庫訪問。

另外在總的程式設計時,考慮到使用本系統的操作員素質參差不齊,計算機操作水平相對較低,所涉及的操作要盡可能簡單,盡量少輸入資訊,盡量使用下拉框和選擇框,避免出錯。本系統操作員要輸入的只有遊客人數(**和小孩或學生)和車輛數。其他資訊如票價,程式啟動時從資料庫中自動調出,時間取自系統時間,總價由計算機自動生成,介面簡單、操作容易、易學易用。

三、系統軟體總體設計

1.資料庫表設計

系統資料庫中共有零售票資訊表、密碼表、操作員資訊表、票價資訊表,以及為統計查詢建造的檢視等。以零售票資訊表為例介紹表的結構。其欄位定義如表1所示。

序列號:由售票員的識別符號號,隨機號和微機售票開始的票數記錄組成。如gk006662,代表標識號為g的售票員,隨機號為k,第6662張票。

退票否:此欄位用來標識票是否有效,若有效,則為1,無效為0。

2.軟體結構設計

系統軟體設計遵循模組化程式設計的思想,自頂向下,步步求精。系統程式由系統管理模組和售票模組組成。售票模組執行在售票微機上,系統管理模組執行在伺服器上。

四、系統主要功能特性及實現方法

系統主要模組:登入及密碼輸入模組;系統主介面輸入模組;統計、查詢、報表、列印模組;門票列印模組。下面分述各模組的功能以及關鍵部分的實現。

1.登入及密碼輸入模組

登入及密碼輸入模組用於限制操作員的許可權,程式完成的功能:從介面上取出密碼,查詢資料庫密碼表,有相同密碼操作員有權進入下一介面,三次輸入失敗,程式自動退出。另外在售票模組中,根據密碼要取出對應的操作員的名字,以便將售票資訊與操作員相關聯。從資料庫中根據輸入密碼取相應的操作員函式如下,其中handletbl為密碼表名稱,id、handlename、handlecode為表中字段,代表編號、操作員姓名、操作員密碼。

function tformpswd.gethandlename(code:string):string;

var name:string;

begin

name:='';

query2.close;

query2.sql.clear;

query2.disablecontrols;

query2.sql.add('select id,handlename,handlecode from handletbl');

query2.open;

if query2.locate('handlecode',code,) then

begin

name:=query2.fieldbyname('handlename').asstring;

end;

query2.close;

result:=name;

end;

2.系統主介面輸入模組

系統的主介面輸入模組用於輸入和顯示售票資訊,根據其資訊和票價自動計算出遊客的總人數以及票價。在此模組中要求操作員只輸入遊客人數,按「確定」,即可自動計算和顯示總價,按「列印」則列印門票。為了防止操作員誤輸入除整型資料以外的其他字元如a、b等而導致程式出錯,程式中在需要資料輸入的tedit位置,設定判斷條件,只允許整型資料輸入。

3.統計與查詢、報表列印模組

統計與查詢、報表列印模組用於實現售票資訊的統計與查詢,可以設定起止日期等資訊,並可生成報表列印。統計與查詢用內嵌的sql查詢語言實現,報表使用delphi的快速報表元件qreport部件組中的各種控制項。

4.門票列印模組

門票列印模組實現門票的列印輸出功能。在門票列印中需根據門票的樣式確定輸出的位置,為了實現快速列印,在列印時直接呼叫printers的過程和函式。

列印的過程如下:

procedure printmsg(thesyqo,totalpeople,adultnum, childnum,totalcar,bigcar,middlecar,minicar,totalmoney, prtdate:string);

begin

printer.canvas.font.charset := gb2312_charset;

printer.begindoc;

printer.pageheight;

printer.pagewidth;

printer.canvas.font.size :=14;//字型設定

……//根據使用者需要插入要列印的內容

printer.canvas.textout(x+2370,y,thesyqo);//列印內容

printer.enddoc;

end;

5.退票管理模組

實際的售票過程中涉及到由於各種原因遊客退票的情況,而計算機列印售出的門票及相關資訊已經存入資料庫中,當有退票情況發生時,必然存在操作員售票金額與資料庫查詢結果不一致的現象,為了解決這一現象,增加了退票管理模組。

轉http://tech.sina.***.** 2001/02/13 

軟體世界

馬淑華 舒冬梅 趙一丁

楊柳青旅遊景點 天津西青旅遊景點精選推薦

天津西青旅遊發展很快,從乙個遊客的認知感覺應該是這幾個區里較快的,而且每乙個在天津都是亮點,用當下的話來說,都是網紅熱點,在網上各大平台也都有推薦,而且只要提前購票都會有優惠,有時各個 平台都做些 啊補貼呀,實惠多些要提早預定能遇到,當天不一定有,這樣很好,十分適合提前計畫出行,能得到 上的獎勵優待...

POI 2007 旅遊景點

題目鏈結 演算法 首先,用dijkstra演算法求出2 k 1到每個點的最短路 然後,我們用f s i 表示目前停留城市集合為s,現在在城市i,最短的路徑 狀壓dp即可 includeusing namespace std define maxn 20010 define maxm 200010 d...

淄博旅遊景點與美食彙總

注意 有些景點自己親身經歷過 有些景點是同學去過 有的則是來自網路彙總 會註明 您要是覺得不好或是意見不統一可以忽略本文章。畢竟好不好玩或是好不好吃主要是個人主觀因素評價!類似於萬達廣場 永珍匯或是美食街之類的就不推薦了,每個地方都有!基於普通大學生消費水準 窮遊 騎行等因素進行評價,要是比較富裕可...