車站售票管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告_第1頁
車站售票管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告_第2頁
車站售票管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告_第3頁
車站售票管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告_第4頁
車站售票管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計報告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理課程設(shè)計報告課 程 設(shè) 計 題 目: 車站售票管理系統(tǒng) 學(xué) 院 名 稱: 計算機(jī)與電子信息學(xué)院 專 業(yè): 計算機(jī)網(wǎng)絡(luò)技術(shù) 學(xué) 生 姓 名: 姚朗思 學(xué)號: 指 導(dǎo) 教 師: 朱興統(tǒng) 職稱: 講師 2009年 12月 29日目 錄1、需求求報告分析11、1 概述11、2 系統(tǒng)功能分析11、3 數(shù)據(jù)流圖21、4 數(shù)據(jù)字典32、概念及邏輯結(jié)構(gòu)設(shè)計72、1 ER圖 7 2、2 關(guān)系模式8 2、3數(shù)據(jù)結(jié)構(gòu)9 3、數(shù)據(jù)庫設(shè)計104、系統(tǒng)軟件結(jié)構(gòu)設(shè)計 114、1 系統(tǒng)功能設(shè)計11 4、2 其它需求12 4、3說明125、程序模塊設(shè)計 155、1 功能模塊詳細(xì)設(shè)計155、2 界面設(shè)計165、3 附錄

2、:系統(tǒng)程序源代碼16參考文獻(xiàn)251系統(tǒng)需求分析報告1.1概述汽車售票管理系統(tǒng)主要用于車站日常的票務(wù)處理。車售票管理系統(tǒng)在正常運(yùn)行中需要對使用該系統(tǒng)的主要是汽車站售票人員、汽車站售票工作的管理人員與系統(tǒng)管理員。為達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要求,我們組在這個系統(tǒng)中采用模塊化程序設(shè)計的方法,便于系統(tǒng)功能的組合和修改,以及擴(kuò)充和維護(hù)。12系統(tǒng)功能分析根據(jù)需求分析,本系統(tǒng)要實(shí)現(xiàn)以下的基本功能。1登錄功能:分為汽車站售票人員和系統(tǒng)管理員兩種權(quán)限登陸。用戶通過輸入不同用戶名和密碼進(jìn)行身份驗(yàn)證,系統(tǒng)通過用戶名和密碼判斷不同用戶的權(quán)限,從而確定該用戶可以執(zhí)行的操作。2車票信息查詢功能:由汽車站的普

3、通售票人員通過不同的檢索入口,查詢車票信息,并進(jìn)行排序。3修改功能:汽車站售票人員、汽車站售票工作的管理人員能夠修改自身的用戶名和密碼,系統(tǒng)管理員則能實(shí)現(xiàn)系統(tǒng)用戶與普通用戶的添加,修改普通用戶與系統(tǒng)管理員的密碼,以此確保該系統(tǒng)能夠安全操作,避免不必要的損失。4匯總功能:對當(dāng)天車票的信息進(jìn)行匯總。圖1-1 頂層圖圖1-2 0層圖圖1-3 售票1層圖顧客售票人員車站售票管理系統(tǒng)購票信息售票信息頂層圖購票信息查詢可供票處理買票車票車票記錄車票匯總?cè)逼庇涗?層圖售票記錄購票信息1層圖查詢可供票處理買票車票售票記錄車票記錄訂票信息查詢顧客信息核對后的顧客信息查詢可供票處理訂票車票訂票記錄車票記錄圖1-4

