c++課程設計 車次信息管理系統(tǒng)_第1頁
c++課程設計 車次信息管理系統(tǒng)_第2頁
c++課程設計 車次信息管理系統(tǒng)_第3頁
c++課程設計 車次信息管理系統(tǒng)_第4頁
c++課程設計 車次信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

、課程設計的原始資料及依據查閱有關資料,進一步理解面向對象程序設計的思想,并編寫一個簡單的windows系統(tǒng)。通過本設計可以加深理解使用面向對象程序設計思想開發(fā)一個系統(tǒng)的方法,提高分析問題、解決問題和實際動手的能力。二、課程設計主要內容及要求設計內容:查詢:為對車次信息的查詢和對車票信息的查詢。車次信息包括:日期、車次、出發(fā)地、目的地。車次信息只允許乘客查詢,不能修改。記錄應包括:日期、車次、出發(fā)地、目的地。設計要求:要求利用面向對象的方法完成系統(tǒng)的設計;要求在設計的過程中建立清晰的類層次,并畫出類圖;設計功能滿足要求、易于操作的友好界面;界面中需有菜單、工具欄、狀態(tài)欄;在系統(tǒng)的設計中,至少要用到面向對象的一種機制:繼承、多態(tài)等;在完成該題目時,小組人員進行詳細的任務分工,并要在報告中體現出來。三、對課程設計說明書撰寫內容、格式、字數的要求1.課程設計說明書是體現和總結課程設計成果的載體,主要內容包括:設計題目、設計目的、設備器材、設計原理及內容、設計步驟、遇到的問題及解決方法、設計總結、參考文獻等。一般不應少于3000字。2.在適當位置配合相應的實驗原理圖、功能模塊圖、算法流程圖等圖表進行說明。應做到文理通順,內容正確完整,書寫工整,裝訂整齊。3.設計總結部分主要寫本人完成工作簡介以及自己的設計體會,包括通過課程設計學到了什么,哪里遇到了困難,解決的辦法以及今后的目標。4.課程設計說明書手寫或打印均可。手寫要用學校統(tǒng)一的課程設計用紙,用黑或藍黑墨水工整書寫;打印時采用A4紙,頁邊距均為20mm,正文采用宋體小四號字,行間距18磅。文中大標題采用黑體小三號字,一級節(jié)標題采用黑體四號字,二級節(jié)標題采用黑體小四號字,表題與圖題采用宋體五號字。5.課程設計說明書裝訂順序為:封面、任務書、成績評定表、目錄、正文、參考文獻。四、設計完成后應提交成果的種類、數量、質量等方面的要求1.完成“任務書”中指定的功能,運行結果正確。2.課程設計說明書。

