火車(chē)訂票管理信息數(shù)據(jù)庫(kù)設(shè)計(jì)_第1頁(yè)
火車(chē)訂票管理信息數(shù)據(jù)庫(kù)設(shè)計(jì)_第2頁(yè)
火車(chē)訂票管理信息數(shù)據(jù)庫(kù)設(shè)計(jì)_第3頁(yè)
火車(chē)訂票管理信息數(shù)據(jù)庫(kù)設(shè)計(jì)_第4頁(yè)
火車(chē)訂票管理信息數(shù)據(jù)庫(kù)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄一、課題背景及意義11.1概述11.2意義11.3數(shù)據(jù)庫(kù)優(yōu)勢(shì)11.4開(kāi)發(fā)環(huán)境2二、需求分析32.1業(yè)務(wù)需求分析32.2功能需求3 2.3數(shù)據(jù)需求42.4性能需求5三、系統(tǒng)總體設(shè)計(jì)63.1系統(tǒng)組成63.2數(shù)據(jù)庫(kù)設(shè)計(jì)7概念結(jié)構(gòu)設(shè)計(jì)7邏輯結(jié)構(gòu)設(shè)計(jì)83.3 物理結(jié)構(gòu)設(shè)計(jì) 9 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)10 調(diào)試分析10 3.4數(shù)據(jù)庫(kù)模式定義20四、系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)214.1模塊簡(jiǎn)述214.2模塊設(shè)計(jì)21五、結(jié)束語(yǔ)32 六、參考文獻(xiàn)34一、課題背景及意義1.1概述 信息時(shí)代已經(jīng)來(lái)臨,信息處理的利器計(jì)算機(jī)應(yīng)用于火車(chē)站售票的日常管理為火車(chē)站售票的現(xiàn)代化帶來(lái)了從未有過(guò)的動(dòng)力和機(jī)遇,為火車(chē)站票務(wù)管理領(lǐng)域的飛速

2、發(fā)展提供了無(wú)限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已成為火車(chē)站票務(wù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,給火車(chē)站票務(wù)帶來(lái)了明顯的經(jīng)濟(jì)效益和社會(huì)效益。采用數(shù)據(jù)技術(shù)建立的管理系統(tǒng)不僅能提高出售/預(yù)定車(chē)票的效率,還能減少錯(cuò)誤發(fā)生的概率,方便用戶(hù)的查詢(xún)訂購(gòu)車(chē)票。降低工作人員的工作量,避免購(gòu)票人員在車(chē)站無(wú)效的等票,可以調(diào)高購(gòu)買(mǎi)者買(mǎi)到票的機(jī)率,這樣的作用在春運(yùn)期間最為顯著,因?yàn)樵诖哼\(yùn)的時(shí)候車(chē)站里許多人是在無(wú)效的等票,不僅造成車(chē)站里人員管理的困難,還使本可以買(mǎi)到票的人無(wú)辜浪費(fèi)時(shí)間在侯票上。目前火車(chē)票的訂購(gòu)僅僅依靠手工操作,已現(xiàn)有的工作人員很難應(yīng)付車(chē)票訂購(gòu)高峰時(shí)刻的大量數(shù)據(jù)處理問(wèn)題,同時(shí)還會(huì)出現(xiàn)由此帶來(lái)的旅客查詢(xún)問(wèn)題,導(dǎo)致火

3、車(chē)誤點(diǎn)情況。本次設(shè)計(jì)擬開(kāi)發(fā)一個(gè)火車(chē)票訂購(gòu)系統(tǒng),可以降低人工操作,提高工作效率,同時(shí)方便乘客查詢(xún)訂票。1.2 意義火車(chē)票訂購(gòu)一直是困擾我們的一個(gè)老問(wèn)題,也是社會(huì)服務(wù)的一個(gè)難點(diǎn),訂票的查詢(xún)以及車(chē)票信息的查詢(xún)時(shí)期一個(gè)最基本的業(yè)務(wù),從便面上看,這只是一個(gè)最簡(jiǎn)單的部分,但是它涉及到管理以及客戶(hù)服務(wù)的多個(gè)方面,因此設(shè)計(jì)了本火車(chē)票訂購(gòu)系統(tǒng)來(lái)實(shí)現(xiàn)票務(wù)的查詢(xún)。1.3數(shù)據(jù)庫(kù)優(yōu)勢(shì)數(shù)據(jù)庫(kù)管理的特點(diǎn)很多,它比傳統(tǒng)的數(shù)據(jù)管理?yè)碛泻芏鄡?yōu)點(diǎn)。以下就是數(shù)據(jù)庫(kù)的優(yōu)勢(shì)。一、數(shù)據(jù)結(jié)構(gòu)化。所謂“整體”結(jié)構(gòu)化是指在數(shù)據(jù)庫(kù)中的數(shù)據(jù)不再僅僅針對(duì)某一個(gè)應(yīng)用,而是面向全組織的;不僅數(shù)據(jù)內(nèi)部是結(jié)構(gòu)化的,而且整體也是結(jié)構(gòu)化的,數(shù)據(jù)之間是有聯(lián)系的。二