4、 訂票1層圖退票信息處理退票退票記錄圖1-5 退票1層圖13數(shù)據(jù)流圖14數(shù)據(jù)字典1.數(shù)據(jù)項 票號、票價、車次、日期、車型、開車時間、票種、座位號、起始站、終點(diǎn)站、身份證號、銀行卡號、數(shù)量、退票時間、退票手續(xù)費(fèi)、訂票時間、訂票手續(xù)費(fèi)2數(shù)據(jù)結(jié)構(gòu)表11 車票的數(shù)據(jù)結(jié)構(gòu)DS04-01 車票DS04-02:車票標(biāo)志DS04-03:車次信息DS04-04:座位信息DS04-05:票價信息I1:車票編號I3:起始站I8:座位號I9:全票價I2:車票類型I4:車次編號I10:折扣I5:終點(diǎn)站I6:發(fā)車時間I7:乘車日期3數(shù)據(jù)流數(shù)據(jù)流編號:D04-01數(shù)據(jù)流名稱:車票簡述:車票有關(guān)信息數(shù)據(jù)流來源:用戶執(zhí)行售票操

5、作結(jié)果數(shù)據(jù)流去向:購票旅客數(shù)據(jù)流組成:車票編號+車票類型+車次信息+座位信息+票價信息4數(shù)據(jù)存儲 售票記錄:票號,起始站,終點(diǎn)站,票價,車次,日期,開車時間,車型,票種,座位號,售出時間 退票記錄:票號,起始站,終點(diǎn)站,票價,車次,日期,開車時間,車型,票種,座位號,退票時間 訂票記錄:票號,起始站,終點(diǎn)站,票價,車次,日期,開車時間,車型,票種,座位號,訂票時間,顧客身份證號缺票記錄:票號,起始站,終點(diǎn)站,票價,車次,日期,開車時間,車型,票種 車票記錄:票號,起始站,終點(diǎn)站,票價,車次,日期,開車時間,車型,票種,座位號,售出時間,票數(shù)5處理過程 車票匯總:工作人員將一天所售出的票進(jìn)行統(tǒng)計

6、,包括票數(shù),票類,形成確定的車票記錄。 查詢:將顧客需要的車票信息輸入系統(tǒng),并查詢其是否可供應(yīng)。 查詢顧客信息:為訂票所設(shè),將顧客的準(zhǔn)確信息記錄,為其預(yù)定所車票。 處理買票:進(jìn)行買票交易,把顧客需要的票(可供應(yīng))售出,并在系統(tǒng)中作相應(yīng)記錄,確定車票記錄。 處理訂票:進(jìn)行訂票交易,工作人員為顧客預(yù)定其所需車票,并在系統(tǒng)中作相應(yīng)記錄,確定訂票記錄。 處理退票:進(jìn)行退票交易,工作人員為顧客辦理退票手續(xù),并在系統(tǒng)中作相應(yīng)記錄,確定退票記錄。 2概念及邏輯結(jié)構(gòu)設(shè)計 2.1 E-R圖本系統(tǒng)根據(jù)以上的設(shè)計規(guī)劃出的實(shí)體有:車票實(shí)體、車站實(shí)體、顧客實(shí)體。各個實(shí)體具體的描述-圖如下: 圖2-1車票ER圖 圖2-2

7、 顧客ER圖 換票退票時間顧客售票退票票號退票手續(xù)費(fèi)車票新票號原票號換票時間換票手續(xù)費(fèi)訂票日期交易時間數(shù)量起始站終點(diǎn)站身份證號交易金額1N1N1N1N 圖2-3實(shí)體之間ER圖2.2關(guān)系模型:車票與顧客之間的聯(lián)系售票 1:N車票(票號,車次,日期,車型,票價,開車時間,票種,座位號,起始站,終點(diǎn)站)顧客(身份證號,銀行卡號,票號)退票1:N車票(票號,車次,日期,車型,票價,開車時間,票種,座位號,起始站,終點(diǎn)站)顧客(身份證號,銀行卡號,票號,退票時間,退票手續(xù)費(fèi))訂票1:N車票(票號,車次,日期,車型,票價,開車時間,票種,座位號,起始站,終點(diǎn)站)顧客(身份證號,銀行卡號,票號,日期,交易時

8、間,交易金額,數(shù)量,起始站,終點(diǎn)站)2.3數(shù)據(jù)庫結(jié)構(gòu)表2.1 Car表詳細(xì)設(shè)計字段名數(shù)據(jù)類型是否主鍵是否必填字段說明CarID文本是是車次編號CarType數(shù)字否否客車型號PlateNumber文本否是車牌號CarHolder文本否否責(zé)任人RunningWay文本否否經(jīng)營路線SeatLimit數(shù)字否是座位限額OutSetTime日期/時間否是發(fā)車時間表2.2 Seat表詳細(xì)設(shè)計字段名數(shù)據(jù)類型是否主鍵是否必填字段說明CarID文本否是車次編號Date時間/日期否是日期Terminal文本否是終點(diǎn)站Selled是/否否否票是否售出Price數(shù)字否是車票價格表2.3 PriceDiscount表詳細(xì)

