列車查詢系統(tǒng)_第1頁
列車查詢系統(tǒng)_第2頁
列車查詢系統(tǒng)_第3頁
列車查詢系統(tǒng)_第4頁
列車查詢系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 目錄第一章 問題的定義1第二章 可行性研究2第三章 項目開發(fā)計劃33.1 開發(fā)內(nèi)容33.2開發(fā)目標(biāo)33.3 開發(fā)環(huán)境3第四章 需求分析4第五章 概要設(shè)計55.1 數(shù)據(jù)流程55.2數(shù)據(jù)字典65.3系統(tǒng)功能模塊圖10第六章 數(shù)據(jù)庫設(shè)計116.1 數(shù)據(jù)庫的邏輯設(shè)計116.2 數(shù)據(jù)庫的物理設(shè)計12第七章 詳細(xì)設(shè)計157.1程序流程圖157.2.1游客子模塊流程圖157.2.2 管理員子模塊流程圖167.2.3車次信息查詢模塊流程圖167.2.4錄入車次信息模塊流程圖177.2.5刪除車次信息模塊流程圖187.2.6修改車次信息模塊流程圖19第八章 測試報告218.1測試工具218.2測試對象218.

2、3管理員錄入測試218.4游客按車次查詢測試23第九章 用戶手冊259.1管理員手冊259.2游客使用手冊25附錄260 第一章 問題的定義 為了加強鐵路運輸信息建設(shè),以及為廣大旅客更好地旅客服務(wù),讓廣大旅客能夠及時有效地得到客、貨運輸信息,有必要開發(fā)出一塊小巧方便的列車查詢系統(tǒng)方便旅客及時準(zhǔn)確的了解列車信息,從而方便購票、退票。列車時刻查詢系統(tǒng)是便民類的系統(tǒng)。該系統(tǒng)能夠為用戶提供有關(guān)列車時刻充足的信息和快捷的查詢手段。在計算機普及的信息時代,用電腦軟件來查詢列車時刻已經(jīng)替代了一直以來人們使用傳統(tǒng)的方式查詢列車時刻,用傳統(tǒng)的方式存在著許多缺點。使用電腦軟件進行查詢,方便快捷。因此有利于人們快速

3、、方便的查找到所需的相關(guān)列車時刻信息。列車信息量的不斷增大,使得列車信息管理人員的工作變得越來越復(fù)雜且容易出錯,急需更好的方式管理列車信息,計算機技術(shù)不斷發(fā)展,使得利用計算機軟件管理列車信息變成可能,而且會節(jié)省人力物力,帶來更好的經(jīng)濟效益,給人們提供方便。旅客關(guān)注的一般是列車的車次、發(fā)車時間、到站時間、全部運行時間等一些列車的基本數(shù)據(jù),根據(jù)這些需求,把列車的基本信息統(tǒng)一由管理員錄入計算機并及時更新、修改和刪除一些車次的列車信息,從而動態(tài)的維護信息的更新。軟件的目的是使用性強,不論工作人員還是旅客都要能方便使用軟件,這就要求軟件要操作簡單,不能有繁瑣難懂的操作方法。對于管理員來說,要有錄入列車車

4、次信息功能、修改車次信息功能、刪除信息功能等管理員有權(quán)力進入并進行操作的功能。而對于游客,則可以根據(jù)列車的車次和火車站等聯(lián)系來查詢列車信息。這款軟件是為了方便人們出行的火車查詢系統(tǒng),為非盈利性軟件,所以開發(fā)時間有限,但所要求的功能都是按質(zhì)按量完成,在時間有限的情況下也注重了效率的重要。 第二章 可行性研究 通過對市場長時間的調(diào)查發(fā)現(xiàn),研發(fā)一款列車查詢系統(tǒng)是非常有必要的。而且根據(jù)現(xiàn)在的技術(shù)水平完全有能力支持者款系統(tǒng)的研發(fā)成功。在技術(shù)日趨成熟的今天,我們可以通過多種編程語言來對著款系統(tǒng)進行編寫開發(fā),在現(xiàn)在的windows操作系統(tǒng)中對系統(tǒng)進行檢測,多種算法可提供選擇來實現(xiàn)數(shù)據(jù)庫設(shè)計。說以在技術(shù)上是完

