版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.C+ 程序設(shè)計(jì)課程設(shè)計(jì)說(shuō)明書題目鐵路售票系統(tǒng)學(xué)號(hào)姓名指導(dǎo)教師日期word 專業(yè)資料.內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱面向?qū)ο蟪绦蛟O(shè)計(jì)A 課程設(shè)計(jì)設(shè)計(jì)題目鐵路售票管理系統(tǒng)的設(shè)計(jì)指導(dǎo)教師周李涌時(shí)間2013-2014秋學(xué)期第 17 、 18 周一、教學(xué)要求1. 鞏固和加深學(xué)生對(duì) C+ 語(yǔ)言課程的基本知識(shí)的理解和掌握2. 掌握 C+ 語(yǔ)言編程和程序調(diào)試的基本技能3. 利用 C+ 語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書寫程序設(shè)計(jì)說(shuō)明文檔的能力5. 提高運(yùn)用 C+ 語(yǔ)言解決實(shí)際問(wèn)題的能力二、設(shè)計(jì)資料及參數(shù)用 C+ 設(shè)計(jì)一個(gè)系統(tǒng),能提供下列服務(wù):( 1 )錄入車次信息,格式為:車次發(fā)車時(shí)間起始終點(diǎn)硬座票價(jià)
2、剩余座位k26420 : 30包頭北京110200可不定時(shí)地增加車次數(shù)據(jù)。( 2 )瀏覽車次信息,可顯示出所有車次,如果當(dāng)前系統(tǒng)時(shí)間超過(guò)了某車次的發(fā)車時(shí)間,則顯示“此班列車已發(fā)出”的提示信息。( 3 )查詢路線:可按車次編號(hào)查詢,可按起始站,終點(diǎn)站查詢( 4 )售票和退票功能A :查詢車次或站點(diǎn)。當(dāng)剩余座位數(shù)大于0 ,并且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,售票后自動(dòng)更新剩余座位數(shù)。B:退票時(shí),輸入退票的車次,當(dāng)本班列車未發(fā)出時(shí)才能退票,退票后自動(dòng)更新剩余座位數(shù)。word 專業(yè)資料.三、設(shè)計(jì)要求及成果根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:( 1 )分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性
3、和行為;( 2 )根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;( 3 )完成類層次中各個(gè)類的描述 (包括屬性和力一法 );( 4 )完成類中各個(gè)成員函數(shù)的定義;( 5 )完成系統(tǒng)的應(yīng)用模塊;( 6 )功能調(diào)試;( 7 )提交課程設(shè)計(jì)報(bào)告:完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書目錄第 1 章 需求分析4第 2 章 總體設(shè)計(jì)5word 專業(yè)資料.第 3 章 類的設(shè)計(jì) .63.1 user 類的設(shè)計(jì) .63.2 service 類的設(shè)計(jì) .8第 4 章 詳細(xì)設(shè)計(jì) .104.1工程視圖 .104.2類圖視圖 .104.3主程序流程圖 .114.4 主要算法的流程圖.12第 5 章 測(cè)試 .1-21-第 6 章 總結(jié)
4、.23附錄:程序代碼 .23word 專業(yè)資料.第1章 需求分析用 C+ 設(shè)計(jì)一個(gè)系統(tǒng),能提供下列服務(wù):(1 )錄入車次信息,格式為:車次發(fā)車時(shí)間起始終點(diǎn)硬座票價(jià)剩余座位k26420 :30包頭北京110200可不定時(shí)地增加車次數(shù)據(jù)。(2 )瀏覽車次信息,可顯示出所有車次,如果當(dāng)前系統(tǒng)時(shí)間超過(guò)了某車次的發(fā)車時(shí)間,則顯示“此班列車已發(fā)出”的提示信息。(3 )查詢路線:可按車次編號(hào)查詢,可按起始站,終點(diǎn)站查詢(4 )售票和退票功能A:查詢車次或站點(diǎn)。當(dāng)剩余座位數(shù)大于0,并且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,售票后自動(dòng)更新剩余座位數(shù)。B:退票時(shí),輸入退票的車次,當(dāng)本班列車未發(fā)出時(shí)才能退票,退票后自
5、動(dòng)更新剩余座位數(shù)。word 專業(yè)資料.第2章 總體設(shè)計(jì)1.用結(jié)構(gòu)框圖表示各個(gè)功能之間的關(guān)系。系統(tǒng)功能管理員乘客初始化添加瀏覽查找訂票退票錄入讀取按車次起始站終點(diǎn)站保存保存2. 將框圖中系統(tǒng)的各個(gè)功能用文字詳細(xì)的描述。1)初始化:在未添加過(guò)列車信息的情況下,管理員進(jìn)入系統(tǒng)初次錄入列車信息。word 專業(yè)資料.2)添加:管理員添加列車信息。3)瀏覽:瀏覽列車信息,顯示車次、發(fā)車時(shí)間、起始站、終點(diǎn)站、硬座票價(jià)、剩余座位、列車是否發(fā)出。4)查找:查找列車信息(分別為按車次、起始站、終點(diǎn)站)。5)訂票:訂購(gòu)車票;已發(fā)出的列車不能訂票。6)退票:退還車票;已發(fā)出的列車不能退票。第3章 類的設(shè)計(jì)3.1 us
6、er 類的設(shè)計(jì)(第一個(gè)類)1.畫出類圖User數(shù)據(jù)成員struct Timeint hour;int minute;char num10;Time time;char start20;char end20;int price;int count;word 專業(yè)資料.函數(shù)成員void print();void search();void dingpiao();void tuipiao();2. 對(duì)類的函數(shù)成員的說(shuō)明在第一個(gè)類中定義了瀏覽函數(shù)、查找函數(shù)、訂票函數(shù)、退票函數(shù)函數(shù)的首部:1)瀏覽函數(shù):輸入了當(dāng)?shù)貢r(shí)間、車次、列車發(fā)出時(shí)間、起始站、終點(diǎn)站、剩余車票;進(jìn)行了選擇對(duì)象與輸出流操作;word 專
7、業(yè)資料.輸出了當(dāng)?shù)貢r(shí)間,不同車次的車次編號(hào)、列車發(fā)出時(shí)間、起始站、終點(diǎn)站、剩余車票、列車狀態(tài);2 )查找函數(shù):輸入了車次(或起始站或終點(diǎn)站) 。進(jìn)行輸入車次(或起始站或終點(diǎn)站)與數(shù)據(jù)庫(kù)內(nèi)的車票信息的匹配。輸出了相匹配的車次的信息。3 )訂票函數(shù):輸入了車次(或起始站或終點(diǎn)站) 。進(jìn)行輸入車次(或起始站或終點(diǎn)站)與數(shù)據(jù)庫(kù)內(nèi)的車票信息的匹配。判斷是否允許被購(gòu)買,然后進(jìn)行是否購(gòu)買。刷新車票。輸出車票已訂購(gòu)。4)退票函數(shù):輸入了車次(或起始站或終點(diǎn)站) 。進(jìn)行輸入車次(或起始站或終點(diǎn)站)與數(shù)據(jù)庫(kù)內(nèi)的車票信息的匹配。判斷是否允許被退票,然后進(jìn)行是否退票。刷新車票。輸出車票已退還。word 專業(yè)資料.3.
8、2 service類的設(shè)計(jì)(第二個(gè)類)1. 畫出類圖service數(shù)據(jù)成員:struct Timeint hour;int minute;char num10;Time time;char start20;char end20;int price;int count;函數(shù)成員:void chushihua();void add();word 專業(yè)資料.友元函數(shù):friend void ckym();friend void glyym();friend void sfyz();friend void save ();friend void read();friend void input();f
9、riend void display(int j);friend void search_CC();friend void search_QS();friend void search_ZD();2. 對(duì)類的函數(shù)成員的說(shuō)明1)初始化函數(shù):輸入了初次對(duì)象的車次、 列車發(fā)出時(shí)間、 起始站、終點(diǎn)站、剩余車票數(shù)。進(jìn)行了車票信息的儲(chǔ)存。結(jié)果將車票信息保存在了 ticket.txt 。2)增添函數(shù):輸入了不同對(duì)象的車次、 列車發(fā)出時(shí)間、 起始站、終點(diǎn)站、剩余車票數(shù)。進(jìn)行了車票信息的儲(chǔ)存。結(jié)果將車票信息保存在了 ticket.txt 。word 專業(yè)資料.第4章 詳細(xì)設(shè)計(jì)4.1 工程視圖word 專業(yè)資料.
10、4.2 類圖視圖4.3 主程序流程圖開始word 專業(yè)資料.Sf=0?YNSf=1?NYSf=2?管理員模塊0N1-6Y乘客模塊01-4word 專業(yè)資料.初始化添加瀏覽查找訂票退票錄入讀取按車次起始站終點(diǎn)站保存保存結(jié)束4.4 主要算法的流程圖初始化函數(shù):開始文件中是否存在車票信息?Yword 專業(yè)資料.N輸入車票信息保存信息結(jié)束添加模塊:開始輸入車票信息保存信息word 專業(yè)資料是否繼續(xù)添加 ?.YN結(jié)束查詢模塊:1按車次輸入車次輸出車次信息開始23起始站終點(diǎn)站輸入起始站輸入終點(diǎn)站輸出車次信息輸出車次信息結(jié)束word 專業(yè)資料.訂票函數(shù):開始查詢函數(shù)是否允許被訂票?YN輸入訂購(gòu)的票數(shù)是否繼續(xù)
11、訂Y票?word 專業(yè)資料.N結(jié)束退票函數(shù):開始查詢函數(shù)是否允許被N退票?Y輸入退還的票數(shù)word 專業(yè)資料.是否繼續(xù)退票?YN結(jié)束word 專業(yè)資料.第5章 測(cè)試程序的運(yùn)行結(jié)果截圖:word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.word 專業(yè)資料.第6章 總結(jié)感謝老師的辛苦教學(xué)與悉心指導(dǎo),通過(guò)本次課程設(shè)計(jì),讓我更加深刻的理解到了C+ 得運(yùn)用,這門語(yǔ)言的奧妙之處。相信這次實(shí)訓(xùn)會(huì)讓我在今后的學(xué)習(xí)中受益匪淺。附錄: 程序代碼#include<iostream.h>#include<str
12、ing.h>#include<stdlib.h>/清屏文件的聲明#include<ctime>/獲取時(shí)間的文件的聲明#include<fstream.h>#include <iomanip>const int N=10;static int g_num=-1;int j;int a=0;char ii10;long t = time(0);class userprotected:struct Timeword 專業(yè)資料.int hour;int minute;char num10;Time time;char start20;char en
13、d20;int price;int count;public:void print();void search();void dingpiao();void tuipiao();class service:public userpublic:void chushihua();void add();friend void ckym();friend void glyym();friend void sfyz();word 專業(yè)資料.friend void save ();friend void read();friend void input();friend void display(int
14、j);friend voidsearch_CC();friend void search_QS();friend void search_ZD();service ticket10;void input()g_num+;cout<<"請(qǐng)輸入車次 :"<<endl;cin>>ticketg_num.num;cout<<"請(qǐng)輸入起始站 :"<<endl;cin>>ticketg_num.start;cout<<"請(qǐng)輸入終點(diǎn)站 :"<<endl;
15、cin>>ticketg_num.end;cout<<"請(qǐng)輸入時(shí)間(時(shí)):"<<endl;cin>>ticketg_num.time.hour;cout<<"請(qǐng)輸入時(shí)間(分):"<<endl;cin>>ticketg_num.time.minute;word 專業(yè)資料.cout<<"請(qǐng)輸入票價(jià): "<<endl;cin>>ticketg_num.price;cout<<"請(qǐng)輸入車票數(shù) :&quo
16、t;<<endl;cin>>ticketg_num.count;save ();void save ()ofstream file("ticket.txt",ios:in);for(int j=0;j<=g_num;j+)file<<ticketj.num<<" "file<<ticketj.time.hour <<" "file<<ticketj.time.minute<<" "file<<ticke
17、tj.start<<" "file<<ticketj.end<<" "file<<ticketj.price<<" "file<<ticketj.count<<endl;file.close();cout<<"信息已存入文件"<<endl;void read()/ 讀取函數(shù)word 專業(yè)資料.ifstream file ( "ticket.txt" ,ios:out);while(!fil
18、e.eof()g_num+;file>>ticketg_num.num;file>>ticketg_num.time.hour;file>>ticketg_num.time.minute;file>>ticketg_num.start;file>>ticketg_num.end;file>>ticketg_num.price;file>>ticketg_num.count;g_num-;file.close();cout<<"讀取完畢! "<<endl;void di
19、splay(int j)cout<<ticketj.num<<"t"<<ticketj.start<<"t"<<ticketj.end<<"t"<<" "<<ticketj.time.hour<<":"<<ticketj.time.minute<<"tt"<<ticketj.price<<"t"<
20、<ticketj.count<<"tt"word 專業(yè)資料.t = :time(NULL);tm * pt = localtime(&t);if(ticketj.time.hour<pt->tm_hour)cout<<"此班列車已發(fā)出"else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute<=pt->tm_min)cout<<"此班列車已發(fā)出"else cout<<&
21、quot;正常 "cout<<endl;void output()/ 輸出列車信息int j;t = time(NULL);tm * pt = localtime(&t);cout<<"當(dāng)前時(shí)間: "<<"t"<<pt->tm_hour<<':'<<pt->tm_min<<':'cout<<pt->tm_sec<<endl;cout<<"車次信息如下:&quo
22、t;<<endl;cout<<"車次 t"<<"起始站 t"<<"終點(diǎn)站 t"<<"發(fā)車時(shí)間 t"<<"票價(jià) t"<<"剩余票數(shù) t"<<"狀態(tài)"<<endl;for( j=0;j<=g_num;j+)display(j);word 專業(yè)資料./*訂票模塊 */void user:dingpiao()/ 訂票函數(shù)system("cls
23、");tm * pt = localtime(&t);int n;char a10 = "y"dosearch();if (!strcmp(ii, "n")cout<<"對(duì)不起!沒(méi)有找到您所需要的列車信息,不能訂票。"<<endl;cout<<"請(qǐng)按回車鍵返回上層菜單"<<endl;getchar();strcpy(ii, "n");return;if(ticketj.time.hour < pt->tm_hour)c
24、out<<"此班列車已發(fā)出,不能訂票! "cout<<"請(qǐng)按回車鍵返回上層菜單"<<endl;word 專業(yè)資料.getchar();strcpy(ii, "n");break;else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute <= pt->tm_min)cout<<"此班列車已發(fā)出,不能訂票! "getchar();strcpy(ii, "n")
25、;break;docout<<"請(qǐng)輸入您要訂的車票數(shù)(以回車鍵結(jié)束):"cin>>n;if (n <= 0)cout<<"輸入錯(cuò)誤!至少需訂1 張車票。 "<<endl;word 專業(yè)資料.else if (ticketj.count != 0 && ticketj.count >= n)ticketj.count = ticketj.count - n;cout<<"訂票成功! "break;else if (ticketj.count = 0)
26、cout<<"對(duì)不起,你所選擇的列車的車票已售完!"<<endl;break;else if (ticketj.count<n)cout<<"對(duì)不起,你所選擇的列車只剩余"<<ticketj.count<<"張車票 "<<endl;cout<<"是否需要重新輸入車票數(shù)?請(qǐng)輸入y 或 n 以回車鍵結(jié)束:"cin>>a;while (!strcmp(a, "y");cout<<"
27、;是否需要重新訂購(gòu)其他車票?請(qǐng)輸入y 或 n 以回車鍵結(jié)束:"cin>>a; while (!strcmp(a, "y");/*退票模塊 */word 專業(yè)資料.void user:tuipiao()system("cls");tm * pt = localtime(&t);int n;char a10;dosearch();if (!strcmp(ii, "n")cout<<"對(duì)不起!沒(méi)有找到您所需要的列車,所以不能退票。"<<endl;cout<<
28、;"請(qǐng)按回車鍵返回上層菜單"<<endl;strcpy(ii, "n");getchar();return;if(ticketj.time.hour<pt->tm_hour)cout<<"此班列車已發(fā)出,不能退票 !! "<<endl;strcpy(ii, "n");getchar();break;word 專業(yè)資料.else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute<=pt
29、->tm_min)cout<<"此班列車已發(fā)出,不能退票! "<<endl;strcpy(ii, "n");getchar();break;cout<<"請(qǐng)輸入您要退的車票數(shù):"<<endl;cin>>n;if (n <= 0)cout<<"輸入錯(cuò)誤!至少需退1 張車票。 "<<endl;elseticketj.count = ticketj.count + n;cout<<"退票成功! "
30、;cout<<"是否繼續(xù)?請(qǐng)鍵入y 或 n 以回車鍵結(jié)束:"<<endl;cin>>a; while (!strcmp(a, "y");/*查詢模塊*/word 專業(yè)資料.void user:search()/ 按查找列車信息方式選擇函數(shù)system("cls");int n;cout<<"1.按車次查詢 "<<endl<<"t2. 按起始站查詢"<<endl<<"tt3.按終點(diǎn)站查詢 &q
31、uot;<<endl;cout<<"請(qǐng)選擇 1 或 2 或 3,以回車鍵結(jié)束:"cin>>n;for(;n!=1&&n!=2&&n!=3;)cout<<"指令錯(cuò)誤!請(qǐng)重新輸入!"<<endl;cin>>n;switch (n)case 1:search_CC();break;case 2:search_QS();break;case 3:search_ZD();break;word 專業(yè)資料.void search_CC()/ 按列車號(hào)查找system
32、("cls");char t10;docout<<endl<<"請(qǐng)輸入車次:"<<endl;cin>>t;for (j=0;j<=g_num;j+)if (strcmp(t,ticketj.num)=0)cout<<"你所要查詢的列車信息為:"<<endl;cout<<"車次 t"<<"起始站 t"<<"終點(diǎn)站 t"<<"發(fā)車時(shí)間 t&quo
33、t;<<"票價(jià) t"<<"剩余票數(shù) t"<<"狀態(tài) "<<endl;display(j);cout<<"n查詢完畢,按回車鍵繼續(xù)"<<endl;strcpy(ii, "y");getchar();return;cout<<"n對(duì)不起,沒(méi)有您需要的信息!"<<endl;word 專業(yè)資料.cout<<"是否重新查找?請(qǐng)鍵入y 或 n 以回車鍵結(jié)束 "cin>>ii; while (!strcmp(ii, "y");void search_QS()/ 按列車號(hào)查找system("cls");char q20;docout<<endl<<"請(qǐng)輸入起始站:"<<endl;cin>>q;for ( j=0;j<=g_num;j+)if (strcmp(q,ticketj.start)=0)cout<<"你所要查詢的列車信息為:"<<endl;c
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024常規(guī)終止解除勞動(dòng)合同證明書
- 2024年城市供水工程建設(shè)項(xiàng)目特許經(jīng)營(yíng)合同
- 2024年廢棄物處理拆除勞務(wù)合同
- 有關(guān)產(chǎn)品加工合同經(jīng)典范文
- 2024工傷賠償協(xié)議書示例
- 私營(yíng)店主用人勞動(dòng)合同范本2024年
- 互聯(lián)網(wǎng)接入服務(wù)合同范本
- 標(biāo)準(zhǔn)建房合同范本
- 工程分包合同書范本專業(yè)
- 全面店面出租合同模板
- 杜邦杜邦工程塑料課件
- 砌體工程監(jiān)理實(shí)施細(xì)則
- 運(yùn)輸車輛衛(wèi)生安全檢查記錄表
- 房建裝修修繕工程量清單
- 部編版四年級(jí)道德與法治上冊(cè)第8課《網(wǎng)絡(luò)新世界》優(yōu)質(zhì)課件
- 柴油發(fā)電機(jī)組應(yīng)急預(yù)案
- 格力2匹柜機(jī)檢測(cè)報(bào)告KFR-50LW(50530)FNhAk-B1(性能)
- 分級(jí)護(hù)理制度考試題及答案
- 小學(xué)生勞動(dòng)課炒菜教案(精選8篇)
- 高考作文模擬寫作:“德”與“得”導(dǎo)寫及范文
- 江蘇專轉(zhuǎn)本《大學(xué)語(yǔ)文》考綱
評(píng)論
0/150
提交評(píng)論