4、、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充。數(shù)據(jù)共享可以減少數(shù)據(jù)的冗余,節(jié)約存儲(chǔ)空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性和不一致性。三、數(shù)據(jù)獨(dú)立性高。包括物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。物理的獨(dú)立性是指用戶(hù)的應(yīng)用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的。邏輯獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的。四、數(shù)據(jù)是由DBMS統(tǒng)一管理和控制的。包含(1)數(shù)據(jù)的安全性保護(hù)(2)數(shù)據(jù)的完整性檢查(3)并發(fā)控制(4)數(shù)據(jù)庫(kù)恢復(fù)1.4開(kāi)發(fā)環(huán)境工具軟件利用Visio2007和SQLSever2000數(shù)據(jù)庫(kù)來(lái)開(kāi)發(fā)這個(gè)火車(chē)票訂購(gòu)系統(tǒng)二、需求分析在構(gòu)造系統(tǒng)時(shí),首先從需求出發(fā)構(gòu)造數(shù)據(jù)庫(kù)表,然后再由數(shù)據(jù)庫(kù)表結(jié)

5、合需求劃分系統(tǒng)功能模塊。這樣,就把一個(gè)大的系統(tǒng)分解成了幾個(gè)小系統(tǒng),使整個(gè)系統(tǒng)的功能更加詳細(xì)易于理解,同時(shí)易于實(shí)現(xiàn)系統(tǒng)的整體設(shè)計(jì)。本系統(tǒng)分為二個(gè)功能,分別是用戶(hù)管理和車(chē)次/車(chē)票管理,其所能實(shí)現(xiàn)的功能:1、 實(shí)現(xiàn)用戶(hù)登錄、用戶(hù)添加。2、 實(shí)現(xiàn)對(duì)車(chē)次的刪除和車(chē)次基本信息的添加。3、 實(shí)現(xiàn)售票的基本管理。4、 實(shí)現(xiàn)對(duì)車(chē)次基本信息的查詢(xún)。2.1業(yè)務(wù)需求分析從實(shí)際角度出發(fā),對(duì)于用戶(hù)要提供方便快捷的車(chē)票查詢(xún)和訂票服務(wù),對(duì)于車(chē)站工作人員,則是要能夠方便明朗的對(duì)車(chē)次信息進(jìn)行增刪修改操作和車(chē)票的訂售操作,提高車(chē)次的編組效率,是車(chē)次資源得到充分利用,并可以提高車(chē)票的出售效率降低工作人員的工作量。2.2功能需求 在數(shù)

6、據(jù)操作界面需要有用戶(hù)登錄窗口和車(chē)次信息操作窗口,這需要有實(shí)現(xiàn)用戶(hù)登錄的功能和車(chē)次查詢(xún)、添加、車(chē)票出售的功能。這是火車(chē)訂票系統(tǒng)的基本功能,只有實(shí)現(xiàn)了這幾個(gè)功能一個(gè)火車(chē)訂票系統(tǒng)才能開(kāi)始運(yùn)作,在本系統(tǒng)中實(shí)現(xiàn)了用戶(hù)的登錄添加和車(chē)票的基本信息操作。 功能列表編號(hào) 功能名稱(chēng) 功能說(shuō)明11用戶(hù)登錄用戶(hù)輸入用戶(hù)名和密碼登錄系統(tǒng)12用戶(hù)添加增加用戶(hù)和對(duì)所添加的用戶(hù)權(quán)限進(jìn)行設(shè)定2. 1添加車(chē)次添加車(chē)次的基本信息22刪除車(chē)次刪除車(chē)的基本信息31售票對(duì)車(chē)票銷(xiāo)售/預(yù)定的操作41車(chē)次查詢(xún)對(duì)車(chē)次基本信息的查詢(xún)2.3數(shù)據(jù)需求系統(tǒng)處理的對(duì)象有:用戶(hù)信息:用戶(hù)名、用戶(hù)密碼、用戶(hù)權(quán)限。車(chē)次信息:車(chē)次號(hào)、票價(jià)、起始站、目的站、開(kāi)車(chē)時(shí)