5、全可行的。由于本款系統(tǒng)小巧簡便,不會需要很多經(jīng)費,不會帶來很多的經(jīng)濟負(fù)擔(dān),而且這款系統(tǒng)是在現(xiàn)在的操作系統(tǒng)中實現(xiàn)所以不需要額外的硬件需求,從而減少了經(jīng)濟投入,在經(jīng)濟方面是完全可行的。這款軟件是方便人們出行乘坐火車的查詢系統(tǒng),所以操作上一定要簡單易懂,同時要方便管理員的管理,只要根據(jù)說明書進行操作熟悉了之后就會很簡單,所以應(yīng)用可行性是行的通的。通過這幾方面的研究發(fā)現(xiàn)列車查詢系統(tǒng)的研發(fā)是可行的。 第三章 項目開發(fā)計劃3.1 開發(fā)內(nèi)容在本項目的開發(fā)為期三周中,開發(fā)時首先要編寫好開發(fā)文檔,包括可行性研究報告、項目開發(fā)計劃、需求分析說明書、概要設(shè)計說明書、詳細(xì)設(shè)計說明書、用戶手冊,確保開發(fā)過程按部就班完成

6、,同時方便客戶的應(yīng)用。其次就是編寫代碼、測試的工作,以及日后系統(tǒng)維護的工作。3.2開發(fā)目標(biāo)本列車查詢系統(tǒng)主要實現(xiàn)以下功能:1.管理員可以方便錄入新的列車信息。2.在應(yīng)用過程中管理員可以方便調(diào)用和修改、刪除列車信息。3.旅客可以方便的根據(jù)車次或站名查詢自己需要查詢的信息。3.3 開發(fā)環(huán)境開發(fā)環(huán)境:Windows XP開發(fā)工具:Visual Basic 6.0數(shù)據(jù)庫管理系統(tǒng): SQL Server 2000數(shù)據(jù)庫服務(wù)器: SQL Server 2000 桌面引擎 第四章 需求分析 4.1項目分析 隨著人們生活水平的提高和信息化時代的到來,管理系統(tǒng)的作用已越來越重要,列車時刻查詢系統(tǒng)是個小型管理系統(tǒng)

7、,用C+語言實現(xiàn)。所有數(shù)據(jù)都要利用文件系統(tǒng)保存,使用文件輸入輸出流保存文件信息,以備系統(tǒng)下次運行時使用。列車時刻查詢和決策工作是一項瑣碎、繁雜的工作,由于列車時刻在各種節(jié)日休假時期經(jīng)常性的調(diào)整,導(dǎo)致列車時刻表必須經(jīng)常修改,以確保準(zhǔn)確無誤的向用戶及時的提供列車時刻信息。幾十年前的那種傳統(tǒng)的方式存在著許多缺點,如:效率低、時間長、繁瑣,給用戶帶來了諸多不便。在計算機普及的信息時代,使用電腦軟件進行查詢,使查詢更加迅速、方便、清晰。 此列車時刻查詢決策系統(tǒng)軟件,能幫助人們利用計算機快速方便的查詢列車時刻。本軟件集列車基本數(shù)據(jù)、車次管理、列車查詢于一身,目的在于能夠使管理人員更加方便快捷的對列車時刻進