9、設(shè)計字段名數(shù)據(jù)類型是否主鍵是否必填字段說明RecordNumber自動編號是是記錄號TicketTypeID數(shù)字否是車票類型Discount數(shù)字否是折扣CarID文本否是車次表2.4 Price表詳細(xì)設(shè)計字段名數(shù)據(jù)類型是否主鍵是否必填字段說明TerminalID文本是是終點(diǎn)站編號OutStation文本否否起始站TerminalName文本否是終點(diǎn)站TNPYCode文本否是拼音碼CarID文本否是車次編號TicketPrice數(shù)字否是票價表2.5 Type表詳細(xì)設(shè)計字段名數(shù)據(jù)類型是否主鍵是否必填字段說明RecordID自動編號是是記錄號TicketTypeID數(shù)字否是車票類型編號TicketT

10、ype文本否是車票類型3數(shù)據(jù)庫設(shè)計本車站售票系統(tǒng)有兩個實(shí)體,分別是車票和顧客,利用SQL建表如下:車票顧客4 系統(tǒng)軟件結(jié)構(gòu)4.1.系統(tǒng)功能設(shè)計汽車站售票管理系統(tǒng)主要設(shè)有五個主要功能模塊:分別是車次管理、票價管理、票務(wù)管理、用戶管理和查詢管理。如圖4-1所示。1 車次管理模塊該模塊主要實(shí)現(xiàn)車次信息的編輯。車次管理中的數(shù)據(jù)源為Access數(shù)據(jù)庫中Car表,在此管理部分中,能夠使用界面操作實(shí)現(xiàn)車次信息的編輯,并將數(shù)據(jù)庫中的數(shù)據(jù)按照編輯的要求來及時更新數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。2票價管理模塊該模塊主要實(shí)現(xiàn)票價信息的錄入、修改與刪除以及票價折扣信息的錄入、修改與刪除。 票價詳細(xì)信息的錄入、修改、刪除,它的數(shù)據(jù)

11、源為Access數(shù)據(jù)庫的Price表。在此管理部分中,通過票價管理(FrmPriceManage)界面來選擇記錄并決定執(zhí)行何種操作,是修改、添加或刪除。當(dāng)命令為修改或者添加時則自動跳轉(zhuǎn)到票價編輯窗體(FrmPriceEdit)實(shí)現(xiàn)票價信息的編輯并更新數(shù)據(jù)庫中相應(yīng)數(shù)據(jù)記錄。3票務(wù)管理模塊票務(wù)管理部分實(shí)現(xiàn)前臺售票、前臺退票功能。主要完成售票、遠(yuǎn)程售票、廢票、取消廢票功能、改簽票、退票、取消退票功能、補(bǔ)票、售票查詢和票款結(jié)算單填寫等功能。4用戶管理模塊該模塊主要實(shí)現(xiàn)用戶添加,用戶信息修改與用戶的刪除。所有系統(tǒng)用戶的管理,包括系統(tǒng)普通用戶與系統(tǒng)管理員。此管理模塊數(shù)據(jù)源為Access數(shù)據(jù)庫的Users表

