版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 信息科學(xué)與技術(shù)學(xué)院</b></p><p> 《程序設(shè)計基礎(chǔ)》課程設(shè)計報告</p><p> 目 錄</p><p> 1 課程設(shè)計綜述————————————————— 3</p><p> 1.1 課程設(shè)計的目的——————————————— 3</p>
2、<p> 1.2 課程設(shè)計的題目——————————————— 3</p><p> 1.3 題目要求—————————————————— 3</p><p> 2 概要設(shè)計——————————————————— 3</p><p> 3 詳細設(shè)計——————————————————— 4</p><p> 3.1 流
3、程圖——————————————————— 4</p><p> 3.2 源程序——————————————————4</p><p> 4 測試——————————————————— 5</p><p> 5 課程設(shè)計總結(jié)—————————————————5</p><p><b> 1.課程設(shè)計綜述<
4、/b></p><p> 1.1 課程設(shè)計的目的</p><p> 讓我們更加深入的了解C++的,使我們一學(xué)期學(xué)習到的東西得到實踐.</p><p> 1.2 課程設(shè)計的題目</p><p><b> 火車票管理系統(tǒng)</b></p><p><b> 1.3 題目要求&l
5、t;/b></p><p> 用c++設(shè)計一個系統(tǒng),能提供下列服務(wù):(1)錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)</p><p> ?。?)瀏覽班次信息,可顯示出所有班次當前狀態(tài)(如果當前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出”的提示信息)。</p><p> (3)查詢路線:可按班次號查詢 ,可按終點站查詢</p>
6、;<p> (4)售票和退票功能</p><p> A:當查詢出已定票人數(shù)小于額定載量且當前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)</p><p> B:退票時,輸入退票的班次,當本班車未發(fā)出時才能退票,自動更新已售票人數(shù)</p><p><b> 2 方案選擇</b></p><p>
7、;<b> 1)算法設(shè)計說明</b></p><p> 由主函數(shù)進入,彈出主菜單界面,通過Switch語句選擇需要的功能,可以選擇班次錄入,瀏覽班次信息,查詢班次信息,購票和退票以及退出系統(tǒng),以完成不同的操作.其中查詢班次信息中還可以由班次查詢或者終點站查詢.整個系統(tǒng)的文件載入用一個文件載入函數(shù)承當.</p><p><b> 3 詳細設(shè)計</
8、b></p><p><b> 3.1 流程圖</b></p><p><b> 3.2 源程序</b></p><p> #include <iostream></p><p> #include <fstream></p><p>
9、; #include <string></p><p> #include<time.h></p><p> using namespace std;</p><p> void welcome(); //歡迎子函數(shù)</p><p> void choose(
10、); //選擇子函數(shù)</p><p> void banciluru(); //班次錄入子函數(shù)</p><p> void liulanbancixinxi(); //瀏覽班次信息子函數(shù)</p><p> void shoupiao
11、(); //售票子函數(shù)</p><p> void tuipiao(); //退票子函數(shù)</p><p> void quit(); //退出子函數(shù)</p><p> void chaxun();
12、 //查詢子函數(shù)</p><p> int loading(); //文件載入子函數(shù)</p><p> const int MAX=20; //使數(shù)組最大值可調(diào)</p><p> const int N=50;</p&
13、gt;<p> struct time //時間結(jié)構(gòu)體,為了與系統(tǒng)時間做比較.</p><p><b> {</b></p><p><b> int hour;</b></p><p> int minutes;</p><
14、;p><b> };</b></p><p> struct ticket //車票結(jié)構(gòu)體,包含車次,時間結(jié)構(gòu)體,起點,終點,行車時間,額定載客量,已訂票人數(shù)</p><p><b> {</b></p><p> int Number;</p>
15、;<p> struct time Setout;</p><p> char Qidian[MAX];</p><p> char Zhongdian[MAX];</p><p> float Lasttime; </p><p> int Fixnumber;</p><p> int F
16、ixednumber;</p><p><b> }car[N];</b></p><p><b> //主函數(shù)</b></p><p> int main()</p><p><b> {</b></p><p> welcome();&
17、lt;/p><p><b> return 0;</b></p><p><b> }</b></p><p><b> //歡迎子函數(shù)</b></p><p> void welcome()</p><p><b> {</b&g
18、t;</p><p> cout<<"________________________________________________________"<<endl;</p><p> cout<<"| 歡 * 迎 * 使 * 用 * 火 * 車 * 票 * 管 * 理 * 系 * 統(tǒng) |"<<en
19、dl;</p><p> cout<<"| |"<<endl;</p><p> cout<<"| 本管理系統(tǒng)有以下功能: |"<<
20、endl;</p><p> cout<<"| |"<<endl;</p><p> cout<<"| 1 班次錄入 |"
21、<<endl;</p><p> cout<<"| 2 瀏覽班次信息 |"<<endl;</p><p> cout<<"| 3 查詢火車信息 |"
22、<<endl;</p><p> cout<<"| 4 購買火車票 |"<<endl;</p><p> cout<<"| 5 退訂火車票 |&quo
23、t;<<endl;</p><p> cout<<"| 6 退出系統(tǒng) |"<<endl;</p><p> cout<<"|___________________________________________________
24、___|"<<endl;</p><p> cout<<"請輸入所要執(zhí)行功能前的數(shù)字: "<<endl;</p><p><b> choose();</b></p><p><b> }</b></p><p><b&g
25、t; //選擇子函數(shù)</b></p><p> void choose()</p><p><b> {</b></p><p><b> string i;</b></p><p><b> cin>>i;</b></p>&l
26、t;p> if(i=="1")</p><p> banciluru();</p><p> if(i=="2")</p><p> liulanbancixinxi();</p><p> if(i=="3")</p><p><b&g
27、t; chaxun();</b></p><p> if(i=="4")</p><p> shoupiao();</p><p> if(i=="5")</p><p> tuipiao();</p><p> if(i=="6")&
28、lt;/p><p><b> quit();</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"輸入有誤!請在數(shù)字1-5之間重新您的輸入選擇!"<<endl;
29、</p><p><b> choose();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //班次錄入子函數(shù)</b></p><p> void banc
30、iluru()</p><p><b> {</b></p><p> string t="1";</p><p> ofstream outfile;</p><p> outfile.open("班次信息.txt",ios::app);</p><p
31、> for(int i=0;t=="1";i++)</p><p><b> {</b></p><p> cout<<"請輸入需要添加的火車班次:"<<endl;</p><p> cin>>car[i].Number;</p><p
32、> cout<<"請輸入此班次發(fā)車時間(格式:先輸入小時,回車,再輸入分鐘):"<<endl;</p><p> cin>>car[i].Setout.hour;</p><p> cin>>car[i].Setout.minutes;</p><p> cout<<&qu
33、ot;請輸入出發(fā)站:"<<endl;</p><p> cin>>car[i].Qidian;</p><p> cout<<"請輸入終點站:"<<endl;</p><p> cin>>car[i].Zhongdian;</p><p> co
34、ut<<"請輸入行車時間:"<<endl;</p><p> cin>>car[i].Lasttime;</p><p> cout<<"請輸入額定載客量:"<<endl;</p><p> cin>>car[i].Fixnumber;</p&
35、gt;<p> cout<<"請輸入已訂票人數(shù):"<<endl;</p><p> cin>>car[i].Fixednumber;</p><p> outfile<<car[i].Number<<" "<<car[i].Setout.hour<<
36、;" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber&
37、lt;<" "<<car[i].Fixednumber<<endl;</p><p> cout<<"是否繼續(xù)錄入?(是請輸1,否請輸任意鍵返回主菜單)"<<endl;</p><p><b> cin>>t;</b></p><p>
38、 if(t!="1")</p><p><b> {</b></p><p> welcome();</p><p><b> }</b></p><p><b> }</b></p><p> outfile.close
39、();</p><p> cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p><b> }</b></p&g
40、t;<p><b> //瀏覽班次子函數(shù)</b></p><p> void liulanbancixinxi()</p><p><b> {</b></p><p><b> int c;</b></p><p> c=loading();</
41、p><p> cout<<"班次"<<" "<<"發(fā)車時間"<<" "<<"起點站"<<" "<<"終點站"<<" "<<"行車時間&quo
42、t;<<" "<<"額定載客量"<<" "<<"已訂票人數(shù)"<<endl;</p><p> for(int i=0;i<c;i++)</p><p><b> {</b></p><p> c
43、out<<car[i].Number<<" "<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian&l
44、t;<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;</p><p> time_t tval;</p><p>
45、struct tm *now;</p><p> tval = time(NULL);</p><p> now = localtime(&tval);</p><p> if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||
46、(now->tm_hour>car[i].Setout.hour))</p><p> cout<<"此車已發(fā)出"<<endl;</p><p><b> }</b></p><p> cout<<"輸入回車鍵返回"<<endl;</
47、p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p><b> }</b></p><p><b> //車次查詢子函數(shù)</b></p><p> void Numb
48、ersearch();</p><p> void Finalsearch();</p><p> void chaxun()</p><p><b> {</b></p><p><b> string t;</b></p><p> cout<<&q
49、uot;1.按班次查詢"<<endl;</p><p> cout<<"2.按終點站查詢"<<endl;</p><p> cout<<"請輸入您想選擇的查詢方法前的數(shù)字:"<<endl;</p><p><b> cin>>t;
50、</b></p><p> if(t=="1")</p><p> Numbersearch();</p><p> if(t=="2")</p><p> Finalsearch();</p><p> if(t!="1"||t!=&q
51、uot;2")</p><p><b> {</b></p><p> cout<<"輸入有誤,請重新輸入"<<endl;</p><p><b> chaxun();</b></p><p><b> }</b>&
52、lt;/p><p><b> }</b></p><p><b> //班次查詢子函數(shù)</b></p><p> void Numbersearch()</p><p><b> {</b></p><p> loading();</p>
53、;<p> int SearchNumber;</p><p> cout<<"請輸入您需要查找的班次號:"<<endl;</p><p> cin>>SearchNumber;</p><p> cout<<"班次"<<" "
54、;<<"發(fā)車時間"<<" "<<"起點站"<<" "<<"終點站"<<" "<<"行車時間"<<" "<<"額定載客量"<<" &
55、quot;<<"已訂票人數(shù)"<<endl;</p><p> cout<<car[SearchNumber-1].Number<<" "<<car[SearchNumber-1].Setout.hour<<":"<<car[SearchNumber-1].Seto
56、ut.minutes<<" "<<car[SearchNumber-1].Qidian<<" "<<car[SearchNumber-1].Zhongdian<<" "<<car[SearchNumber-1].Lasttime<<" "<&
57、lt;car[SearchNumber-1].Fixnumber<<" "<<car[SearchNumber-1].Fixednumber<<endl;</p><p> cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p&g
58、t;<p> getchar();</p><p> welcome();</p><p><b> }</b></p><p> //終點站查詢子函數(shù)</p><p> void Finalsearch()</p><p><b> {</b>&l
59、t;/p><p><b> int R;</b></p><p> R=loading();</p><p><b> int i;</b></p><p> char Address[MAX];</p><p> cout<<"請輸入終點站名稱:
60、"<<endl;</p><p> cin>>Address;</p><p> cout<<"班次"<<" "<<"發(fā)車時間"<<" "<<"起點站"<<" "
61、<<"終點站"<<" "<<"行車時間"<<" "<<"額定載客量"<<" "<<"已訂票人數(shù)"<<endl;</p><p> for(i=0;i<R;i++)</
62、p><p><b> {</b></p><p> if((strcmp(Address,car[i].Zhongdian))==0)</p><p> cout<<car[i].Number<<" "<<car[i].Setout.hour<<":"
63、;<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber
64、<<" "<<car[i].Fixednumber<<endl;</p><p><b> }</b></p><p> cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p&g
65、t;<p> getchar();</p><p> welcome();</p><p><b> }</b></p><p> //購買火車票子函數(shù)</p><p> void shoupiao()</p><p><b> {</b></
66、p><p><b> int R;</b></p><p> R=loading();</p><p><b> int i;</b></p><p> cout<<"請輸入要訂購的車票的班次:"<<endl;</p><p>
67、<b> cin>>i;</b></p><p> if(i<=0||i>R)</p><p><b> {</b></p><p> cout<<"對不起,今天沒有這趟車,請明天再來,謝謝使用!"<<endl;</p><p&
68、gt; cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p><b> }</b></p><p> time_t
69、 tval;</p><p> struct tm *now;</p><p> tval = time(NULL);</p><p> now = localtime(&tval);</p><p> if((now->tm_hour==car[i-1].Setout.hour&&now->tm_
70、min<car[i-1].Setout.minutes)||(now->tm_hour<car[i-1].Setout.hour))</p><p><b> {</b></p><p> if(car[i-1].Fixednumber<car[i-1].Fixnumber)</p><p><b> {
71、</b></p><p> (car[i-1].Fixednumber)++;</p><p> ofstream outfile;</p><p> outfile.open("班次信息.txt",ios::out);</p><p> for(i=0;i<R;i++)</p>&
72、lt;p><b> {</b></p><p> outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian
73、<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;</p><p><b
74、> }</b></p><p> outfile.close();</p><p> cout<<"你的訂票成功,請按時上車,謝謝使用!"<<endl;</p><p><b> }</b></p><p> else cout<<&qu
75、ot;對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作"<<endl;</p><p><b> }</b></p><p> else cout<<"對不起,今天的這趟車已發(fā)出,請明天再來,謝謝合作"<<endl;</p><p> cout<<"
76、;輸入回車鍵返回"<<endl;</p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p><b> }</b></p><p> //退訂火車票子函數(shù)</p><p&
77、gt; void tuipiao()</p><p><b> {</b></p><p><b> int R;</b></p><p> R=loading();</p><p><b> int i;</b></p><p> cout
78、<<"請輸入要退購的車票的班次:"<<endl;</p><p><b> cin>>i;</b></p><p> if(i<=0||i>R)</p><p><b> {</b></p><p> cout<<
79、;"對不起,今天沒有這趟車,無法完成退票.謝謝使用!"<<endl;</p><p> cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p><p> getchar();</p><p> welcome();<
80、/p><p><b> }</b></p><p> time_t tval;</p><p> struct tm *now;</p><p> tval = time(NULL);</p><p> now = localtime(&tval);</p><p
81、> if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min<car[i-1].Setout.minutes)||(now->tm_hour<car[i-1].Setout.hour))</p><p><b> {</b></p><p> if(car[i-1]
82、.Fixednumber>=1)</p><p><b> {</b></p><p> car[i-1].Fixednumber-=1;</p><p> ofstream outfile;</p><p> outfile.open("班次信息.txt",ios::out);<
83、/p><p> for(i=0;i<R;i++)</p><p><b> {</b></p><p> outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setou
84、t.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i]
85、.Fixednumber<<endl;</p><p><b> }</b></p><p> outfile.close();</p><p> cout<<"退訂車票成功,謝謝使用!"<<endl;</p><p><b> }</b&g
86、t;</p><p> else cout<<"對不起,今天的這趟車的票尚未賣出,無法完成退票!"<<endl;</p><p><b> }</b></p><p> else cout<<"對不起,今天的這趟車已發(fā)出,無法完成退票!"<<endl;
87、</p><p> cout<<"輸入回車鍵返回"<<endl;</p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p><b> }</b></p>
88、<p><b> //退出子函數(shù)</b></p><p> void quit()</p><p><b> {</b></p><p> cout<<"*********************謝謝使用本系統(tǒng),歡迎下次繼續(xù)使用***********************&quo
89、t;<<endl;</p><p><b> } </b></p><p><b> //文件載入子函數(shù)</b></p><p> int loading()</p><p><b> {</b></p><p><b>
90、 int i;</b></p><p> ifstream infile;</p><p> infile.open("班次信息.txt",ios::in);</p><p> if(!infile)</p><p><b> {</b></p><p>
91、 cout<<"請查看原文件是否存在!"<<endl;</p><p> cout<<"按任意鍵返回";</p><p> getchar();</p><p> getchar();</p><p> welcome();</p><p&
92、gt;<b> }</b></p><p> for(i=0;!infile.eof();i++)</p><p><b> {</b></p><p> infile>>car[i].Number>>car[i].Setout.hour>>car[i].Setout.minut
93、es>>car[i].Qidian>>car[i].Zhongdian>>car[i].Lasttime>>car[i].Fixnumber>>car[i].Fixednumber;</p><p><b> }</b></p><p> return i-1;</p><p>&
94、lt;b> }</b></p><p><b> 4 測試</b></p><p><b> 主菜單:</b></p><p><b> 班次錄入:</b></p><p><b> 瀏覽班次信息:</b></p>
95、<p><b> 查詢火車信息:</b></p><p> 測試中發(fā)現(xiàn)訂購和退訂車票后,雖然已訂購車票數(shù)實際上有增減,但不能存入到文件中及時保存.后來通過以文件覆蓋的方法重新錄入一次文件得以解決.測試中還發(fā)現(xiàn)若時間是整點的話,分鐘的0只能是一個0,因為分鐘定義的格式是int.,但若果改成char格式之后和系統(tǒng)時間比較的函數(shù)將不成立.所以這個程序仍然存在這樣的一個問題.<
96、;/p><p><b> 5 課程設(shè)計總結(jié)</b></p><p> 通過這次的課程設(shè)計,我發(fā)現(xiàn)我還有好多的不足之處,還有好多知識不能很好的運用,而且題目中的一個要求沒有正常的完成.我覺得我們應(yīng)該花更多的時間去查找資料,因為僅憑自己已學(xué)的知識是無法完成這些內(nèi)容的.</p><p> 這次課程設(shè)計我用了9個子函數(shù)去完成,分開完成各個函數(shù)并驗證
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--火車票信息管理系統(tǒng)
- 火車票管理系統(tǒng)課程設(shè)計
- c++酒店管理系統(tǒng)課程設(shè)計
- java課程設(shè)計--火車票管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計
- 銷售管理系統(tǒng)c++課程設(shè)計
- 《c++》課程設(shè)計倉庫管理系統(tǒng)
- c++課程設(shè)計-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--酒店管理系統(tǒng)
- c++課程設(shè)計--c++程序設(shè)計語言
- c++課程設(shè)計---商場管理
- c++課程設(shè)計--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計學(xué)生通訊管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計報告-- 學(xué)籍管理系統(tǒng)
- c++課程設(shè)計---學(xué)生學(xué)籍管理系統(tǒng)
評論
0/150
提交評論