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

下載本文檔

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

文檔簡介

/目錄一、課題背景及意義…………………11.1概述…………11.2意義…………11.3數(shù)據(jù)庫優(yōu)勢…………………11.4開發(fā)環(huán)境……………………2二、需求分析…………32.1業(yè)務(wù)需求分析………………32.2功能需求……………………32.3數(shù)據(jù)需求……………………42.4性能需求……………………5三、系統(tǒng)總體設(shè)計……………………63.1系統(tǒng)組成……………………63.2數(shù)據(jù)庫設(shè)計…………………7概念結(jié)構(gòu)設(shè)計…………7邏輯結(jié)構(gòu)設(shè)計…………83.3物理結(jié)構(gòu)設(shè)計……………9確定數(shù)據(jù)庫的存儲結(jié)構(gòu)……………10調(diào)試分析……………103.4數(shù)據(jù)庫模式定義…………20四、系統(tǒng)詳細(xì)設(shè)計及實現(xiàn)…………214.1模塊簡述…………………214.2模塊設(shè)計…………………21五、結(jié)束語…………32六、參考文獻(xiàn)………………………34一、課題背景及意義1.1概述信息時代已經(jīng)來臨,信息處理的利器——計算機(jī)應(yīng)用于火車站售票的日常管理為火車站售票的現(xiàn)代化帶來了從未有過的動力和機(jī)遇,為火車站票務(wù)管理領(lǐng)域的飛速發(fā)展供應(yīng)了無限潛力。接受計算機(jī)管理信息系統(tǒng)已成為火車站票務(wù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)記,給火車站票務(wù)帶來了明顯的經(jīng)濟(jì)效益和社會效益。接受數(shù)據(jù)技術(shù)建立的管理系統(tǒng)不僅能提高出售/預(yù)定車票的效率,還能削減錯誤發(fā)生的概率,便利用戶的查詢訂購車票。降低工作人員的工作量,避開購票人員在車站無效的等票,可以調(diào)高購買者買到票的機(jī)率,這樣的作用在春運期間最為顯著,因為在春運的時候車站里許多人是在無效的等票,不僅造成車站里人員管理的困難,還使本可以買到票的人無辜奢侈時間在侯票上。目前火車票的訂購僅僅依靠手工操作,已現(xiàn)有的工作人員很難應(yīng)付車票訂購高峰時刻的大量數(shù)據(jù)處理問題,同時還會出現(xiàn)由此帶來的旅客查詢問題,導(dǎo)致火車誤點狀況。本次設(shè)計擬開發(fā)一個火車票訂購系統(tǒng),可以降低人工操作,提高工作效率,同時便利乘客查詢訂票。1.2意義火車票訂購始終是困擾我們的一個老問題,也是社會服務(wù)的一個難點,訂票的查詢以及車票信息的查詢時期一個最基本的業(yè)務(wù),從便面上看,這只是一個最簡潔的部分,但是它涉及到管理以及客戶服務(wù)的多個方面,因此設(shè)計了本火車票訂購系統(tǒng)來實現(xiàn)票務(wù)的查詢。1.3數(shù)據(jù)庫優(yōu)勢數(shù)據(jù)庫管理的特點許多,它比傳統(tǒng)的數(shù)據(jù)管理擁有許多優(yōu)點。以下就是數(shù)據(jù)庫的優(yōu)勢。一、數(shù)據(jù)結(jié)構(gòu)化。所謂“整體”結(jié)構(gòu)化是指在數(shù)據(jù)庫中的數(shù)據(jù)不再僅僅針對某一個應(yīng)用,而是面對全組織的;不僅數(shù)據(jù)內(nèi)部是結(jié)構(gòu)化的,而且整體也是結(jié)構(gòu)化的,數(shù)據(jù)之間是有聯(lián)系的。二、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充。數(shù)據(jù)共享可以削減數(shù)據(jù)的冗余,節(jié)約存儲空間。數(shù)據(jù)共享還能夠避開數(shù)據(jù)之間的不相容性和不一樣性。三、數(shù)據(jù)獨立性高。包括物理獨立性和數(shù)據(jù)的邏輯獨立性。物理的獨立性是指用戶的應(yīng)用程序和存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的。邏輯獨立性是指用戶的應(yīng)用程序和數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的。四、數(shù)據(jù)是由DBMS統(tǒng)一管理和限制的。包含(1)數(shù)據(jù)的平安性愛惜(2)數(shù)據(jù)的完整性檢查(3)并發(fā)限制(4)數(shù)據(jù)庫復(fù)原1.4開發(fā)環(huán)境工具軟件利用Visio2007和ever2000數(shù)據(jù)庫來開發(fā)這個火車票訂購系統(tǒng)二、需求分析在構(gòu)造系統(tǒng)時,首先從需求動身構(gòu)造數(shù)據(jù)庫表,然后再由數(shù)據(jù)庫表結(jié)合需求劃分系統(tǒng)功能模塊。這樣,就把一個大的系統(tǒng)分解成了幾個小系統(tǒng),使整個系統(tǒng)的功能更加詳細(xì)易于理解,同時易于實現(xiàn)系統(tǒng)的整體設(shè)計。本系統(tǒng)分為二個功能,分別是用戶管理和車次/車票管理,其所能實現(xiàn)的功能:實現(xiàn)用戶登錄、用戶添加。實現(xiàn)對車次的刪除和車次基本信息的添加。實現(xiàn)售票的基本管理。實現(xiàn)對車次基本信息的查詢。2.1業(yè)務(wù)需求分析從實際角度動身,對于用戶要供應(yīng)便利快捷的車票查詢和訂票服務(wù),對于車站工作人員,則是要能夠便利明朗的對車次信息進(jìn)行增刪修改操作和車票的訂售操作,提高車次的編組效率,是車次資源得到充分利用,并可以提高車票的出售效率降低工作人員的工作量。2.2功能需求在數(shù)據(jù)操作界面須要有用戶登錄窗口和車次信息操作窗口,這須要有實現(xiàn)用戶登錄的功能和車次查詢、添加、車票出售的功能。這是火車訂票系統(tǒng)的基本功能,只有實現(xiàn)了這幾個功能一個火車訂票系統(tǒng)才能起先運作,在本系統(tǒng)中實現(xiàn)了用戶的登錄添加和車票的基本信息操作。功能列表編號功能名稱功能說明1.1用戶登錄用戶輸入用戶名和密碼登錄系統(tǒng)1.2用戶添加增加用戶和對所添加的用戶權(quán)限進(jìn)行設(shè)定2.1添加車次添加車次的基本信息2.2刪除車次刪除車的基本信息3.1售票對車票銷售/預(yù)定的操作4.1車次查詢對車次基本信息的查詢2.3數(shù)據(jù)需求系統(tǒng)處理的對象有:用戶信息:用戶名、用戶密碼、用戶權(quán)限。車次信息:車次號、票價、起始站、目的站、開車時間、到站時間、實時座位數(shù)。系統(tǒng)處理如圖:用戶用戶查詢、售票、增刪車次登陸添加車次、車票管理登記帳火車預(yù)定售票系統(tǒng)登記帳登陸添加數(shù)據(jù)處理數(shù)據(jù)登陸通知處理通知添加用戶通知2.1系統(tǒng)底層數(shù)據(jù)流圖用戶車票查詢、預(yù)定、出售用戶車票查詢、預(yù)定、出售添加刪除處理車票登記帳車次基本信息登記帳車票處理通知車次信息處理通知車票數(shù)據(jù)添加刪除數(shù)據(jù)數(shù)據(jù)項名數(shù)據(jù)項含義存儲結(jié)構(gòu)IDC-1username用戶名Char(30)IDC-2Password登錄密碼Char(30)IDC-3Radio用戶權(quán)限Char(30)IDC-4Trainno車次號Char(30)IDC-5Price票價Money(8)IDC-6Availableseat座位數(shù)Int(4)IDC-7Startstation起始站Char(30)IDC-8Endstation目的站Char(30)IDC-9Starttime發(fā)車時間Char(30)IDC-10Arrivetime到站時間Char(30)2.3數(shù)據(jù)字典2.4性能需求為了保證系統(tǒng)能夠長期、平安、穩(wěn)定、牢靠、高效的運行,本系統(tǒng)應(yīng)當(dāng)滿足以下的性能需求。1.精確性和剛好性系統(tǒng)處理的精確性和剛好性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能剛好而且精確的依據(jù)用戶權(quán)限及所輸入的信息做出響應(yīng)。由于本系統(tǒng)的查詢功能對于整個系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的許多數(shù)據(jù)來源,而車票的數(shù)量和時間又影響用戶的決策活動,其精確性和剛好性很大程度上確定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必需接受確定的方法保證系統(tǒng)的精確性和剛好性。2.平安性 網(wǎng)上訂票系統(tǒng)中涉及到的數(shù)據(jù)是客運公司相當(dāng)重要的信息,系統(tǒng)要保證用戶的權(quán)限,對于車次等信息用戶只享有查詢服務(wù),不得更改;系統(tǒng)還要供應(yīng)便利的手段供系統(tǒng)維護(hù)人員進(jìn)行數(shù)據(jù)備份、日常平安管理、以及系統(tǒng)意外崩潰時數(shù)據(jù)的復(fù)原等工作。同時系統(tǒng)還要保證對數(shù)據(jù)庫進(jìn)行剛好更新,保證數(shù)據(jù)一樣。三、系統(tǒng)總體設(shè)計3.1系統(tǒng)組成系統(tǒng)開發(fā)的總體目標(biāo)是實現(xiàn)火車票訂/售票管理的系統(tǒng)化和自動化,保證車票售出和車次信息管理的正確無誤,確保車票和車次管理的有效。在本系統(tǒng)中分為兩個子系統(tǒng),分別是用戶子系統(tǒng)和車次信息子系統(tǒng),主要任務(wù)是對用戶信息、車次信息、車票信息等操作及外理。本系統(tǒng)為C/S結(jié)構(gòu)、運行平臺為微軟vc++6.0以上版本。以及SQLSever2000以上版本。下圖3.1為系統(tǒng)功能結(jié)構(gòu)圖:車票預(yù)訂刪除車次火車訂票系統(tǒng)車票預(yù)訂刪除車次火車訂票系統(tǒng)用戶管理用戶登錄添加用戶添加車次車次查詢車次信息管理3.1功能模塊圖3.2數(shù)據(jù)庫設(shè)計概念結(jié)構(gòu)設(shè)計概念設(shè)計階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程。依據(jù)之前的分析,數(shù)據(jù)庫應(yīng)當(dāng)主要的實體有用戶和車票信息。經(jīng)過分析得到的實體關(guān)系圖、E-R圖如下:車次信息車次信息車號動身地目的地發(fā)車日期開出時間到達(dá)時刻座位類型剩余票數(shù)票價查詢用戶信息訂票退票訂票信息身份證號車號訂單號發(fā)車日期訂購日訂購票數(shù)總價退票方式查詢方式身份證號用戶名性別電話訂票方式nm11n火車票訂購E-R圖邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)化為和選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型有相符合的邏輯結(jié)構(gòu)。將上圖的E-R圖轉(zhuǎn)化為以下的關(guān)系模型。關(guān)系的碼用橫線標(biāo)出。用戶(身份證號、用戶名、性別、電話)訂票信息(訂單號、身份證號、車號、發(fā)車時間、訂購日期、訂購票數(shù))車次(車號、發(fā)車日期、動身地、目的地、開出時刻、到達(dá)時刻、剩余票數(shù)、票價、座位類型)以上是實體以及其屬性。查詢(身份證號、車號、發(fā)車日期、查詢方式)訂票(訂單號、訂票方式)退票(訂單號、退票方式)以上是聯(lián)系及其屬性。火車站網(wǎng)上訂票系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如表2.1——表2.6所示。每個表格表示在數(shù)據(jù)庫中的一個表。表2-1車次信息字段名數(shù)據(jù)類型是否可空說明車號char(10)NOTNULL(主鍵)動身地char(20)NOTNULL目的地char(20)NOTNULL發(fā)車日期DatetimeNOTNULL(主鍵)開出時刻DatetimeNOTNULL到達(dá)時刻DatetimeNOTNULL剩余票數(shù)intNOTNULL票價Char(10)NOTNULL表2-2訂票信息字段名數(shù)據(jù)類型是否可空說明訂單號Char(10)NOTNULL(主鍵)身份證號Char(18)NOTNULL(外鍵)車號char(10)NOTNULL(外鍵)發(fā)車日期datetimeNOTNULL(外鍵)訂購日期datetimeNOTNULL訂購票數(shù)IntNOTNULL總價MoneyNOTNULL表2-3用戶表字段名數(shù)據(jù)類型是否可空說明身份證號char(20)NOTNULL(主鍵)用戶名char(20)NOTNULL性別Char(2)電話char(20)表2-4訂票表字段名數(shù)據(jù)類型是否可空說明訂單號char(20)NOTNULL(主鍵)訂票方式Char(20)表2-5退票表字段名數(shù)據(jù)類型是否可空說明訂單號char(20)NOTNULL(主鍵)訂票方式Char(20)表2-6查詢表字段名數(shù)據(jù)類型是否可空說明身份證號char(20)NOTNULL(主鍵)車號char(10)NOTNULL(主鍵)發(fā)車日期DatetimeNOTNULL(主鍵)查詢方式char(20)3.3物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依靠于選定的數(shù)據(jù)庫系統(tǒng)。對于數(shù)據(jù)庫查詢事務(wù),須要得到如下信息:查詢的關(guān)系。通過連接查詢可以將車次和用戶之間互聯(lián);通過訂票和退票可以將用戶和訂票信息互聯(lián),從而將每個表聯(lián)系在一起,構(gòu)成一個相關(guān)聯(lián)的數(shù)據(jù)庫。查詢條件所涉及到的屬性。查詢涉及到的屬性是(身份證號、車號、發(fā)車日期);訂票涉及到的屬性是(訂票號);退票所涉及到的屬性(訂票號)。連接條件所涉及到的屬性(身份證號、訂單號、車號-發(fā)車日期、訂單號)。對于數(shù)據(jù)更新,須要得到如下信息:被更新的關(guān)系。每個關(guān)系上的更新操作條件所涉及的屬性。修改操作要變更的屬性值。須要留意的是,數(shù)據(jù)庫上運行的事務(wù)會不斷的變更、增加或削減,以后須要依據(jù)上述設(shè)計信息的變更調(diào)整數(shù)據(jù)庫的物理結(jié)構(gòu)。3.3.1確定數(shù)據(jù)庫的存儲結(jié)構(gòu)1、確定數(shù)據(jù)的存放位置存放于C盤,并且支配2M的空間,而且文件的存儲空間可以隨著數(shù)據(jù)庫的增大而增大,即文件增長不受限制。文件的增長按百分比進(jìn)行,增長百分比為10%。2、確定系統(tǒng)配置數(shù)據(jù)庫可以公共訪問,可以打開隨意個數(shù)據(jù)庫對象,內(nèi)存支配高于2M的內(nèi)存空間。3.3.2在原有系統(tǒng)的數(shù)據(jù)有一小部分已經(jīng)輸入到了數(shù)據(jù)庫后,就可以起先對數(shù)據(jù)庫系統(tǒng)進(jìn)行聯(lián)合調(diào)試,這又成為數(shù)據(jù)庫的試運行。運行前先要對數(shù)據(jù)庫進(jìn)行備份,如下:再進(jìn)行簡潔的數(shù)據(jù)庫操作,如:建立基本表SQL語句為:createtable訂票信息(訂單號char(10)primarykey,身份證號char(20),車號char(10),發(fā)車日期datetime,訂購日期datetime,訂購票數(shù)int,總價int,foreignkey(身份證號)references用戶(身份證號),foreignkey(車號)references車次(車號),foreignkey(發(fā)車日期)references車次(發(fā)車日期));運行結(jié)構(gòu)截圖:其余的建表類似,在此不一一列舉。修改基本表①向用戶表增加“地址”列,數(shù)據(jù)類型為字符串型SQL語句為:altertable用戶add地址char(20);運行結(jié)構(gòu)截圖:②將用戶表中的電話的數(shù)據(jù)類型改為變長字符串型SQL語句為:altertable用戶altercolumn電話varchar(20);運行結(jié)果截圖:數(shù)據(jù)查詢①select*from用戶②查詢?nèi)w用戶的身份證號,SQL語句為:select用戶名,身份證號from用戶;運行結(jié)果截圖:③查詢車票價格低于100元的車次:SQL語句為:select車號from車次where票價<100;運行結(jié)果截圖為:④查詢王姓客戶的信息SQL語句為:select*from用戶where用戶名like'張%';運行結(jié)果截圖:⑤按總票價的升序?qū)⒂唵翁柵帕蠸QL語句為:select訂單號,總價from訂票信息orderby總價asc;運行結(jié)果截圖:⑥查詢從北京動身的全部車次的總票價SQL語句為:selectsum(票價)from車次where動身地='北京';運行結(jié)果截圖:⑦求乘坐車號大于一次的車號SQL語句為:select車號from訂票信息groupby車號havingcount(*)>=2;運行結(jié)果截圖:⑧SQL語句為:select車次.*from用戶,車次,查詢where用戶.身份證號=查詢.身份證號and車次.車號=查詢.車號and車次.發(fā)車日期=查詢.發(fā)車日期and⑨嵌套查詢:查詢和李明同乘一列火車的旅客的身份證號SQL語句:select身份證號from訂票信息where車號in(select車號from訂票信息,用戶where訂票信息.身份證號=用戶.身份證號and用戶名='李明');數(shù)據(jù)更新①插入數(shù)據(jù)向車次表添加一組數(shù)據(jù):“T26”、“2010-12-15”、“青島”、“北京”、“22:10”、“次日06:54”、“硬座insertinto車次values('T26',2010-12-15,'青島','北京','22:10','次日06:54',42,118,'硬座');運行結(jié)構(gòu)截圖:‘②修改數(shù)據(jù)由于雪天路滑將發(fā)車日期為2010-12-13SQL語句為:update車次set到達(dá)時刻='次日09:20'where車號='T25'and發(fā)車日期='2010-12-13';③刪除數(shù)據(jù)SQL語句為:deletefrom用戶deletefrom訂票,訂票信息where訂票.訂單號=訂票信息.訂單號and運行結(jié)果截圖:視圖①建立選擇用網(wǎng)絡(luò)查詢車次用戶的視圖。SQL語句為:createviewnetasselect身份證號from查詢where查詢方式='網(wǎng)絡(luò)';②更新視圖SQL語句為:updatenet③刪除視圖SQL語句為:dropviewnet;總之,視圖的操作和表的操作基本一樣,在此不必贅述。經(jīng)過一系列驗證數(shù)據(jù)庫的調(diào)試正常,可以進(jìn)行數(shù)據(jù)庫的操作。3.4數(shù)據(jù)庫模式定義列名數(shù)據(jù)類型取值約束可否為空說明TrainnoChar(30)可車次號StartstationChar(30)可起始站EndstationChar(30)可目的站StarttimeChar(30)可發(fā)車時間ArrivetimeChar(30)可到站時間PriceMoney(8)可票價AvailableseatInt(4)可實時座位數(shù)四、系統(tǒng)詳細(xì)設(shè)計及實現(xiàn)4.1模塊簡述本火車管理系統(tǒng)重要的全部模塊主要是分為用數(shù)據(jù)庫的類三個部分,下面對三個個部分進(jìn)行再分類,共有9個模塊。模塊類別模塊編號模塊名稱公共模塊模塊功能用戶T——1USER用戶登錄模塊T——2ADDUSER添加用戶車次信息T——3SEARCH查詢車次T——4INSERT插入車次T——5DeleteT——6DELETENO刪除車次號T——7SELL售票T——8TICKETSELL連接模塊T——9ADOConn連接數(shù)據(jù)庫4.2模塊設(shè)計下面給出模塊的背景,設(shè)計思路,算法,界面以及關(guān)鍵代碼,比較簡潔的模塊就僅給界面設(shè)計以及算法設(shè)計,比較困難的模塊會給出相應(yīng)的數(shù)據(jù)庫有關(guān)觸發(fā)器,存儲過程和視圖的設(shè)計。而本系統(tǒng)重的模塊主要有一下幾個:1、用戶模塊User模塊是公共模塊,車次信息和連接模塊也用到User,模塊。user_類是為系統(tǒng)用戶表創(chuàng)建的一個類:要利用ADO訪問數(shù)據(jù)庫,類的成員變量對應(yīng)表的列,類的成員函數(shù)對應(yīng)表的操作。但本系統(tǒng)不是為每一個表都創(chuàng)建了類。1、其頁面設(shè)計:給用戶一個好的登錄界面,供應(yīng)友善的人機(jī)界面,為用戶的運用供應(yīng)便利。同時也是為后面用戶操作其他功能供應(yīng)了權(quán)限依據(jù),避開出現(xiàn)用戶權(quán)限的不確定造成整個系統(tǒng)不同模塊的錯誤操作,使整個訂票業(yè)務(wù)遭到破壞。用戶模塊代碼:voidUSER::OnOK(){ //TODO:Addextravalidationhere UpdateData(1); if(m_user==""||m_psd=="") { MessageBox("請?zhí)詈糜脩裘蛎艽a!"); } else {ADOConnadoconn; adoconn.OnInitADOConn();//調(diào)試 _bstr_tsqltemp; sqltemp="select*fromaaaaawhereusernamelike'"+m_user+"%'andpasswordlike'"+m_psd+"%'"; _RecordsetPtrm_precordset; m_precordset=adoconn.GetRecordSet(sqltemp); adoconn.ExecuteSQL(sqltemp); if(m_precordset->adoEOF==0)//記錄集沒有移動到最終 { MessageBox("登入成功"); GetDlgItem(ID_SEARCH)->EnableWindow(FALSE); } if(m_precordset->adoEOF!=0) { // GetDlgItem(ID_ADDUSER)->EnableWindow(FALSE); } adoconn.ExitConnect(); //CDialog::OnOK(); }}2、車次信息模塊車次添加實現(xiàn)了車次能跟上需求的變更,使得系統(tǒng)管理員能依據(jù)須要添加車次,讓售票員能為購買者供應(yīng)優(yōu)質(zhì)的服務(wù)。車次添加程序:voidINSERT::OnOK(){ //TODO:Addextravalidationhere UpdateData(1); if(m_Trainno==""&m_Startstation==""&m_Endstation==""&m_Starttime==""&m_Arrivetime==""&m_Price=="") { MessageBox("請完善空格"); } else { ADOConnadoconn; adoconn.OnInitADOConn();//調(diào)試 _bstr_tsqltemp; sqltemp="insertintosalevalues('"+m_Trainno+"','"+m_Startstation+"','"+m_Endstation+"','"+m_Starttime+"','"+m_Arrivetime+"',20,'"+m_Price+"')"; //sqltemp="insertintoemployeesvalues('"+employee_id+"','"+employee_name+"','"+sex+"','"+department_id+"','"+title_id+"','"+work_time+"')"; //(trainno,startstation,endstation,starttime,arrivetime,availableseat,price) //_RecordsetPtrm_precordset; //m_precordset=adoconn.GetRecordSet(sqltemp); adoconn.ExecuteSQL(sqltemp); MessageBox("插入成功"); adoconn.ExitConnect(); CDialog::OnOK(); } }3、刪除車次刪除車次的操作是對添加車次操作的補(bǔ)充,有了刪除操作才能讓車次添加車次順當(dāng)?shù)膱?zhí)行。刪除車次代碼:voidDELETENO::OnOK(){ //TODO:Addextravalidationhere UpdateData(1); ADOConnadoconn; adoconn.OnInitADOConn();//調(diào)試 _bstr_tsqltemp; sqltemp="deletefromsalewheretrainno='"+m_Trainno+"'"; //_RecordsetPtrm_precordset; //m_precordset=adoconn.GetRecordSet(sqltemp); adoconn.ExecuteSQL(sqltemp); MessageBox("刪除成功"); adoconn.ExitConnect(); //CDialog::OnOK();}4、車票出售/預(yù)定在這個部分模塊中可以實現(xiàn)對不同車次車票的出售/預(yù)定功能,并且在頁面對話框中能知道車次的實時信息,以便確定該車次的車票還能不能向外面出售或預(yù)定。車票出售/預(yù)定代碼:voidTICKETSELL::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(TICKETSELL) //NOTE:theClassWizardwilladdDDXandDDVcallshere //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(TICKETSELL,CDialog) //{{AFX_MSG_MAP(TICKETSELL) //NOTE:theClassWizardwilladdmessagemapmacroshere //}}AFX_MSG_MAPEND_MESSAGE_MAP()5、車次查詢此模塊是面對用戶運用的,用戶在購買或預(yù)定車票前可以通過該對話框頁面實現(xiàn)不同車次在不同站之間的詳細(xì)查詢,可提高用戶得到票的概率,提高用戶在購買或預(yù)定票的效率。車次查詢:voidSEARCH::OnOK(){ UpdateData(1); intj=0; intnItem; //清原來的列表紀(jì)錄 ADOConnadoconn; adoconn.OnInitADOConn();m_list.DeleteAllItems(); _bstr_tsql; // 利用數(shù)據(jù)庫,重新填充紀(jì)錄//sql="execsearch_by_employeename'"+m_name+"'";//sql="execsearch_by_employeename'"+m_name+"%'";//sql="select*fromemployeejiansuowhereemployee_namelike'"+m_name+"%'"; //依據(jù)記錄集,填充列表框if(m_Startstation==""&&m_Endstation==""&&m_Trainno=="") { MessageBox("請?zhí)顚戃嚧位蚱鹗己徒K點站"); }elseif(m_Startstation==""&&m_Endstation==""&&m_Trainno!="") { sql="select*fromsalewheretrainno='"+m_Trainno+"'"; _RecordsetPtrm_precordset; m_precordset=adoconn.GetRecordSet(sql); while(m_precordset->adoEOF==0)//記錄集沒有移動到最終 { 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(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*)(_bstr_t)m_precordset->GetCollect("availableseat")); m_list.SetItemText(nItem,6,(char*)(_bstr_t)m_precordset->GetCollect("price")); //下移一條記錄 m_precordset->MoveNext(); } adoconn.ExitConnect(); }elseif(m_Startstation!=""&&m_Endstation!=""&&m_Trainno!="") { sql="select*fromsalewheretrainno='"+m_Trainno+"'andstartstation='"+m_Startstation+"'andendstation='"+m_Endstation+"'"; _RecordsetPtrm_precordset; m_precordset=adoconn.GetRecordSet(sql); while(m_precordset->adoEOF==0)//記錄集沒有移動到最終 { 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(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*)(_bstr_t)m_precordset->GetCollect("availableseat")); m_list.SetItemText(nItem,6,(char*)(_bstr_t)m_precordset->GetCollect("price")); //下移一條記錄 m_precordset->MoveNext(); } adoconn.ExitConnect(); } elseif(m_Startstation!=""&&m_Endstation!=""&&m_Trainno=="") { sql="select*fromsalewherestartstation='"+m_Startstation+"'andendstation='"+m_Endstation+"'";_RecordsetPtrm_precordset; m_precordset=adoconn.GetRecordSet(sql); while(m_precordset->adoEOF==0)//記錄集沒有移動到最終 { 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(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*)(_bstr_

溫馨提示

  • 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

提交評論