12、。在系統(tǒng)主界面中首先進(jìn)入的是名稱為FrmUserMan的用戶管理主窗體,通過提取用戶名、用戶類型來查看用戶具體信息,選擇添加或刪除用戶進(jìn)入名為FrmUserEdit的用戶編輯界面進(jìn)行操作,操作完成便更新數(shù)據(jù)庫數(shù)據(jù)。5查詢管理模塊 該模塊主要實(shí)現(xiàn)擁護(hù)通過查詢界面可以根據(jù)條件進(jìn)行車次時刻、車次票價查詢。汽車站售票管理系統(tǒng)票務(wù)管理票價管理車次管理用戶管理查詢管理車次信息編輯票價信息錄入票價信息修改票價信息刪除前臺售票前臺退票用戶信息添加票價信息修改票價信息刪除車次信息查詢票價信息查詢 4-1功能模塊圖42其他需求汽車站售票系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)量十分龐大,而且更新速度十分快。在數(shù)據(jù)大小方面要求數(shù)據(jù)的屬性

13、要設(shè)置合理,假如是數(shù)據(jù)的屬性值越大,則數(shù)據(jù)本身所占用的容量也就十分的龐大,不但會造成傳輸?shù)牟环奖闵踔铃e誤,也更加重系統(tǒng)的負(fù)擔(dān),有可能削弱系統(tǒng)運(yùn)行速度,使得系統(tǒng)無法達(dá)到預(yù)期的目的。另外,在整個系統(tǒng)當(dāng)中要確保數(shù)據(jù)在保存與傳遞過程中的安全,以免發(fā)生嚴(yán)重的錯誤,造成巨大的損失。43說明售票 正常出售本站所有車次車票,并按要求打印出車票。 遠(yuǎn)程售票 正常出售遠(yuǎn)程車站所有車次車票,并按遠(yuǎn)程車站的要求打印出車票。 廢票 在正常售票過程中, 可能因操作失誤或打印機(jī)械故障等原因造成錯票而作廢車票。 取消廢票 當(dāng)廢票時,發(fā)現(xiàn)廢的票是不應(yīng)該廢的,即為正常票,需要通過取消廢票來實(shí)現(xiàn)。 遠(yuǎn)程廢票 對所售遠(yuǎn)程車票作廢票處

14、理。 退票 在正常退票時間內(nèi)辦理退票,并根據(jù)退票規(guī)定收取一定的手續(xù)費(fèi)。 遠(yuǎn)程退票 對所售遠(yuǎn)程車票作退票處理。 取消退票 當(dāng)退票時,發(fā)現(xiàn)退的票是不應(yīng)該退的,即為正常的票,需要通過取消退票來實(shí)現(xiàn)。 改簽票 由于乘客或車站某種原因需對已出售的車票作更換車次的車票。改簽僅允許改簽一次。 遠(yuǎn)程改簽票 對所售遠(yuǎn)程車票作改簽處理。 注銷票 刪除某些由于調(diào)試程序所用的票記錄及其影響。 補(bǔ)票 只能在超過售票時限后進(jìn)行,且在未發(fā)車之前,在統(tǒng)計時注意對非微機(jī)售票的票的處理(例如:剪刀票)。 售票查詢 通過一定的授權(quán)和設(shè)定售票員可以查詢在設(shè)定時間范圍內(nèi)或多少張票以前的出售、作廢、改簽和退票的情況,并對有權(quán)限的人員可有

15、累計票款服務(wù)。 票款結(jié)算單 售票員每天售完車票后填寫每日結(jié)算單,以便財務(wù)人員查詢。 重打車票 在正常售票過程中, 可能因打印機(jī)械故障等原因造成錯票而重新打印車票。 售票類型 車票中所有聯(lián)都應(yīng)有的信息為車次、起止站點(diǎn)、票價、發(fā)車日期時間,而正聯(lián)所特有的信息為售票員工號、檢票口、是否改簽票、車票上應(yīng)有的信息:車票固有票號、計算機(jī)打印的票號、票號條形碼(僅用于自動檢票的車站)。 (2)車票類型 1)正常班次車票:發(fā)售的當(dāng)天或預(yù)售正常輪班車次的車票。 2)遠(yuǎn)程售票:發(fā)售遠(yuǎn)程車站車次的車票,其打印格式同遠(yuǎn)程車站。 3)流水班次車票:發(fā)售的流水班次車票。 4)退票和改簽票: 退票分為 A、正常退票。辦理標(biāo)