五、時間進度安排順序階段日期計劃完成內容備注1第1天進行設計準備,閱讀資料,分析設計任務書,明確設計要求、內容和步驟2第2天需求分析3第3天概要設計4第4-5天詳細設計5第5—8天編碼、調試6第9-10天程序答辯,撰寫課程設計報告六、主要參考資料(文獻)鄭莉董淵張瑞豐編著.《C++語言程序設計》(第4版).北京:清華大學出版社.2010陳維興,林小茶.《C++高級程序設計教程》?北京:清華大學出版社譚浩強.《C++程序設計教程》?北京:中國科學技術出版社王燕.《面向對象的理論與C++實踐》?北京:清華大學出版社馬石安,魏文平.主編《VisualC++程序設計與應用教程》?北京:清華大學出版社王育堅.主編《VisualC++面向對象編程教程》(第二版).北京:清華大學出版摘要本文的設計名稱為車次信息管理系統(tǒng),此程序既可以用于管理員管理車次信息也可以用于乘客查詢有關的車次信息。首先為了讓程序開始界面一目了然,使得程序更容易操作,該設計制作了用戶登陸界面,用戶可以通過選擇不同序號進行操作。在該程序中主要定義三個類,分別是維護類、查詢類和統(tǒng)計類,維護類作為基類主要實現的功能有增加車次信息、刪除車次信息、修改車次信息,其中車次信息包括途經各站點的名稱及時間,通過指針、鏈表的應用實現其功能。查詢類作為維護類的一個派生類,主要增加的功能是查詢列車信息,查詢時可實現按站名查詢、按車次查詢,并提供站-站查詢,其中使用while循環(huán)結構、if語句及switch語句。統(tǒng)計類是維護類的另一個派生類,實現的功能主要是統(tǒng)計車次信息,輸入一個站名,可統(tǒng)計經過該站的列車數目,輸入兩個站名如A、B,則可統(tǒng)計同時經過A和B的所有列車數目,同時在系統(tǒng)設計中,用到了面向對象的兩種機制:繼承、多態(tài)。關鍵詞:類繼承多態(tài)車次信息管理目錄TOC\o"1-5"\h\z摘要 I.第1章緒論 1C++語言的發(fā)展 1概要設計 11.3功能分析 11.4設計分工及編程實現 2第2章需求分析 3系統(tǒng)設計目的與意義 3系統(tǒng)數據流圖 32.3系統(tǒng)功能介紹 42.4系統(tǒng)功能模塊圖 4第3章詳細設計 53.1類設計 53.2程序代碼描述 123.3界面設計與各功能模塊實現 13第4章系統(tǒng)測試 24測試過程中的問題 24測試結果說明 244.3設計回顧 24結論 25致謝 26參考文獻 27第1章緒論C++語言的發(fā)展美國AT&T貝爾實驗室的本賈尼?斯特勞斯特盧普(BjarneStroustrup)博士在20世紀80年代初期發(fā)明并實現了C++(最初這種語言被稱作“CwithClasses”)。一開始C++是作為C語言的增強版出現的,從給C語言增加類開始,不斷的增加新特性。虛函數(virtualfunction)、運算符重載(operatoroverloading)、多重繼承(multipleinheritance)、模板(template)、異常(exception)、RTTI、命名空間(namespace)逐漸被加入標準。1998年國際標準組織(ISO)頒布了C++程序設計語言的國際標準ISO/IEC1988-1998。C++是具有國際標準的編程語言,通常稱作ANSI/ISOC++。C++語言發(fā)展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統(tǒng)類型上的面向對象語言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據了相當大份額;第二階段從1995年到2000年,這一階段由于標準模板庫(STL)和后來的Boost等程序庫的出現,泛型程序設計在C++中占據了越來越多的比重性。當然,同時由于Java、C#等語言的出現和硬件價格的大規(guī)模下降,C++受到了一定的沖擊;第三階段從2000年至今,由于以Loki、MPL等程序庫為代表的產生式編程和模板元編程的出現,C++出現了發(fā)展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最復雜的一員。1.2概要設計為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,本系統(tǒng)應該滿足以下的性能需求。準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。系統(tǒng)應能及時而且準確的根據用戶權限及所輸入的信息做出響應。車次的數量和時間影響用戶的決策活動,在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準確性和及時性。易用性:本系統(tǒng)是直接面對用戶的,這就要求系統(tǒng)提供良好的用戶接口,易用的人機交互界面,這就要求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面,從而保證系統(tǒng)的易用性。安全性:訂票系統(tǒng)中涉及到的數據是客運公司相當重要的信息,系統(tǒng)要保證用戶的權限,對于車次等信息用戶只享有查詢服務,不得更改;系統(tǒng)還要提供方便的手段供系統(tǒng)維護人員進行數據備份、以及日常安全管理等工作。1.3功能分析查詢?yōu)閷嚧涡畔⒌牟樵兒蛯嚻毙畔⒌牟樵儭\嚧涡畔ǎ喝掌?、車次、出發(fā)地、目的地。車次信息只允許乘客查詢,不能修改。記錄應包括:日期、車次、出發(fā)地、目的地。賬戶管理。-~ 、目的地。1.4設計分工及編程實現本小組課程設計是由兩人參與完成的。我的工作是完成派生類和主函數,完成操作的匯合和界面操、作基類的構造為閆浩編寫,該類的名稱為weihulei。編程主要經過四個步驟:編輯、編譯、鏈接、運行調試。編輯是將自己設計好的源程序輸入計算機中,生成后綴為.CPP的磁盤文件;編譯是將程序的源代碼轉換為機器語言代碼,這一過程是計算機自動執(zhí)行的,我們人是看不到的;鏈接是將多個源程序文件以及庫中的某些文件連在一起,生成一個后綴為為.exe的可執(zhí)行文件;運行調試是會運行出一個界面,狀態(tài)欄會提示相應的信息,如沒有錯誤,或者是錯誤在哪一行,錯誤的原因等。程序的運行和調試是一個很困難的過程,但經過本次課設,我們對本課程的學習有了很大的進步。第2章需求分析系統(tǒng)設計目的與意義要求用C++面向程序設計語言編寫車次信息管理系統(tǒng),使學生進一步理解和掌握課堂上所學內容。使學生掌握軟件設計的基本內容和設計方法,并培養(yǎng)學生進行規(guī)范化軟件設計的能力使學生掌握使用各種計算機資料和有關參考資料,提高學生進行程序設計的基本能力提高學生的論文寫作能力本次課程設計是計算機專業(yè)的主要實踐性教學環(huán)節(jié)之一,要求運用所學專業(yè)的相關知識,結合實際操作與應用而進行的一次編程綜合能力的訓練,旨在培養(yǎng)學生在應用軟件程序設計方面,初步掌握解決實際應用問題時所應具有的查閱資料、技術標準和規(guī)范,以及設計程序、調試程序、編寫基本軟件等能力,為畢業(yè)設計及今后從事專業(yè)相關的工作打下一定的基礎。系統(tǒng)數據流圖實現的主要功能有:車次信息的查詢:輸入查詢車次的信息編號或站點;車次信息的添加功能:添加的信息有車次編號,起點站和終點站;車次信息的查詢功能:查詢車次的所有信息;車次信息的修改功能,任意修改所有信息;車次信息的刪除功能:刪除所有或個別車次信息。車次管理系統(tǒng)