7、間、到站時(shí)間、實(shí)時(shí)座位數(shù)。系統(tǒng)處理如圖:用戶(hù)查詢(xún)、售票、增刪車(chē)次登陸添加車(chē)次、車(chē)票管理登記帳火車(chē)預(yù)定售票系統(tǒng)登記帳登陸添加數(shù)據(jù)處理數(shù)據(jù)登陸通知處理通知添加用戶(hù)通知2.1系統(tǒng)底層數(shù)據(jù)流圖用戶(hù)車(chē)票查詢(xún)、預(yù)定、出售添加刪除處理 車(chē)票登記帳車(chē)次基本信息登記帳車(chē)票處理通知車(chē)次信息處理通知車(chē)票數(shù)據(jù)添加刪除數(shù)據(jù)2.2用戶(hù)系統(tǒng)與車(chē)次信息系統(tǒng)間數(shù)據(jù)流圖圖 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)IDC-1username用戶(hù)名Char(30)IDC-2Password登錄密碼Char(30)IDC-3Radio用戶(hù)權(quán)限Char(30)IDC-4Trainno車(chē)次號(hào)Char(30)IDC-5Price票價(jià)Money(8)IDC

8、-6Availableseat座位數(shù)Int(4)IDC-7Startstation起始站Char(30)IDC-8Endstation目的站Char(30)IDC-9Starttime發(fā)車(chē)時(shí)間Char(30)IDC-10Arrivetime到站時(shí)間Char(30) 2.3數(shù)據(jù)字典2.4性能需求為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)該滿(mǎn)足以下的性能需求。1.準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時(shí)而且準(zhǔn)確的根據(jù)用戶(hù)權(quán)限及所輸入的信息做出響應(yīng)。由于本系統(tǒng)的查詢(xún)功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來(lái)源,而車(chē)票的數(shù)量和時(shí)間又影響

9、用戶(hù)的決策活動(dòng),其準(zhǔn)確性和及時(shí)性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開(kāi)發(fā)過(guò)程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性和及時(shí)性。2.安全性網(wǎng)上訂票系統(tǒng)中涉及到的數(shù)據(jù)是客運(yùn)公司相當(dāng)重要的信息,系統(tǒng)要保證用戶(hù)的權(quán)限,對(duì)于車(chē)次等信息用戶(hù)只享有查詢(xún)服務(wù),不得更改;系統(tǒng)還要提供方便的手段供系統(tǒng)維護(hù)人員進(jìn)行數(shù)據(jù)備份、日常安全管理、以及系統(tǒng)意外崩潰時(shí)數(shù)據(jù)的恢復(fù)等工作。同時(shí)系統(tǒng)還要保證對(duì)數(shù)據(jù)庫(kù)進(jìn)行及時(shí)更新,保證數(shù)據(jù)一致。三、系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)組成系統(tǒng)開(kāi)發(fā)的總體目標(biāo)是實(shí)現(xiàn)火車(chē)票訂/售票管理的系統(tǒng)化和自動(dòng)化,保證車(chē)票售出和車(chē)次信息管理的正確無(wú)誤,確保車(chē)票和車(chē)次管理的有效。在本系統(tǒng)中分為兩個(gè)子系統(tǒng),分別是用戶(hù)子系統(tǒng)和

10、車(chē)次信息子系統(tǒng),主要任務(wù)是對(duì)用戶(hù)信息、車(chē)次信息、車(chē)票信息等操作及外理。本系統(tǒng)為C/S結(jié)構(gòu)、運(yùn)行平臺(tái)為微軟vc+6.0以上版本。以及SQL Sever2000以上版本。下圖3.1為系統(tǒng)功能結(jié)構(gòu)圖:車(chē)票預(yù)訂刪除車(chē)次火車(chē)訂票系統(tǒng)用戶(hù)管理用戶(hù)登錄添加用戶(hù)添加車(chē)次車(chē)次查詢(xún)車(chē)次信息管理3.1功能模塊圖 3.2數(shù)據(jù)庫(kù)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶(hù)需求抽象為信息結(jié)構(gòu)(概念模型)的過(guò)程。根據(jù)之前的分析,數(shù)據(jù)庫(kù)應(yīng)該主要的實(shí)體有用戶(hù)和車(chē)票信息。經(jīng)過(guò)分析得到的實(shí)體關(guān)系圖、E-R圖如下: 車(chē)次信息車(chē)號(hào)出發(fā)地目的地發(fā)車(chē)日期開(kāi)出時(shí)間到達(dá)時(shí)刻座位類(lèi)型剩余票數(shù)票價(jià)查詢(xún)用戶(hù)信息訂票退票訂票信息身份證號(hào)