8、行更新和管理。同時使用戶更加方便快速的查詢列車時刻信息。此列車時刻查詢決策系統(tǒng)使列車時刻信息的查詢工作更系統(tǒng)化、規(guī)范化、自動化。從而在一方面提高了管理人員的工作效率,減少了傳統(tǒng)人工管理方式所帶來的人力,物力的浪費,另一方面由于本軟件具有查找方便、可靠性高、存儲量大等優(yōu)點,所以實現(xiàn)了列車時刻信息查詢及管理的自動化。 4.2 數(shù)據(jù)流程根據(jù)需求分析的得到列車查詢系統(tǒng)處理流程,根據(jù)不同的用戶需求,首先確定目標(biāo)系統(tǒng)的業(yè)務(wù)流程,其數(shù)據(jù)流圖如圖5.1。 圖4.2火車票查詢系統(tǒng)數(shù)據(jù)流程圖對數(shù)據(jù)流圖所示功能描述:1.用戶登錄:管理員和游客都可定義為用戶并合法登錄2.火車信息刪除:對已有過時的信息進行刪除3.火車

9、信息錄入:對需要增加的火車信息更新錄入。4.火車信息修改:對庫中的火車信息進行局部修改。 5.信息查詢:游客可以根據(jù)自己的需要進行相應(yīng)查詢。6.車次信息庫:包含所有車次信息,方便管理員的管理和游客的查詢。4.3數(shù)據(jù)字典 數(shù)據(jù)流圖對系統(tǒng)的整個過程進行了大體描述,對整體的描述還遠(yuǎn)遠(yuǎn)不能更具體的表述出系統(tǒng)的數(shù)據(jù)內(nèi)容,同時還要有數(shù)據(jù)字典加以輔助,才能對體統(tǒng)跟清楚的理解。具體數(shù)據(jù)字典如下: 表4-1車次數(shù)據(jù)項名稱:車次別名:trnu描述:顯示列車的編號定義:由數(shù)字或字母組成輸入:管理員輸出:列車信息庫 表4-2出站時間數(shù)據(jù)項名稱:出站時間別名:trst描述:規(guī)定列車的出站時間定義:由數(shù)字和時間符號組成輸

10、入:管理員輸出:列車信息庫 表4-3車次信息數(shù)據(jù)項名稱:車次信息別名:trin描述:列車的基本信息屬性定義:車次信息=車次+列車類型+里程+出站時間+進站時間+始發(fā)站+終點站+總運行時間輸入:管理員輸出:列車信息庫 表4-4信息管理數(shù)據(jù)項 名稱:信息管理別名:inad描述:管理員對列車信息管理的過程定義:信息管理=車次+管理員編號+登錄密碼+管理員姓名輸入:管理員輸出:列車信息庫 表4-5信息查詢數(shù)據(jù)項名稱:信息查詢別名:inch描述:游客的查詢過程定義:信息查詢=游客姓名+車次+站名+游客編號輸入:游客輸出:列車信息庫 表4-6列車類型數(shù)據(jù)項名稱:列車類型別名:trty描述:列車所屬種類定義

11、:由大寫字母表示輸入:管理員輸出:列車信息庫 表4-7管理員編號數(shù)據(jù)項名稱:管理員編號別名:adnu描述:對管理員的數(shù)據(jù)標(biāo)號定義:有數(shù)字組成輸入:管理員輸出:列車信息庫名稱:登錄密碼別名:vinu描述:管理員對系統(tǒng)操作時的登錄密碼定義:由數(shù)字組成輸入:管理員輸出:列車信息庫名稱:游客編號別名:vinu描述:對游客進行的數(shù)據(jù)標(biāo)號定義:由數(shù)字組成輸入:游客輸出:列車信息庫 表4-8游客編號數(shù)據(jù)項 表4-9登錄密碼數(shù)據(jù)項 表4-10總運行時間數(shù)據(jù)項 表4-10登錄密碼數(shù)據(jù)項 名稱:總運行時間別名:neti描述:列車整體過程中需要運行的時間定義:由數(shù)字和時間表示符號組成輸入:列車信息庫輸出:列車信息庫