圖2.1系統(tǒng)數據流圖系統(tǒng)功能介紹此程序名稱為《車次信息管理系統(tǒng)》,顧名思義,這是一個可以管理列車基本信息的一個基本程序,它可以實現簡單的列車信息查詢和管理車次信息以及查看等功能,具體有以下功能:為了讓程序開始界面一目了然,使得程序更容易操作,故再次設計了用戶登陸界面。主要功能還是車次信息的管理與維護,包括有:增加車次信息、刪除車次信息、修改車次信息。其中車次信息包括途經各站點的名稱及時間。當然作為一個信息的管理系統(tǒng),另一項主要的功能就是車次的查詢系統(tǒng),本程序設計了查詢時可實現按站名查詢、按車次查詢,并且提供站—站查詢。最后一項功能即為列車統(tǒng)計,即輸入一個站名,可統(tǒng)計經過該站點的列車數目,如果輸入兩個站名,則可以統(tǒng)計同時經過這兩個站點的所有列車數目。系統(tǒng)功能模塊圖本系統(tǒng)的輸入輸出為:車次信息錄入車次信息顯示車次信息的刪除車次信息的修改統(tǒng)計全部車次信息添加車次信息刪除車次信息修改車次信息瀏覽車次信息查詢車次顯示車次信息添加車次信息刪除車次信息修改車次信息瀏覽車次信息查詢車次顯示車次信息圖2.2系統(tǒng)功能流圖第3章詳細設計3.1類設計類是面向對象程序設計方法的核心,利用類可以實現對數據的封裝和隱藏。在面向過程的結構化程序設計中,程序的模塊是由函數構成的,函數將邏輯上相關的語句與數據封裝,用于完成特定的功能。在面向對象程序設計中,程序模塊是由類構成的。類是對邏輯上相關的函數與數據的封裝,它是對問題的抽象描述。因此,后者的集成程度更高也就更適合用于大型復雜程序的開發(fā)。類的成員包括數據成員和函數成員,它們分別描述了問題的屬性和行為,是不可分割的兩個方面。本系統(tǒng)是對車次信息功能的操作。定義的基類和派生類如下:1.基類的名稱是weihulei,通過該類,實現了添加車次信息;顯示車次信息;刪除車次信息;修改車次信息;顯示車次信息;該類的代碼如下所示:classweihulei{public:NODE*p;NODE*q;weihulei()//構造{p=NULL;}/**********添加成員*********/voidgongneng(NODE*n)//添加{q=newNODE;q->next=p;n=p=q;cout<〈"經過起點站名稱:";cin>>p->n;cout<〈"經過終點站名稱:";cin>>p->m;cout<<"車次號碼:";cin>>p->num;cout<<"發(fā)車時間:";cin>>p->time;}voidgongneng()//顯示p=q;while(p!=NULL){cout<〈"經過起點站名稱:"<<p->n<<endl;cout<〈"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;p=p->next;}p=q;}/7“7“7“7“7“7“7“7“7“7“./-I/ //**********重載**********/voiddel(NODE*k)//刪除{k=newNODE;k=p=q;charn[20];cout<〈“請輸入車次號碼:"<<endl;cin>>n;while(p!=NULL&&(strcmp(p->num,n)!=0)!=0){k=p;p=p->next;}if(p==NULL){cout<<"查無此車(-_-)!!"<<endl;}else{if(p==q)q=q->next;elsek->next=p->next;free(p);p=q;cout<〈“刪除成功!"<<endl;voiddel(){p=q=NULL;cout<<〃所有信息已刪除!〃;}/**********修改**********/voidgongneng(charn[20])//編輯{p=q;cout<<"請輸入車次號碼:〃<<endl;cin>>n;while(p!=NULL&&(strcmp(p->num,n)!=0)!=0){p=p->next;}if(p==NULL){cout<<〃查無此車?。 ?lt;<endl;}else{cout<〈〃經過起點站名稱:〃;cin>>p->n;cout<〈〃經過終點站名稱:〃;cin>>p->m;cout<<〃車次號碼:";cin>>p->num;cout<<〃發(fā)車時間:";cin>>p->time;}cout<<〃按任意鍵返回?。 ?lt;<endl;}/**********簡單虛函數**********/virtualvoidxianshi(){cout<<〃請輸入密碼:";intpassword;for(inti=0;i<3;i++)cin>>password;if(password==123456){cout<<"登陸成功C_j!"<<endl;getch();return;}elsecout<<"您輸入的密碼有誤,請重新輸入:";}cout<〈"三次輸入錯誤,拒絕登陸(-_-)!"<<endl;while(1){getch();}}};它的數據成員包括:NODE*p,*q;而成員函數則是包括:voidgongneng(NODE*n)/:添加車次信息;voidgongneng()/:顯示車次信息voiddel(NODE*k):刪除車次信息;voidgongneng(charn[20]):修改車次信息;virtualvoidxianshi():顯示車次信息;2派生類:查詢類(classchaxunlei:publicweihulei),它的主要功能是查詢車次的信息vogongneng():查詢車次信息,它的具體代碼如下所示:/**********查詢類**********/classchaxunlei:publicweihulei{public:/**********構造**********/chaxunlei(weihuleic):weihulei()//構造{p=c.p;q=c.q;/**********查詢函數**********/voidgongneng()//查詢{p=q;charn[20];charm[20];chari;cout<<〃請選擇查詢方式:1車次查詢;2站名查詢;3站-站查詢\n〃;cin>>i;if(p==NULL){cout<<〃沒有列車信息(-_-)!!〃<<endl;}switch(i){case'1':{cout<<〃請輸入車次號碼:〃<<endl;cin>>n;while(p!=NULL){if(strcmp(p->num,n)==0){cout<〈〃經過起點站名稱:〃<<p->n<<endl;cout<〈〃經過終點站名稱:〃<<p->m<<endl;cout<〈〃車次號碼:〃<<p->num<<endl;cout<〈〃開車時間:"<<p->time<<endl;}p=p->next;}cout<<〃按任意鍵返回!!〃<<endl;return;}case'2':{cout<<〃請輸入站名:"<<endl;cin>>n;while(p!=NULL){第4章if((strcmp(p->n,n)==0)||(strcmp(p->m,n)==0)){cout<〈"經過起點站名稱:"<<p->n<<endl;cout<〈"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;}p=p->next;}cout<<"按任意鍵返回!!"<<endl;return;}case'3':{cout<<"請輸入起點站名:"<<endl;cin>>n;cout<<"請輸入終點站名:"<<endl;cin>>m;while(p!=NULL){if((strcmp(p->n,n)==0)&&(strcmp(p->m,m)==0)){cout<〈"經過起點站名稱:"<<p->n<<endl;cout<〈"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;}p=p->next;}cout<<"按任意鍵返回!!"<<endl;return;}default:return;}/**********虛函數**********/voidxianshi(){ 〃st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*st*〃■>^p*Y?*Y?cout<<"\ncout<<"\ncout<<"\ncout<<"\n1:查找車次!";2:顯示車次信息!";3:列車統(tǒng)計";cout<<"\ncout<<"\ncout<<"\ncout<<"\n4:退出!"<<endl;cout<<"********************************************************************************"<<endl;cout<〈“請輸入菜單選項:"<<endl;}};而派生類的功能主要是實現統(tǒng)計車次信息的功能,它可以輸出車次的編號,起點站和終點站信息。成員函數為voidgongneng():統(tǒng)計車次信息。具體的代碼如下所示:classtongjilei:publicweihulei{public:tongjilei(weihuleic):weihulei()//構造{p=c.p;q=c.q;}voidgongneng()//統(tǒng)計{intsm=0;charn[20];cout<<"請輸入站名:"<<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<〈"查無次車(-_-)"<<endl;cout<<"統(tǒng)計車次數目為:"<<sm<<endl;}};具體類的關系如下圖所示:weihulei+p:NODE=NULL+q:NODENODE+n[20]:char+m[20]:char+num[20]:NODE+n[20]:char+m[20]:char+num[20]:char+time:char+*next:NODE+tongjilei():void+gongneng():void+gongneng():void+weihulei():void+del(ink:char):void+del():void+gongneng(inn[20]:char):void+xianshi()?voidz\chaxunleitongjilei+gongneng():void+chaxunlei():void+xianshi():void圖3.1類圖關系3.2數據結構自定義數據類型:定義了struetnode結構體類型,其中在weihulei中定義了p和q兩個結構體,用這兩個指針類型來進行結點的定位和對頭指針的操作。typedefstructnode{charn[20];charm[20];charnum[20];chartime[20];struetnode*next;}N0DE;3.3界面設計與各功能模塊實現3.3.1界面設計1.系統(tǒng)開始界面,如圖3.2所示。voidwelcome。{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"$ $"<<endl;cout<<"| |"<<endl;cout<<"| **歡迎進入車次信息管理系統(tǒng)** |"<<endl;cout<<"| |"<<endl;cout<<"@ @"<<endl;cout<<" 按任意鍵進入"<<endl;getch();}圖3.22?操作人員類型選擇界面,如圖3.3所示。voidmainmenu(){cout<<"1.管理員"<<endl;cout<<"2.乘客"<<endl;

}cout<<〃3.}cout<<〃3.退出本系統(tǒng)〃<<endl;圖3.33?乘客進入界面,如圖3.4所示。voidxianshi(){cout<<〃\n 1:查找車次!";cout<<〃\n 2:顯示車次信息!";cout<<〃\n 3:列車統(tǒng)計〃;cout<<〃\n 4:退出!〃<<endl;cout〈〈"********************************************************************************〃<<endl;cout<〈“請輸入菜單選項:"<<endl;}};1234W4■統(tǒng)!1234W4■統(tǒng)!找一杳一顯蛋■■■■■■■■情輸入菜單選項;圖3.44?管理員進入界面,如圖3.5所示。voiddisplay。{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|F0REGR0UND_RED);cout<<"1:增加車次信息!";cout<<"\n2:修改車次信息!";cout<<"\n3:查找車次!";cout<<"\n4:顯示車次信息!";cout<<"\n5:刪除車次信息!";cout<<"\n6:刪除所有車次信息!〃cout<<"\n7:列車統(tǒng)計〃;cout<<"\n8:退出!"<<endl;cout〈〈"********************************************************************************"<<endl;cout<〈“請輸入菜單選項:"<<endl;青輸入密碼=123456自自3!Iif信息息息息次亠一一R=R亠一一加改找請輸入菜單選項:圖3.53.3.2主函數的設計在這次程序的設計中,我們主要進行模塊化程序,構造主函數,將各個模塊進行用類串連,相互嵌套,主函數中循環(huán)調用類的對象,在主菜單中再調用子函數,從而來實現各自不同的功能。子功能完成后回到主菜單選擇功能鍵進行下一項操作。在主函數中,程序運行后進入主菜單后,進行的第一個操作是進行供能的選擇,因為本程序沒有應用文件對數據進行保存。其主要代碼如下:voidmain(){chari;charc;charn[20];welcome。;weihuleia,*w=NULL;NODE*k=NULL;do{mainmenu();cin>>c;switch(c){,1,case'1':{w=&a;w->xianshi();do{display();i=getch();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.del();break;}case'7':{tongjileic(a);c.gongneng();break;}case'8':{cout<<"謝謝使用本系統(tǒng)!"<<endl;break;}default:{cout<〈"輸入錯誤(-_-)!"<<endl;break;}}}while(i!='8');break;}case'2':{chaxunleil(a);w=&l;do{w->xianshi();i=getch();switch(i){case'1':{chaxunleib(a);b.gongneng();break;}case'2':{a.gongneng();break;}第4章case'3':{tongjileic(a);c.gongneng();break;}case'4':{cout<<"謝謝使用本系統(tǒng)!"<<endl;break;}default:{cout<〈"輸入錯誤(-_-)!"<<endl;break;}}}while(i!='4');break;}case'3':{cout<<"謝謝使用本系統(tǒng)!"<<endl;break;}default:{cout<〈"輸入錯誤(-_-)!"<<endl;break;}}}while(c!='3');3.3.3各功能模塊實現1.增加功能的具體代碼如下,利用鏈表創(chuàng)建時,首先*p二head(head->二NULL),然后q=newNODE;再讀入數據信息q->next二p,q->next二NULL,測試過程如圖3.6所示。voidgongneng(NODE*n){q=newNODE;q->next=p;n=p=q;cout<〈"經過起點站名稱:";cin>>p->n;cout<〈"經過終點站名稱:";cin>>p->m;cout<〈"車次號碼:";cin>>p->num;cout<〈"發(fā)車時間:";cin>>p->time;迄K:迄.(,計亠迄K:迄.(,計亠xww!朝描ffi墜也JII¥淡信息!mrll-Ir.M

