版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、課程設(shè)計(jì)的原始資料及根據(jù)
查閱有關(guān)資料,深入理解面向?qū)ο蟪绦蛟O(shè)計(jì)『、J思想,并編寫(xiě)一種簡(jiǎn)樸『、Jwindows系統(tǒng)。
通過(guò)本設(shè)計(jì)可以加深理解使月面向?qū)ο蟪绦蛟O(shè)計(jì)思想開(kāi)發(fā)一種系統(tǒng)口勺措施,提高分析問(wèn)題、
處理問(wèn)題和實(shí)際動(dòng)手的能力。
二、課程設(shè)計(jì)重要內(nèi)容及規(guī)定
設(shè)計(jì)內(nèi)容:
查詢(xún):為對(duì)車(chē)次信息口勺查詢(xún)和對(duì)車(chē)票信息口勺查詢(xún)。
車(chē)次信息包括:日期、車(chē)次、出發(fā)地、目口勺地。車(chē)次信息只容許乘客查詢(xún),不能修改。
記錄應(yīng)包括:日期、車(chē)次、出發(fā)地、目的地。
設(shè)計(jì)規(guī)定:
(1)規(guī)定運(yùn)用面向?qū)ο罂谏状胧┩戤呄到y(tǒng)的設(shè)計(jì);
(2)規(guī)定在設(shè)計(jì)的過(guò)程中建立清晰口勺類(lèi)層次,并畫(huà)出類(lèi)圖;
(3)設(shè)計(jì)功能滿(mǎn)足規(guī)定、易于操作日勺友好界面;
(4)界面中需有菜單、工具欄、狀態(tài)欄;
(5)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制:繼承、多態(tài)等;
(6)在完畢該題目時(shí),小組人員進(jìn)行詳細(xì)的任務(wù)分工,并要在匯報(bào)中體現(xiàn)出來(lái)。
三、對(duì)課程設(shè)計(jì)闡明書(shū)撰寫(xiě)內(nèi)容、格式、字?jǐn)?shù)的規(guī)定
1.課程設(shè)計(jì)闡明書(shū)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,重要內(nèi)容包括:設(shè)計(jì)題目、設(shè)計(jì)
目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)環(huán)節(jié)、碰到的問(wèn)題及處理措施、設(shè)計(jì)總結(jié)、參照文
獻(xiàn)等。一般不應(yīng)少于3000字。
2.在合適位置配合對(duì)應(yīng)的試驗(yàn)原理圖、功能模塊圖、算法流程圖等圖表進(jìn)行闡明。應(yīng)做
到文埋通順,內(nèi)容對(duì)的完整,書(shū)寫(xiě)_L整,裝訶整潔。
3.設(shè)計(jì)總結(jié)部分重要寫(xiě)本人完畢工作簡(jiǎn)介以及自己的J設(shè)計(jì)體會(huì),包括通過(guò)課程設(shè)計(jì)學(xué)到
了什么,哪里碰到了困難,處理的措施以及此后的目的I。
4.課程設(shè)計(jì)闡明書(shū)手寫(xiě)或打印均可。手寫(xiě)要用學(xué)校統(tǒng)一日勺課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨
水工整書(shū)寫(xiě):打印時(shí)采用A4紙,頁(yè)邊距均為20mm,正文采用宋體小四號(hào)字,行間距18磅.
文中大標(biāo)題采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,
表題與圖題采用宋體五號(hào)字。
5.課程設(shè)計(jì)闡明書(shū)裝訂次序?yàn)椋悍饷妗⑷蝿?wù)書(shū)、成績(jī)?cè)u(píng)估表、目錄、正文、參照文獻(xiàn)。
四、設(shè)計(jì)完畢后應(yīng)提交成果的種類(lèi)、數(shù)量、質(zhì)量等方面的規(guī)定
1.完畢“任務(wù)書(shū)”中指定的功能,運(yùn)行成果對(duì)於J。
2.課程設(shè)計(jì)闡明書(shū)。
五、時(shí)間進(jìn)度安排
次序階段日期計(jì)劃完成內(nèi)容備注
進(jìn)行設(shè)計(jì)準(zhǔn)備,閱讀資料,分析設(shè)計(jì)
1第1天
任務(wù)書(shū),明確設(shè)計(jì)規(guī)定、內(nèi)容和環(huán)節(jié)
2第2天需求分析
3第3天概要設(shè)計(jì)
4第4-5天詳細(xì)設(shè)計(jì)
5第5—8天編碼、調(diào)試
6第9-10天程序答辯,撰寫(xiě)課程設(shè)計(jì)匯報(bào)
六、重要參照資料(文獻(xiàn))
[1]鄭莉董淵張瑞豐編著.《C++語(yǔ)言程序設(shè)計(jì)》(第4版).北京:清華大學(xué)出版
社.2023
[2]陳維興,林小茶.《C++高級(jí)程序設(shè)計(jì)教程》.北京:清華大學(xué)出版社
[3]譚浩強(qiáng).《C++程序設(shè)計(jì)教程》.北京:中國(guó)科學(xué)技術(shù)出版社
[4]王燕.《面向?qū)ο笕丈桌碚撆cC++實(shí)踐》.北京:清華大學(xué)出版社
[5]馬石安,魏文平.主編《VisualC++程序設(shè)計(jì)與應(yīng)用教程》.北京:清華大學(xué)出版
社
[6]王育堅(jiān).主編《VisualC++面向?qū)ο缶幊探坛獭罚ǖ诙妫?北京:清華大學(xué)出版
目錄
摘要錯(cuò)誤!未定義書(shū)簽。
第1章緒論錯(cuò)誤!未定義書(shū)簽。
1.1C++語(yǔ)言的發(fā)展1
1.2概要設(shè)計(jì)1
1.3功能分析....................................................................1
1.4設(shè)計(jì)分工及編程實(shí)現(xiàn).........................................................2
第2章需求分析....................................................3
2.1系統(tǒng)設(shè)計(jì)目的與意義..........................................................3
2.2系統(tǒng)數(shù)據(jù)流圖................................................................3
2.3系統(tǒng)功能簡(jiǎn)介................................................................4
2.4系統(tǒng)功能模塊圖.............................................................4
第3章詳細(xì)設(shè)計(jì)....................................................5
3.1類(lèi)設(shè)計(jì)......................................................................5
3.2程序代碼描述...............................................................12
3.3界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn)..................................錯(cuò)誤!未定義書(shū)簽。
第4章系統(tǒng)測(cè)試...................................................24
4.1測(cè)試過(guò)程中的問(wèn)題...........................................................24
4.2測(cè)試成果闡明...............................................................24
4.3設(shè)計(jì)回憶...................................................................24
結(jié)論............................................................25
致謝...............................................................26
參照文獻(xiàn).............................................................27
第1章緒論
1.1C++語(yǔ)言的1發(fā)展
美國(guó)AT&T貝爾試驗(yàn)室的本賈尼?斯特勞斯特盧普(BjarneStroustrup)博士在20世紀(jì)
80年代初期發(fā)明并實(shí)現(xiàn)了C++(最初這種語(yǔ)言被稱(chēng)作“CwithClasses")。一開(kāi)始C++是作
為C語(yǔ)言的增強(qiáng)版出現(xiàn)的,從給C語(yǔ)言增長(zhǎng)類(lèi)開(kāi)始,不停的增長(zhǎng)新特性。虛函數(shù)(virtual
function)、運(yùn)算符重載(operatoroverloading)、多重繼承(multipleinheritance)、模
板(template)>異常(exception)、RTTI、命名空間(namespace)逐漸被加入原則。1998
年國(guó)際原則組織(ISO)頒布了C++程序設(shè)計(jì)語(yǔ)言的國(guó)際原則TSO/IEC1988-1998。C++是具有
國(guó)際原則口勺編程語(yǔ)言,一般稱(chēng)作ANST/ISOC++。
C++語(yǔ)言發(fā)展大概可以分為三個(gè)階段:第一階段從80年代到1995年。這一階段C++語(yǔ)言
基本上是老式類(lèi)型上的面向?qū)ο笳Z(yǔ)言,并且憑借著靠近C語(yǔ)言口勺效率,在工業(yè)界使用的開(kāi)發(fā)
語(yǔ)言中占據(jù)了相稱(chēng)大份額;第二階段從1995年到2023年,這一階段由于原則模板庫(kù)(STL)
和后來(lái)的Boost等程序庫(kù)日勺出現(xiàn),泛型程序設(shè)計(jì)在C++中占據(jù)了越來(lái)越多日勺比重性。當(dāng)然,
同步由于Java、C#等語(yǔ)言H勺出現(xiàn)和硬件價(jià)格的大規(guī)模下降,C++受到了一定的沖擊;第三階
段從2023年至今,由于以Loki、MPL等程序庫(kù)為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++
出現(xiàn)了發(fā)展歷史上又一種新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++已經(jīng)
成為當(dāng)今主流程序設(shè)計(jì)語(yǔ)言中最復(fù)雜的一員。
1.2概要設(shè)計(jì)
為了保證系統(tǒng)可以長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)當(dāng)滿(mǎn)足如下的性能
需求。
(1)精確性和及時(shí)性:系統(tǒng)處埋的精確性和及時(shí)性是系統(tǒng)H勺必要性能。系統(tǒng)應(yīng)能及時(shí)并且
精確日勺根據(jù)顧客權(quán)限及所輸入日勺信息做出響應(yīng)。車(chē)次歐I數(shù)量和時(shí)間影響顧客的決策活動(dòng),在
系統(tǒng)開(kāi)發(fā)過(guò)程中,必須采用一定的措施保證系統(tǒng)的精確性和及時(shí)性。
(2)易用性:本系統(tǒng)是直接面對(duì)顧客日勺,這就規(guī)定系統(tǒng)提供良好的I顧客接口,易用日勺人機(jī)
交互界面,這就規(guī)定系統(tǒng)應(yīng)當(dāng)盡量使用顧客熟悉的I術(shù)語(yǔ)和中文信息日勺界面,從而保證系統(tǒng)的J
易用性。
(3)安全性:訂票系統(tǒng)中波及到的數(shù)據(jù)是客運(yùn)企業(yè)相稱(chēng)重要的信息,系統(tǒng)要保證顧客的權(quán)
限,對(duì)于車(chē)次等信息顧客只享有查詢(xún)服務(wù),不得更改;系統(tǒng)還要提供以便的手段供系統(tǒng)維護(hù)
人員進(jìn)行數(shù)據(jù)備份、以及平常安全管理等工作。
1.3功能分析
(1)查詢(xún)?yōu)閷?duì)車(chē)次信息的查詢(xún)和對(duì)車(chē)票信息H勺查詢(xún)。
車(chē)次信息包括:日期、車(chē)次、出發(fā)地、目口勺地。車(chē)次信息只容許乘客查詢(xún),不能修改。
記錄應(yīng)包括:日期、車(chē)次、出發(fā)地、目的地。
(2)賬戶(hù)管理。
只容許管理人員登錄,管理人員可以修改信息修改的信息包括:日期、車(chē)次、出發(fā)地、
目的地。
1.4設(shè)計(jì)分工及編程實(shí)現(xiàn)
本小組課程設(shè)計(jì)是由兩人參與完畢的。我H勺工作是完畢派生類(lèi)和主函數(shù),完畢操作H勺匯
合和界面操、作基類(lèi)日勺構(gòu)造為閆浩編寫(xiě),該類(lèi)日勺名稱(chēng)為weihulei。
編程重要通過(guò)四個(gè)環(huán)節(jié):編輯、編譯、鏈接、運(yùn)行調(diào)試。編輯是將自己設(shè)計(jì)好日勺源程序
輸入計(jì)算機(jī)中,生成后綴為.cpp的磁盤(pán)文獻(xiàn);編譯是將程序的源代碼轉(zhuǎn)換為機(jī)器語(yǔ)言代碼,
這一過(guò)程是計(jì)算機(jī)自動(dòng)執(zhí)行的,我們?nèi)耸强床坏降?;鏈接是將多種源程序文獻(xiàn)以及庫(kù)中日勺某
些文獻(xiàn)連在一起,生成一種后綴為為.CXC時(shí)可執(zhí)行文獻(xiàn);運(yùn)行調(diào)試是會(huì)運(yùn)行出一種界面,狀
態(tài)欄會(huì)提醒對(duì)應(yīng)的I信息,如沒(méi)有錯(cuò)誤,或者是錯(cuò)誤在哪一行,錯(cuò)誤日勺原因等。程序日勺運(yùn)行和
調(diào)試是一種很困難的過(guò)程,但通過(guò)本次課設(shè).我們對(duì)本課程的學(xué)習(xí)有了很大的進(jìn)步C
第2章需求分析
2.1系統(tǒng)設(shè)計(jì)目日勺與意義
規(guī)定用C++面向程序設(shè)計(jì)語(yǔ)言編寫(xiě)車(chē)次信息管理系統(tǒng),
1.使學(xué)生深入理解和掌握課堂上所學(xué)內(nèi)容。
2.使學(xué)生掌握軟件設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)措施,并培養(yǎng)學(xué)生進(jìn)行規(guī)范化軟件設(shè)計(jì)的能力。
3.使學(xué)生掌握使用多種計(jì)算機(jī)資料和有關(guān)參照資料,提高學(xué)生進(jìn)行程序設(shè)計(jì)的基本能力。
4.提高學(xué)生日勺論文寫(xiě)作能力
5.本次課程設(shè)計(jì)是計(jì)算機(jī)專(zhuān)業(yè)的重要實(shí)踐性教學(xué)環(huán)節(jié)之一,規(guī)定運(yùn)用所學(xué)專(zhuān)業(yè)FI勺有關(guān)知
識(shí),結(jié)合實(shí)際操作與應(yīng)用而進(jìn)行的一次編程綜合能力的訓(xùn)練,意在培養(yǎng)學(xué)生在應(yīng)用軟件程序
設(shè)計(jì)方面,初步掌握處理實(shí)際應(yīng)用問(wèn)題時(shí)所應(yīng)具有的查閱資料、技術(shù)原則和規(guī)范,以及設(shè)計(jì)
程序、調(diào)試程序、編寫(xiě)基本軟件等能力,為畢業(yè)設(shè)計(jì)及此后從事專(zhuān)業(yè)有關(guān)的工作打下一定的
基礎(chǔ)。
2.2系統(tǒng)數(shù)據(jù)流圖
實(shí)現(xiàn)日勺重要功能有:
車(chē)次信息H勺查詢(xún):輸入查詢(xún)車(chē)次H勺信息編號(hào)或站點(diǎn);車(chē)次信息H勺添加功能:添加的信息
有車(chē)次編號(hào),起點(diǎn)站和終點(diǎn)站;車(chē)次信息日勺查詢(xún)功能:查詢(xún)車(chē)次的所有信息;車(chē)次信息的修
改功能,任意修改所有信息;;車(chē)次信息H勺刪除功能:刪除所rr或個(gè)別車(chē)次信息。
圖2.1系統(tǒng)數(shù)據(jù)流圖
2.3系統(tǒng)功能簡(jiǎn)介
此程序名稱(chēng)為《車(chē)次信息管理系統(tǒng)》,顧名思義,這是一種可以管理列車(chē)基本信息日勺一種
基本程序,它可以實(shí)現(xiàn)簡(jiǎn)樸的列車(chē)信息查詢(xún)和管理車(chē)次信息以及查看等功能,詳細(xì)有如下功
能:
1.為了讓程序開(kāi)始界面一目了然,使得程序更輕易操作,故再次設(shè)計(jì)了顧客登陸界面。
2.重要功能還是車(chē)次信息的管理與維護(hù),包括有:增長(zhǎng)車(chē)次信息、刪除車(chē)次信息、修改
車(chē)次信息。其中車(chē)次信息包括路過(guò)各站點(diǎn)日勺名稱(chēng)及時(shí)間。
3.當(dāng)然作為一種信息日勺管理系統(tǒng),另一項(xiàng)重要日勺功能就是車(chē)次日勺查詢(xún)系統(tǒng),本程序設(shè)計(jì)
了查詢(xún)時(shí)可實(shí)現(xiàn)按站名查詢(xún)、按車(chē)次查詢(xún),并且提供站一站查詢(xún)。
4.最終一項(xiàng)功能即為列車(chē)記錄,即輸入一種站名,可記錄通過(guò)該站點(diǎn)時(shí)列車(chē)數(shù)目,假如
輸入兩個(gè)站名,則可以記錄同步通過(guò)這兩個(gè)站點(diǎn)的所有列車(chē)數(shù)目。
2.4系統(tǒng)功能模塊圖
本系統(tǒng)『'J輸入輸出為:
1.車(chē)次信息錄入
2.車(chē)次信息顯示
3.車(chē)次信息的刪除
4.車(chē)次信息的修改
5.記錄所有車(chē)次信息
圖2.2系統(tǒng)功能流圖
第3章詳細(xì)設(shè)計(jì)
3.1類(lèi)設(shè)計(jì)
類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)措施的關(guān)鍵,運(yùn)用類(lèi)可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的封裝和隱藏。
在面向過(guò)程時(shí)構(gòu)造化程序設(shè)計(jì)中,程序的模塊是由函數(shù)構(gòu)成的,函數(shù)將邏輯上有關(guān)的語(yǔ)
句與數(shù)據(jù)封裝,用于完畢特定口勺功能。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,程序模塊是由類(lèi)構(gòu)成的。類(lèi)
是對(duì)邏輯上有關(guān)的函數(shù)與數(shù)據(jù)口勺封裝,它是對(duì)問(wèn)題日勺抽象描述。因此,后者H勺集成程度更高,
也就更適用于大型復(fù)雜程序的開(kāi)發(fā)。類(lèi)的組員包括數(shù)據(jù)組員和函數(shù)組員,它們分別描述了問(wèn)
題的屬性和行為,是不可分割日勺兩個(gè)方面。
本系統(tǒng)是對(duì)車(chē)次信息功能日勺操作。定義的基類(lèi)和派生類(lèi)如下:
1.基類(lèi)的名稱(chēng)是weihulei,通過(guò)該類(lèi),實(shí)現(xiàn)了添加車(chē)次信息;顯示車(chē)次信息;刪除車(chē)次
信息;修改車(chē)次信息;顯示車(chē)次信息;該類(lèi)的代碼如下所示:
classweihulei{
public:
NODE*p;
NODE*q:
weihulei()〃構(gòu)造
p二NULL;
)
/**********添力口組員*********/
voidgongneng(NODE*n)〃添加
(
q=newNODE;
q->next=p;
n二p二q;
cout<<〃通過(guò)起點(diǎn)站名稱(chēng):〃;
cin>>p->n;
cout*〃通過(guò)終點(diǎn)站名稱(chēng):〃;
cin>>p->m;
cout<(〃車(chē)次號(hào)碼:〃;
cin>>p->nuni;
cout式"發(fā)車(chē)時(shí)間:”;
cin>>p->time;
}
voidgongneng()〃顯示
(
P二q;
while(p!=NULL)
cout<<〃通過(guò)起點(diǎn)站名稱(chēng):〃<<p->n<〈endl;
coutV〈”通過(guò)終點(diǎn)站名稱(chēng):”《p->m<<endl:
cout<〈”車(chē)次號(hào)碼:,,<<p->num<<endl;
cout<<“開(kāi)車(chē)時(shí)間:zz<<p->time<<endl;
p=p->next;
)
PF;
)
/**********重載**********/
voiddel(NODE*k)〃刪除
(
k=newNODE;
k=p二q;
charn[20];
cout久〃請(qǐng)輸入車(chē)次號(hào)碼://?endl;
cin>>n;
while(p!二NULL&&(strcmp(p->num,n)!=0)!=0)
(
k=p;
p=p->next;
if(p=NULL)
cout<〈"杳無(wú)此車(chē)(-_-)!!”<<endl;
else
(
if(p二二q)
q=q->next;
else
k->next=p->next;
free(p);
P二q;
coutX〈〃刪除成功!/z?endl;
voiddel()
I
p二q二NULL:
cout<<〃所有信息已刪除!〃;
)
/**********修改**********/
voidgongneng(charn[20])〃編輯
p=q;
cout?〃請(qǐng)輸入車(chē)次號(hào)碼:〃<<endl;
cin?n;
whi1e(p!=NULL&&(strcmp(p->num,n)!=0)!=0)
{
p=p->next;
)
if(p==NULL)
{cout<<”查無(wú)此車(chē)!!,,<<cndl;
}
else
(
cout?!蓖ㄟ^(guò)起點(diǎn)站名稱(chēng):”;
cin>>p->n;
cout<<〃通過(guò)終點(diǎn)站名稱(chēng):〃;
cin>>p->m;
cout<〈〃車(chē)次號(hào)碼:〃;
cin>>p->num;
cout<<“發(fā)車(chē)時(shí)間:〃;
cin>>p->time;
cout<<〃按仟意鍵返回!!,z?endl:
/**********簡(jiǎn)樸虛函數(shù)**********/
virtualvoidxianshi()
cout<<〃請(qǐng)輸入密碼:〃;
intpassword;
for(inti=0;i<3;i++)
cin>>password;
if(password—123456)
cout<<"登陸成功C_)!"<<endl;
getchO;
return;
elsecout<<〃您輸入的I密碼有誤,請(qǐng)重新輸入:〃;
)
cout?〃三次輸入錯(cuò)誤,拒絕登陸(二-)!〃<〈endl;
while(1){
getchO;
}
);
它『'J數(shù)據(jù)組員包括:NODE*p,*q;
而組員函數(shù)則是包拈:
voidgongneng(NODE*n)/:添加車(chē)次信息;
voidgongnengO/:顯示車(chē)次信息
voiddel(NODE*k):刪除車(chē)次信息;
voidgongncng(charn[20]):修改車(chē)次信息;
virtualvoidxianshi():顯示車(chē)次信息;
2派生類(lèi):查詢(xún)類(lèi)(classchaxunlei:publicweihtlei),它的I重要功能是查詢(xún)車(chē)次的信
息vogongnengO:查詢(xún)車(chē)次信息,它歡)詳細(xì)代碼如下所示:
/**********查詢(xún)類(lèi)**********/
classchaxunlei:publicweihulei
!
public:
/不不不不不不不不不不不不不不不不不不不不/'
chaxunlei(weihuleic):weihulei()//構(gòu)造
p=c.p:
q=c.q;
}
/**********杳詢(xún)函數(shù)**********/
voidgongnengO〃查詢(xún)
p=q;
charn[20];
charm[20];
chari;
cout<<”請(qǐng)選擇查詢(xún)方式:1車(chē)次查詢(xún);2站名查詢(xún);3站-站查詢(xún)\n”;
cin>>i;
if(p==NULL)
(
cout*〃沒(méi)有列車(chē)信息(-_-)!!〃《cndl;
}
switch(i)
case,1':
cout<<〃請(qǐng)輸入車(chē)次號(hào)碼:,z?endl;
cin>>n;
while(p!=NULL)
{
if(strcmp(p->num,n)==0)
(
cout<〈”通過(guò)起點(diǎn)站名稱(chēng):〃<<p->n<<endl;
cout<<〃通過(guò)終點(diǎn)站名稱(chēng):〃<<p->m〈<endl;
cout<<“車(chē)次號(hào)碼:"<〈p-)num<〈endl;
cout<<”開(kāi)車(chē)時(shí)間:z,?p->time?endl;
}
p=p->next;
)
cout<〈〃按任意鍵返回!!〃<<endl;
return;
}
case,2':
{cout<<〃請(qǐng)輸入站名:〃<<endl;
cin?n;
while(p!=NULL)
if((strcmp(p->n,n)==0)|(strcmp(p->m,n)==0))
{cout<<"通過(guò)起點(diǎn)站名稱(chēng):〃《p->n〈〈endl;
cout<〈〃通過(guò)終點(diǎn)站名稱(chēng):〃<<p->ni<<cndl;
cout<〈〃車(chē)次號(hào)碼:z,?p->num?endl;
cout<〈〃開(kāi)車(chē)時(shí)間:,z?p->tiine?endl;
)
p=p->next;
)
cout<<〃按任意鍵返回??!〃<Xcndl;
return;
)
case*3':{cout<<〃請(qǐng)輸入起點(diǎn)站名:〃<<endl;
cin?n;
cout<〈〃請(qǐng)輸入終點(diǎn)站名:〃<<endl;
cin>>m;
while(p!二NULL)
(
if((strcmp(p->n,n)~0)&&(strcmp(p->m,m)==0))
{
cout<<"通過(guò)起點(diǎn)站名稱(chēng):〃《p->n〈(endl;
cout<<"通過(guò)終點(diǎn)站名稱(chēng):〃?p->m<<endl;
cout《〈”車(chē)次號(hào)碼:,,<<p->num<<endl:
cout<<〃開(kāi)車(chē)時(shí)間:,,<<p->time<<endl;
)
p=p->next;
)
cout<<〃按任意鍵返回!!〃<<endl;
return;
)
default:return;
)
)
/**********虛函數(shù)**********/
voidxianshi()
(
y-a.//
II111[\、*J**J**|?*J*Jj%*J^
*******”.
cout<<'\n1:查找車(chē)次!
cout<<z,\n2:顯示車(chē)次信息!〃:
cout<</z\n3:列車(chē)記錄〃;
cout<<z,\n4:退出!;
?-Wag?//q.XL*WXWX?Zx?Jx4,VX
(fllII\\*|**f**7**?**|**T**4**?**V**T**7**/**?**|**)**4**T**!**T**4**i**T**1**7**?**1**1**4**1**1**T**4*****1**T**4**4**4*****1**1**4**T**1**T**4*****1**1**1**?**T**i**4*****4**7*****1**1**4*
*******〃<<end];
cout<〈〃請(qǐng)輸入菜單項(xiàng)選擇項(xiàng):,,<<endl;
)
);
而派生類(lèi)日勺功能重要是實(shí)現(xiàn)記錄車(chē)次信息日勺功能,它可以輸出車(chē)次日勺編號(hào),起點(diǎn)站和終
點(diǎn)站信息。組員函數(shù)為voidgongnen晨):記錄車(chē)次信息。詳細(xì)的I代碼如下所示:
classtongjilei:publicweihulei
I
public:
tongjilei(weihuleic):weihulei()//構(gòu)造
(
p=c.p;
q=c.q;
)
voidgongncng()〃記錄
intsm=0;
charn[20]:
cout<<”請(qǐng)輸入站名:,,<<endl;
cin>>n;
while(n)
(
p=p->next;
if(p二二NULL)
(
if((strcmp(q->n,n)==0)|(strcmp(q->m,n)==0))
(
sm++;
)
break;
}
if((strcmp(p->n,n)==0)||(strcmp(p->m,n)==0))
(
sm++;
}
}
if(sm-O)cout?〃查無(wú)次車(chē);
cout<<〃記錄車(chē)次數(shù)目為:〃〈〈snKVendl;
}:
詳細(xì)類(lèi)的關(guān)系如下圖所示:
圖3.1類(lèi)圖關(guān)系
3.2數(shù)據(jù)構(gòu)造
自定義數(shù)據(jù)類(lèi)型:定義了structnode構(gòu)造體類(lèi)型,其中在weihulei中定義了p和q兩
個(gè)構(gòu)造體,用這兩個(gè)指針類(lèi)型來(lái)進(jìn)行結(jié)點(diǎn)口勺定位和對(duì)頭指針的操作。
typedefstructnode
(
charn[20];
charin[20];
charnum[20];
chartime[20]:
structnode*next;
)N0DE;
3.3界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn)
界面設(shè)計(jì)
1.系統(tǒng)開(kāi)始界面,如圖3.2所示。
voidwelcome()
(
SetConsoleTextAttribute(GetStdHandle(STDOUTPUT_HANDLE),F0REGR0UND_INTENSITY|
FOREGROUND_GREEN);
cout<<,z$----------------------------------$,z<<endl;
cout<<z,||,z<<endl;
cout?z,|**歡迎進(jìn)入車(chē)次信息管理系統(tǒng)**|/,?endl;
cout<<//1|/z<<endl;
cout<<〃@----------------------------------@〃<<endl;
cout<<z,按任意鍵進(jìn)入“〈〈endl;
getchO;
■"E:\MSDev98\MyProjects\f\Debug\f.exe"
神歡迎進(jìn)入車(chē)次信息管理系統(tǒng)**
按任意鍵進(jìn)入
圖3.2
2.操作人員類(lèi)型選擇界面,如圖3.3所示。
voidmainmenu()
cout?/zl.管理員〃<<endl;
cout<<,,2.乘客〃<<cndl;
cout?,,3.退出本系統(tǒng)〃<<endl;
$--------------------------------------$
!”歡迎進(jìn)入車(chē)次信息管理系統(tǒng)**:
ee
噎理員
播1電本系統(tǒng)
圖3.3
3.乘客進(jìn)入界面,如圖3.4所示。
voidxianshi()
//
I?11II\*i**i**|^^**j**1**i**1**i**T**T**T**T**T**1**|**T**T**T**T**T**g**T**T**T**i**1**j**T**T*
*******〃;
cout<<z'\n1:查找車(chē)次!〃;
cout<〈”\n2:顯示車(chē)次信息!〃;
cout<<,z\n3:列車(chē)記錄〃;
cout<<z,\n4:退出!〃<<endl;
c/"x.1-4-//"*14?f**1**1**1*?1^^1**1*?J**1?*1*?!>^1<*1*?J**1*?J**1*
II11II、、
*******〃<<end];
cout<〈〃請(qǐng)輸入菜單項(xiàng)選擇項(xiàng):z,?cndl;
)
);
查g-W
1fi
蘭
2k自
顯?f
-d心
統(tǒng)
3計(jì)
熊s
4!
請(qǐng)輸入菜單選項(xiàng):
圖3.4
4.管理員進(jìn)入界面,如圖3.5所示。
voiddisplay()
SetConsoleTextAttribute(GetStdllandle(STD_Ol'TPUTJIANDLE),FOREGROUND,INTENSITY
I'OREGROLNDRED);
,?//
((J1II\\*T**J**7**T^*T**7**T**^**^**1**7**T**T**^**T**J**T**T**^**^**1**7**T**T**?*
.「乙、/、*T*
cout<<1:增長(zhǎng)車(chē)次信息!〃;
cout<<,,\n2:修改車(chē)次信息!〃;
cout<<,,\n3:查找車(chē)次!〃;
cout<<,,\n4:顯示車(chē)次信息!〃;
cout〈〈〃\n5:刪除車(chē)次信息!〃;
cout<<?,\n6:刪除所有車(chē)次信息!〃;
cout<<?,\n7:列車(chē)記錄〃;
cout<<"\n8:退出!"<<endl;
0^|[〈〈j|C5|C5|C5^?|C5!C5|C5J*r{Cr|C5|C5|Cr^Cr|Cr^C5|C5J*r|C5|C5|C5|Cr^C5|*5|C5^C?|C5|C5|Cjjwr^Cj|C5!C5|C?|C5!C5|C5J*r|Cr|C5|C5|Cr|C5|C5|Cr^C^jCr|Cr^C5|C5}%5{Cr|C5|Cj|C5J*r^C?|C5|Cj|Cr|Cr|C5|C5J*r|C
*******〃<<endl;
cout<<〃請(qǐng)輸入菜單項(xiàng)選擇項(xiàng):,,?endl;
一
密
S碼2
請(qǐng)
一45
功
登.)
增加
次
1息
改
次
2息
蒙
3找
次
息
豆
4示
次
息
5縻
次
次
6I-息
一
百
本
統(tǒng)
7玉
8
!
青輸入菜單選項(xiàng):
3.5
主函數(shù)的設(shè)計(jì)
在這次程序的設(shè)計(jì)中,我們重要進(jìn)行模塊化程序,構(gòu)造主函數(shù),將各個(gè)模塊進(jìn)行用類(lèi)串
連,互相嵌套,主函數(shù)中循環(huán)調(diào)用類(lèi)的對(duì)象,在主菜單中再調(diào)用了函數(shù),從而來(lái)實(shí)現(xiàn)各自不
一樣的功能。子功能完畢后回到主菜單項(xiàng)選擇擇功能鍵進(jìn)行下一項(xiàng)操作。
在主函數(shù)中,程序運(yùn)行后進(jìn)入主菜單后,進(jìn)行日勺第一種操作是進(jìn)行供能的選擇,由于本
程序沒(méi)有應(yīng)用文獻(xiàn)對(duì)數(shù)據(jù)進(jìn)行保留。其重要代碼如下:
voidmain()
(
chari;
charc;
charn[20];
welcome();
weihuleia,*w=NCLL;
NODE*k=NULL;
do{
mainmenuO:
cin>>c;
switch(c)
(
case'1':
(
w=&a;w->xianshi();
do{
display();
i=gctch();
switch(i)
{
case'1{a.gongneng(k);break;}
case,2':{a.gongneng(n);break;}
case'3':{chaxunleib(a);b.gongneng();break;}
case'4':{a.gongneng();break;)
case'5':{a.del(k);break;}
case'6':{a.del0;break;}
case'7':{tongjileic(a);c.gongneng();break;}
case'8':{cout<<“謝謝使用本系統(tǒng)!〃<<endl;break;}
default:{cout<〈”輸入錯(cuò)誤!,,<<endl;break;}
}
}while(i!=,8?);break:
case*2':
(
chaxunlei1(a);
\v-&l;
do{
w->xianshi();
i=gctch();
switch(i)
{
case'1':{chaxunleib(a);b.gongnengO;break;}
case'2':{a.gongneng();break;}
case>3':{tongjileic(a);c.gongnengO;break;}
case'4':{cout<<〃謝謝使用本系統(tǒng)!〃<<endl;bre本;}
default:{cout<<"輸入錯(cuò)誤!,/<<endl;break;}
}
}while(i!=,4*);break;
)
case'3':{cout<〈”謝謝使用本系統(tǒng)!”<<endl;break;}
default:{cout<<"輸入錯(cuò)誤!*?endl;break;}
)
}while(c!=,3,);
333各功能模塊實(shí)現(xiàn)
1.增長(zhǎng)功能的詳細(xì)代碼如下,運(yùn)用鏈表創(chuàng)立時(shí),首先*p二hMd(hcad->=NULL),然后qnew
NODE;再讀入數(shù)據(jù)信息q->ncxt=p,q->ncxt=NULL,測(cè)試過(guò)程如圖3.6所示。
voidgongneng(NODE*n)
(
q=newNODE;
q->next=p;
n=p=q;
cout?〃通過(guò)起點(diǎn)站名稱(chēng):〃;
cin?p->n;
cout?!ㄍㄟ^(guò)終點(diǎn)站名稱(chēng):〃;
cin>>p->m;
cout<<〃車(chē)次號(hào)碼:〃;
cin>>p->num;
cout?〃發(fā)車(chē)時(shí)間:〃;
cin?p->time;
青曾H單項(xiàng)
W蓑站
爾終站票
車(chē)號(hào)
麥時(shí)
1
:1。
息!
=
_
息!
f:
_
a
一裹!
所室!
若信a
統(tǒng)
!
沆陽(yáng)
稱(chēng).
站名
終點(diǎn)
逕堪
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買(mǎi)賣(mài)合同模板集錦六篇
- 2024年版短期租房合同樣本
- 2024年版智能家居玻璃膠采購(gòu)與供應(yīng)合同
- 大班社會(huì)教案4篇
- 公司市場(chǎng)部工作計(jì)劃模板
- 客服人員個(gè)人工作總結(jié)總結(jié)計(jì)劃
- 2021-2026年中國(guó)抗貧血藥鐵劑行業(yè)市場(chǎng)全景調(diào)研及投資規(guī)劃建議報(bào)告
- 一年級(jí)語(yǔ)文老師述職報(bào)告
- 2022年中職教師工作計(jì)劃個(gè)人
- 三年級(jí)上冊(cè)數(shù)學(xué)說(shuō)課稿范文集錦七篇
- 2024年金融工作會(huì)議
- 2024年人教版八年級(jí)生物上冊(cè)期末考試卷(附答案)
- 2024年叉車(chē)租賃合同經(jīng)典版(四篇)
- 環(huán)保工程施工安全檢查表
- 人教版五年級(jí)上冊(cè)數(shù)學(xué)期末考試試卷含答案
- 小學(xué)科學(xué)青島版(六三制)六年級(jí)上冊(cè)全冊(cè)教案(共25課)(2022秋)
- 2024焊接工藝規(guī)程
- 外研版(2024新版)七年級(jí)上冊(cè)英語(yǔ)期末復(fù)習(xí)Unit1~6共6套學(xué)業(yè)質(zhì)量檢測(cè)試卷匯編(含答案)
- 藥理學(xué)期末試卷
- 小學(xué)高年級(jí)課后服務(wù) scratch3.0編程教學(xué)設(shè)計(jì) 一階第27課 植物大戰(zhàn)僵尸-僵尸來(lái)襲教學(xué)設(shè)計(jì)
- 2024年人民日?qǐng)?bào)社招聘應(yīng)屆高校畢業(yè)生85人筆試高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論