12、 名稱:始發(fā)站別名:trss描述:列車的駛出站的站名定義:由字母組成輸入:管理員輸出:列車信息庫輸出: 表4-11狀態(tài)數(shù)據(jù)項名稱:狀態(tài)別名:trsta描述:列車當(dāng)前的運行狀態(tài)定義:由漢字顯示列車狀態(tài)輸入:列車信息庫輸出:列車信息庫 表4-12始發(fā)站數(shù)據(jù)項 第五章概要設(shè)計 5.1系統(tǒng)功能模塊圖 根據(jù)需求分析階段得到的數(shù)據(jù)流圖,并結(jié)合軟件工程所需的知識,根據(jù)用戶的要求,給出列車查詢系統(tǒng)功能模塊圖如圖5.1所示 圖5.1列車查詢系統(tǒng)功能模塊圖5.2 模塊功能錄入列車信息模塊:該部分功能主要是用于系統(tǒng)管理員輸入列車的各種信息,加強系統(tǒng)的可擴展性和延續(xù)性,使系統(tǒng)信息保持更新。查詢列車信息模塊:查詢列車時

13、刻信息,以及相關(guān)資料,查詢分兩種方式,一種是按列車號查詢,另一種是按終點站查詢。兩種查詢想輔助。使用戶更快捷的查詢到有關(guān)信息。刪除列車信息模塊:刪除列車時刻信息功能主要用于更新列車信息數(shù)據(jù),對于不必要的信息和錯誤的過時的信息進行相關(guān)處理,有利于簡化系統(tǒng),對于系統(tǒng)的運行速度的提升有著良好的加速效果。此功能是管理員專用功能,游客用戶無權(quán)調(diào)用。修改列車信息模塊:此功能用于修改列車信息,使用權(quán)限僅限于管理員。進行列車信息的相關(guān)修改對于系統(tǒng)的正常運行有著顯著的作用。游客子模塊:此功能用于游客等登錄保證游客對車次的查詢。管理員子模塊:用于管理員的登錄,使得管理員進入系統(tǒng)管理層。 第六章 數(shù)據(jù)庫設(shè)計6.1

14、數(shù)據(jù)庫的邏輯設(shè)計根據(jù)對系統(tǒng)的數(shù)據(jù)分析和該階段所建立的概念模型,已經(jīng)得出能夠滿足系統(tǒng)設(shè)計要求的幾個關(guān)系描述,先階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。下面給出初步E-R圖如圖6.1所示。 圖 6.1初步E-R圖根據(jù)三范式的化簡原則,可以把初步的E-R圖化簡,下面得到基本E-R圖如圖6.2所示 圖6.2基本E-R圖實體:車次信息(車次,狀態(tài),里程,列車類型,總運行時間,出站時間,進站時間,始發(fā)站,終點站); 管理員(管理員編號,管理員姓名,登錄密碼); 游客(游客編號,游客姓名);聯(lián)系:信息管理(車次,管理員編號,登錄密碼); 信息查詢(車次,站名);6.2 數(shù)據(jù)庫的物理設(shè)計基于數(shù)據(jù)

15、庫的原理,結(jié)合數(shù)據(jù)庫邏輯設(shè)計的基本E-R圖,本著程序設(shè)計盡可能言簡意賅的原則我們采用創(chuàng)建一個列車信息庫,并在庫中建立相應(yīng)的數(shù)據(jù)表,具體數(shù)表如下所示:1車次信息數(shù)據(jù)表具體如下圖所示: 表6-1 車次信息數(shù)據(jù)表 字段名數(shù)據(jù)類型約束描述trnuint主鍵車次trtychar不為空列車類型trlochar不為空里程trstdata不為空出站時間trendata不為空到站時間netichar不為空總運行時間trsschar不為空始發(fā)站traschar不為空終點站trstachar不為空狀態(tài)2 管理員數(shù)據(jù)表具體如下圖所示: 表6-2 管理員數(shù)據(jù)表 字段名數(shù)據(jù)類型約束描述adnuint主鍵管理員編號adna