11、車(chē)號(hào)訂單號(hào)發(fā)車(chē)日期訂購(gòu)日訂購(gòu)票數(shù)總價(jià)退票方式查詢(xún)方式身份證號(hào)用戶(hù)名性別電話(huà)訂票方式nm11n 火車(chē)票訂購(gòu)E-R圖邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)化為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型有相符合的邏輯結(jié)構(gòu)。將上圖的E-R圖轉(zhuǎn)化為以下的關(guān)系模型。關(guān)系的碼用橫線(xiàn)標(biāo)出。用戶(hù)(身份證號(hào)、用戶(hù)名、性別、電話(huà))訂票信息(訂單號(hào)、身份證號(hào)、車(chē)號(hào)、發(fā)車(chē)時(shí)間、訂購(gòu)日期、訂購(gòu)票數(shù))車(chē)次(車(chē)號(hào)、發(fā)車(chē)日期、出發(fā)地、目的地、開(kāi)出時(shí)刻、到達(dá)時(shí)刻、剩余票數(shù)、票價(jià)、座位類(lèi)型)以上是實(shí)體以及其屬性。查詢(xún)(身份證號(hào)、車(chē)號(hào)、發(fā)車(chē)日期、查詢(xún)方式)訂票(訂單號(hào)、訂票方式)退票(訂單號(hào)、退票方式)以上是

12、聯(lián)系及其屬性?;疖?chē)站網(wǎng)上訂票系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如表2.1表2.6所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。 表2-1車(chē)次信息字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明車(chē)號(hào)char(10)NOT NULL(主鍵)出發(fā)地char(20)NOT NULL目的地char(20)NOT NULL發(fā)車(chē)日期DatetimeNOT NULL(主鍵)開(kāi)出時(shí)刻DatetimeNOT NULL到達(dá)時(shí)刻DatetimeNOT NULL剩余票數(shù)intNOT NULL票價(jià)Char(10)NOT NULL 表2-2訂票信息字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明訂單號(hào)Char(10)NOT NULL(主鍵)身份證號(hào)Char(18)NOT NUL

13、L(外鍵)車(chē)號(hào)char(10)NOT NULL(外鍵)發(fā)車(chē)日期datetimeNOT NULL(外鍵)訂購(gòu)日期datetimeNOT NULL訂購(gòu)票數(shù)IntNOT NULL總價(jià)MoneyNOT NULL表2-3用戶(hù)表字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明身份證號(hào)char(20)NOT NULL(主鍵)用戶(hù)名char(20)NOT NULL性別Char(2)電話(huà)char(20)表2-4 訂票表字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明訂單號(hào)char(20)NOT NULL(主鍵)訂票方式Char(20) 表 2-5 退票表字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明訂單號(hào)char(20)NOT NULL(主鍵)訂票方式Char(20)表2-

14、6查詢(xún)表字段名數(shù)據(jù)類(lèi)型是否可空說(shuō)明身份證號(hào)char(20)NOT NULL(主鍵)車(chē)號(hào)char(10)NOT NULL(主鍵)發(fā)車(chē)日期DatetimeNOT NULL(主鍵)查詢(xún)方式char(20)3.3物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱(chēng)為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴(lài)于選定的數(shù)據(jù)庫(kù)系統(tǒng)。對(duì)于數(shù)據(jù)庫(kù)查詢(xún)事務(wù),需要得到如下信息:l 查詢(xún)的關(guān)系。通過(guò)連接查詢(xún)可以將車(chē)次和用戶(hù)之間互聯(lián);通過(guò)訂票和退票可以將用戶(hù)和訂票信息互聯(lián),從而將每個(gè)表聯(lián)系在一起,構(gòu)成一個(gè)相關(guān)聯(lián)的數(shù)據(jù)庫(kù)。l 查詢(xún)條件所涉及到的屬性。查詢(xún)涉及到的屬性是(身份證號(hào)、車(chē)號(hào)、發(fā)車(chē)日期);訂票涉及到的屬性是(訂票號(hào));退票所涉及到