蠡:'■I'1凱二5蠱問2?顯示功能的具體代碼如下,利用鏈表從頭往后一直進行結點的遍歷,在遍歷的過程中實現數據的顯示,測試過程如圖3.7所示。voidgongneng(){p=q;while(p!二NULL){cout<<"經過起點站名稱:"<<p->n<<endl;cout<<"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;p=p->next;}p=q;}請經經車開經經車開■■■■■■■■■■請經經車開經經車開■■■■■■■■■■頂肅4選名名2301名名23單站站:1=2站站:1點碼間點點碼間入起終號時起終號時器過次車過過次車圖3.73?刪除功能的具體代碼如下,找到結點后,利用k指針保存上一個指針,然后將p->next的地址賦值給k->next,再利用free()函數,實現p指針的數據清空,測試過程如圖3.8所示。voiddel(NODE*k){k二newNODE;k=p=q;charn[20];cout<〈"請輸入車次號碼:"<<endl;cin>>n;while(p!=NULL&&(strcmp(p->num,n)!=0)!=0){k=p;p=p->next;}if(p==NULL)cout<<"查無此車(-_-)!!"<<endl;}else{if(p==q)q二q->next;elsek->next二p->next;free(p);p=q;cout<<"刪除成功!"<<endl;}}voiddel(){p二q二NULL;cout<<〃所有信息已刪除!〃}圖3.84?修改功能的具體代碼如下,在找到需要修改的信息后,實現對信息的重新輸入,測試過程如圖3.9所示。voidgongneng(charn[20]){p=q;cout<<〃請輸入車次號碼:"<<endl;cin>>n;while(p!二NULL&&(strcmp(p->num,n)!=0)!=0){p=p->next;}if(p==NULL){cout<<〃查無此車!!"<<endl;}else{cout<〈"經過起點站名稱:";cin>>p->n;cout<〈"經過終點站名稱:";cin>>p->m;cout<〈"車次號碼:";cin>>p->num;cout<〈"發(fā)車時間:";cin>>p->time;}cout<〈"按任意鍵返回!!"<<endl;}圖3.95.查詢功能的具體代碼如下,測試過程如圖3.10所示。voidgongneng(){p=q;charn[20];charm[20];chari;cout<<〃請選擇查詢方式:1車次查詢;2站名查詢;3站-站查詢\n〃;cin>>i;if(p==NULL){cout<<〃沒有列車信息(-_-)!!〃<<endl;}switch(i){第4章~~{cout<〈“請輸入車次號碼:"<<endl;cin>>n;while(p!=NULL){if(strcmp(p->num,n)==0){cout<〈"經過起點站名稱:"<<p->n<<endl;cout<〈"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;}p=p->next;}cout<<"按任意鍵返回!!"<<endl;return;}case'2':{cout<<"請輸入站名:"<<endl;cin>>n;while(p!=NULL){if((strcmp(p->n,n)==0)||(strcmp(p->m,n)==0)){cout<〈"經過起點站名稱:"<<p->n<<endl;cout<〈"經過終點站名稱:"<<p->m<<endl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;}p=p->next;}cout<<"按任意鍵返回!!"<<endl;return;}case'3':{cout<<"請輸入起點站名:"<<endl;cin>>n;cout<<"請輸入終點站名:"<<endl;cin>>m;while(p!=NULL){if((strcmp(p—>n,n)==0)&&(strcmp(p—>m,m)==O)){cout<<"經過起點站名稱:"<<p->n<<endl;cout<<"經過終點站名稱:"〈〈pTmVendl;cout<〈"車次號碼:"<<p->num<<endl;cout<〈"開車時間:"<<p->time<<endl;}p=p->next;}cout<<"按任意鍵返回?。?<<endl;return;}default:return;}聳醫(yī)釁丄車次查詢,2站名查詢;瑚-鮎查詢請輸入車次號碼:1236經過起點站名鞭:經過終點站名忍時間:2011犍遊回”時間:2011犍遊回”I圖3.106.統(tǒng)計功能的具體代碼如下,測試過程如圖3.11所示。voidgongneng()//統(tǒng)計{intsm=0;charn[20];cout<<"請輸入站名:"<<endl;cin>>n;while(n){p=p->next;if(p==NULL)第4章{if((strcmp(q->n,n)==O)||(strcmp(q->m,n)==O)){sm++;}break;}if((strcmp(p->n,n)==O)||(strcmp(p->m,n)==O)){sm++;}}if(sm==0)cout<〈"查無次車(-_-)"<<endl;cout<<"統(tǒng)計車次數目為:"<<sm<<endl;}};圖3.11第4章系統(tǒng)測試調試過程中的問題:Weihulei類中的成員函數不能從鏈表的頭部開始,*p針不能被所有成員函數所共享,之后通過派生類中的構造函數實現了p指針的共享,這樣各個成員函數就可以輕松訪問p,從而對整個鏈表進行操作了。增加,刪除和修改操作都是利用鏈表對單個節(jié)點操作并且都是要求用戶手動輸入各組信息,開始經常出現增加,刪除和修改稿錯位狀況。分析原因:每次都應對p指針賦初值:應當將q的頭指針地址給予P,從而避免錯誤的形成。測試結果說明此系統(tǒng)基本實現了車次信息管理,首先是操作人員選擇,如果是管理員則選擇2,在管理員進入功能界面的時候,需要輸入密碼,此系統(tǒng)設計的默認密碼為123456,然后即可操作各個功能,其中的查詢功能有三種方式,可按車次、站名、站站查詢,通過選擇不同的編號即可實現查詢功能,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論