

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《數(shù)據(jù)庫(kù)原理》課程設(shè)計(jì)報(bào)告</p><p> 課 程 設(shè) 計(jì) 題 目: 車(chē)站售票管理系統(tǒng) </p><p> 學(xué) 院 名 稱(chēng): 電子與信息工程學(xué)院 </p><p> 專(zhuān)
2、 業(yè): 計(jì)算機(jī)應(yīng)用技術(shù) </p><p> 學(xué) 生 姓 名: 學(xué)號(hào): </p><p> 指 導(dǎo) 教 師: 職稱(chēng): 講師 </p><p> 年 月
3、 日</p><p><b> 目 錄</b></p><p> 1、需求求報(bào)告分析…………………………………………………………………………1</p><p> 1、1 概述…………………………………………………………………………1</p><p> 1、2 系統(tǒng)功能分析………………………………………………
4、………………1</p><p> 1、3 數(shù)據(jù)流圖……………………………………………………………………2</p><p> 1、4 數(shù)據(jù)字典……………………………………………………………………3</p><p> 2、概念及邏輯結(jié)構(gòu)設(shè)計(jì)…………………………………………………………………7</p><p> 2、1 ER圖 ………………
5、………………………………………………………7</p><p> 2、2 關(guān)系模式……………………………………………………………………8</p><p> 2、3數(shù)據(jù)結(jié)構(gòu)……………………………………………………………………9</p><p> 3、數(shù)據(jù)庫(kù)設(shè)計(jì)………………………………………………………………………………10</p><p>
6、 4、系統(tǒng)軟件結(jié)構(gòu)設(shè)計(jì) …………………………………………………………………11</p><p> 4、1 系統(tǒng)功能設(shè)計(jì)………………………………………………………………11</p><p> 4、2 其它需求……………………………………………………………………12</p><p> 4、3說(shuō)明…………………………………………………………………………12<
7、/p><p> 5、程序模塊設(shè)計(jì) …………………………………………………………………………15</p><p> 5、1 功能模塊詳細(xì)設(shè)計(jì)…………………………………………………………15</p><p> 5、2 界面設(shè)計(jì)……………………………………………………………………16</p><p> 5、3 附錄:系統(tǒng)程序源代碼…………………
8、…………………………………16</p><p> 參考文獻(xiàn)………………………………………………………………………………………25</p><p><b> 1系統(tǒng)需求分析報(bào)告</b></p><p><b> 1.1概述</b></p><p> 汽車(chē)售票管理系統(tǒng)主要用于車(chē)站日常的票務(wù)處理。
9、車(chē)售票管理系統(tǒng)在正常運(yùn)行中需要對(duì)使用該系統(tǒng)的主要是汽車(chē)站售票人員、汽車(chē)站售票工作的管理人員與系統(tǒng)管理員。為達(dá)到操作過(guò)程中的直觀、方便、實(shí)用、安全等要求,我們組在這個(gè)系統(tǒng)中采用模塊化程序設(shè)計(jì)的方法,便于系統(tǒng)功能的組合和修改,以及擴(kuò)充和維護(hù)。</p><p><b> 1.2系統(tǒng)功能分析</b></p><p> 根據(jù)需求分析,本系統(tǒng)要實(shí)現(xiàn)以下的基本功能。</p
10、><p> 1.登錄功能:分為汽車(chē)站售票人員和系統(tǒng)管理員兩種權(quán)限登陸。用戶(hù)通過(guò)</p><p> 輸入不同用戶(hù)名和密碼進(jìn)行身份驗(yàn)證,系統(tǒng)通過(guò)用戶(hù)名和密碼判斷不同用戶(hù)的權(quán)限,從而確定該用戶(hù)可以執(zhí)行的操作。</p><p> 2.車(chē)票信息查詢(xún)功能:由汽車(chē)站的普通售票人員通過(guò)不同的檢索入口,查詢(xún)車(chē)票信息,并進(jìn)行排序。</p><p> 3.修改
11、功能:汽車(chē)站售票人員、汽車(chē)站售票工作的管理人員能夠修改自身的用戶(hù)名和密碼,系統(tǒng)管理員則能實(shí)現(xiàn)系統(tǒng)用戶(hù)與普通用戶(hù)的添加,修改普通用戶(hù)與系統(tǒng)管理員的密碼,以此確保該系統(tǒng)能夠安全操作,避免不必要的損失。</p><p> 4.匯總功能:對(duì)當(dāng)天車(chē)票的信息進(jìn)行匯總。</p><p><b> 1.3數(shù)據(jù)流圖</b></p><p><b>
12、 1.4數(shù)據(jù)字典</b></p><p><b> 1.數(shù)據(jù)項(xiàng)</b></p><p> 票號(hào)、票價(jià)、車(chē)次、日期、車(chē)型、開(kāi)車(chē)時(shí)間、票種、座位號(hào)、起始站、終點(diǎn)站、身份證號(hào)、銀行卡號(hào)、數(shù)量、退票時(shí)間、退票手續(xù)費(fèi)、訂票時(shí)間、訂票手續(xù)費(fèi)</p><p><b> 2.?dāng)?shù)據(jù)結(jié)構(gòu)</b></p>&l
13、t;p> 表1.1 車(chē)票的數(shù)據(jù)結(jié)構(gòu)</p><p><b> 3.?dāng)?shù)據(jù)流</b></p><p> 數(shù)據(jù)流編號(hào):D04-01</p><p><b> 數(shù)據(jù)流名稱(chēng):車(chē)票</b></p><p><b> 簡(jiǎn)述:車(chē)票有關(guān)信息</b></p><
14、;p> 數(shù)據(jù)流來(lái)源:用戶(hù)執(zhí)行售票操作結(jié)果</p><p> 數(shù)據(jù)流去向:購(gòu)票旅客</p><p> 數(shù)據(jù)流組成:車(chē)票編號(hào)+車(chē)票類(lèi)型+車(chē)次信息+座位信息+票價(jià)信息</p><p><b> 4.?dāng)?shù)據(jù)存儲(chǔ)</b></p><p> 售票記錄:票號(hào),起始站,終點(diǎn)站,票價(jià),車(chē)次,日期,開(kāi)車(chē)時(shí)間,</p>
15、;<p> 車(chē)型,票種,座位號(hào),售出時(shí)間</p><p> 退票記錄:票號(hào),起始站,終點(diǎn)站,票價(jià),車(chē)次,日期,開(kāi)車(chē)時(shí)間,</p><p> 車(chē)型,票種,座位號(hào),退票時(shí)間</p><p> 訂票記錄:票號(hào),起始站,終點(diǎn)站,票價(jià),車(chē)次,日期,開(kāi)車(chē)時(shí)間,</p><p> 車(chē)型,票種,座位號(hào),訂票時(shí)間,顧客身份證號(hào)</
16、p><p> 缺票記錄:票號(hào),起始站,終點(diǎn)站,票價(jià),車(chē)次,日期,開(kāi)車(chē)時(shí)間,</p><p><b> 車(chē)型,票種 </b></p><p> 車(chē)票記錄:票號(hào),起始站,終點(diǎn)站,票價(jià),車(chē)次,日期,開(kāi)車(chē)時(shí)間,</p><p> 車(chē)型,票種,座位號(hào),售出時(shí)間,票數(shù)</p><p><b>
17、 5.處理過(guò)程</b></p><p> 車(chē)票匯總:工作人員將一天所售出的票進(jìn)行統(tǒng)計(jì),包括票數(shù),票類(lèi),形成確定的車(chē)票記錄。</p><p> 查詢(xún):將顧客需要的車(chē)票信息輸入系統(tǒng),并查詢(xún)其是否可供應(yīng)。</p><p> 查詢(xún)顧客信息:為訂票所設(shè),將顧客的準(zhǔn)確信息記錄,為其預(yù)定所車(chē)票。</p><p> 處理買(mǎi)票:進(jìn)行買(mǎi)票交易
18、,把顧客需要的票(可供應(yīng))售出,并在系統(tǒng)中作相應(yīng)記錄,確定車(chē)票記錄。</p><p> 處理訂票:進(jìn)行訂票交易,工作人員為顧客預(yù)定其所需車(chē)票,并在系統(tǒng)中作相應(yīng)記錄,確定訂票記錄。</p><p> 處理退票:進(jìn)行退票交易,工作人員為顧客辦理退票手續(xù),并在系統(tǒng)中作相應(yīng)記錄,確定退票記錄。</p><p> 2概念及邏輯結(jié)構(gòu)設(shè)計(jì)</p><p&
19、gt;<b> 2.1 E-R圖</b></p><p> 本系統(tǒng)根據(jù)以上的設(shè)計(jì)規(guī)劃出的實(shí)體有:車(chē)票實(shí)體、車(chē)站實(shí)體、顧客實(shí)體。各個(gè)實(shí)體具體的描述E-R圖如下:</p><p><b> 圖2-1車(chē)票ER圖</b></p><p> 圖2-2 顧客ER圖</p><p> 圖2-3實(shí)體之間E
20、R圖</p><p><b> 2.2關(guān)系模型:</b></p><p> 車(chē)票與顧客之間的聯(lián)系</p><p><b> 售票 1:N</b></p><p> 車(chē)票(票號(hào),車(chē)次,日期,車(chē)型,票價(jià),開(kāi)車(chē)時(shí)間,票種,座位號(hào),起始站,終點(diǎn)站)</p><p> 顧客
21、(身份證號(hào),銀行卡號(hào),票號(hào))</p><p><b> 退票1:N</b></p><p> 車(chē)票(票號(hào),車(chē)次,日期,車(chē)型,票價(jià),開(kāi)車(chē)時(shí)間,票種,座位號(hào),起始站,終點(diǎn)站)</p><p> 顧客(身份證號(hào),銀行卡號(hào),票號(hào),退票時(shí)間,退票手續(xù)費(fèi))</p><p><b> 訂票1:N</b>&
22、lt;/p><p> 車(chē)票(票號(hào),車(chē)次,日期,車(chē)型,票價(jià),開(kāi)車(chē)時(shí)間,票種,座位號(hào),起始站,終點(diǎn)站)</p><p> 顧客(身份證號(hào),銀行卡號(hào),票號(hào),日期,交易時(shí)間,交易金額,數(shù)量,起始站,終點(diǎn)站)</p><p><b> 2.3數(shù)據(jù)庫(kù)結(jié)構(gòu)</b></p><p> 表2.1 Car表詳細(xì)設(shè)計(jì)</p>
23、<p> 表2.2 Seat表詳細(xì)設(shè)計(jì)</p><p> 表2.3 PriceDiscount表詳細(xì)設(shè)計(jì)</p><p> 表2.4 Price表詳細(xì)設(shè)計(jì)</p><p> 表2.5 Type表詳細(xì)設(shè)計(jì)</p><p><b> 3數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 本
24、車(chē)站售票系統(tǒng)有兩個(gè)實(shí)體,分別是車(chē)票和顧客,利用SQL建表如下:</p><p><b> 車(chē)票</b></p><p><b> 顧客</b></p><p><b> 4 系統(tǒng)軟件結(jié)構(gòu)</b></p><p> 4.1.系統(tǒng)功能設(shè)計(jì)</p><p&
25、gt; 汽車(chē)站售票管理系統(tǒng)主要設(shè)有五個(gè)主要功能模塊:分別是車(chē)次管理、票價(jià)管理、票務(wù)管理、用戶(hù)管理和查詢(xún)管理。如圖4-1所示。</p><p><b> 車(chē)次管理模塊</b></p><p> 該模塊主要實(shí)現(xiàn)車(chē)次信息的編輯。車(chē)次管理中的數(shù)據(jù)源為Access數(shù)據(jù)庫(kù)中Car表,在此管理部分中,能夠使用界面操作實(shí)現(xiàn)車(chē)次信息的編輯,并將數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照編輯的要求來(lái)及時(shí)更
26、新數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。</p><p><b> 2.票價(jià)管理模塊</b></p><p> 該模塊主要實(shí)現(xiàn)票價(jià)信息的錄入、修改與刪除以及票價(jià)折扣信息的錄入、修改與刪除。 票價(jià)詳細(xì)信息的錄入、修改、刪除,它的數(shù)據(jù)源為Access數(shù)據(jù)庫(kù)的Price表。在此管理部分中,通過(guò)票價(jià)管理(FrmPriceManage)界面來(lái)選擇記錄并決定執(zhí)行何種操作,是修改、添加或刪除。當(dāng)
27、命令為修改或者添加時(shí)則自動(dòng)跳轉(zhuǎn)到票價(jià)編輯窗體(FrmPriceEdit)實(shí)現(xiàn)票價(jià)信息的編輯并更新數(shù)據(jù)庫(kù)中相應(yīng)數(shù)據(jù)記錄。</p><p><b> 3.票務(wù)管理模塊</b></p><p> 票務(wù)管理部分實(shí)現(xiàn)前臺(tái)售票、前臺(tái)退票功能。主要完成售票、遠(yuǎn)程售票、廢票、取消廢票功能、改簽票、退票、取消退票功能、補(bǔ)票、售票查詢(xún)和票款結(jié)算單填寫(xiě)等功能。</p>&
28、lt;p><b> 4.用戶(hù)管理模塊</b></p><p> 該模塊主要實(shí)現(xiàn)用戶(hù)添加,用戶(hù)信息修改與用戶(hù)的刪除。所有系統(tǒng)用戶(hù)的管理,包括系統(tǒng)普通用戶(hù)與系統(tǒng)管理員。此管理模塊數(shù)據(jù)源為Access數(shù)據(jù)庫(kù)的Users表。在系統(tǒng)主界面中首先進(jìn)入的是名稱(chēng)為FrmUserMan的用戶(hù)管理主窗體,通過(guò)提取用戶(hù)名、用戶(hù)類(lèi)型來(lái)查看用戶(hù)具體信息,選擇添加或刪除用戶(hù)進(jìn)入名為FrmUserEdit的用戶(hù)
29、編輯界面進(jìn)行操作,操作完成便更新數(shù)據(jù)庫(kù)數(shù)據(jù)。</p><p> 5.查詢(xún)管理模塊 </p><p> 該模塊主要實(shí)現(xiàn)擁護(hù)通過(guò)查詢(xún)界面可以根據(jù)條件進(jìn)行車(chē)次時(shí)刻、車(chē)次票價(jià)查詢(xún)。</p><p><b> 4-1.功能模塊圖</b></p><p><b> 4.2其他需求</b></p
30、><p> 汽車(chē)站售票系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)量十分龐大,而且更新速度十分快。在數(shù)據(jù)大小方面要求數(shù)據(jù)的屬性要設(shè)置合理,假如是數(shù)據(jù)的屬性值越大,則數(shù)據(jù)本身所占用的容量也就十分的龐大,不但會(huì)造成傳輸?shù)牟环奖闵踔铃e(cuò)誤,也更加重系統(tǒng)的負(fù)擔(dān),有可能削弱系統(tǒng)運(yùn)行速度,使得系統(tǒng)無(wú)法達(dá)到預(yù)期的目的。另外,在整個(gè)系統(tǒng)當(dāng)中要確保數(shù)據(jù)在保存與傳遞過(guò)程中的安全,以免發(fā)生嚴(yán)重的錯(cuò)誤,造成巨大的損失。</p><p><
31、;b> 4.3說(shuō)明</b></p><p><b> 售票 </b></p><p> 正常出售本站所有車(chē)次車(chē)票,并按要求打印出車(chē)票。 </p><p><b> 遠(yuǎn)程售票 </b></p><p> 正常出售遠(yuǎn)程車(chē)站所有車(chē)次車(chē)票,并按遠(yuǎn)程車(chē)站的要求打印出車(chē)票。 <
32、/p><p><b> 廢票 </b></p><p> 在正常售票過(guò)程中, 可能因操作失誤或打印機(jī)械故障等原因造成錯(cuò)票而作廢車(chē)票。 </p><p><b> 取消廢票 </b></p><p> 當(dāng)廢票時(shí),發(fā)現(xiàn)廢的票是不應(yīng)該廢的,即為正常票,需要通過(guò)取消廢票來(lái)實(shí)現(xiàn)。 </p>
33、<p><b> 遠(yuǎn)程廢票 </b></p><p> 對(duì)所售遠(yuǎn)程車(chē)票作廢票處理。 </p><p><b> 退票 </b></p><p> 在正常退票時(shí)間內(nèi)辦理退票,并根據(jù)退票規(guī)定收取一定的手續(xù)費(fèi)。 </p><p><b> 遠(yuǎn)程退票 </b><
34、;/p><p> 對(duì)所售遠(yuǎn)程車(chē)票作退票處理。 </p><p><b> 取消退票 </b></p><p> 當(dāng)退票時(shí),發(fā)現(xiàn)退的票是不應(yīng)該退的,即為正常的票,需要通過(guò)取消退票來(lái)實(shí)現(xiàn)。 </p><p><b> 改簽票 </b></p><p> 由于乘客或車(chē)站某種原
35、因需對(duì)已出售的車(chē)票作更換車(chē)次的車(chē)票。改簽僅允許改簽一次。 </p><p><b> 遠(yuǎn)程改簽票 </b></p><p> 對(duì)所售遠(yuǎn)程車(chē)票作改簽處理。 </p><p><b> 注銷(xiāo)票 </b></p><p> 刪除某些由于調(diào)試程序所用的票記錄及其影響。 </p><
36、;p><b> 補(bǔ)票 </b></p><p> 只能在超過(guò)售票時(shí)限后進(jìn)行,且在未發(fā)車(chē)之前,在統(tǒng)計(jì)時(shí)注意對(duì)非微機(jī)售票的票的處理(例如:剪刀票)。 </p><p><b> 售票查詢(xún) </b></p><p> 通過(guò)一定的授權(quán)和設(shè)定售票員可以查詢(xún)?cè)谠O(shè)定時(shí)間范圍內(nèi)或多少?gòu)埰币郧暗某鍪邸⒆鲝U、改簽和退票的情況,并
37、對(duì)有權(quán)限的人員可有累計(jì)票款服務(wù)。 </p><p><b> 票款結(jié)算單 </b></p><p> 售票員每天售完車(chē)票后填寫(xiě)每日結(jié)算單,以便財(cái)務(wù)人員查詢(xún)。 </p><p><b> 重打車(chē)票 </b></p><p> 在正常售票過(guò)程中, 可能因打印機(jī)械故障等原因造成錯(cuò)票而重新打印車(chē)票。
38、 </p><p><b> 售票類(lèi)型 </b></p><p> 車(chē)票中所有聯(lián)都應(yīng)有的信息為車(chē)次、起止站點(diǎn)、票價(jià)、發(fā)車(chē)日期時(shí)間,而正聯(lián)所特有的信息為售票員工號(hào)、檢票口、是否改簽票、車(chē)票上應(yīng)有的信息:車(chē)票固有票號(hào)、計(jì)算機(jī)打印的票號(hào)、票號(hào)條形碼(僅用于自動(dòng)檢票的車(chē)站)。 </p><p><b> ?。?)車(chē)票類(lèi)型 </b&g
39、t;</p><p> 1)正常班次車(chē)票:發(fā)售的當(dāng)天或預(yù)售正常輪班車(chē)次的車(chē)票。 </p><p> 2)遠(yuǎn)程售票:發(fā)售遠(yuǎn)程車(chē)站車(chē)次的車(chē)票,其打印格式同遠(yuǎn)程車(chē)站。 </p><p> 3)流水班次車(chē)票:發(fā)售的流水班次車(chē)票。 </p><p> 4)退票和改簽票: </p><p><b> 退票分為
40、</b></p><p> A、正常退票。辦理標(biāo)準(zhǔn)規(guī)定退票時(shí)間內(nèi)的退票。 </p><p> B、強(qiáng)行退票。在超過(guò)時(shí)限后退票,即強(qiáng)行退票。 </p><p> 補(bǔ)票:補(bǔ)票只能在超過(guò)售票時(shí)限后進(jìn)行,且必須在未發(fā)車(chē)之前。 </p><p> 訂票:設(shè)定定票有效期限,在有有效時(shí)限保留座位,有效時(shí)外釋放座位等。 </p>
41、;<p><b> 票種的定義 </b></p><p><b> ?、偃珒r(jià)票 </b></p><p> ?、诎雰r(jià)票 允許設(shè)定可用標(biāo)志,自由定義名稱(chēng)。 </p><p> ?、勖馄?只允許設(shè)定可用標(biāo)志。 </p><p> ?、軆?yōu)惠票1-3 允許設(shè)定可用標(biāo)志,自由定義名稱(chēng)。 <
42、;/p><p> ?、菡劭燮?對(duì)原票價(jià)的基礎(chǔ)上進(jìn)行一定的打折,有嚴(yán)格的權(quán)限控制。 </p><p><b> 5 程序模塊設(shè)計(jì)</b></p><p> 5.1功能模塊詳細(xì)設(shè)計(jì)</p><p> 5.1.1 車(chē)次管理模塊代碼實(shí)現(xiàn)</p><p> Private Sub Cmd_OK_Clic
43、k()</p><p> '檢查用戶(hù)錄入數(shù)據(jù)的有效性</p><p> If Len(Trim(txtCarID)) = 0 Then</p><p> MsgBox "請(qǐng)輸入車(chē)次編號(hào)"</p><p> txtCarID.SetFocus</p><p><b> Ex
44、it Sub</b></p><p><b> End If</b></p><p> If Len(Trim(txtOutTime)) = 0 Then</p><p> MsgBox "請(qǐng)輸入發(fā)車(chē)時(shí)間"</p><p> txtOutTime.SetFocus</p>
45、;<p><b> Exit Sub</b></p><p><b> End If</b></p><p> '把用戶(hù)錄入的數(shù)據(jù)賦值到數(shù)據(jù)庫(kù)對(duì)象變量中</p><p> With MyType</p><p> .CarID = MakeStr(txtCarID)
46、 '車(chē)次編號(hào)</p><p> .OutSetTime = MakeStr(TimeEdit) '發(fā)車(chē)時(shí)間</p><p> .RunninWay = MakeStr(WayEdit) '經(jīng)營(yíng)路線</p><p> .CarType = MakeStr(TypeEdit) '車(chē)輛類(lèi)型</p><p>
47、; .PlateNumber = MakeStr(CNnEdit) '車(chē)牌號(hào)</p><p> .CarHolder = MakeStr(HolderEdit) '責(zé)任人</p><p> .SeatLimit = MakeStr(LSeatEdit) '額定座位</p><p> '根據(jù)變量Modify決定是插入新數(shù)據(jù),
48、還是修改已有的數(shù)據(jù)</p><p> If Modify = False Then</p><p> .Insert '插入新數(shù)據(jù)</p><p><b> Else '修改</b></p><p> .Update (nId) '修改已有的數(shù)據(jù)</p><p>
49、<b> End If</b></p><p><b> End With</b></p><p> Unload Me '關(guān)閉窗口</p><p> 5.1.2 票價(jià)管理模塊代碼實(shí)現(xiàn)</p><p> 票價(jià)管理部分代碼如下(信息添加過(guò)程):</p><p&g
50、t; Private Sub Cmd_Add_Click()</p><p> '初始化FrmDiscountEdit信息</p><p> FrmPriceEdit.txtTerminalName = ""</p><p> FrmPriceEdit.txtTNPYCode = ""</p>&
51、lt;p> FrmPriceEdit.txtCarID = ""</p><p> FrmPriceEdit.txtTicketPrice = ""</p><p> FrmPriceEdit.Modify = False</p><p> FrmPriceEdit.VarTermanalID = OriTerm
52、inalID</p><p> FrmPriceEdit.Show </p><p> RefreshData</p><p><b> End Sub</b></p><p> 5.1.3用戶(hù)管路模塊代碼實(shí)現(xiàn)(編輯窗體代碼):</p><p> Private Sub Cmd_OK_C
53、lick()</p><p> If Trim(txtUserName) = "" Then</p><p> MsgBox "請(qǐng)輸入用戶(hù)名"</p><p> txtUserName.SetFocus</p><p><b> Exit Sub</b></p>
54、<p><b> End If</b></p><p> If Len(txtPass) < 5 Then</p><p> MsgBox "密碼長(zhǎng)度不能小于5"</p><p> txtPass.SetFocus</p><p> txtPass.SelStart =
55、0</p><p> txtPass.SelLength = Len(txtPass2)</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If txtPass <> txtPass2 Then</p>
56、;<p> MsgBox "密碼和確認(rèn)密碼不相同,請(qǐng)重新確認(rèn)"</p><p> txtPass2.SetFocus</p><p> txtPass2.SelStart = 0</p><p> txtPass2.SelLength = Len(txtPass2)</p><p><b>
57、 Exit Sub</b></p><p><b> End If</b></p><p> '判斷是否存在同名用戶(hù)</p><p> With MyUser</p><p> If Modify = False Or OriUser <> Trim(txtUserName) T
58、hen</p><p> If .In_DB(Trim(txtUserName)) = True Then</p><p> MsgBox "用戶(hù)名已存在,請(qǐng)重新輸入"</p><p> txtUserName.SetFocus</p><p> txtUserName.SelStart = 0</p>
59、<p> txtUserName.SelLength = Len(txtUserName)</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> 模塊中的程序代碼如下:</p><p> Public adoCo
60、n As New ADODB.Conncetion</p><p> Public adors As New ADODB.Recordset</p><p><b> '連接數(shù)據(jù)庫(kù)</b></p><p> Public Sub main()</p><p> Set adoCon = New ADODB
61、.Connection</p><p> adoCon.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ 汽車(chē)站售票管理系統(tǒng).mdb" & ";Persist Security Info=False"</p><p&g
62、t; FrmLogin.Show</p><p> FrmLogin.txtUser.SetFocus</p><p><b> End Sub</b></p><p><b> 5.2 界面設(shè)計(jì)</b></p><p> 系統(tǒng)主界面設(shè)計(jì)如下,主界面頂端顯示不同管理模塊,點(diǎn)擊則進(jìn)入相應(yīng)界面
63、。下端顯示系統(tǒng)當(dāng)前所處日期和時(shí)間。</p><p> 圖14 系統(tǒng)主界面設(shè)計(jì)</p><p> 5.3附錄:系統(tǒng)程序源代碼</p><p> (1)登陸窗體(FrmLogin)代碼</p><p> Public PasswordKey As String</p><p> Public NameKey As
64、 String</p><p> Public Try_times As Integer</p><p> '取消鍵退出登陸界面</p><p> Private Sub Cmd_Cancel_Click()</p><p><b> Unload Me</b></p><p>&
65、lt;b> End Sub</b></p><p> Private Sub Cmd_OK_Click()</p><p><b> '數(shù)據(jù)庫(kù)有效性檢查</b></p><p> If Trim(txtUser) = "" Then</p><p> MsgBox
66、"請(qǐng)輸入用戶(hù)名"</p><p> txtUser.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If Trim(txtPwd) = "" Then</p&
67、gt;<p> MsgBox "請(qǐng)輸入密碼"</p><p> txtPwd.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> End Sub</
68、b></p><p> Private Function MakeStr() As String</p><p> NameKey = Str(txtUser)</p><p> PasswordKey = Str(txtPwd)</p><p><b> '判斷用戶(hù)是否存在</b></p&g
69、t;<p> If MyUser.In_DB(NameKey) = Flase Then</p><p> MsgBox "用戶(hù)名不存在"</p><p> Try_times = Try_times + 1</p><p> If Try_times >= 3 Then</p><p> M
70、sgBox "您已經(jīng)三次嘗試進(jìn)入本系統(tǒng),均不成功,系統(tǒng)將關(guān)閉"</p><p> DBapi_Disconnect</p><p><b> End</b></p><p><b> Else</b></p><p> Exit Function</p>&
71、lt;p><b> End If</b></p><p><b> End If</b></p><p><b> '判斷密碼是否正確</b></p><p> MyUser.GetINfo (NameKey)</p><p> If MyUser.Pw
72、d <> PasswordKey Then</p><p> MsgBox "密碼錯(cuò)誤"</p><p> Try_times = Try_times + 1</p><p> If Try_times >= 3 Then</p><p> MsgBox "您已經(jīng)三次嘗試進(jìn)入本系統(tǒng),均不
73、成功,系統(tǒng)將關(guān)閉"</p><p> DBapi_Disconnect</p><p><b> End</b></p><p><b> Else</b></p><p> Exit Function</p><p><b> End If&l
74、t;/b></p><p><b> End If</b></p><p> '登陸成功,將當(dāng)前用戶(hù)的信息保存在CurUser中</p><p> CurUser.UserName = MyUser.UserName</p><p> CurUser.User_type = MyUser.User_
75、type</p><p> CurUserEmpID = MyUser.EmpID</p><p> '關(guān)閉自己并顯示主窗體</p><p><b> Unload Me</b></p><p> FrmMain.Show</p><p> End Function</p&
76、gt;<p> (2)主窗體(FrmMain)代碼</p><p> '設(shè)置數(shù)據(jù)庫(kù)連接字符串</p><p> Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & " \汽車(chē)站售票管理系統(tǒng).mdb " & "
77、;;Presist Security Info=False"</p><p><b> '系統(tǒng)登陸界面</b></p><p> FrmLogin.Show</p><p><b> End Sub</b></p><p> Private Sub PJCX_Click()
78、</p><p><b> End Sub</b></p><p> Private Sub PJGL_Click()</p><p> FrmPriceManage.Show</p><p><b> End Sub</b></p><p> Private Su
79、b SPGL_Click()</p><p> FrmTicketSell.Show</p><p><b> End Sub</b></p><p> Private Sub TPGL_Click()</p><p> FrmBack.Show</p><p><b> En
80、d Sub</b></p><p> Private Sub XGMM_Click()</p><p> With FrmUserEdit</p><p> .OriUser = CurUser.UserName</p><p> .txtUserName = CurUser.UserName</p><
81、;p> If CurUser.User_type = 1 Then</p><p> .ComboType.AddItem "系統(tǒng)管理員"</p><p><b> Else</b></p><p> .ComboType.AddItem "普通用戶(hù)"</p><p>
82、;<b> End If</b></p><p> .ComboType.ListIndex = 0</p><p> .ComboType.Enabled = False</p><p> .Modify = True</p><p><b> .Show 1</b></p>
83、<p><b> End With</b></p><p><b> End Sub</b></p><p> Private Sub YHGL_Click()</p><p> If CurUser.User_type = 1 Then</p><p> FrmUserMa
84、n.Show</p><p><b> Else</b></p><p> MsgBox "沒(méi)有權(quán)限"</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Pr
85、ivate Sub ZKGL_Click()</p><p> FrmDiscount.Show</p><p><b> End Sub</b></p><p> (3)售票窗體(FrmTicketSell)代碼</p><p> Private Sub Cmd_Cancel_Click()</p>
86、<p><b> Unload Me</b></p><p><b> End Sub</b></p><p> Private Sub Cmd_Search_Click()</p><p> 'GridRsfresh '根據(jù)條件查詢(xún)所有信息</p><p>
87、<b> End Sub</b></p><p> Private Sub Cmd_Sell_Click()</p><p> Dim ComboDate As String, TNPYCode As String, CarID As String</p><p> Dim left As Integer</p><
88、p> Dim seatnumber As String</p><p> Dim strseat As String</p><p> Dim ticketinformation As String</p><p> Dim informationbook As String</p><p> Dim cost As Long
89、</p><p> ComboDate = Trim(ComboDate.Text)</p><p> TNPY = Trim(txtTNPYCode)</p><p> CarID = Trim(txtCarID)</p><p> Dim strcnn</p><p><b> init_ado
90、</b></p><p> strQuery = "Select CarID,OutStation,Terminal,OutSetTime,Date,Sno From Seat join Price on Seat.CarID=Price.CarID Where Seat.date='" & _</p><p> Trim(ComboD
91、ate) & "'" & " and Price.TNPYCode='" & Trim(txtTNPYCode) & "'" </p><p> '根據(jù)輸入的信息,從表里得出查詢(xún)結(jié)果</p><p> rsdata.Open strQuery, cnnrs
92、data, , , adCmdText</p><p> If rsdata.EOF Then</p><p> MsgBox "車(chē)次或拼音碼輸入有誤,請(qǐng)重新輸入!", , "Error!"</p><p> ComboDate.Text = ""</p><p> TNPY
93、Code = ""</p><p> txtCarID = ""</p><p> ComboDate.SetFocus</p><p> ElseIf Len(TNPYCode) = 0 Then</p><p> MsgBox "請(qǐng)輸入拼音碼"</p>&l
94、t;p> txtTNPYCode.SetFocus</p><p> ElseIf Len(TNPYCode) > 4 Then</p><p> MsgBox "拼音碼過(guò)長(zhǎng),無(wú)效!"</p><p> txtCarID.SetFocus</p><p> ElseIf Len(CarID) = 0
95、Then</p><p> MsgBox "請(qǐng)輸入車(chē)次編號(hào)!"</p><p> txtCarID.SetFocus</p><p> ElseIf IsNumeric(Number) = False Then</p><p> MsgBox "車(chē)次編號(hào)應(yīng)為數(shù)字!"</p><
96、;p> txtCarID.Text = ""</p><p> txtCarID.SetFocus</p><p><b> Else</b></p><p> rsdata.Close</p><p> strQuery = "select count(*) as tota
97、l from Seat where Seat.sell=false and Seat.date='" & _</p><p> Trim(ComboDate.Text) & "'" & " and Seat.CarID='" & Trim(txtCarID.Text) & "'&q
98、uot;</p><p> rsdata.Open strQuery, cnnrsdata, , , adCmdText '統(tǒng)計(jì)本車(chē)次的剩余的座位數(shù)</p><p> rsdata.MoveFirst</p><p> left = rsdata!total</p><p> If left = 0 Then</p&
99、gt;<p> MsgBox "本車(chē)次已經(jīng)客滿(mǎn)!"</p><p> ComboDate.Text = ""</p><p> ComboSNno.Text = ""</p><p> txtTNPYCode.Text = ""</p><p&g
100、t; txtCarID.Text = ""</p><p> ComboDate.SetFocus</p><p><b> Else</b></p><p> rsdata.Close</p><p> strQuery = "select count(*) as total f
101、rom Seat where Seat.sell=false and Seat.date='" & _</p><p> Trim(ComboDate) & "'" & " and Seat.CarID='" & Trim(txtCarID) & "'"</p>
102、;<p> rsdata.Open strQuery, cnnrsdata, , , adCmdText '統(tǒng)計(jì)本車(chē)次的剩余的座位數(shù)</p><p> rsdata.MoveFirst</p><p> rsdata.AddNew</p><p> rsdata!Date = comdate</p><p>
103、 rsdata!Seat = comSNno</p><p> rsdata!CarID = CarID</p><p> rsdata!TNPYCode = TNPYCode</p><p> rsdata!sno = Trim(seatnumber)</p><p> rsdata.Update '添加新記錄<
104、;/p><p> '更新 Seat 表 ,將剛賣(mài)出的座位號(hào)設(shè)為 false</p><p> strQuery = "select * from Seat where Seat.sno='" & Trim(seatnumber) & _</p><p> "' and Seat.date=
105、39;" & Trim(ComboDate) & "'" & _</p><p> " and SeatCarID='" & Trim(txtCarID) & "'"</p><p> rsdata.Open strQuery, cnnrsdata, ,
106、 , adCmdText</p><p> If rsdata!sell = False Then</p><p> rsdata!sell = True</p><p> rsdata.Update</p><p><b> End If</b></p><p> ComboDate
107、= ""</p><p> txtTNPYCode = ""</p><p> txtCarID = ""</p><p> ComboDate.SetFocus</p><p> cost = Val(Adodc3.Recordset.Fields(3))</p>
108、;<p> txtCharge = Val(txtMoney) - Val(Adodc3.Recordset.Fields(3))</p><p><b> End Sub</b></p><p> (4)退票窗體(FrmBack)代碼</p><p> Private Sub Cmdback_Click()</p&
109、gt;<p> Dim strdate As String</p><p> Dim strline As String</p><p> Dim strseatno As String</p><p> Dim strTnl As String</p><p> Dim response As String</
110、p><p> Dim ticketinformation As String</p><p> strdate = Trim(Combodate.Text)</p><p> strCarID = Trim(txtCarID.Text)</p><p> strseatno = Trim(ComboSeatno.Text)</p&g
111、t;<p> strTnl = Trim(ComboTerminal.Text)</p><p> Dim strcnn</p><p><b> init_ado</b></p><p> strQuery = "Select * From SellTicket Where SellTicket.date=
112、39;" & _</p><p> Trim(Combodate.Text) & "'" & " and SellTicket.Sno='" & Trim(ComboSNno.Text) & "'" & _</p><p> " and
113、 SellTicket.carID='" & Trim(ComboCarID.Text) & "'" '檢查車(chē)票日期、車(chē)次和座位是否有效</p><p> rsdata.Open strQuery, cnnrsdata, , , adCmdText</p><p> If rsdata.EOF Then<
114、/p><p> MsgBox "你所要退的票為無(wú)效票或是你的輸入有問(wèn)題!"</p><p><b> Else</b></p><p> rsdata.Close</p><p> strQuery = "Select * From SellTicket Where SellTicket
115、.date='" & Trim(Combodate.Text) & _</p><p> "'" & " and SellTicket.sno='" & Trim(ComboSNno.Text) & "'" & _</p><p> &q
116、uot; and SellTicket.CarID='" & Trim(ComboCarID.Text) & "'"</p><p> rsdata.Open strQuery, cnnrsdata, , , adCmdText</p><p> rsdata.MoveFirst</p><p>
117、Combodate.Text = rsdata!Date</p><p> ComboSNSno.Text = rsdata!sno</p><p> ComboCarID.Text = rsdata!CarID</p><p> '車(chē)票有效,確認(rèn)日期、車(chē)次和座位號(hào),確認(rèn)是否退票</p><p> ticketinformat
118、ion = "日期:" & strdate & " " & "車(chē)次:" & strCarID & " " & "座位號(hào):" & strsno & ""</p><p> response = MsgBox(ticketin
119、formation, vbOKCancel + vbInformation, "是否真要退票?")</p><p> If response = 1 Then</p><p> '更改 SellTicket 表</p><p> rsdata.Close</p><p> strQuery = "
120、select * from SellTicket"</p><p> rsdata.Open strQuery, cnnrsdata, , , adCmdText</p><p> rsdata.MoveFirst</p><p> Dim i As Integer</p><p> For i = 1 To rsdata.
121、RecordCount</p><p> If rsdata!Date = strdate And rsdata!sno = strsno And rsdata!sno = strseat Then</p><p> rsdata.Delete</p><p><b> End If</b></p><p> r
122、sdata.MoveNext</p><p><b> Next i</b></p><p> rsdata.Close</p><p> ' 將剛退的票設(shè)為可賣(mài)</p><p> strQuery = "select * from line where Seat.date='"
123、; & strdate & "'" & _</p><p> " and Seat.CarID='" & strCarID & "'" & " and Seat.sno='" & strsno & "'"<
124、;/p><p> rsdata.Open strQuery, cnnrsdata, , , adCmdText</p><p> If rsdata!book = True Then</p><p> rsdata!book = False</p><p> rsdata.Update</p><p><b&
125、gt; End If</b></p><p> Combodate.Text = ""</p><p> ComboSno.Text = ""</p><p> Combodate.SetFocus</p><p> MsgBox "退票已成功!"</p&
126、gt;<p><b> Else</b></p><p> rsdata.Close</p><p> Combodate.Text = ""</p><p> ComboSno.Text = ""</p><p> Combodate.SetFocus&l
127、t;/p><p><b> End If</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> ?。?)折扣管理窗體(FrmDiscount)代碼</p><p> Private
128、 Sub Cmd_Add_Click()</p><p> '初始化FrmDiscountEdit信息</p><p> FrmDiscountEdit.txtTerminalName = ""</p><p> FrmDiscountEdit.txtTNPYCode = ""</p><p&
129、gt; FrmDiscountEdit.txtCarID = ""</p><p> FrmDiscountEdit.txtTicketPrice = ""</p><p> FrmDiscountEdit.Modify = False</p><p> FrmDiscountEdit.VarRecordNumber
130、= OriRecordNumber</p><p> FrmDiscountEdit.Show 1</p><p> RefreshData</p><p><b> End Sub</b></p><p> Private Sub Cmd_Cancel_Click()</p><p>&
131、lt;b> Unload Me</b></p><p><b> End Sub</b></p><p> Private Sub Cmd_Del_Click()</p><p> Dim TmpID As Long</p><p> If Adodc1.Recordset.BOF = Tru
132、e Then</p><p> MsgBox "請(qǐng)選擇記錄"</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> TmpID = Adodc1.Recordset.Fields(0)</p>
133、<p> If MsgBox("是否刪除當(dāng)前行", vbYesNo, "請(qǐng)確認(rèn)") = vbYes Then</p><p> Call MyFam.DeleteByID(TmpID)</p><p><b> End If</b></p><p> RefreshData</p&
134、gt;<p><b> End Sub</b></p><p> Private Sub Cmd_Modi_Click()</p><p> '初始化FrmPriceEdit信息</p><p> FrmDiscountEdit.OriID = Adodc1.Recordset.Fields(0)</p>
135、;<p> FrmDiscountEdit.txtCarID = Adodc1.Recordset.Fields(2)</p><p> FrmDiscountEdit.txtTicketTypeID = Adodc1.Recordset.Fields(3)</p><p> FrmDiscountEdit.txtTicketType = Adodc1.Recordse
136、t.Fields(4)</p><p> FrmDiscountEdit.txtDiscount = Adodc1.Recordset.Fields(5)</p><p> FrmDiscountEdit.VarRecordNumber = OriRecordNumber</p><p> FrmDiscountEdit.Modify = True</p
137、><p> FrmDiscountEdit.Show 1</p><p> RefreshData</p><p><b> End Sub</b></p><p> ?。?)票價(jià)信息管理窗體(FrmPriceManage)代碼</p><p> Private Sub Cmd_Add_Cli
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車(chē)站售票管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---車(chē)站售票管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--車(chē)站售票系統(tǒng)
- 火車(chē)站車(chē)票售票系統(tǒng)--數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)----火車(chē)站車(chē)票售票系統(tǒng)
- 車(chē)站與火車(chē)站車(chē)票售票系統(tǒng)--數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 民航售票系統(tǒng)(數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)航空售票管理系統(tǒng)
- 航空售票信息管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
- 車(chē)站售票管理系統(tǒng)數(shù)據(jù)庫(kù)課設(shè)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告----火車(chē)票售票系統(tǒng)
- 車(chē)站售票管理系統(tǒng)數(shù)據(jù)庫(kù)課設(shè)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--火車(chē)票售票管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告-鐵路網(wǎng)上售票系統(tǒng)
- 火車(chē)售票系數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-火車(chē)票售票管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-火車(chē)票售票管理系統(tǒng)
- 工資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告(數(shù)據(jù)庫(kù)課程設(shè)計(jì))
- 工資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---餐飲管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論