15、的屬性(訂票號(hào))。l 連接條件所涉及到的屬性(身份證號(hào)、訂單號(hào)、車(chē)號(hào)-發(fā)車(chē)日期、訂單號(hào))。對(duì)于數(shù)據(jù)更新,需要得到如下信息:l 被更新的關(guān)系。l 每個(gè)關(guān)系上的更新操作條件所涉及的屬性。l 修改操作要改變的屬性值。需要注意的是,數(shù)據(jù)庫(kù)上運(yùn)行的事務(wù)會(huì)不斷的變化、增加或減少,以后需要根據(jù)上述設(shè)計(jì)信息的變化調(diào)整數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。3.31 確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)1、確定數(shù)據(jù)的存放位置存放于C盤(pán),并且分配2M的空間,而且文件的存儲(chǔ)空間可以隨著數(shù)據(jù)庫(kù)的增大而增大,即文件增長(zhǎng)不受限制。文件的增長(zhǎng)按百分比進(jìn)行,增長(zhǎng)百分比為10。2、確定系統(tǒng)配置數(shù)據(jù)庫(kù)可以公共訪(fǎng)問(wèn),可以打開(kāi)任意個(gè)數(shù)據(jù)庫(kù)對(duì)象,內(nèi)存分配高于2M的內(nèi)存空間

16、。3.3.2調(diào)試分析在原有系統(tǒng)的數(shù)據(jù)有一小部分已經(jīng)輸入到了數(shù)據(jù)庫(kù)后,就可以開(kāi)始對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行聯(lián)合調(diào)試,這又成為數(shù)據(jù)庫(kù)的試運(yùn)行。運(yùn)行前先要對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,如下:再進(jìn)行簡(jiǎn)單的數(shù)據(jù)庫(kù)操作,如:建立基本表SQL語(yǔ)句為:create table 訂票信息(訂單號(hào) char(10) primary key,身份證號(hào) char(20),車(chē)號(hào) char(10),發(fā)車(chē)日期 datetime,訂購(gòu)日期 datetime,訂購(gòu)票數(shù) int,總價(jià) int,foreign key (身份證號(hào)) references 用戶(hù)(身份證號(hào)),foreign key (車(chē)號(hào)) references 車(chē)次(車(chē)號(hào)),foreig

17、n key (發(fā)車(chē)日期) references 車(chē)次(發(fā)車(chē)日期);運(yùn)行結(jié)構(gòu)截圖:其余的建表類(lèi)似,在此不一一列舉。修改基本表向用戶(hù)表增加“地址”列,數(shù)據(jù)類(lèi)型為字符串型SQL語(yǔ)句為:alter table 用戶(hù) add 地址 char(20);運(yùn)行結(jié)構(gòu)截圖:將用戶(hù)表中的電話(huà)的數(shù)據(jù)類(lèi)型改為變長(zhǎng)字符串型SQL語(yǔ)句為:alter table 用戶(hù) alter column 電話(huà) varchar(20);運(yùn)行結(jié)果截圖: 數(shù)據(jù)查詢(xún)select *from 用戶(hù)查詢(xún)?nèi)w用戶(hù)的身份證號(hào),SQL語(yǔ)句為:select 用戶(hù)名,身份證號(hào)from 用戶(hù);運(yùn)行結(jié)果截圖:查詢(xún)車(chē)票價(jià)格低于100元的車(chē)次:SQL語(yǔ)句為:sel

18、ect 車(chē)號(hào)from 車(chē)次where 票價(jià)<100;運(yùn)行結(jié)果截圖為:查詢(xún)王姓客戶(hù)的信息SQL語(yǔ)句為: select *from 用戶(hù)where 用戶(hù)名 like '張%'運(yùn)行結(jié)果截圖:按總票價(jià)的升序?qū)⒂唵翁?hào)排列SQL語(yǔ)句為:select 訂單號(hào),總價(jià)from 訂票信息order by 總價(jià) asc;運(yùn)行結(jié)果截圖:查詢(xún)從北京出發(fā)的所有車(chē)次的總票價(jià)SQL語(yǔ)句為:select sum(票價(jià))from 車(chē)次where 出發(fā)地='北京'運(yùn)行結(jié)果截圖:求乘坐車(chē)號(hào)大于一次的車(chē)號(hào)SQL語(yǔ)句為:select 車(chē)號(hào)from 訂票信息group by 車(chē)號(hào)having coun

19、t(*)>=2;運(yùn)行結(jié)果截圖:SQL語(yǔ)句為:select 車(chē)次.*from 用戶(hù),車(chē)次,查詢(xún)where 用戶(hù).身份證號(hào)=查詢(xún).身份證號(hào) and 車(chē)次.車(chē)號(hào)=查詢(xún).車(chē)號(hào) and 車(chē)次.發(fā)車(chē)日期=查詢(xún).發(fā)車(chē)日期 and嵌套查詢(xún):查詢(xún)與李明同乘一列火車(chē)的旅客的身份證號(hào)SQL語(yǔ)句:select 身份證號(hào)from 訂票信息where 車(chē)號(hào) in(select 車(chē)號(hào) from 訂票信息,用戶(hù) where 訂票信息.身份證號(hào)=用戶(hù).身份證號(hào) and 用戶(hù)名='李明'); 數(shù)據(jù)更新 插入數(shù)據(jù)向車(chē)次表添加一組數(shù)據(jù):“T26” 、“2010-12-15”、“青島”、“北京”、“22:10”、

