




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 目錄第一章 問題的定義1第二章 可行性研究2第三章 項(xiàng)目開發(fā)計(jì)劃33.1 開發(fā)內(nèi)容33.2開發(fā)目標(biāo)33.3 開發(fā)環(huán)境3第四章 需求分析4第五章 概要設(shè)計(jì)55.1 數(shù)據(jù)流程55.2數(shù)據(jù)字典65.3系統(tǒng)功能模塊圖10第六章 數(shù)據(jù)庫設(shè)計(jì)116.1 數(shù)據(jù)庫的邏輯設(shè)計(jì)116.2 數(shù)據(jù)庫的物理設(shè)計(jì)12第七章 詳細(xì)設(shè)計(jì)157.1程序流程圖157.2.1游客子模塊流程圖157.2.2 管理員子模塊流程圖167.2.3車次信息查詢模塊流程圖167.2.4錄入車次信息模塊流程圖177.2.5刪除車次信息模塊流程圖187.2.6修改車次信息模塊流程圖19第八章 測(cè)試報(bào)告218.1測(cè)試工具218.2測(cè)試對(duì)象218.
2、3管理員錄入測(cè)試218.4游客按車次查詢測(cè)試23第九章 用戶手冊(cè)259.1管理員手冊(cè)259.2游客使用手冊(cè)25附錄260 第一章 問題的定義 為了加強(qiáng)鐵路運(yùn)輸信息建設(shè),以及為廣大旅客更好地旅客服務(wù),讓廣大旅客能夠及時(shí)有效地得到客、貨運(yùn)輸信息,有必要開發(fā)出一塊小巧方便的列車查詢系統(tǒng)方便旅客及時(shí)準(zhǔn)確的了解列車信息,從而方便購票、退票。列車時(shí)刻查詢系統(tǒng)是便民類的系統(tǒng)。該系統(tǒng)能夠?yàn)橛脩籼峁┯嘘P(guān)列車時(shí)刻充足的信息和快捷的查詢手段。在計(jì)算機(jī)普及的信息時(shí)代,用電腦軟件來查詢列車時(shí)刻已經(jīng)替代了一直以來人們使用傳統(tǒng)的方式查詢列車時(shí)刻,用傳統(tǒng)的方式存在著許多缺點(diǎn)。使用電腦軟件進(jìn)行查詢,方便快捷。因此有利于人們快速
3、、方便的查找到所需的相關(guān)列車時(shí)刻信息。列車信息量的不斷增大,使得列車信息管理人員的工作變得越來越復(fù)雜且容易出錯(cuò),急需更好的方式管理列車信息,計(jì)算機(jī)技術(shù)不斷發(fā)展,使得利用計(jì)算機(jī)軟件管理列車信息變成可能,而且會(huì)節(jié)省人力物力,帶來更好的經(jīng)濟(jì)效益,給人們提供方便。旅客關(guān)注的一般是列車的車次、發(fā)車時(shí)間、到站時(shí)間、全部運(yùn)行時(shí)間等一些列車的基本數(shù)據(jù),根據(jù)這些需求,把列車的基本信息統(tǒng)一由管理員錄入計(jì)算機(jī)并及時(shí)更新、修改和刪除一些車次的列車信息,從而動(dòng)態(tài)的維護(hù)信息的更新。軟件的目的是使用性強(qiáng),不論工作人員還是旅客都要能方便使用軟件,這就要求軟件要操作簡(jiǎn)單,不能有繁瑣難懂的操作方法。對(duì)于管理員來說,要有錄入列車車
4、次信息功能、修改車次信息功能、刪除信息功能等管理員有權(quán)力進(jìn)入并進(jìn)行操作的功能。而對(duì)于游客,則可以根據(jù)列車的車次和火車站等聯(lián)系來查詢列車信息。這款軟件是為了方便人們出行的火車查詢系統(tǒng),為非盈利性軟件,所以開發(fā)時(shí)間有限,但所要求的功能都是按質(zhì)按量完成,在時(shí)間有限的情況下也注重了效率的重要。 第二章 可行性研究 通過對(duì)市場(chǎng)長時(shí)間的調(diào)查發(fā)現(xiàn),研發(fā)一款列車查詢系統(tǒng)是非常有必要的。而且根據(jù)現(xiàn)在的技術(shù)水平完全有能力支持者款系統(tǒng)的研發(fā)成功。在技術(shù)日趨成熟的今天,我們可以通過多種編程語言來對(duì)著款系統(tǒng)進(jìn)行編寫開發(fā),在現(xiàn)在的windows操作系統(tǒng)中對(duì)系統(tǒng)進(jìn)行檢測(cè),多種算法可提供選擇來實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)。說以在技術(shù)上是完
5、全可行的。由于本款系統(tǒng)小巧簡(jiǎn)便,不會(huì)需要很多經(jīng)費(fèi),不會(huì)帶來很多的經(jīng)濟(jì)負(fù)擔(dān),而且這款系統(tǒng)是在現(xiàn)在的操作系統(tǒng)中實(shí)現(xiàn)所以不需要額外的硬件需求,從而減少了經(jīng)濟(jì)投入,在經(jīng)濟(jì)方面是完全可行的。這款軟件是方便人們出行乘坐火車的查詢系統(tǒng),所以操作上一定要簡(jiǎn)單易懂,同時(shí)要方便管理員的管理,只要根據(jù)說明書進(jìn)行操作熟悉了之后就會(huì)很簡(jiǎn)單,所以應(yīng)用可行性是行的通的。通過這幾方面的研究發(fā)現(xiàn)列車查詢系統(tǒng)的研發(fā)是可行的。 第三章 項(xiàng)目開發(fā)計(jì)劃3.1 開發(fā)內(nèi)容在本項(xiàng)目的開發(fā)為期三周中,開發(fā)時(shí)首先要編寫好開發(fā)文檔,包括可行性研究報(bào)告、項(xiàng)目開發(fā)計(jì)劃、需求分析說明書、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、用戶手冊(cè),確保開發(fā)過程按部就班完成
6、,同時(shí)方便客戶的應(yīng)用。其次就是編寫代碼、測(cè)試的工作,以及日后系統(tǒng)維護(hù)的工作。3.2開發(fā)目標(biāo)本列車查詢系統(tǒng)主要實(shí)現(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項(xiàng)目分析 隨著人們生活水平的提高和信息化時(shí)代的到來,管理系統(tǒng)的作用已越來越重要,列車時(shí)刻查詢系統(tǒng)是個(gè)小型管理系統(tǒng)
7、,用C+語言實(shí)現(xiàn)。所有數(shù)據(jù)都要利用文件系統(tǒng)保存,使用文件輸入輸出流保存文件信息,以備系統(tǒng)下次運(yùn)行時(shí)使用。列車時(shí)刻查詢和決策工作是一項(xiàng)瑣碎、繁雜的工作,由于列車時(shí)刻在各種節(jié)日休假時(shí)期經(jīng)常性的調(diào)整,導(dǎo)致列車時(shí)刻表必須經(jīng)常修改,以確保準(zhǔn)確無誤的向用戶及時(shí)的提供列車時(shí)刻信息。幾十年前的那種傳統(tǒng)的方式存在著許多缺點(diǎn),如:效率低、時(shí)間長、繁瑣,給用戶帶來了諸多不便。在計(jì)算機(jī)普及的信息時(shí)代,使用電腦軟件進(jìn)行查詢,使查詢更加迅速、方便、清晰。 此列車時(shí)刻查詢決策系統(tǒng)軟件,能幫助人們利用計(jì)算機(jī)快速方便的查詢列車時(shí)刻。本軟件集列車基本數(shù)據(jù)、車次管理、列車查詢于一身,目的在于能夠使管理人員更加方便快捷的對(duì)列車時(shí)刻進(jìn)
8、行更新和管理。同時(shí)使用戶更加方便快速的查詢列車時(shí)刻信息。此列車時(shí)刻查詢決策系統(tǒng)使列車時(shí)刻信息的查詢工作更系統(tǒng)化、規(guī)范化、自動(dòng)化。從而在一方面提高了管理人員的工作效率,減少了傳統(tǒng)人工管理方式所帶來的人力,物力的浪費(fèi),另一方面由于本軟件具有查找方便、可靠性高、存儲(chǔ)量大等優(yōu)點(diǎn),所以實(shí)現(xiàn)了列車時(shí)刻信息查詢及管理的自動(dòng)化。 4.2 數(shù)據(jù)流程根據(jù)需求分析的得到列車查詢系統(tǒng)處理流程,根據(jù)不同的用戶需求,首先確定目標(biāo)系統(tǒng)的業(yè)務(wù)流程,其數(shù)據(jù)流圖如圖5.1。 圖4.2火車票查詢系統(tǒng)數(shù)據(jù)流程圖對(duì)數(shù)據(jù)流圖所示功能描述:1.用戶登錄:管理員和游客都可定義為用戶并合法登錄2.火車信息刪除:對(duì)已有過時(shí)的信息進(jìn)行刪除3.火車
9、信息錄入:對(duì)需要增加的火車信息更新錄入。4.火車信息修改:對(duì)庫中的火車信息進(jìn)行局部修改。 5.信息查詢:游客可以根據(jù)自己的需要進(jìn)行相應(yīng)查詢。6.車次信息庫:包含所有車次信息,方便管理員的管理和游客的查詢。4.3數(shù)據(jù)字典 數(shù)據(jù)流圖對(duì)系統(tǒng)的整個(gè)過程進(jìn)行了大體描述,對(duì)整體的描述還遠(yuǎn)遠(yuǎn)不能更具體的表述出系統(tǒng)的數(shù)據(jù)內(nèi)容,同時(shí)還要有數(shù)據(jù)字典加以輔助,才能對(duì)體統(tǒng)跟清楚的理解。具體數(shù)據(jù)字典如下: 表4-1車次數(shù)據(jù)項(xiàng)名稱:車次別名:trnu描述:顯示列車的編號(hào)定義:由數(shù)字或字母組成輸入:管理員輸出:列車信息庫 表4-2出站時(shí)間數(shù)據(jù)項(xiàng)名稱:出站時(shí)間別名:trst描述:規(guī)定列車的出站時(shí)間定義:由數(shù)字和時(shí)間符號(hào)組成輸
10、入:管理員輸出:列車信息庫 表4-3車次信息數(shù)據(jù)項(xiàng)名稱:車次信息別名:trin描述:列車的基本信息屬性定義:車次信息=車次+列車類型+里程+出站時(shí)間+進(jìn)站時(shí)間+始發(fā)站+終點(diǎn)站+總運(yùn)行時(shí)間輸入:管理員輸出:列車信息庫 表4-4信息管理數(shù)據(jù)項(xiàng) 名稱:信息管理別名:inad描述:管理員對(duì)列車信息管理的過程定義:信息管理=車次+管理員編號(hào)+登錄密碼+管理員姓名輸入:管理員輸出:列車信息庫 表4-5信息查詢數(shù)據(jù)項(xiàng)名稱:信息查詢別名:inch描述:游客的查詢過程定義:信息查詢=游客姓名+車次+站名+游客編號(hào)輸入:游客輸出:列車信息庫 表4-6列車類型數(shù)據(jù)項(xiàng)名稱:列車類型別名:trty描述:列車所屬種類定義
11、:由大寫字母表示輸入:管理員輸出:列車信息庫 表4-7管理員編號(hào)數(shù)據(jù)項(xiàng)名稱:管理員編號(hào)別名:adnu描述:對(duì)管理員的數(shù)據(jù)標(biāo)號(hào)定義:有數(shù)字組成輸入:管理員輸出:列車信息庫名稱:登錄密碼別名:vinu描述:管理員對(duì)系統(tǒng)操作時(shí)的登錄密碼定義:由數(shù)字組成輸入:管理員輸出:列車信息庫名稱:游客編號(hào)別名:vinu描述:對(duì)游客進(jìn)行的數(shù)據(jù)標(biāo)號(hào)定義:由數(shù)字組成輸入:游客輸出:列車信息庫 表4-8游客編號(hào)數(shù)據(jù)項(xiàng) 表4-9登錄密碼數(shù)據(jù)項(xiàng) 表4-10總運(yùn)行時(shí)間數(shù)據(jù)項(xiàng) 表4-10登錄密碼數(shù)據(jù)項(xiàng) 名稱:總運(yùn)行時(shí)間別名:neti描述:列車整體過程中需要運(yùn)行的時(shí)間定義:由數(shù)字和時(shí)間表示符號(hào)組成輸入:列車信息庫輸出:列車信息庫
12、 名稱:始發(fā)站別名:trss描述:列車的駛出站的站名定義:由字母組成輸入:管理員輸出:列車信息庫輸出: 表4-11狀態(tài)數(shù)據(jù)項(xiàng)名稱:狀態(tài)別名:trsta描述:列車當(dāng)前的運(yùn)行狀態(tài)定義:由漢字顯示列車狀態(tài)輸入:列車信息庫輸出:列車信息庫 表4-12始發(fā)站數(shù)據(jù)項(xiàng) 第五章概要設(shè)計(jì) 5.1系統(tǒng)功能模塊圖 根據(jù)需求分析階段得到的數(shù)據(jù)流圖,并結(jié)合軟件工程所需的知識(shí),根據(jù)用戶的要求,給出列車查詢系統(tǒng)功能模塊圖如圖5.1所示 圖5.1列車查詢系統(tǒng)功能模塊圖5.2 模塊功能錄入列車信息模塊:該部分功能主要是用于系統(tǒng)管理員輸入列車的各種信息,加強(qiáng)系統(tǒng)的可擴(kuò)展性和延續(xù)性,使系統(tǒng)信息保持更新。查詢列車信息模塊:查詢列車時(shí)
13、刻信息,以及相關(guān)資料,查詢分兩種方式,一種是按列車號(hào)查詢,另一種是按終點(diǎn)站查詢。兩種查詢想輔助。使用戶更快捷的查詢到有關(guān)信息。刪除列車信息模塊:刪除列車時(shí)刻信息功能主要用于更新列車信息數(shù)據(jù),對(duì)于不必要的信息和錯(cuò)誤的過時(shí)的信息進(jìn)行相關(guān)處理,有利于簡(jiǎn)化系統(tǒng),對(duì)于系統(tǒng)的運(yùn)行速度的提升有著良好的加速效果。此功能是管理員專用功能,游客用戶無權(quán)調(diào)用。修改列車信息模塊:此功能用于修改列車信息,使用權(quán)限僅限于管理員。進(jìn)行列車信息的相關(guān)修改對(duì)于系統(tǒng)的正常運(yùn)行有著顯著的作用。游客子模塊:此功能用于游客等登錄保證游客對(duì)車次的查詢。管理員子模塊:用于管理員的登錄,使得管理員進(jìn)入系統(tǒng)管理層。 第六章 數(shù)據(jù)庫設(shè)計(jì)6.1
14、數(shù)據(jù)庫的邏輯設(shè)計(jì)根據(jù)對(duì)系統(tǒng)的數(shù)據(jù)分析和該階段所建立的概念模型,已經(jīng)得出能夠滿足系統(tǒng)設(shè)計(jì)要求的幾個(gè)關(guān)系描述,先階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。下面給出初步E-R圖如圖6.1所示。 圖 6.1初步E-R圖根據(jù)三范式的化簡(jiǎn)原則,可以把初步的E-R圖化簡(jiǎn),下面得到基本E-R圖如圖6.2所示 圖6.2基本E-R圖實(shí)體:車次信息(車次,狀態(tài),里程,列車類型,總運(yùn)行時(shí)間,出站時(shí)間,進(jìn)站時(shí)間,始發(fā)站,終點(diǎn)站); 管理員(管理員編號(hào),管理員姓名,登錄密碼); 游客(游客編號(hào),游客姓名);聯(lián)系:信息管理(車次,管理員編號(hào),登錄密碼); 信息查詢(車次,站名);6.2 數(shù)據(jù)庫的物理設(shè)計(jì)基于數(shù)據(jù)
15、庫的原理,結(jié)合數(shù)據(jù)庫邏輯設(shè)計(jì)的基本E-R圖,本著程序設(shè)計(jì)盡可能言簡(jiǎn)意賅的原則我們采用創(chuàng)建一個(gè)列車信息庫,并在庫中建立相應(yīng)的數(shù)據(jù)表,具體數(shù)表如下所示:1車次信息數(shù)據(jù)表具體如下圖所示: 表6-1 車次信息數(shù)據(jù)表 字段名數(shù)據(jù)類型約束描述trnuint主鍵車次trtychar不為空列車類型trlochar不為空里程trstdata不為空出站時(shí)間trendata不為空到站時(shí)間netichar不為空總運(yùn)行時(shí)間trsschar不為空始發(fā)站traschar不為空終點(diǎn)站trstachar不為空狀態(tài)2 管理員數(shù)據(jù)表具體如下圖所示: 表6-2 管理員數(shù)據(jù)表 字段名數(shù)據(jù)類型約束描述adnuint主鍵管理員編號(hào)adna
16、char不為空管理員姓名passchar不為空登錄密碼3游客數(shù)據(jù)表具體如下圖所示: 表6-3 游客數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述vinuint主鍵游客編號(hào)vinachar不為空游客姓名4 信息管理數(shù)據(jù)表具體如下圖所示: 表6-4 信息管理數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述trnuint主鍵車次adnuint不為空管理員編號(hào)passchar不為空登錄密碼5信息查詢數(shù)據(jù)表具體如下圖所示: 表6-5信息查詢數(shù)據(jù)表字段名數(shù)據(jù)類型約束描述trnuint主鍵車次stnachar不為空站名 第七章 詳細(xì)設(shè)計(jì)7.1程序模塊圖根據(jù)本系統(tǒng)的內(nèi)容得到的具體數(shù)據(jù)流圖在本次設(shè)計(jì)中起到了系統(tǒng)整體描述的作用,根據(jù)數(shù)據(jù)流圖的描述可以
17、把每個(gè)過程抽象成模塊形式,再根據(jù)每個(gè)模塊的具體方案結(jié)合所學(xué)C+知識(shí)進(jìn)行功能模塊的編寫,具體功能模塊結(jié)合在一起構(gòu)成整個(gè)數(shù)據(jù)流程圖所要實(shí)現(xiàn)的功能。7.2.1游客子模塊流程圖 游客子模塊是游客進(jìn)行查詢操作登錄時(shí)必須擁有的模塊,實(shí)現(xiàn)了游客等登錄,從而為以后的查詢奠定基礎(chǔ)。具體流程圖如圖7.1所示。 圖7.1 游客子模塊程序流程圖7.2.2 管理員子模塊流程圖 管理員子模塊是管理員登錄的模塊,為管理員進(jìn)行以后的操作作準(zhǔn)備。具體流程圖如圖7.2所示。 圖7.2管理員模塊程序流程圖7.2.3車次信息查詢模塊流程圖 車次信息查詢模塊是游客在系統(tǒng)中操作的關(guān)鍵模塊,本模塊實(shí)現(xiàn)的功能是幫助游客查詢到其想要查詢的列車
18、信息,具體流程圖如圖7.3所示。 圖7.3車次信息查詢模塊程序流程圖7.2.4錄入車次信息模塊流程圖 錄入車次信息模塊是管理員操作的模塊,它實(shí)現(xiàn)了把新的車次信息錄入到系統(tǒng)中,保證能夠及時(shí)更新車次信息,方便旅客查詢。具體流程圖如圖7.4所示。 圖7.4錄入車次信息模塊程序流程圖7.2.5刪除車次信息模塊流程圖 刪除車次信息模塊是對(duì)已經(jīng)過時(shí)的車次信息進(jìn)行清除,減少對(duì)旅客造成不必要的麻煩,同時(shí)減少信息庫的資源浪費(fèi)。具體流程圖如圖7.5所示。 圖7.5刪除車次信息模塊程序流程圖7.2.6修改車次信息模塊流程圖 修改信息模塊是對(duì)車次信息進(jìn)行局部微調(diào)的模塊,不用直接刪除再全部輸入,減少了管理員的工作量。具
19、體流程圖如圖7.6所示。 圖7.6修改車次信息模塊程序流程圖 第八章 測(cè)試報(bào)告8.1測(cè)試工具一臺(tái)完備的電腦和Visual C+ 6.0運(yùn)行環(huán)境8.2測(cè)試對(duì)象列車查詢系統(tǒng)各個(gè)模塊是否能正常運(yùn)行 8.3管理員錄入測(cè)試測(cè)試方法: 1、管理員在登錄界面登錄,并輸入密碼進(jìn)入管理員操作界面; 2、按提示進(jìn)入錄入車次信息功能模塊; 3、輸入一組列車基本信息,并保存; 4、返回并選擇查看車次信息,對(duì)照是否正確錄入并保存到車次信息庫中; 5.退出系統(tǒng)。 測(cè)試目的: 通過對(duì)管理員錄入模塊的測(cè)試了解系統(tǒng)是否能正常的錄入更新車次信息,并間接觀察其他相關(guān)功能能否配合所測(cè)試功能完成相應(yīng)操作。測(cè)試結(jié)果:1管理員登錄如圖8.
20、1所示 圖8.1管理員登錄2進(jìn)入錄入功能模塊并錄入信息如圖8.2所示 圖8.2管理員錄入信息3錄入結(jié)果查詢?nèi)鐖D8.3所示 圖8.3錄入結(jié)果查詢驗(yàn)證8.4游客按車次查詢測(cè)試測(cè)試方法: 1、游客在登錄界面進(jìn)入游客查詢界面; 2、按提示選擇按車次查詢; 3、觀察是否顯示所查詢的車次信息; 4、查詢完畢退出系統(tǒng)。測(cè)試目的: 通過按車次查詢的方法直接明了的觀察了查詢模塊是否能正常運(yùn)行,如果一切正常則說明此次列車查詢系統(tǒng)所要完成的功能基本達(dá)成,如果不能正常顯示說明還要加以改進(jìn)。 測(cè)試結(jié)果 1游客登錄并進(jìn)入查詢界面如圖8.4所示 圖8.4游客登錄查詢界面2游客按車次查詢并觀察所示信息如圖8.5所示 圖8.5
21、游客按車次查詢結(jié)果 第九章 用戶手冊(cè)為了用戶方便快捷的是用列車查詢系統(tǒng)管理和查詢相關(guān)信息,特別編寫了用戶手冊(cè),為用戶詳細(xì)介紹了系統(tǒng)如何運(yùn)行,其中管理員和游客不同用戶是如何使用系統(tǒng)的相關(guān)功能都用介紹。9.1管理員手冊(cè)1 管理員通過登錄界面進(jìn)入管理界面,進(jìn)入前需要輸入密碼,初始密碼默認(rèn)為123456;2 進(jìn)入管理員界面后,管理員可以選擇相關(guān)的功能加以操作;3 錄入或修改完列車信息后要及時(shí)保存,以免遺漏;4 管理員可以對(duì)單個(gè)車次的車次信息進(jìn)行修復(fù)同時(shí)也要保存修改后的信息;5 完成對(duì)相關(guān)功能的操作后,請(qǐng)按提示安全退出。9.2游客使用手冊(cè)1 游客使用時(shí)按提示進(jìn)入查詢界面;2 查詢時(shí)給出不同的查詢方式,可
22、以按車次查詢同時(shí)也可以按站名查詢;3 查詢完相關(guān)信息后可以繼續(xù)查詢其他車次信息,如結(jié)束查詢請(qǐng)按提示安全退出。附錄 #include<iostream> /數(shù)據(jù)流輸入輸出#include<fstream> /文件輸入輸出#include<string> /字符串操作#include<iomanip> /參數(shù)化輸入輸出#include<time.h> /時(shí)間庫函數(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)計(jì)當(dāng)前所有的train_infor對(duì)象的數(shù)目char start20; /起點(diǎn)站char end20; /終點(diǎn)站int train_order; /班次號(hào)int Hour_start,Minute_start; /發(fā)車時(shí)間float GoHour; /行車時(shí)間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í)間函數(shù)bool GetTime(); /判斷當(dāng)前班次狀況函數(shù)int Get_train_order() return train_order; /返回班次號(hào)string Get_end()const; /返回終點(diǎn)站的字符串;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<<"請(qǐng)輸入班次: "while(1)cin>>train_order;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n班次輸入錯(cuò)誤,請(qǐng)重新輸入:"cin.clear(); /cin.clear()方法很重要,如果不調(diào)用,則cin異常不會(huì)終止,那么程序就進(jìn)入了死循環(huán)cin.get(); /一般情況下,cin自動(dòng)跳過輸入的空格,如果你要把鍵盤上輸入的每個(gè)字符 包括空格和回車鍵
26、都作為一個(gè)輸入字符給字符型變量時(shí),必須使用函數(shù)cin.get()else break;GetTime_start();cout<<"請(qǐng)輸入行車時(shí)間:"while(1)cin>>GoHour;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n行車時(shí)間輸入錯(cuò)誤,請(qǐng)重新輸入:"cin.clear();cin.get();else break;cout<<"請(qǐng)輸入起始站與終點(diǎn)站(始發(fā)站/終點(diǎn)站):" 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ā)車時(shí)的分鐘時(shí)刻,若為分則在后面多顯示個(gè),以符合時(shí)間格式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<<"請(qǐng)輸入始發(fā)時(shí)間(時(shí)/分):"while(1)cin>>Hour_start>>Minute_start;if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n時(shí)間輸入錯(cuò)誤,請(qǐng)重新輸入:"cin.clear();cin.get();else if(Hour_start<0|Hour_start>24|Minute_start<0|Minute_star
31、t>60)cout<<"n時(shí)間格式出錯(cuò),請(qǐng)重新輸入:" /判斷時(shí)間格式是否出錯(cuò),小時(shí)不能小于0大于24,分鐘不能小于0大于60elsebreak;bool train_infor:GetTime()struct tm *local; time_t t; t=time(NULL); local=localtime(&t); /獲取當(dāng)前系統(tǒng)時(shí)間if(local->tm_hour<Hour_start|(local->tm_hour=Hour_start && local->tm_min<=Minute_st
32、art)return 1; /比較當(dāng)前時(shí)間與發(fā)車時(shí)間,獲得班次的當(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ù)輸入錯(cuò)誤");elsecout<<"ntt對(duì)不起,游客不能錄入車票信息"<<endl;void train_link:show() /瀏覽列車信息cout<<"列車基本信息如下:"<<endl <<"|班次 發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間 當(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:按列車終點(diǎn)站查找: "cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");while(n<1|n>2);if(n=1)cout<<"ttt請(qǐng)輸入班次: "cin>&
37、gt;num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if(n=2)cout<<"ttt請(qǐng)輸入終點(diǎn)站: "cin>>name;if(!find(&p,num,name)cout<<"tt找不到你要查找的車次,請(qǐng)確定輸入信息是否正確!"<<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ā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間 當(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請(qǐng)輸入列車班次號(hào): "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,name) )cout<<"tt對(duì)不起!找不到你要?jiǎng)h除的內(nèi)容,請(qǐng)確定輸入信息是否正確!"<<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對(duì)不起,游客不能刪除車票信息"<<endl;void train_link:mend() /列車信息修改if(password=1)train_infor *p;int num;char name20;cout&l
41、t;<"ttt請(qǐng)輸入班次號(hào): "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,name) )cout<<"tt對(duì)不起!找不到你要修改的內(nèi)容,請(qǐng)確認(rèn)輸入信息是否正確!"<<endl;return;(p->next)->input();train_link:setkey(1);elsecout<<"ntt對(duì)不起,游客不能修改車票信息"<<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對(duì)不起,游客無法保存車票信
43、息"<<endl;void train_link:about() /列車時(shí)刻查詢系統(tǒng)說明cout<<endl<<"關(guān)于列車時(shí)刻查詢系統(tǒng)"<<endl<<""<<endl;cout<<"使用說明:"<<endl<<"t1.請(qǐng)按照操作提示輸入正確的格式,以保證系統(tǒng)正常運(yùn)行;"<<endl<<"t2.當(dāng)使用管理員登陸時(shí),需輸入密碼,可進(jìn)行對(duì)系統(tǒng)的所有操作;"&l
44、t;<endl<<"t3.當(dāng)使用游客身份登陸時(shí),無需輸入密碼,但只能瀏覽和查詢列車時(shí)刻信息;"<<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); /移動(dòng)到原來位置if(num<0) is.close();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 急救醫(yī)學(xué)知到智慧樹章節(jié)測(cè)試課后答案2024年秋黑龍江護(hù)理高等專科學(xué)校
- 2025年哈密職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫含答案
- 問題探究:何時(shí)藍(lán)天常在?教學(xué)設(shè)計(jì) 高中地理人教版(2019)必修一
- 2025年河北正定師范高等專科學(xué)校單招職業(yè)傾向性測(cè)試題庫1套
- 用工合同范本超市
- 好醫(yī)生合同范本
- 2025年廣東茂名農(nóng)林科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及參考答案
- 支付賠償合同范本
- 2025-2030年中國物流信息化十三五規(guī)劃分析及投資前景規(guī)劃報(bào)告
- 2025-2030年中國煅后焦市場(chǎng)運(yùn)行狀況及投資前景趨勢(shì)分析報(bào)告
- 一年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案2
- 2025版股權(quán)投資基金股份收購與退出機(jī)制協(xié)議3篇
- 2025年棗莊科技職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 護(hù)苗行動(dòng)安全教育課件
- 生物-山東省濰坊市、臨沂市2024-2025學(xué)年度2025屆高三上學(xué)期期末質(zhì)量檢測(cè)試題和答案
- 2025年小學(xué)督導(dǎo)工作計(jì)劃
- 2024-2025學(xué)年部編版歷史九年級(jí)上冊(cè)期末復(fù)習(xí)練習(xí)題(含答案)
- 礦山工程安全培訓(xùn)課件
- 基于ChatGPT的ESG評(píng)級(jí)體系實(shí)現(xiàn)機(jī)制研究
- 2024年精對(duì)苯二甲酸市場(chǎng)分析報(bào)告
- 成人手術(shù)后疼痛評(píng)估與護(hù)理團(tuán)體標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論