16、char不為空管理員姓名passchar不為空登錄密碼3游客數(shù)據(jù)表具體如下圖所示: 表6-3 游客數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述vinuint主鍵游客編號vinachar不為空游客姓名4 信息管理數(shù)據(jù)表具體如下圖所示: 表6-4 信息管理數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述trnuint主鍵車次adnuint不為空管理員編號passchar不為空登錄密碼5信息查詢數(shù)據(jù)表具體如下圖所示: 表6-5信息查詢數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述trnuint主鍵車次stnachar不為空站名 第七章 詳細(xì)設(shè)計7.1程序模塊圖根據(jù)本系統(tǒng)的內(nèi)容得到的具體數(shù)據(jù)流圖在本次設(shè)計中起到了系統(tǒng)整體描述的作用,根據(jù)數(shù)據(jù)流圖的描述可以

17、把每個過程抽象成模塊形式,再根據(jù)每個模塊的具體方案結(jié)合所學(xué)C+知識進行功能模塊的編寫,具體功能模塊結(jié)合在一起構(gòu)成整個數(shù)據(jù)流程圖所要實現(xiàn)的功能。7.2.1游客子模塊流程圖 游客子模塊是游客進行查詢操作登錄時必須擁有的模塊,實現(xiàn)了游客等登錄,從而為以后的查詢奠定基礎(chǔ)。具體流程圖如圖7.1所示。 圖7.1 游客子模塊程序流程圖7.2.2 管理員子模塊流程圖 管理員子模塊是管理員登錄的模塊,為管理員進行以后的操作作準(zhǔn)備。具體流程圖如圖7.2所示。 圖7.2管理員模塊程序流程圖7.2.3車次信息查詢模塊流程圖 車次信息查詢模塊是游客在系統(tǒng)中操作的關(guān)鍵模塊,本模塊實現(xiàn)的功能是幫助游客查詢到其想要查詢的列車

18、信息,具體流程圖如圖7.3所示。 圖7.3車次信息查詢模塊程序流程圖7.2.4錄入車次信息模塊流程圖 錄入車次信息模塊是管理員操作的模塊,它實現(xiàn)了把新的車次信息錄入到系統(tǒng)中,保證能夠及時更新車次信息,方便旅客查詢。具體流程圖如圖7.4所示。 圖7.4錄入車次信息模塊程序流程圖7.2.5刪除車次信息模塊流程圖 刪除車次信息模塊是對已經(jīng)過時的車次信息進行清除,減少對旅客造成不必要的麻煩,同時減少信息庫的資源浪費。具體流程圖如圖7.5所示。 圖7.5刪除車次信息模塊程序流程圖7.2.6修改車次信息模塊流程圖 修改信息模塊是對車次信息進行局部微調(diào)的模塊,不用直接刪除再全部輸入,減少了管理員的工作量。具

19、體流程圖如圖7.6所示。 圖7.6修改車次信息模塊程序流程圖 第八章 測試報告8.1測試工具一臺完備的電腦和Visual C+ 6.0運行環(huán)境8.2測試對象列車查詢系統(tǒng)各個模塊是否能正常運行 8.3管理員錄入測試測試方法: 1、管理員在登錄界面登錄,并輸入密碼進入管理員操作界面; 2、按提示進入錄入車次信息功能模塊; 3、輸入一組列車基本信息,并保存; 4、返回并選擇查看車次信息,對照是否正確錄入并保存到車次信息庫中; 5.退出系統(tǒng)。 測試目的: 通過對管理員錄入模塊的測試了解系統(tǒng)是否能正常的錄入更新車次信息,并間接觀察其他相關(guān)功能能否配合所測試功能完成相應(yīng)操作。測試結(jié)果:1管理員登錄如圖8.