20、“次日06:54”、“硬座”、42、118,SQL語(yǔ)句為:insert into 車(chē)次values ('T26',2010-12-15,'青島','北京','22:10','次日06:54',42,118,'硬座');運(yùn)行結(jié)構(gòu)截圖:修改數(shù)據(jù)由于雪天路滑將發(fā)車(chē)日期為2010-12-13車(chē)次為T(mén)25的到達(dá)時(shí)可改為次日09:20SQL語(yǔ)句為:update 車(chē)次 set 到達(dá)時(shí)刻='次日09:20'where 車(chē)號(hào)='T25' and 發(fā)車(chē)日期='2010-12-13

21、'刪除數(shù)據(jù)SQL語(yǔ)句為:delete from 用戶(hù)delete from 訂票,訂票信息where 訂票.訂單號(hào)=訂票信息.訂單號(hào) and運(yùn)行結(jié)果截圖:視圖建立選擇用網(wǎng)絡(luò)查詢(xún)車(chē)次用戶(hù)的視圖。SQL語(yǔ)句為:create view netasselect 身份證號(hào)from 查詢(xún)where 查詢(xún)方式='網(wǎng)絡(luò)'更新視圖SQL語(yǔ)句為:update net刪除視圖SQL語(yǔ)句為:drop view net;總之,視圖的操作與表的操作基本一致,在此不必贅述。經(jīng)過(guò)一系列驗(yàn)證數(shù)據(jù)庫(kù)的調(diào)試正常,可以進(jìn)行數(shù)據(jù)庫(kù)的操作。3.4數(shù)據(jù)庫(kù)模式定義 列名 數(shù)據(jù)類(lèi)型 取值約束 可否為空 說(shuō)明Trainn

22、o Char(30) 可 車(chē)次號(hào)StartstationChar(30) 可 起始站Endstation Char(30)可 目的站Starttime Char(30) 可 發(fā)車(chē)時(shí)間Arrivetime Char(30) 可 到站時(shí)間Price Money(8) 可 票價(jià)Availableseat Int(4) 可 實(shí)時(shí)座位數(shù)四、系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4.1模塊簡(jiǎn)述 本火車(chē)管理系統(tǒng)重要的所有模塊主要是分為用數(shù)據(jù)庫(kù)的類(lèi)三個(gè)部分,下面對(duì)三個(gè)個(gè)部分進(jìn)行再分類(lèi),共有9個(gè)模塊。模塊類(lèi)別 模塊編號(hào) 模塊名稱(chēng)公共模塊模塊功能用戶(hù)T1USER用戶(hù)登錄模塊T2ADDUSER添加用戶(hù)車(chē)次信息T3SEARCH查詢(xún)車(chē)次T

23、4INSERT插入車(chē)次T5DeleteT6DELETENO刪除車(chē)次號(hào)T7SELL售票T8TICKETSELL連接模塊T9ADOConn連接數(shù)據(jù)庫(kù)4.2模塊設(shè)計(jì)下面給出模塊的背景,設(shè)計(jì)思路,算法,界面以及關(guān)鍵代碼,比較簡(jiǎn)單的模塊就僅給界面設(shè)計(jì)以及算法設(shè)計(jì),比較復(fù)雜的模塊會(huì)給出相應(yīng)的數(shù)據(jù)庫(kù)有關(guān)觸發(fā)器,存儲(chǔ)過(guò)程和視圖的設(shè)計(jì)。而本系統(tǒng)重的模塊主要有一下幾個(gè):1、用戶(hù)模塊User 模塊是公共模塊,車(chē)次信息和連接模塊也用到User,模塊。user_類(lèi)是為系統(tǒng)用戶(hù)表創(chuàng)建的一個(gè)類(lèi):要利用ADO訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),類(lèi)的成員變量對(duì)應(yīng)表的列,類(lèi)的成員函數(shù)對(duì)應(yīng)表的操作。但本系統(tǒng)不是為每一個(gè)表都創(chuàng)建了類(lèi)。1、其頁(yè)面設(shè)計(jì): 給用