16、準(zhǔn)規(guī)定退票時間內(nèi)的退票。 B、強(qiáng)行退票。在超過時限后退票,即強(qiáng)行退票。 補(bǔ)票:補(bǔ)票只能在超過售票時限后進(jìn)行,且必須在未發(fā)車之前。 訂票:設(shè)定定票有效期限,在有有效時限保留座位,有效時外釋放座位等。 票種的定義 全價票 半價票 允許設(shè)定可用標(biāo)志,自由定義名稱。 免票 只允許設(shè)定可用標(biāo)志。 優(yōu)惠票1-3 允許設(shè)定可用標(biāo)志,自由定義名稱。 折扣票 對原票價的基礎(chǔ)上進(jìn)行一定的打折,有嚴(yán)格的權(quán)限控制。 5 程序模塊設(shè)計5.1功能模塊詳細(xì)設(shè)計5.1.1 車次管理模塊代碼實(shí)現(xiàn)Private Sub Cmd_OK_Click()檢查用戶錄入數(shù)據(jù)的有效性If Len(Trim(txtCarID) = 0 The

17、n MsgBox 請輸入車次編號 txtCarID.SetFocus Exit Sub End If If Len(Trim(txtOutTime) = 0 Then MsgBox 請輸入發(fā)車時間 txtOutTime.SetFocus Exit Sub End If 把用戶錄入的數(shù)據(jù)賦值到數(shù)據(jù)庫對象變量中 With MyType .CarID = MakeStr(txtCarID) 車次編號 .OutSetTime = MakeStr(TimeEdit) 發(fā)車時間 .RunninWay = MakeStr(WayEdit) 經(jīng)營路線 .CarType = MakeStr(TypeEdit)

18、車輛類型 .PlateNumber = MakeStr(CNnEdit) 車牌號 .CarHolder = MakeStr(HolderEdit) 責(zé)任人 .SeatLimit = MakeStr(LSeatEdit) 額定座位 根據(jù)變量Modify決定是插入新數(shù)據(jù),還是修改已有的數(shù)據(jù) If Modify = False Then .Insert 插入新數(shù)據(jù) Else 修改 .Update (nId) 修改已有的數(shù)據(jù)End IfEnd With Unload Me 關(guān)閉窗口5.1.2 票價管理模塊代碼實(shí)現(xiàn) 票價管理部分代碼如下(信息添加過程):Private Sub Cmd_Add_Click

19、() 初始化FrmDiscountEdit信息 FrmPriceEdit.txtTerminalName = FrmPriceEdit.txtTNPYCode = FrmPriceEdit.txtCarID = FrmPriceEdit.txtTicketPrice = FrmPriceEdit.Modify = False FrmPriceEdit.VarTermanalID = OriTerminalID FrmPriceEdit.Show RefreshDataEnd Sub5.1.3用戶管路模塊代碼實(shí)現(xiàn)(編輯窗體代碼):Private Sub Cmd_OK_Click() If Tri

20、m(txtUserName) = Then MsgBox 請輸入用戶名 txtUserName.SetFocus Exit Sub End If If Len(txtPass) 5 Then MsgBox 密碼長度不能小于5 txtPass.SetFocus txtPass.SelStart = 0 txtPass.SelLength = Len(txtPass2) Exit Sub End If If txtPass txtPass2 Then MsgBox 密碼和確認(rèn)密碼不相同,請重新確認(rèn)txtPass2.SetFocus txtPass2.SelStart = 0 txtPass2.Se

21、lLength = Len(txtPass2) Exit Sub End If 判斷是否存在同名用戶 With MyUser If Modify = False Or OriUser Trim(txtUserName) Then If .In_DB(Trim(txtUserName) = True Then MsgBox 用戶名已存在,請重新輸入 txtUserName.SetFocus txtUserName.SelStart = 0 txtUserName.SelLength = Len(txtUserName) Exit Sub End If模塊中的程序代碼如下:Public adoCo

22、n As New ADODB.ConncetionPublic adors As New ADODB.Recordset連接數(shù)據(jù)庫Public Sub main() Set adoCon = New ADODB.Connection adoCon.Open = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 汽車站售票管理系統(tǒng).mdb & ;Persist Security Info=False FrmLogin.Show FrmLogin.txtUser.SetFocusEnd Sub5.2 界面設(shè)計系統(tǒng)主界面設(shè)計如下,主

23、界面頂端顯示不同管理模塊,點(diǎn)擊則進(jìn)入相應(yīng)界面。下端顯示系統(tǒng)當(dāng)前所處日期和時間。圖14 系統(tǒng)主界面設(shè)計53附錄:系統(tǒng)程序源代碼(1)登陸窗體(FrmLogin)代碼Public PasswordKey As StringPublic NameKey As StringPublic Try_times As Integer取消鍵退出登陸界面Private Sub Cmd_Cancel_Click()Unload MeEnd SubPrivate Sub Cmd_OK_Click() 數(shù)據(jù)庫有效性檢查If Trim(txtUser) = Then MsgBox 請輸入用戶名txtUser.SetFo

24、cus Exit SubEnd IfIf Trim(txtPwd) = Then MsgBox 請輸入密碼 txtPwd.SetFocus Exit Sub End IfEnd SubPrivate Function MakeStr() As String NameKey = Str(txtUser) PasswordKey = Str(txtPwd) 判斷用戶是否存在 If MyUser.In_DB(NameKey) = Flase Then MsgBox 用戶名不存在 Try_times = Try_times + 1 If Try_times = 3 Then MsgBox 您已經(jīng)三次嘗

25、試進(jìn)入本系統(tǒng),均不成功,系統(tǒng)將關(guān)閉 DBapi_Disconnect End Else Exit Function End If End If 判斷密碼是否正確 MyUser.GetINfo (NameKey) If MyUser.Pwd PasswordKey Then MsgBox 密碼錯誤 Try_times = Try_times + 1 If Try_times = 3 Then MsgBox 您已經(jīng)三次嘗試進(jìn)入本系統(tǒng),均不成功,系統(tǒng)將關(guān)閉 DBapi_Disconnect End Else Exit Function End IfEnd If 登陸成功,將當(dāng)前用戶的信息保存在Cur

26、User中 CurUser.UserName = MyUser.UserName CurUser.User_type = MyUser.User_type CurUserEmpID = MyUser.EmpID 關(guān)閉自己并顯示主窗體 Unload Me FrmMain.ShowEnd Function(2)主窗體(FrmMain)代碼設(shè)置數(shù)據(jù)庫連接字符串Conn = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 汽車站售票管理系統(tǒng).mdb & ;Presist Security Info=False系統(tǒng)登陸界面FrmLog

27、in.ShowEnd SubPrivate Sub PJCX_Click()End SubPrivate Sub PJGL_Click() FrmPriceManage.ShowEnd SubPrivate Sub SPGL_Click() FrmTicketSell.ShowEnd SubPrivate Sub TPGL_Click() FrmBack.ShowEnd SubPrivate Sub XGMM_Click() With FrmUserEdit .OriUser = CurUser.UserName .txtUserName = CurUser.UserName If CurUs

28、er.User_type = 1 Then .ComboType.AddItem 系統(tǒng)管理員 Else .ComboType.AddItem 普通用戶 End If .ComboType.ListIndex = 0 .ComboType.Enabled = False .Modify = True .Show 1 End WithEnd SubPrivate Sub YHGL_Click() If CurUser.User_type = 1 Then FrmUserMan.Show Else MsgBox 沒有權(quán)限 End IfEnd SubPrivate Sub ZKGL_Click() F

29、rmDiscount.ShowEnd Sub(3)售票窗體(FrmTicketSell)代碼Private Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub Cmd_Search_Click() GridRsfresh 根據(jù)條件查詢所有信息End SubPrivate Sub Cmd_Sell_Click() Dim ComboDate As String, TNPYCode As String, CarID As String Dim left As Integer Dim seatnumber As String Dim strseat

30、As String Dim ticketinformation As String Dim informationbook As String Dim cost As Long ComboDate = Trim(ComboDate.Text) TNPY = Trim(txtTNPYCode) CarID = Trim(txtCarID) Dim strcnn init_ado strQuery = Select CarID,OutStation,Terminal,OutSetTime,Date,Sno From Seat join Price on Seat.CarID=Price.CarID

31、 Where Seat.date= & _ Trim(ComboDate) & & and Price.TNPYCode= & Trim(txtTNPYCode) & 根據(jù)輸入的信息,從表里得出查詢結(jié)果rsdata.Open strQuery, cnnrsdata, , , adCmdText If rsdata.EOF Then MsgBox 車次或拼音碼輸入有誤,請重新輸入!, , Error! ComboDate.Text = TNPYCode = txtCarID = ComboDate.SetFocus ElseIf Len(TNPYCode) = 0 Then MsgBox 請輸入

32、拼音碼 txtTNPYCode.SetFocus ElseIf Len(TNPYCode) 4 Then MsgBox 拼音碼過長,無效! txtCarID.SetFocus ElseIf Len(CarID) = 0 Then MsgBox 請輸入車次編號! txtCarID.SetFocus ElseIf IsNumeric(Number) = False Then MsgBox 車次編號應(yīng)為數(shù)字! txtCarID.Text = txtCarID.SetFocus Else rsdata.Close strQuery = select count(*) as total from Sea

33、t where Seat.sell=false and Seat.date= & _ Trim(ComboDate.Text) & & and Seat.CarID= & Trim(txtCarID.Text) & rsdata.Open strQuery, cnnrsdata, , , adCmdText 統(tǒng)計本車次的剩余的座位數(shù) rsdata.MoveFirst left = rsdata!total If left = 0 Then MsgBox 本車次已經(jīng)客滿! ComboDate.Text = ComboSNno.Text = txtTNPYCode.Text = txtCarID.

34、Text = ComboDate.SetFocus Else rsdata.Close strQuery = select count(*) as total from Seat where Seat.sell=false and Seat.date= & _ Trim(ComboDate) & & and Seat.CarID= & Trim(txtCarID) & rsdata.Open strQuery, cnnrsdata, , , adCmdText 統(tǒng)計本車次的剩余的座位數(shù) rsdata.MoveFirst rsdata.AddNew rsdata!Date = comdate r

35、sdata!Seat = comSNno rsdata!CarID = CarID rsdata!TNPYCode = TNPYCode rsdata!sno = Trim(seatnumber) rsdata.Update 添加新記錄 更新 Seat 表 ,將剛賣出的座位號設(shè)為 false strQuery = select * from Seat where Seat.sno= & Trim(seatnumber) & _ and Seat.date= & Trim(ComboDate) & & _ and SeatCarID= & Trim(txtCarID) & rsdata.Open

36、 strQuery, cnnrsdata, , , adCmdText If rsdata!sell = False Then rsdata!sell = True rsdata.Update End If ComboDate = txtTNPYCode = txtCarID = ComboDate.SetFocus cost = Val(Adodc3.Recordset.Fields(3) txtCharge = Val(txtMoney) - Val(Adodc3.Recordset.Fields(3) End Sub(4)退票窗體(FrmBack)代碼Private Sub Cmdbac

37、k_Click() Dim strdate As String Dim strline As String Dim strseatno As String Dim strTnl As String Dim response As String Dim ticketinformation As String strdate = Trim(Combodate.Text) strCarID = Trim(txtCarID.Text) strseatno = Trim(ComboSeatno.Text) strTnl = Trim(ComboTerminal.Text) Dim strcnn init

38、_ado strQuery = Select * From SellTicket Where SellTicket.date= & _ Trim(Combodate.Text) & & and SellTicket.Sno= & Trim(ComboSNno.Text) & & _ and SellTicket.carID= & Trim(ComboCarID.Text) & 檢查車票日期、車次和座位是否有效 rsdata.Open strQuery, cnnrsdata, , , adCmdText If rsdata.EOF Then MsgBox 你所要退的票為無效票或是你的輸入有問題!

39、 Else rsdata.Close strQuery = Select * From SellTicket Where SellTicket.date= & Trim(Combodate.Text) & _ & and SellTicket.sno= & Trim(ComboSNno.Text) & & _ and SellTicket.CarID= & Trim(ComboCarID.Text) & rsdata.Open strQuery, cnnrsdata, , , adCmdText rsdata.MoveFirst Combodate.Text = rsdata!Date Com

40、boSNSno.Text = rsdata!sno ComboCarID.Text = rsdata!CarID 車票有效,確認(rèn)日期、車次和座位號,確認(rèn)是否退票 ticketinformation = 日期: & strdate & & 車次: & strCarID & & 座位號: & strsno & response = MsgBox(ticketinformation, vbOKCancel + vbInformation, 是否真要退票?) If response = 1 Then 更改 SellTicket 表 rsdata.Close strQuery = select * fr

41、om SellTicket rsdata.Open strQuery, cnnrsdata, , , adCmdText rsdata.MoveFirst Dim i As Integer For i = 1 To rsdata.RecordCount If rsdata!Date = strdate And rsdata!sno = strsno And rsdata!sno = strseat Then rsdata.Delete End If rsdata.MoveNext Next i rsdata.Close 將剛退的票設(shè)為可賣 strQuery = select * from li

42、ne where Seat.date= & strdate & & _ and Seat.CarID= & strCarID & & and Seat.sno= & strsno & rsdata.Open strQuery, cnnrsdata, , , adCmdText If rsdata!book = True Then rsdata!book = False rsdata.Update End If Combodate.Text = ComboSno.Text = Combodate.SetFocus MsgBox 退票已成功! Else rsdata.Close Combodate

43、.Text = ComboSno.Text = Combodate.SetFocus End If End If End Sub(5)折扣管理窗體(FrmDiscount)代碼Private Sub Cmd_Add_Click() 初始化FrmDiscountEdit信息 FrmDiscountEdit.txtTerminalName = FrmDiscountEdit.txtTNPYCode = FrmDiscountEdit.txtCarID = FrmDiscountEdit.txtTicketPrice = FrmDiscountEdit.Modify = False FrmDisco

44、untEdit.VarRecordNumber = OriRecordNumber FrmDiscountEdit.Show 1 RefreshDataEnd SubPrivate Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub Cmd_Del_Click() Dim TmpID As Long If Adodc1.Recordset.BOF = True Then MsgBox 請選擇記錄 Exit Sub End If TmpID = Adodc1.Recordset.Fields(0) If MsgBox(是否刪除當(dāng)前行, vbYes

45、No, 請確認(rèn)) = vbYes Then Call MyFam.DeleteByID(TmpID) End If RefreshDataEnd SubPrivate Sub Cmd_Modi_Click() 初始化FrmPriceEdit信息 FrmDiscountEdit.OriID = Adodc1.Recordset.Fields(0) FrmDiscountEdit.txtCarID = Adodc1.Recordset.Fields(2) FrmDiscountEdit.txtTicketTypeID = Adodc1.Recordset.Fields(3) FrmDiscountEdit.txtTicketType = Adodc1.Recordset.Fields(4) FrmDiscountEdit.txtD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論