版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課程名稱:軟件工程課程設計設計題目:指導教師:火車訂票系統(tǒng)一訂單信息管理計算機計算機科學與技術(shù)(0901)2013.1.06毋星閆霞謝天2013.1.12郭詠梅 1 1 1 1 1 1第二章火車訂票系統(tǒng)需求分析 22.1數(shù)據(jù)分析 22.2功能分析 22.3其它需求 42.3.1數(shù)據(jù)的完整性、準確性及安全性 第三章火車訂票系統(tǒng)總體設計 5第四章火車訂票系統(tǒng)詳細設計 54.1數(shù)據(jù)庫設計 54.2主要界面設計 64.3訂單信息管理模塊詳細設計 74.3.1訂單信息管理模塊的功能 4.3.2訂單信息管理模塊算法描述 第五章數(shù)據(jù)管理模塊的主要源代碼及測試 5.1訂票模塊主要源代碼 5.2退票模塊主要源代碼 5.3訂票模塊的測試 6.1開發(fā)過程歸納總結(jié) 6.2遇到的問題以及解決辦法 6.3對于進一步開發(fā)的說明 6.4本次課程設計的收獲和體會 第一章問題描述火車是目前客流量最大的運輸工具,未來很長一段時間中也會延續(xù)這種現(xiàn)狀而傳統(tǒng)的人工售票,每逢客流高峰期就會出現(xiàn)旅客排隊購票困難的情況。為了提高售票效率,方便旅客訂票,產(chǎn)生了面向此課題的研究。結(jié)合以前所學的CC++以及本學期所學的軟件工程的理論知識,開發(fā)一個簡單的火車訂票系統(tǒng),方便管理員管理車次信息、用戶訂票與退票。開發(fā)工具:kate編輯器、g++編譯器、gdb調(diào)試工具;開發(fā)語言:C++;本系統(tǒng)主要實現(xiàn)以下功能:3、實現(xiàn)訂票與退票的功能。1第二章火車訂票系統(tǒng)需求分析本系統(tǒng)中存在的實體有:用戶、車次、火車票(在系統(tǒng)中是以訂單的形式出現(xiàn)),各實體都有自己相應的屬性,其中“用戶”實體和“火車票”實體之間存在“購買”聯(lián)系,這種聯(lián)系為一對多的,即一名用戶可購買多張火車票(但同一車次的火車票不能被同一用戶購買多張);“火車票”實體和“車次”實體存在“包含”聯(lián)系,這種聯(lián)系為多對一的,即一個車次可以對應多張火車票,而一張火車票只能對應于一個車次。為了減少數(shù)據(jù)冗余,便于數(shù)據(jù)的統(tǒng)計和查詢,本系統(tǒng)的主要數(shù)據(jù)項設計如下:用戶信息,包括數(shù)據(jù)有:身份證號、用戶名、姓名、性別、聯(lián)系電話。車次信息,包括數(shù)據(jù)有:車次編號、發(fā)站、到站、發(fā)時、到時、票數(shù)、票價訂單信息,包括數(shù)據(jù)有:訂單號、車次號、用戶名、座位號。管理員向火車訂票系統(tǒng)錄入用戶信息(也可以自己注冊用戶)、車次信息,旅23客登錄系統(tǒng)后可以查詢管理員錄入的車次信息,頂層還可以查看自己的資料,系統(tǒng)的本系統(tǒng)主要需要設計六個類,鏈表類模板、文件類模板、窗口類、用戶類、車次類以及訂單類,鏈表類模板與文件類模板主要是進行數(shù)據(jù)管理,而窗口類主要用于將用戶類、車次類以及訂單類的一些服務組織起來,實現(xiàn)用戶與后臺數(shù)據(jù)的交互。所以呈現(xiàn)給用戶的主要有以下幾個功能。登錄:用戶需要輸入自己的用戶名和密碼方可進入系統(tǒng),非管員的操作界面,而管理員可以進入旅客的操作界面。注冊:只有經(jīng)過注冊的用戶才可以登錄訂票系統(tǒng)用戶信息管理:這部分功能主要是通過設計用戶類中的一些服務來實現(xiàn)的。管理員可以用戶的信息進行增加、刪除、修改、查詢、統(tǒng)計操作,普通旅客只能夠查詢自己的車次信息管理:這部分功能主要是通過設計車次類中的一些服務來實現(xiàn)的。管理員可以對車次的信息進行增加、刪除、修改、查詢、統(tǒng)計操作,普通旅客可以查詢車次信息訂單信息管理:這部分功能主要是通過設計訂單類的一些服務來實現(xiàn)的。管理員可以統(tǒng)計系統(tǒng)中存在的訂單,旅客可以通過該系統(tǒng)進行訂票和退票。4錄錄S仁詵抒;;匕詵抒;;匕bn刪伙毎譏f杵訓車補:億息訂單管理模塊主要實現(xiàn)訂票與退票的功能,這就要求類中的不同服務以實現(xiàn)訂票、退票以及統(tǒng)計訂單的功能。(1)擁有用戶、密碼模塊管理用戶權(quán)限(2)可根據(jù)各種條件進行查詢該軟件在軟硬件環(huán)境均未發(fā)生重大改變和提高的情況下,在正確使用和適當維護的條件下,可以長久使用,各項功能可以正常實現(xiàn),可靠性較好。5丄統(tǒng)訃文件數(shù)據(jù)丄統(tǒng)訃文件數(shù)據(jù)第三章火車訂票系統(tǒng)總體設計火車訂票系統(tǒng)分為四個大模塊,即用尸信息管理模塊、車次信息管理模塊、訂單信息管理模塊以及數(shù)據(jù)處理模塊,前三個模塊每個模塊下面又分為若干個子模塊,數(shù)據(jù)處理模塊是輔助前三個模塊正常處理數(shù)據(jù)的。訂單信息管理模塊主要分為訂票、退票以及訂單統(tǒng)計,旅客在登錄系統(tǒng)后可以根據(jù)自己的需要進行訂票,當用戶訂票完畢后系統(tǒng)會隨機生成一個訂單號和座位號呈現(xiàn)給用戶;當用戶因為某種原因想取消訂單的時候,可以進行退票操作,當然必須是用戶在此之前已經(jīng)訂過票。管理員可以將所有旅客所下訂單信息進行統(tǒng)計,系統(tǒng)的層次結(jié)構(gòu)圖如圖刪加除忙乍次次-統(tǒng)計-丄生找文卅數(shù)據(jù)丄第四章火車訂票系統(tǒng)詳細設計6和用戶名在表中是唯一確定的,且訂單號長度必須為5位,車次與用戶名的長度設計分別在車次信息表與用戶信息表當中有說明。該系統(tǒng)全部由C、C++來實現(xiàn),雖然訂單號長度設計為5位,但為了防止數(shù)組越界可能產(chǎn)生的錯誤,將它在結(jié)構(gòu)體當中的定義擴大,其它比如車次、用戶名等也是如何。548根據(jù)需求,設計如下一些界面:的操作,界面如下圖所示。7*****玄戲迎您登錄火車訂票系統(tǒng)?請很據(jù)提看選擇您所需要進行的操作快***W1査詢列車信息當用戶選擇訂票操作的時候會要求用戶輸入乘車區(qū)間,界面如請輸入乘車區(qū)間發(fā)站:太原到站:武昌■系統(tǒng)會根據(jù)用戶的要求呈現(xiàn)給用戶所有滿足條件的車次,的需要進行選擇,設計的界面如圖所示車次乘車區(qū)間發(fā)時到時余票數(shù)票價K320太原一武昌03:0023:19300旅客可以根據(jù)自己請選宦您所需要乘釦I勺車次:K90S是否確認購買該車次的車J1、訂票模塊:當旅客登錄系統(tǒng)后選擇訂票,會要求用戶輸入自己的乘車區(qū)間,若乘車區(qū)間不存在,系統(tǒng)會給出相應的提示,若乘車區(qū)間存在,系統(tǒng)會顯示出所有滿足要求的車次,當用戶訂票完畢之后系統(tǒng)會隨機生成一個訂單號和座位號呈現(xiàn)給用戶。2、退票模塊:旅客可以根據(jù)自己的要求進行退票操作。3、訂單統(tǒng)計模塊:管理員可以執(zhí)行訂單統(tǒng)計操作,可以查看到所有用戶的訂單信8訂單信息管理模塊中各個子模塊的功能上面已經(jīng)介紹,這里就訂票與退票模塊進行算法描述,其中流程圖分別如圖4-4和圖4-5示所示。9第五章數(shù)據(jù)管理模塊的主要源代碼及測試//訂票voidOrder::order_ticket(constchar*a,boolb,string&s){system("clear");strcpy(,s.c_str());while(1){if(!t.ticket_quary2({cout<<"請選擇您所需要乘坐的車次:";strcpy(o.tnum,s1.c_str());if(fo.fo(s.c_str(),s1.c_str()))〃判斷該用戶是否已經(jīng)訂過該車次的車票{cout<<"一個用戶只能訂購同一車次的一張車票}cout<<"是否確認購買該車次的車票(y/n):";charch;{隨機產(chǎn)生座位號strcpy(o.num,s3.c_str());strcpy(o.snum,s4.c_str());{lo.read_to_list("order.dat");lo.insert_back(o//訂單生成后到列車信息表當中將余票數(shù)減1t.ticket_cha_cou1(s1.c_str(),s,-1);system("clear");*****************************cout<<II*請在發(fā)車前兩小時到車站點憑身份證領(lǐng)取您的紙質(zhì)車票!*\n";*****************************}}}cout<<"您是否需要購買其它車次的車票(y/n):";charch;w.login_tra(ss.c_str(),b,s);}//退票(刪除相關(guān)訂單信息,并使余票數(shù)加1)voidOrder::return_ticket(constchar*{a,boolb,string&s){//查看訂單當中是否有與自己相關(guān)的訂單if(!fo.if_has_exits1(s.c_str())){system("clear");cout<<"您當前沒有訂單,無須進行退票操作!\n";cout<<"回車{返回一級\n";}fo.cat_from_file2(s.c_str());}cout<<"是否需要繼續(xù)取消訂單(y/n):";charch;cout<<"請輸入您所想取消的訂單號:";strings1;//檢測該用戶是否存在此訂單號if(!fo.if_has_exits1(s.c_str(),s1.c_str{{cout<<"回車返回上一級!\n";"是否確認退票(y/n):";{{t.ticket_cha_cou1(on.tnum,s,1);}}這里僅列訂票模塊的測試過程,其它子模塊里沒有一一列出。這里采用路徑覆蓋的方法進行測試,圖5-1為輸出某車次信息的算法流程圖。其白盒測試結(jié)果如表所示。第六章總結(jié)本課程設計完成了一個簡單的火車訂票系統(tǒng),管理員可以登錄系統(tǒng)對用戶、車次以設計的開發(fā)過程大致涉及到以下知識點:3、數(shù)據(jù)結(jié)構(gòu)中單鏈表的知識;4、如何通過軟件工程的相關(guān)知識點合理地進行軟件的設計。(1)在設計系統(tǒng)的初期目的不明確,幾乎沒有進行任何的系統(tǒng)分析就開始進行代碼的編寫,導致越做越亂,最后暫時中止了程序的編寫。以及在自己的能力范圍之內(nèi)可以實現(xiàn)什么功能,然后進行面向?qū)ο蟮姆治?,確定系統(tǒng)需要實現(xiàn)每個類中的服務,最后再逐個的進行細化。(2)測試系統(tǒng)的時候,有時候發(fā)現(xiàn)一組數(shù)據(jù)測試的結(jié)果正確,可是再次登錄系統(tǒng)的時候發(fā)現(xiàn)另外一組數(shù)據(jù)測試的結(jié)果就出現(xiàn)問題了。程中白盒測試的方法,再結(jié)合gdb調(diào)試工具,確定出現(xiàn)問題的地方逐個進行改正。(1)本系統(tǒng)對于一些數(shù)據(jù)信息的處理都是通過文件來進行的,而文件只適合保存少(2)本系統(tǒng)是模仿12306網(wǎng)站進行設計,由于時間問題,很多功能都不夠完善,后期將會繼續(xù)添加一些功能,比如付款功能,當然本系統(tǒng)不能從真正意義上實現(xiàn)付款功能,只是模擬這個功能。之所以需要這個功能,是因為只有經(jīng)過付款后的訂單才是真正意義上有效的,下單并不代表已經(jīng)購票成功。我們小組所做的課程設計題目是火車訂票系類,實現(xiàn)對訂單基本信息的管理。經(jīng)過數(shù)天的研究學習之后,在經(jīng)過小組成員的通力合作知道了軟件工程這門課的重要性以及其廣泛地應用性。外由于本次課程設計我們小組是用C++來進行編程的。所以在經(jīng)過本次課程設計后對C++也有了進一步更深刻理解和熟悉掌握,知道應該如何正確有效的進行面向?qū)ο缶幊?,即如何設計一些類并將它們有效的組織起來。通過本次課程設計實現(xiàn)了理論與實際相結(jié)合讓我能夠把平時在課堂上學到的理論知識應用到實際生活中。通過自己所學改善自己的生最大的收獲是通過本次課程設計讓我知道我自己還存在很多的不足,尤其是對軟件工程中的一些理論知識理解的還不是很透徹,還有就是對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大型設備采購合同
- 淘寶天貓代運營合同
- 2025年度二零二五年度DJ音樂版權(quán)手機應用合作合同3篇
- 瓷磚分銷合同書
- 線性插畫課程設計
- 一對一資產(chǎn)管理合同模板
- 2025版建筑公司消防員勞動合同規(guī)范文本3篇
- 網(wǎng)紅直播服務合同
- 活動型課程設計
- 紐扣鎖扣眼機課程設計
- 2022年北京市密云區(qū)中考二模語文試題及參考答案
- 五態(tài)人格表單
- 部分預應力混凝土A類梁課程設計
- 企業(yè)節(jié)前安全教育培訓
- 小學體育知識樹PPT課件(帶內(nèi)容)
- 全球試驗室儀器耗材國際品牌簡介
- 鋼抱箍+工字鋼梁在蓋梁施工中的應用
- 消防聯(lián)動調(diào)試記錄(2)
- 追求“真實、樸實、扎實”的語文課堂
- 螺桿空壓機操作規(guī)程完整
- 702班素質(zhì)評價觀測學生填寫完成情況檢查
評論
0/150
提交評論