24、戶(hù)一個(gè)好的登錄界面,提供友善的人機(jī)界面,為用戶(hù)的使用提供方便。同時(shí)也是為后面用戶(hù)操作其他功能提供了權(quán)限依據(jù),避免出現(xiàn)用戶(hù)權(quán)限的不確定造成整個(gè)系統(tǒng)不同模塊的錯(cuò)誤操作,使整個(gè)訂票業(yè)務(wù)遭到破壞。用戶(hù)模塊代碼:void USER:OnOK() / TODO: Add extra validation hereUpdateData(1);if(m_user=""|m_psd="")MessageBox("請(qǐng)?zhí)詈糜脩?hù)名或密碼!");else ADOConn adoconn;adoconn.OnInitADOConn();/調(diào)試_bstr_t sq

25、ltemp;sqltemp="select * from aaaaa where username like '"+m_user+"%'and password like '"+m_psd+"%'"_RecordsetPtr m_precordset;m_precordset=adoconn.GetRecordSet(sqltemp);adoconn.ExecuteSQL(sqltemp);if(m_precordset->adoEOF=0)/記錄集沒(méi)有移動(dòng)到最后MessageBox("

26、登入成功");GetDlgItem(ID_SEARCH)->EnableWindow(FALSE);if(m_precordset->adoEOF!=0)/GetDlgItem(ID_ADDUSER)->EnableWindow(FALSE); adoconn.ExitConnect();/CDialog:OnOK();2、車(chē)次信息模塊車(chē)次添加實(shí)現(xiàn)了車(chē)次能跟上需求的變化,使得系統(tǒng)管理員能根據(jù)需要添加車(chē)次,讓售票員能為購(gòu)買(mǎi)者提供優(yōu)質(zhì)的服務(wù)。車(chē)次添加程序:void INSERT:OnOK() / TODO: Add extra validation hereUpdate

27、Data(1);if(m_Trainno="" & m_Startstation="" & m_Endstation="" & m_Starttime="" & m_Arrivetime="" & m_Price="")MessageBox("請(qǐng)完善空格");elseADOConn adoconn;adoconn.OnInitADOConn();/調(diào)試_bstr_t sqltemp;sqltemp="ins

28、ert into sale values('"+m_Trainno+"','"+m_Startstation+"','"+m_Endstation+"','"+m_Starttime+"','"+m_Arrivetime+"',20,'"+m_Price+"')"/sqltemp="insert into employees values('"

29、+employee_id+"','"+employee_name+"','"+sex+"','"+department_id+"','"+title_id+"','"+work_time+"') "/(trainno,startstation,endstation,starttime,arrivetime,availableseat,price)/_RecordsetPtr m_preco

30、rdset;/m_precordset=adoconn.GetRecordSet(sqltemp);adoconn.ExecuteSQL(sqltemp);MessageBox("插入成功");adoconn.ExitConnect();CDialog:OnOK();3、刪除車(chē)次刪除車(chē)次的操作是對(duì)添加車(chē)次操作的補(bǔ)充,有了刪除操作才能讓車(chē)次添加車(chē)次順利的執(zhí)行。刪除車(chē)次代碼:void DELETENO:OnOK() / TODO: Add extra validation hereUpdateData(1);ADOConn adoconn;adoconn.OnInitADOCo

31、nn();/調(diào)試_bstr_t sqltemp;sqltemp="delete from sale where trainno='"+m_Trainno+"'"/_RecordsetPtr m_precordset;/m_precordset=adoconn.GetRecordSet(sqltemp);adoconn.ExecuteSQL(sqltemp);MessageBox("刪除成功");adoconn.ExitConnect();/CDialog:OnOK();4、車(chē)票出售/預(yù)定 在這個(gè)部分模塊中可以實(shí)現(xiàn)對(duì)不同

32、車(chē)次車(chē)票的出售/預(yù)定功能,并且在頁(yè)面對(duì)話(huà)框中能知道車(chē)次的實(shí)時(shí)信息,以便確定該車(chē)次的車(chē)票還能不能向外面出售或預(yù)定。車(chē)票出售/預(yù)定代碼:void TICKETSELL:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(TICKETSELL)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(TICKETSELL, CDialog)/AFX_MSG_MAP(TICKETSELL)/

33、 NOTE: the ClassWizard will add message map macros here/AFX_MSG_MAPEND_MESSAGE_MAP()5、車(chē)次查詢(xún)此模塊是面向用戶(hù)使用的,用戶(hù)在購(gòu)買(mǎi)或預(yù)定車(chē)票前可以通過(guò)該對(duì)話(huà)框頁(yè)面實(shí)現(xiàn)不同車(chē)次在不同站之間的詳細(xì)查詢(xún),可提高用戶(hù)得到票的概率,提高用戶(hù)在購(gòu)買(mǎi)或預(yù)定票的效率。車(chē)次查詢(xún):void SEARCH:OnOK() UpdateData(1);int j=0;int nItem;/清原來(lái)的列表紀(jì)錄ADOConn adoconn;adoconn.OnInitADOConn(); m_list.DeleteAllItems();_b

34、str_t sql;/利用數(shù)據(jù)庫(kù),重新填充紀(jì)錄 / sql="exec search_by_employeename '"+m_name+"'" /sql="exec search_by_employeename '"+m_name+"%'" /sql="select * from employeejiansuo where employee_name like '"+m_name+"%'"/根據(jù)記錄集,填充列表框if(m_St

35、artstation = "" && m_Endstation = "" && m_Trainno = "")MessageBox("請(qǐng)?zhí)顚?xiě)車(chē)次或起始和終點(diǎn)站");else if( m_Startstation = "" && m_Endstation = "" && m_Trainno != "" )sql = "select * from sale where trainno=&

36、#39;"+m_Trainno+"'"_RecordsetPtr m_precordset;m_precordset=adoconn.GetRecordSet(sql);while(m_precordset->adoEOF=0)/記錄集沒(méi)有移動(dòng)到最后nItem=m_list.InsertItem(j,(char *)(_bstr_t)m_precordset->GetCollect("trainno");m_list.SetItemText(nItem,1,(char *)(_bstr_t)m_precordset->

37、GetCollect("startstation");m_list.SetItemText(nItem,2,(char*)(_bstr_t)m_precordset->GetCollect("endstation");m_list.SetItemText(nItem,3,(char *)(_bstr_t)m_precordset->GetCollect("starttime");m_list.SetItemText(nItem,4,(char *)(_bstr_t)m_precordset->GetCollect(&

38、quot;arrivetime");m_list.SetItemText(nItem,5,(char *)(_bstr_t)m_precordset->GetCollect("availableseat"); m_list.SetItemText(nItem,6,(char *)(_bstr_t)m_precordset->GetCollect("price"); /下移一條記錄m_precordset->MoveNext();adoconn.ExitConnect();else if( m_Startstation != &

39、quot;" && m_Endstation != "" && m_Trainno != "" )sql = "select * from sale where trainno='"+m_Trainno+"' and startstation='"+m_Startstation+"' and endstation='"+m_Endstation+"'"_RecordsetPtr m_pr

40、ecordset;m_precordset=adoconn.GetRecordSet(sql);while(m_precordset->adoEOF=0)/記錄集沒(méi)有移動(dòng)到最后nItem=m_list.InsertItem(j,(char *)(_bstr_t)m_precordset->GetCollect("trainno");m_list.SetItemText(nItem,1,(char *)(_bstr_t)m_precordset->GetCollect("startstation");m_list.SetItemText(

41、nItem,2,(char *)(_bstr_t)m_precordset->GetCollect("endstation");m_list.SetItemText(nItem,3,(char *)(_bstr_t)m_precordset->GetCollect("starttime");m_list.SetItemText(nItem,4,(char *)(_bstr_t)m_precordset->GetCollect("arrivetime");m_list.SetItemText(nItem,5,(char

42、 *)(_bstr_t)m_precordset->GetCollect("availableseat"); m_list.SetItemText(nItem,6,(char *)(_bstr_t)m_precordset->GetCollect("price"); /下移一條記錄m_precordset->MoveNext();adoconn.ExitConnect();else if(m_Startstation != "" && m_Endstation != "" &

43、;& m_Trainno = "")sql = "select * from sale where startstation='"+m_Startstation+"' and endstation='"+m_Endstation+"'"_RecordsetPtr m_precordset;m_precordset=adoconn.GetRecordSet(sql);while(m_precordset->adoEOF=0)/記錄集沒(méi)有移動(dòng)到最后nItem=m_list.

44、InsertItem(j,(char *)(_bstr_t)m_precordset->GetCollect("trainno");m_list.SetItemText(nItem,1,(char *)(_bstr_t)m_precordset->GetCollect("startstation");m_list.SetItemText(nItem,2,(char *)(_bstr_t)m_precordset->GetCollect("endstation");m_list.SetItemText(nItem,3,(char *)(_bstr_t)m_precordset->GetCollect("starttime");m_list.SetItemText(nItem,4,(char *)(_bstr_t)m_precordset->GetCollect

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論