国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

利用Delphi開發(fā)旅游景點微機售票系統(tǒng)

2019-11-18 18:02:00
字體:
供稿:網(wǎng)友
一、引言

  隨著計算機局域網(wǎng)和廣域網(wǎng)的出現(xiàn),網(wǎng)絡(luò)產(chǎn)品(包括軟、硬件)質(zhì)量不斷提高;品種、數(shù)量迅速增長和發(fā)展;以及數(shù)據(jù)庫技術(shù)的成熟和軟件工程方法的發(fā)展,各種計算機網(wǎng)絡(luò)管理系統(tǒng)越來越完善。旅游景點微機售票系統(tǒng)是計算機技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。方便快捷的查詢統(tǒng)計使管理者能準(zhǔn)確地掌握景點的經(jīng)營情況并對售票人員進(jìn)行監(jiān)督、管理,并為其提供準(zhǔn)確、可信的決策依據(jù)。其成功實現(xiàn)提高了旅游景點的售票效率和管理水平,使一直由人工售票的局面劃上句號,從而進(jìn)入智能化售票的新階段。

  本文介紹以Delphi 4.0為開發(fā)語言,Microsoft SQL Server 6.5為后臺,運行于Windows NT 4.0的旅游景點微機售票系統(tǒng)的開發(fā)方法。該系統(tǒng)適合各大、中、小旅游景點售票系統(tǒng)的自動化管理,具有較強的實際推廣應(yīng)用價值。

  二、系統(tǒng)總體方案設(shè)計

  微機售票系統(tǒng)采用星形拓?fù)渚钟蚓W(wǎng)結(jié)構(gòu),由服務(wù)器、集線器、計算機、打印機組成,見圖1。服務(wù)器上運行數(shù)據(jù)庫及系統(tǒng)管理程序,實現(xiàn)查詢、統(tǒng)計、報表打印、系統(tǒng)維護等功能。各售票微機與相應(yīng)的打印機放置在售票窗口,運行售票程序,完成界面輸入、門票打印及售票員個人信息查詢統(tǒng)計等功能。

  對于售票系統(tǒng)來說,打印機的速度和數(shù)據(jù)通過網(wǎng)絡(luò)的傳輸速度是非常關(guān)鍵的指標(biāo)。如秦皇島野生動物園在其高峰期,每天有大約2萬人入園游覽,要求使用三臺微機進(jìn)行售票,而入園客人大都集中在同一段時間,如早晨剛開園到上午10點左右,下午2點~3點之間等,所以減少游客排隊等候時間、加快售票速度就是微機售票系統(tǒng)必須解決的問題。影響售票速度有兩方面因素,一是硬件打印機的打印速度,二是打印程序啟動打印和傳輸數(shù)據(jù)的速度。經(jīng)實際測試,EPSON stylus color 850彩色噴墨打印機,其打印速度為A4紙8頁/分鐘,能夠滿足要求。

  在程序方面為了滿足打印速度的要求,經(jīng)過測試和精心選擇,確定用Delphi 4.0做為程序設(shè)計語言。Delphi把強大的對象Pascal語言和快捷便利的RAD相結(jié)合,是一個通用的圖形用戶界面(GUI)開發(fā)工具,它是基于可視化和組件的概念而設(shè)計出來的,而且能非常方便地操縱數(shù)據(jù)庫及實現(xiàn)各種報表,使得編程迅速,且是目前調(diào)試編譯速度最快的編程語言之一。在門票打印時直接調(diào)用Delphi的類PRinters中的各種過程和函數(shù),如Printers.Canvas.Textout(x:integer;y:integer;const Text:string)再結(jié)合其他的過程和函數(shù)即可實現(xiàn)快速打印,解決了程序打印速度的問題。

  系統(tǒng)選擇SQL Sever做為數(shù)據(jù)庫,SQL Sever是一個客戶機/服務(wù)器關(guān)系型數(shù)據(jù)管理系統(tǒng)(RDBMS),使用Transact-SQl在客戶機和SQL Sever之間發(fā)送請求,能夠滿足系統(tǒng)的網(wǎng)絡(luò)傳輸要求。Delphi中可以通過BDE(數(shù)據(jù)庫引擎)和ODBC進(jìn)行數(shù)據(jù)庫訪問,或者通過ADO直接進(jìn)行數(shù)據(jù)庫訪問。

  另外在總的程序設(shè)計時,考慮到使用本系統(tǒng)的操作員素質(zhì)參差不齊,計算機操作水平相對較低,所涉及的操作要盡可能簡單,盡量少輸入信息,盡量使用下拉框和選擇框,避免出錯。本系統(tǒng)操作員要輸入的只有游客人數(shù)(成人和小孩或?qū)W生)和車輛數(shù)。其他信息如票價,程序啟動時從數(shù)據(jù)庫中自動調(diào)出,時間取自系統(tǒng)時間,總價由計算機自動生成,界面簡單、操作容易、易學(xué)易用。

  三、系統(tǒng)軟件總體設(shè)計

  1.數(shù)據(jù)庫表設(shè)計

  系統(tǒng)數(shù)據(jù)庫中共有零售票信息表、密碼表、操作員信息表、票價信息表,以及為統(tǒng)計查詢建造的視圖等。以零售票信息表為例介紹表的結(jié)構(gòu)。其字段定義如表1所示。

  序列號:由售票員的標(biāo)識符號,隨機號和微機售票開始的票數(shù)記錄組成。如GK006662,代表標(biāo)識號為G的售票員,隨機號為K,第6662張票。

  退票否:此字段用來標(biāo)識票是否有效,若有效,則為1,無效為0。

  2.軟件結(jié)構(gòu)設(shè)計

  系統(tǒng)軟件設(shè)計遵循模塊化程序設(shè)計的思想,自頂向下,步步求精。系統(tǒng)程序由系統(tǒng)管理模塊和售票模塊組成。售票模塊運行在售票微機上,系統(tǒng)管理模塊運行在服務(wù)器上。

  四、系統(tǒng)主要功能特性及實現(xiàn)方法

  系統(tǒng)主要模塊:登錄及密碼輸入模塊;系統(tǒng)主界面輸入模塊;統(tǒng)計、查詢、報表、打印模塊;門票打印模塊。下面分述各模塊的功能以及關(guān)鍵部分的實現(xiàn)。

  1.登錄及密碼輸入模塊

  登錄及密碼輸入模塊用于限制操作員的權(quán)限,程序完成的功能:從界面上取出密碼,查詢數(shù)據(jù)庫密碼表,有相同密碼操作員有權(quán)進(jìn)入下一界面,三次輸入失敗,程序自動退出。另外在售票模塊中,根據(jù)密碼要取出對應(yīng)的操作員的名字,以便將售票信息與操作員相關(guān)聯(lián)。從數(shù)據(jù)庫中根據(jù)輸入密碼取相應(yīng)的操作員函數(shù)如下,其中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.系統(tǒng)主界面輸入模塊

  系統(tǒng)的主界面輸入模塊用于輸入和顯示售票信息,根據(jù)其信息和票價自動計算出游客的總?cè)藬?shù)以及票價。在此模塊中要求操作員只輸入游客人數(shù),按“確定”,即可自動計算和顯示總價,按“打印”則打印門票。為了防止操作員誤輸入除整型數(shù)據(jù)以外的其他字符如A、B等而導(dǎo)致程序出錯,程序中在需要數(shù)據(jù)輸入的Tedit位置,設(shè)置判斷條件,只允許整型數(shù)據(jù)輸入。

  3.統(tǒng)計與查詢、報表打印模塊

  統(tǒng)計與查詢、報表打印模塊用于實現(xiàn)售票信息的統(tǒng)計與查詢,可以設(shè)定起止日期等信息,并可生成報表打印。統(tǒng)計與查詢用內(nèi)嵌的SQL查詢語言實現(xiàn),報表使用Delphi的快速報表組件Qreport部件組中的各種控件。

  4.門票打印模塊

  門票打印模塊實現(xiàn)門票的打印輸出功能。在門票打印中需根據(jù)門票的樣式確定輸出的位置,為了實現(xiàn)快速打印,在打印時直接調(diào)用printers的過程和函數(shù)。

  打印的過程如下:

  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;//字體設(shè)置

  ……//根據(jù)用戶需要插入要打印的內(nèi)容

  Printer.Canvas.TextOut(x+2370,y,thesyqo);//打印內(nèi)容

  Printer.EndDoc;

  end;

  5.退票管理模塊

  實際的售票過程中涉及到由于各種原因游客退票的情況,而計算機打印售出的門票及相關(guān)信息已經(jīng)存入數(shù)據(jù)庫中,當(dāng)有退票情況發(fā)生時,必然存在操作員售票金額與數(shù)據(jù)庫查詢結(jié)果不一致的現(xiàn)象,為了解決這一現(xiàn)象,增加了退票管理模塊。


上一篇:在Delphi中使用CreateOleObject方法對WORD文件進(jìn)行操作

下一篇:用Delphi制作以瀏覽器為界面的應(yīng)用程序

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 屏山县| 黄浦区| 宜兴市| 香河县| 眉山市| 文山县| 家居| 霍林郭勒市| 商南县| 翁牛特旗| 昭苏县| 昭觉县| 方山县| 冷水江市| 新建县| 阿克苏市| 门源| 安远县| 荆门市| 葵青区| 兖州市| 永济市| 左云县| 凉山| 景东| 阿勒泰市| 深水埗区| 鹤山市| 海门市| 九龙县| 枣强县| 突泉县| 类乌齐县| 马鞍山市| 江油市| 沂南县| 额济纳旗| 察隅县| 城市| 河西区| 白城市|