20、1所示 圖8.1管理員登錄2進入錄入功能模塊并錄入信息如圖8.2所示 圖8.2管理員錄入信息3錄入結(jié)果查詢?nèi)鐖D8.3所示 圖8.3錄入結(jié)果查詢驗證8.4游客按車次查詢測試測試方法: 1、游客在登錄界面進入游客查詢界面; 2、按提示選擇按車次查詢; 3、觀察是否顯示所查詢的車次信息; 4、查詢完畢退出系統(tǒng)。測試目的: 通過按車次查詢的方法直接明了的觀察了查詢模塊是否能正常運行,如果一切正常則說明此次列車查詢系統(tǒng)所要完成的功能基本達成,如果不能正常顯示說明還要加以改進。 測試結(jié)果 1游客登錄并進入查詢界面如圖8.4所示 圖8.4游客登錄查詢界面2游客按車次查詢并觀察所示信息如圖8.5所示 圖8.5

21、游客按車次查詢結(jié)果 第九章 用戶手冊為了用戶方便快捷的是用列車查詢系統(tǒng)管理和查詢相關(guān)信息,特別編寫了用戶手冊,為用戶詳細(xì)介紹了系統(tǒng)如何運行,其中管理員和游客不同用戶是如何使用系統(tǒng)的相關(guān)功能都用介紹。9.1管理員手冊1 管理員通過登錄界面進入管理界面,進入前需要輸入密碼,初始密碼默認(rèn)為123456;2 進入管理員界面后,管理員可以選擇相關(guān)的功能加以操作;3 錄入或修改完列車信息后要及時保存,以免遺漏;4 管理員可以對單個車次的車次信息進行修復(fù)同時也要保存修改后的信息;5 完成對相關(guān)功能的操作后,請按提示安全退出。9.2游客使用手冊1 游客使用時按提示進入查詢界面;2 查詢時給出不同的查詢方式,可

22、以按車次查詢同時也可以按站名查詢;3 查詢完相關(guān)信息后可以繼續(xù)查詢其他車次信息,如結(jié)束查詢請按提示安全退出。附錄 #include<iostream> /數(shù)據(jù)流輸入輸出#include<fstream> /文件輸入輸出#include<string> /字符串操作#include<iomanip> /參數(shù)化輸入輸出#include<time.h> /時間庫函數(shù)#include<windows.h> /windows文件調(diào)節(jié)字體顏色和背景顏色using namespace std; /命名空間class train_info

23、rprivate: static int train_No; /靜態(tài)數(shù)據(jù)成員,統(tǒng)計當(dāng)前所有的train_infor對象的數(shù)目char start20; /起點站char end20; /終點站int train_order; /班次號int Hour_start,Minute_start; /發(fā)車時間float GoHour; /行車時間public:train_infor();train_infor();train_infor *next;void input(); /錄入函數(shù) void input(ifstream & is); /讀取函數(shù) void output(); /輸出函數(shù)

24、void output(ofstream & os); /寫入函數(shù)void GetTime_start(); /獲取發(fā)車時間函數(shù)bool GetTime(); /判斷當(dāng)前班次狀況函數(shù)int Get_train_order() return train_order; /返回班次號string Get_end()const; /返回終點站的字符串;int train_infor:train_No=1;train_infor:train_infor() train_No+; train_infor:train_infor() train_No-;void train_infor:input(

25、) /車次信息輸入cout<<"ttt按提示輸入:"<<endl;cout<<"請輸入班次: "while(1)cin>>train_order;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout << "n班次輸入錯誤,請重新輸入:"cin.clear(); /cin.clear()方法很重要,如果不調(diào)用,則cin異常不會終止,那么程序就進入了死循環(huán)cin.get(); /一般情況下,cin自動跳過輸入的空格,如果你要把鍵盤上輸入的每個字符 包括空格和回車鍵

