版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 實(shí)習(xí)名稱 課程設(shè)計(jì)報(bào)告 </p><p> 設(shè)計(jì)題目 火車(chē)票訂票系統(tǒng) </p><p> 實(shí)習(xí)時(shí)間 2012年3月 12日-3月18日</p><p> 專業(yè)班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)
2、 </p><p><b> 目錄</b></p><p><b> 一.實(shí)驗(yàn)?zāi)康?</b></p><p><b> 二.需求分析1</b></p><p><b> 三.概要設(shè)計(jì)2</b></p><p>
3、<b> 四.詳細(xì)設(shè)計(jì)2</b></p><p> 五.調(diào)試與測(cè)試結(jié)果分析6</p><p><b> 六.使用說(shuō)明8</b></p><p><b> 七.感想總結(jié)9</b></p><p><b> 八.參考文獻(xiàn)9</b>
4、</p><p><b> 九.附錄9</b></p><p><b> 實(shí)驗(yàn)?zāi)康?lt;/b></p><p> 當(dāng)今計(jì)算機(jī)在各行各業(yè)領(lǐng)域中其重要作用,不僅代替人力物力財(cái)力也節(jié)省了大量的時(shí)間,提高了工作的效率。生活中,銀行的存款取款轉(zhuǎn)賬等各種系統(tǒng)、超市中的物品錄入系統(tǒng)、中國(guó)13億人口的信息管理系統(tǒng)、校園中學(xué)生信息的管
5、理等等,都離不開(kāi)計(jì)算機(jī)的應(yīng)用。</p><p> 現(xiàn)今,乘坐火車(chē)也成為一種流行的交通工具,方便舒適快捷??稍鯓庸芾砗贸丝统俗畔⒁惨患陵P(guān)重要的事情,首先坐車(chē)就要先設(shè)計(jì)一個(gè)乘客訂票系統(tǒng),使乘客訂票更加方便快捷,以免出現(xiàn)不必要的麻煩。 </p><p><b> 需求分析</b></p><p> 經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的
6、設(shè)計(jì)實(shí)現(xiàn)大致分為八個(gè)模塊,每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,添加車(chē)次數(shù)據(jù)函數(shù)、售票函數(shù)、查詢總額函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而顯示時(shí)間函數(shù)和顯示車(chē)次函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對(duì)其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。</p><p> 1. 添加車(chē)次函數(shù) 主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)車(chē)次的錄入</p><p> 2. 旅客買(mǎi)票函數(shù) 實(shí)現(xiàn)
7、的功能是按照旅客所需車(chē)次幾所購(gòu)買(mǎi)車(chē)票的數(shù)目</p><p> 3. 查詢車(chē)票總額 按照題目的具體要求實(shí)現(xiàn)的是總額的查詢</p><p> 4. 顯示函數(shù) 實(shí)現(xiàn)的是顯示目前所有的有效車(chē)次信息</p><p> 除上面介紹的功能之外,程序還具有顯示當(dāng)?shù)貢r(shí)間,以及退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。</p>
8、;<p> 每一個(gè)車(chē)次都包含車(chē)次、日期,始發(fā)、終點(diǎn)以及所受票數(shù)和所需費(fèi)用,在程序當(dāng)中,將車(chē)次類(lèi)型定義為結(jié)構(gòu)體類(lèi)型,添加的車(chē)次信息直接寫(xiě)入E盤(pán)的train.txt文件中,其它函數(shù)每次對(duì)車(chē)次記錄的訪問(wèn),其數(shù)據(jù)來(lái)源都是train.txt文件,這樣做不但可以保證學(xué)生數(shù)據(jù)的一致性,而且可以對(duì)車(chē)次數(shù)據(jù)進(jìn)行永久保存,保證每次運(yùn)行程序都可以采用原來(lái)的數(shù)據(jù)。</p><p><b> 概要設(shè)計(jì)</
9、b></p><p> 本程序主要由九個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù)、刪除數(shù)據(jù)函數(shù)和排序函數(shù)是程序中較為核心的部分。每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù),在需求分析中已提到每個(gè)模塊相關(guān)的應(yīng)用及作用。</p><p> 圖一 火車(chē)訂票系統(tǒng)的功能示意圖</p><p><b>
10、; 詳細(xì)設(shè)計(jì)</b></p><p> 下面分別對(duì)每個(gè)模塊進(jìn)行說(shuō)明分析:</p><p> 4.1函數(shù)及數(shù)據(jù)成員</p><p> 在定義成員函數(shù)時(shí)要注意成員函數(shù)的實(shí)現(xiàn)與調(diào)用,數(shù)據(jù)成員注意成員的類(lèi)型,在定義數(shù)組時(shí)注意數(shù)組的要求,數(shù)組只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。字符數(shù)組的輸入、輸出可以將整個(gè)字符串依次輸入或輸出。</p>
11、<p> { int num;</p><p> int date ;</p><p><b> char[0] ;</b></p><p> char ter[20];</p><p> int maipiao;</p><p> float tickepr
12、ice;</p><p><b> };</b></p><p> void menu();</p><p> int reads(struct train tra[N]);</p><p> void save(struct train tra[N],int n);</p><p>
13、void add();</p><p> void sell();</p><p> void show();</p><p> void localtimes();</p><p> void all();</p><p> 4.2 編寫(xiě)進(jìn)入訂票系統(tǒng)的程序</p><p> 首先編
14、寫(xiě)一個(gè)主程序,定義整型的車(chē)次數(shù),利用while語(yǔ)句,“輸入您要選擇的操作序號(hào),按回車(chē)鍵確認(rèn)”,然后再利用switch語(yǔ)句選擇需要進(jìn)入的項(xiàng)目。具體程序操作如下:</p><p> void main()</p><p><b> {</b></p><p><b> int n;</b></p><
15、p><b> while(1)</b></p><p><b> { </b></p><p><b> menu();</b></p><p> printf("\n 請(qǐng)輸入您要選擇的操作序號(hào),按回車(chē)鍵確認(rèn):");</p><p> sca
16、nf("%d",&n);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: localtimes();break;</p><p> case 2: add();break;</p&
17、gt;<p> case 3: show();break;</p><p> case 4: sell();break;</p><p> case 5: all();break;</p><p> case 6: exit(0);</p><p> default: printf("輸入錯(cuò)誤,請(qǐng)輸入列表中
18、存在的序號(hào)!\n ");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void menu()</p><p><b> {</b&
19、gt;</p><p> printf(" ************************* 北京西站火車(chē)訂票系統(tǒng)************************ ");</p><p> printf("\n 1 顯示當(dāng)前時(shí)間");</p><p&g
20、t; printf("\n 2 車(chē)次信息錄入");</p><p> printf("\n 3 顯示");</p><p> printf("\n 4
21、 旅客買(mǎi)票");</p><p> printf("\n 5 統(tǒng)計(jì)某日銷(xiāo)售金額");</p><p> printf("\n 6 退出");</p><p><b> }</b&g
22、t;</p><p> 4.3 錄入車(chē)次信息函數(shù)</p><p> 錄入車(chē)次信息,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的車(chē)次信息寫(xiě)入該文件(e:\\train.txt)當(dāng)中。具體的程序段如下:</p><p> if((fp=fopen("e:\\train.txt","a"))==NULL) //如果文件已經(jīng)存在,可以
23、追加車(chē)次信息</p><p><b> {</b></p><p> if((fp=fopen("e:\\train.txt","w"))==NULL) // 文件不存在時(shí),創(chuàng)建新文件,輸入車(chē)次信息</p><p><b> { </b></p><p>
24、; printf("文件打開(kāi)失??!\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("請(qǐng)輸入要車(chē)次的數(shù)量,按回車(chē)鍵確認(rèn)
25、:"); </p><p> scanf("%d",&n);</p><p> for(i=1;i<=n;i++)</p><p><b> { </b></p><p> printf("\n請(qǐng)輸入第%d個(gè)車(chē)的車(chē)次,日期,始發(fā),終點(diǎn),用空格分開(kāi),并按回車(chē)鍵確
26、認(rèn):\n",i);</p><p> scanf("%d%d%s%s",&tra.num,&tra.date,tra.from,tra.ter);</p><p> printf("\n請(qǐng)輸入第%d個(gè)賣(mài)出的數(shù)量,車(chē)次所需的費(fèi)用,用空格分開(kāi),并按回車(chē)鍵確認(rèn):\n",i);</p><p> sca
27、nf("%d%f",&tra.maipiao,&tra.tickeprice);</p><p> fprintf(fp,"%d %d %s %s %d %f\n",tra.num,tra.date,tra.from,tra.ter,tra.maipiao,tra.tickeprice);</p><p><b> }
28、</b></p><p> fclose(fp);</p><p><b> }</b></p><p> 4.4 旅客買(mǎi)票函數(shù)</p><p> 對(duì)于買(mǎi)票,這部分程序然調(diào)用了reads函數(shù),首先應(yīng)輸入旅客所買(mǎi)車(chē)次,然用if函數(shù)進(jìn)行比較,如果成立就進(jìn)行一下售票以及金額運(yùn)算,最后調(diào)用save函數(shù)進(jìn)行更新
29、。</p><p><b> 具體程序如下:</b></p><p> n=reads(tra);</p><p> printf("\n請(qǐng)輸入待查詢的車(chē)次號(hào),按回車(chē)鍵確認(rèn):\n");</p><p> scanf("%d",&num);</p>&l
30、t;p> for(i=0;i<n;i++)</p><p> if(num==tra[i].num) break;</p><p><b> if(i>=n)</b></p><p><b> {</b></p><p> printf("沒(méi)有找到該車(chē)次信息!\
31、n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\n請(qǐng)輸入所買(mǎi)票數(shù),按回車(chē)鍵確認(rèn):\n");</p>
32、<p> scanf("%d",&j);</p><p> tra[i].maipiao=tra[i].maipiao+j;</p><p> printf("\n購(gòu)買(mǎi)成功\n");</p><p> printf("\n%12d%11d%11s%11s%11d%11.2f\n"
33、;,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);</p><p> save(tra,n);</p><p> 4.5 查詢銷(xiāo)售總額</p><p> 對(duì)于也使用比較日期的方法實(shí)現(xiàn)的,這部分程序仍然調(diào)用了reads函數(shù),整個(gè)排序過(guò)程在文件中實(shí)現(xiàn),
34、然后用for循環(huán)進(jìn)行運(yùn)算,把查詢這一天的總額算出。</p><p><b> 具體程序如下:</b></p><p> if((fp=fopen("e:\\train.txt","r"))==NULL) { printf("讀取錯(cuò)誤,不能打開(kāi)該文件!!\n"); return; }else for(i=
35、0;i<N;i++)fscanf(fp," %d %d %s %s %d %f\n",&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice); </p><p> printf("請(qǐng)輸入你要查詢的日期:\n"); sc
36、anf("%d",&temp.date); for(i=0;i<N;i++)if(temp.date==tra[i].date){sum=sum+tra[i].maipiao*tra[i].tickeprice;j=1; } if(j==0) printf("無(wú)此日期銷(xiāo)售信息,請(qǐng)重新輸入") else pintf("今天的總銷(xiāo)售額為:%f\n",sum);
37、fclose(fp);</p><p><b> 調(diào)試與測(cè)試結(jié)果分析</b></p><p> 在程序編寫(xiě)完成后,進(jìn)行了調(diào)試,發(fā)現(xiàn)了大量的錯(cuò)誤,我從提示中對(duì)程序進(jìn)行了修改,但是還存在很多錯(cuò)誤。我查閱了課本以及參考書(shū),知道了一些語(yǔ)法錯(cuò)誤在運(yùn)行時(shí)系統(tǒng)不會(huì)給出提示,即使運(yùn)行成功,結(jié)果也是錯(cuò)誤的。在處理錯(cuò)誤的過(guò)程中我們發(fā)現(xiàn)對(duì)指針及鏈接的應(yīng)用不熟練。通過(guò)書(shū)本我們重新學(xué)習(xí)了指
38、針和鏈接的基本用法及要求。知道了如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說(shuō),該變量存儲(chǔ)一個(gè)地址,而 *(此處特指單目運(yùn)算符 * ,下同。C語(yǔ)言中另有 雙目運(yùn)算符 * ) 則是取內(nèi)容操作符,意思是取這個(gè)內(nèi)存地址里存儲(chǔ)的內(nèi)容。指針是 C 語(yǔ)言區(qū)別于其他同時(shí)代高級(jí)語(yǔ)言的主要特征之一。 </p><p> 指針不僅可以是變量的地址,還可以是數(shù)組、數(shù)組元素、函數(shù)的地址。通過(guò)指針作為形式參數(shù)可以在
39、函數(shù)的調(diào)用過(guò)程得到一個(gè)以上的返回值(不同于return(z)這樣的僅能得到一個(gè)返回值。指針是一把雙刃劍,許多操作可以通過(guò)指針自然的表達(dá),但是不正確的或者過(guò)分的使用指針又會(huì)給程序帶來(lái)大量潛在的錯(cuò)誤。鏈接程序把所有對(duì)象文件中的機(jī)器碼組合在一起,并解析它們之間的交叉引用。它還集成了對(duì)象模塊所使用的庫(kù)函數(shù)的代碼。這是鏈接程序的一種簡(jiǎn)化表示,因?yàn)檫@里假定在可執(zhí)行模塊中,模塊之間的所有鏈接都是靜態(tài)建立的。實(shí)際上有些鏈接是動(dòng)態(tài)的,即這些鏈接是在程序執(zhí)
40、行時(shí)建立的。</p><p> 最后在我們一步步的修改最終調(diào)試顯示正確并且按照提示能正確進(jìn)入各個(gè)操作以及查詢訂票系統(tǒng)方面需求。</p><p> 圖二 火車(chē)訂票系統(tǒng)開(kāi)始的登陸頁(yè)面</p><p><b> 使用說(shuō)明</b></p><p> 在使用過(guò)程中根據(jù)個(gè)人的需求以及系統(tǒng)的提示下進(jìn)入火車(chē)訂票系統(tǒng),首先進(jìn)入系
41、統(tǒng)首頁(yè),會(huì)出現(xiàn)以下幾項(xiàng):顯示當(dāng)前時(shí)間、車(chē)次信息錄入、顯示、旅客買(mǎi)票、統(tǒng)計(jì)某日銷(xiāo)售金額、退出,旅客可根據(jù)自己的需求選擇每一項(xiàng)前的序號(hào),即可進(jìn)入該系統(tǒng),然后根據(jù)所選項(xiàng)目提示完成操作。</p><p> 操作完成后系統(tǒng)會(huì)自動(dòng)退出以保證旅客的信息安全不至于泄露。</p><p> 圖三 火車(chē)訂票系統(tǒng)顯示當(dāng)前時(shí)間頁(yè)面</p><p><b> 感想總結(jié)<
42、/b></p><p> 通過(guò)這次學(xué)習(xí),使我更加深刻的了解了C語(yǔ)言以及C++的用處,也使我更加喜歡這一學(xué)科,不僅鞏固了課本上的知識(shí)而且學(xué)到很多課本外的知識(shí),并且培養(yǎng)了自己耐心細(xì)心用心的性格。</p><p> 回想這次課程設(shè)計(jì)編寫(xiě),我認(rèn)識(shí)到實(shí)踐與理論相結(jié)合的重要性,實(shí)踐提高自身的動(dòng)手能力,理論為實(shí)踐做基礎(chǔ),二者缺一不可,相輔相成。想想剛開(kāi)始編寫(xiě)的時(shí)候可以說(shuō)是無(wú)從下手,從一頁(yè)頁(yè)學(xué)習(xí)
43、課本,一次次的考慮,一遍遍的修改草稿才得以完成,這些東西在我以前的學(xué)習(xí)生活中從未做過(guò),雖然完成的并不理想但對(duì)自身來(lái)說(shuō)也是一次大的進(jìn)步。</p><p> 在編寫(xiě)過(guò)程中存在著一些方面的不足之處,比如:在統(tǒng)計(jì)金額方面不會(huì)使用定義時(shí)間的函數(shù),不能把時(shí)間函數(shù)有效的使用;在結(jié)構(gòu)體的運(yùn)用當(dāng)中顯得力不從心,從而使程序出現(xiàn)各種各樣的問(wèn)題,有了一些瑕疵。當(dāng)然也只能希望在以后的學(xué)習(xí)中我能夠慢慢的把這些問(wèn)題解決掉。同時(shí)要感謝幫助過(guò)我
44、的老師和同學(xué),沒(méi)有他們的幫助也沒(méi)有我的進(jìn)步。</p><p><b> 參考文獻(xiàn)</b></p><p> 1 譚浩強(qiáng) C程序設(shè)計(jì) 北京:清華大學(xué)出版社,2005</p><p> 2 劉成等 C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集 北京:中國(guó)鐵道出版社,2006</p><p> 3 謝延紅、王付
45、山 C語(yǔ)言程序設(shè)計(jì)教程 北京:國(guó)防工業(yè)出版社,2010 </p><p><b> 附錄</b></p><p><b> 源程序:</b></p><p> #include<stdio.h></p><p> #include<stdlib.h><
46、;/p><p> #include "time.h"</p><p> #include"conio.h"</p><p> #define N 20</p><p> struct train</p><p> { int num;</p><p&
47、gt; int date ;</p><p> char from[20];</p><p> char ter[20];</p><p> int maipiao;</p><p> float tickeprice;</p><p><b> };</b></p>&
48、lt;p> void menu();</p><p> int reads(struct train tra[N]);</p><p> void save(struct train tra[N],int n);</p><p> void add();</p><p> void sell();</p><
49、;p> void show();</p><p> void localtimes();</p><p> void all();</p><p> void main()</p><p><b> {</b></p><p><b> int n;</b>
50、</p><p><b> while(1)</b></p><p><b> { </b></p><p><b> menu();</b></p><p> printf("\n 請(qǐng)輸入您要選擇的操作序號(hào),按回車(chē)鍵確認(rèn):");</p>
51、<p> scanf("%d",&n);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: localtimes();break;</p><p> case 2: add
52、();break;</p><p> case 3: show();break;</p><p> case 4: sell();break;</p><p> case 5: all();break;</p><p> case 6: exit(0);</p><p> default: printf(&
53、quot;輸入錯(cuò)誤,請(qǐng)輸入列表中存在的序號(hào)!\n ");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void menu()</p><p><
54、;b> {</b></p><p> printf(" *************************德州火車(chē)訂票系統(tǒng)************************ ");</p><p> printf("\n 1 顯示當(dāng)前時(shí)間");</p>
55、<p> printf("\n 2 車(chē)次信息錄入");</p><p> printf("\n 3 顯示");</p><p> printf("\n
56、 4 旅客買(mǎi)票");</p><p> printf("\n 5 統(tǒng)計(jì)某日銷(xiāo)售金額");</p><p> printf("\n 6 退出");</p><p><b> }
57、</b></p><p> int reads(struct train tra[N]) // 讀取車(chē)次中的內(nèi)容</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i=0;</b>
58、</p><p> if((fp=fopen("e:\\train.txt","r"))==NULL)</p><p><b> { </b></p><p> printf("文件打開(kāi)失?。n");</p><p><b> return
59、0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> for(i=0;!feof(fp);i++)</p><p> fscanf(f
60、p,"%d %d %s %s %d %f\n",&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);</p><p><b> }</b></p><p> fclose(fp);</p>
61、;<p><b> return i;</b></p><p><b> }</b></p><p> void save(struct train tra[N],int n) // 車(chē)次信息改變后更新文件</p><p><b> {</b></p><p&
62、gt;<b> FILE *fp;</b></p><p><b> int i=0;</b></p><p> if((fp=fopen("e:\\train.txt","w"))==NULL)</p><p><b> { </b></p>
63、;<p> printf("文件打開(kāi)失??!\n");</p><p><b> return ;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {<
64、/b></p><p> for(i=0;i<n;i++)</p><p> fprintf(fp,"%d %d %s %s %d %f\n",tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);</p><p><b
65、> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void add() /*錄入車(chē)次信息*/</p><p><b> {</b>&
66、lt;/p><p><b> FILE *fp;</b></p><p><b> int n,i;</b></p><p> struct train tra;</p><p> if((fp=fopen("e:\\train.txt","a"))==N
67、ULL) //如果文件已經(jīng)存在,可以追加車(chē)次信息</p><p><b> {</b></p><p> if((fp=fopen("e:\\train.txt","w"))==NULL) // 文件不存在時(shí),創(chuàng)建新文件,輸入車(chē)次信息</p><p><b> { </b
68、></p><p> printf("文件打開(kāi)失?。n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> Print
69、f("請(qǐng)輸入要車(chē)次的數(shù)量,按回車(chē)鍵確認(rèn)"); </p><p> scanf("%d",&n);</p><p> for(i=1;i<=n;i++)</p><p><b> { </b></p><p> Printf("\n請(qǐng)輸入第%d個(gè)車(chē)的車(chē)
70、次,日期,始發(fā),終點(diǎn),用空格分開(kāi),并按回車(chē)鍵確認(rèn):\n",i);</p><p> scanf("%d%d%s%s",&tra.num,&tra.date,tra.from,tra.ter);</p><p> printf ("\n請(qǐng)輸入第%d個(gè)賣(mài)出的數(shù)量,車(chē)次所需的費(fèi)用,用空格分開(kāi)并按回車(chē)鍵確認(rèn):\n",i);<
71、;/p><p> scanf("%d%f",&tra.maipiao,&tra.tickeprice);</p><p> fprintf(fp,"%d %d %s %s %d %f\n",tra.num,tra.date,tra.from,tra.ter,tra.maipiao,tra.tickeprice);</p>
72、<p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void show() // 車(chē)次信息顯示函數(shù)</p><p><b&
73、gt; {</b></p><p> struct train tra[N];</p><p><b> int i,n;</b></p><p> n=reads(tra);</p><p> printf("*********************所有的車(chē)次信息如下*********
74、*************\n\n");</p><p> printf(" 序號(hào) 車(chē)次 日期 始發(fā) 終點(diǎn) 賣(mài)出 票價(jià) \n");</p><p> printf("***************************************************
75、**********\n"); </p><p> for(i=0;i<n;i++)</p><p> printf("\n%3d%12d%11d%11s%11s%11d%11.2f\n",i+1,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickepric
76、e);</p><p><b> getch();</b></p><p><b> }</b></p><p> void sell() // 按顧客要求對(duì)車(chē)次信息賣(mài)票</p><p><b> {</b>&
77、lt;/p><p> struct train tra[N];</p><p> int num,n,j;</p><p><b> int i;</b></p><p> n=reads(tra);</p><p> printf("\n請(qǐng)輸入待查詢的車(chē)次號(hào),按回車(chē)鍵確認(rèn):\n&
78、quot;);</p><p> scanf("%d",&num);</p><p> for(i=0;i<n;i++)</p><p> if(num==tra[i].num) break;</p><p><b> if(i>=n)</b></p><
79、;p><b> {</b></p><p> printf("沒(méi)有找到該車(chē)次信息!\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b&g
80、t;</p><p> printf("\n請(qǐng)輸入所買(mǎi)票數(shù),按回車(chē)鍵確認(rèn):\n");</p><p> scanf("%d",&j);</p><p> tra[i].maipiao=tra[i].maipiao+j;</p><p> printf("\n購(gòu)買(mǎi)成功\n&quo
81、t;);</p><p> printf("\n%12d%11d%11s%11s%11d%11.2f\n",tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);</p><p> save(tra,n);</p><p><b&g
82、t; }</b></p><p> void all()//統(tǒng)計(jì)銷(xiāo)售金額</p><p><b> {</b></p><p> struct train tra[N],temp;</p><p> float sum=0;</p><p><b> FILE *
83、fp;</b></p><p> int i,j=0;</p><p> if((fp=fopen("e:\\train.txt","r"))==NULL) </p><p> { printf("讀取錯(cuò)誤,不能打開(kāi)該文件!!\n");</p><p><b
84、> return;</b></p><p><b> }</b></p><p><b> else</b></p><p> for(i=0;i<N;i++)</p><p> fscanf(fp," %d %d %s %s %d %f\n",
85、&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice); </p><p> printf("請(qǐng)輸入你要查詢?nèi)掌?\n"); </p><p> scanf("%d",&temp.date);
86、 </p><p> for(i=0;i<N;i++)</p><p> if(temp.date==tra[i].date)</p><p> {sum=sum+tra[i].maipiao*tra[i].tickeprice;j=1; }</p><p><b> if(j==0)</b&g
87、t;</p><p> printf("無(wú)此日期銷(xiāo)售信息,請(qǐng)重新輸入");</p><p><b> else</b></p><p> printf("今天的總銷(xiāo)售額為:%f\n",sum);</p><p> fclose(fp);</p><p&g
88、t;<b> }</b></p><p> void localtimes() /*提取當(dāng)?shù)貢r(shí)間*/</p><p><b> {</b></p><p> struct tm *p;</p><p> time_t t;</p&g
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)-學(xué)生火車(chē)訂票系統(tǒng)設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--火車(chē)訂票系統(tǒng)
- 用c#做火車(chē)訂票管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---火車(chē)票訂票管理
- 軟件工程課程設(shè)計(jì)火車(chē)票網(wǎng)上訂票系統(tǒng)
- 火車(chē)訂票系統(tǒng)
- 火車(chē)訂票系統(tǒng)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)—飛機(jī)訂票系統(tǒng)
- 課程設(shè)計(jì)—火車(chē)售票系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告-民航訂票系統(tǒng)
- 航空訂票管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告-航空訂票系統(tǒng)
- 民航訂票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 火車(chē)售票系統(tǒng)課程設(shè)計(jì)
- 火車(chē)票訂票系統(tǒng)畢業(yè)設(shè)計(jì)報(bào)告 火車(chē)票訂票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- c語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)
評(píng)論
0/150
提交評(píng)論