26、都作為一個輸入字符給字符型變量時,必須使用函數(shù)cin.get()else break;GetTime_start();cout<<"請輸入行車時間:"while(1)cin>>GoHour;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout << "n行車時間輸入錯誤,請重新輸入:"cin.clear();cin.get();else break;cout<<"請輸入起始站與終點站(始發(fā)站/終點站):" cin>>start;cin>>end;vo

27、id train_infor:input(ifstream & is) is>>train_order>>Hour_start>>Minute_start>>start>>end>>GoHour;is.get(); void train_infor:output()cout<<" "<<train_order<<"t"if(Minute_start=0) /判斷發(fā)車時的分鐘時刻,若為分則在后面多顯示個,以符合時間格式cout<<

28、Hour_start<<":"<< Minute_start<<"0t"elsecout<<Hour_start<<":"<< Minute_start<<"t"cout<<start<<"t"<<end<< "t"<<GoHour; if(!GetTime()cout<<"t 此班列車已出發(fā)"<

29、<endl;elsecout<<"t 此班列車未出發(fā)"<<endl;void train_infor:output(ofstream & os) os<<setw(6)<<train_order /setw()設(shè)置輸出寬度<<setw(15)<<Hour_start<<setw(15)<<Minute_start<<setw(15)<<start<<setw(6)<<end<<setw(15)<<

30、;GoHour<<endl;void train_infor:GetTime_start()cout<<"請輸入始發(fā)時間(時/分):"while(1)cin>>Hour_start>>Minute_start;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout << "n時間輸入錯誤,請重新輸入:"cin.clear();cin.get();else if(Hour_start<0|Hour_start>24|Minute_start<0|Minute_star

31、t>60)cout<<"n時間格式出錯,請重新輸入:" /判斷時間格式是否出錯,小時不能小于0大于24,分鐘不能小于0大于60elsebreak;bool train_infor:GetTime()struct tm *local; time_t t; t=time(NULL); local=localtime(&t); /獲取當(dāng)前系統(tǒng)時間if(local->tm_hour<Hour_start|(local->tm_hour=Hour_start && local->tm_min<=Minute_st

32、art)return 1; /比較當(dāng)前時間與發(fā)車時間,獲得班次的當(dāng)前狀況,返回表示班次未出發(fā)elsereturn 0; /返回表示班次已出發(fā)string train_infor:Get_end()conststring s=end;return s;class train_linkpublic:train_link()head=new train_infor;head->next=NULL;key=0;/帶參數(shù)的構(gòu)造函數(shù)train_link()delete head; /析構(gòu)函數(shù)void input(); /錄入列車信息void mend(); /修改列車信息void del(); /刪

33、除列車信息int find(train_infor *p,int num,char *pn); /查找函數(shù) void found(); /查詢列車信息void show(); /顯示列車信息 void save(); /保存列車信息 void begin(); /初始化列車信息 void clear(); /清除函數(shù)void about(); /關(guān)于列車信息 char mainmenu(); /主菜單函數(shù) void setkey(int k) key=k; /設(shè)置系統(tǒng)修改標(biāo)志 int getkey() return key; /返回系統(tǒng)修改標(biāo)志private: train_infor *hea

34、d; /鏈表指針 int key; /系統(tǒng)修改標(biāo)志int password; /管理員登陸標(biāo)志; void train_link:input() /列車信息輸入功能菜單控制if(password=1)train_infor *p,*p2=NULL;p=head; int n=1; /int n;while(p->next)p=p->next;while(n)p2=new train_infor;p2->input();p->next=p2;p2->next=NULL;p=p->next; train_link:setkey(1);cout<<&q

35、uot;ttt按1繼續(xù)輸入 , 按0返回菜單: "cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯誤");elsecout<<"ntt對不起,游客不能錄入車票信息"<<endl;void train_link:show() /瀏覽列車信息cout<<"列車基本信息如下:"<<endl <<"|班次 發(fā)車時間 起點站 終點站 行車時間 當(dāng)前狀況 |"<<endl;train_infor *p;p=head

36、;while(p->next)(p->next)->output();p=p->next;void train_link:found() /列車信息查詢train_infor *p;int num,n;char name20;docout<<"tt1:按列車班次查找, 2:按列車終點站查找: "cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯誤");while(n<1|n>2);if(n=1)cout<<"ttt請輸入班次: "cin>&

37、gt;num;if(!cin)throw string("數(shù)據(jù)輸入錯誤");if(n=2)cout<<"ttt請輸入終點站: "cin>>name;if(!find(&p,num,name)cout<<"tt找不到你要查找的車次,請確定輸入信息是否正確!"<<endl;return;int train_link:find(train_infor *p1,int num,char *pn) /列車信息查詢train_infor *p;p=head;int t=0;while(p-&

38、gt;next)(*p1)=p;if( (p->next)->Get_train_order()=num| (p->next)->Get_end()=pn )cout<<"列車基本信息如下:"<<endl <<"|班次 發(fā)車時間 起點站 終點站 行車時間 當(dāng)前狀況 |"<<endl; (p->next)->output(); t=1;p=p->next;return t;void train_link:del() /列車信息刪除if(password=1)train

39、_infor *p,*p2;int num;char name20;cout<<"ttt請輸入列車班次號: "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯誤");if( !find(&p,num,name) )cout<<"tt對不起!找不到你要刪除的內(nèi)容,請確定輸入信息是否正確!"<<endl;return;cout<<"nttt確定刪除(Y/N)?"char a;cin>>a;if(a='y

40、9;|a='Y') p2=p->next;p->next=p2->next;delete p2;train_link:setkey(1);cout<<"nttt信息已刪除!"elsecout<<"nttt取消刪除!"elsecout<<"ntt對不起,游客不能刪除車票信息"<<endl;void train_link:mend() /列車信息修改if(password=1)train_infor *p;int num;char name20;cout&l

41、t;<"ttt請輸入班次號: "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯誤");if( !find(&p,num,name) )cout<<"tt對不起!找不到你要修改的內(nèi)容,請確認(rèn)輸入信息是否正確!"<<endl;return;(p->next)->input();train_link:setkey(1);elsecout<<"ntt對不起,游客不能修改車票信息"<<endl;void train

42、_link:save() /列車信息保存if(password=1)train_infor *p;p=head;ofstream os("train.txt",ios:out); /文件以輸出方式打開if (train_link:getkey()=1)while(p->next)(p->next)->output(os);p=p->next;cout<<"ttt文件已保存! "<<endl;train_link:setkey(0);elsecout<<"ntt對不起,游客無法保存車票信

43、息"<<endl;void train_link:about() /列車時刻查詢系統(tǒng)說明cout<<endl<<"關(guān)于列車時刻查詢系統(tǒng)"<<endl<<""<<endl;cout<<"使用說明:"<<endl<<"t1.請按照操作提示輸入正確的格式,以保證系統(tǒng)正常運行;"<<endl<<"t2.當(dāng)使用管理員登陸時,需輸入密碼,可進行對系統(tǒng)的所有操作;"&l

44、t;<endl<<"t3.當(dāng)使用游客身份登陸時,無需輸入密碼,但只能瀏覽和查詢列車時刻信息;"<<endl<<"t4.車票信息用文本文檔格式,文件名為train,保存在本程序文件夾目錄下,可以直接打開查看."<<endl<<endl<<"系統(tǒng)說明:"<<endl<<"t"<<endl <<"tt "<<endl<<endl;void train_l

45、ink:begin()password=0;train_infor *p,*p2;p=head;clear();long t;ifstream is("train.txt",ios:in); /文件以輸入方式打開if(!is)ofstream os("train.txt",ios:out); /文件以輸出方式打開os.close(); /關(guān)閉文件return ;int num=-1;while(1) num=-1;t=is.tellg(); /記錄下當(dāng)前位置is>>num;is.seekg(t); /移動到原來位置if(num<0) is.close();

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論