簡(jiǎn)單的汽車站售票系統(tǒng)(共17頁)_第1頁
簡(jiǎn)單的汽車站售票系統(tǒng)(共17頁)_第2頁
簡(jiǎn)單的汽車站售票系統(tǒng)(共17頁)_第3頁
簡(jiǎn)單的汽車站售票系統(tǒng)(共17頁)_第4頁
簡(jiǎn)單的汽車站售票系統(tǒng)(共17頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、PAGE 沈 陽 航 院 設(shè) 計(jì) 用 紙沈 陽 航 空 工 業(yè) 學(xué) 院 課程設(shè)計(jì)學(xué) 號(hào) _班 級(jí) _ 姓 名 _指導(dǎo)(zhdo)教師 _尹航_ 年 月 日沈陽航空工業(yè)學(xué)院(xuyun)課程設(shè)計(jì)任務(wù)書電子信息工程學(xué)院 電子信息工程(gngchng)專業(yè) 84020103班 學(xué)號(hào)2008040201072一、課程設(shè)計(jì)題目(tm):簡(jiǎn)單的汽車站售票系統(tǒng)二、課程設(shè)計(jì)工作自2009年9月7日起至2009年9月11日止三、課程設(shè)計(jì)內(nèi)容:用C語言編寫程序完成以下任務(wù):每天“沈陽植物園”有5個(gè)班次的汽車(假設(shè)),具體的數(shù)據(jù)如下:班次發(fā)車時(shí)間載客量已售票數(shù)106:40500209:30400313:004004

2、16:00400520:00500請(qǐng)你為售票員開發(fā)一個(gè)小程序,以完成每天的“沈陽植物園”的售票業(yè)務(wù)。要求如下:(1)售票: 應(yīng)能夠控制每人只允許買5張票,且不能購(gòu)買已經(jīng)發(fā)車的車票(取當(dāng)前時(shí)間函數(shù)由老師提供)。(2)退票: 已經(jīng)發(fā)車的車票不能退(取當(dāng)前時(shí)間函數(shù)由老師提供)。(3)可以隨時(shí)顯示售票現(xiàn)狀,并以文件(myfile.txt)形式保存當(dāng)天各個(gè)車次的售票情況。四、課程設(shè)計(jì)要求:程序質(zhì)量:貫徹結(jié)構(gòu)化程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。用戶界面中的菜單至少應(yīng)包括“運(yùn)算選項(xiàng)”、“數(shù)據(jù)輸入”、“保存結(jié)果”、“退出”4項(xiàng)。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序

3、的可讀性。課程設(shè)計(jì)說明書:課程結(jié)束后,上交課程設(shè)計(jì)說明書(打印稿和電子稿),其內(nèi)容如下:封面課程設(shè)計(jì)任務(wù)書目錄需求分析(分析題目(tm)的要求)程序(chngx)流程圖(總體流程圖和主要功能模塊流程圖)核心技術(shù)的實(shí)現(xiàn)(shxin)說明及相應(yīng)程序段個(gè)人總結(jié)參考資料源程序及適當(dāng)?shù)淖⑨屩笇?dǎo)教師: 學(xué)生簽名: 五、成績(jī):六、教師評(píng)語:沈 陽 航 院 設(shè) 計(jì) 用 紙PAGE 16目錄(ml)需求(xqi)分析1二、程序(chngx)流程圖1三、關(guān)鍵技術(shù)分析5四、個(gè)人總結(jié)6五、參考文獻(xiàn)7六、源程序7一、需求(xqi)分析本程序的設(shè)計(jì)(shj)題目是:“簡(jiǎn)單(jindn)的汽車站售票系統(tǒng)”,該系統(tǒng)要求存儲(chǔ)當(dāng)

4、天各個(gè)車次售票情況,所以程序需要定義結(jié)構(gòu)體變量存儲(chǔ)售票情況,從整體上看,系統(tǒng)的全部過程都是為了通過記錄當(dāng)天各個(gè)車次的情況來了解售票情況。這就需要通過本程序中的主函數(shù)中的swich分支選擇調(diào)用各子函數(shù)以實(shí)現(xiàn)該系統(tǒng)的各種功能。然后再根據(jù)題目要求來編寫相應(yīng)的子函數(shù)來執(zhí)行系統(tǒng)的各種功能。在用戶帶的顯示菜單上,我們還設(shè)計(jì)了一個(gè)退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。1、根據(jù)題目需求,我們需要定義五個(gè)主要函數(shù),分別有:系統(tǒng)程序的輸入函數(shù),存儲(chǔ)函數(shù)(save),讀取函數(shù)(load),買票函數(shù)和退票函數(shù),最后還附加有退出功能;2、結(jié)構(gòu)化程序設(shè)計(jì)思想比較明確,使用戶界面友

5、好,功能明確,操作方便,而且我們?cè)谟脩艚缑嬷械牟藛紊显O(shè)計(jì)了“買票、退票、顯示當(dāng)前售票情況、保存當(dāng)天數(shù)據(jù)、退出”等功能,滿足了題目要求。二、程序流程圖 輸入每個(gè)班次汽車的信息輸出一個(gè)菜單 保存當(dāng)天數(shù)據(jù) 退出售票系統(tǒng)退票買票查詢顯示當(dāng)前售票情況 顯示當(dāng)天時(shí)間 圖1 系統(tǒng)(xtng)總流程圖是if(fp=fopen(myfile.txt,w+)=NULL 否文件無法讀取for(i=0;iN;i+)輸入數(shù)據(jù) 保存 關(guān)閉文件 圖2 文件讀取函數(shù) 圖3 售票函數(shù)(hnsh) 顯示當(dāng)前的售票情況 輸入要購(gòu)買的班次b 輸入要購(gòu)買的票數(shù)n for(i=0;in;i+)if(strcmp(STi.banci,b)

6、= =0&n=5&已發(fā)車的不再售票)否 是STi.maipiao=STi.maipiao-1STi.yupiao=STi.yupiao+1 保存 顯示當(dāng)前的售票情況 輸入要退的班次b 輸入要退的票數(shù)n for(i=0;i=0)否 是STi.maipiao=STi.maipiao-nSTi.yupiao=STi.yupiao+n 保存 圖4 退票(tu pio)函數(shù)三、關(guān)鍵技術(shù)分析(fnx)核心技術(shù)的實(shí)現(xiàn)(shxin)方法和程序段:本函數(shù)(hnsh)由六個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中 主函數(shù)是通過switch分支選擇調(diào)用其他個(gè)子函數(shù)以實(shí)現(xiàn)該系統(tǒng)的各種功能。在這里,我們只分析輸入函數(shù)、存儲(chǔ)函數(shù)

7、、讀取函數(shù)、買票函數(shù)、退票函數(shù)以及結(jié)束、退出中的一個(gè)程序較為核心的部分。具體分析如下:售票系統(tǒng): 定義數(shù)組存儲(chǔ)從獲得的數(shù)字,為了能夠多次輸入,我們可以構(gòu)造像for(i=0;iN;i+)來實(shí)現(xiàn)我們的要求;如果輸入和班次相符,并且要把當(dāng)?shù)噩F(xiàn)在電腦顯示的時(shí)間與實(shí)際發(fā)車時(shí)間進(jìn)行比較,如果用戶現(xiàn)在購(gòu)買的班次還未發(fā)車,則可進(jìn)行 if(strcmp(STi.banci,b)=0) 來繼續(xù)獲得不同的一組數(shù)字,直到買票成功。如果買票后,將會(huì)顯示相關(guān)信息來提示買票成功。本函數(shù)結(jié)束,退出。void sell()int i,n;char b15;clrscr();load();int i;printf(nn*售票情況

8、*n);printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i=0;i=6)printf(對(duì)不起,每人最多只能購(gòu)買五張票n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0&n=5) /*如果輸入和班次相符,進(jìn)行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-nprintf(*購(gòu)買成功*);printf(nn*售票情況*n);printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,

9、STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*謝謝使用*n);/*/save();四、個(gè)人總結(jié)一個(gè)星期的C程序設(shè)計(jì),說句實(shí)話,我真的好累!剛開始什么都不會(huì),曾幾次想放棄,但當(dāng)我看到其他同學(xué)和我站在同一個(gè)“起跑線”上時(shí),我又恢復(fù)了自信。還有在我們大家互相幫助的情況下,最后我終于完成了這次C程序設(shè)計(jì)課設(shè),感覺真的好好??!心中的一塊重石終于落地了!一個(gè)星期的課程設(shè)計(jì),時(shí)間雖短,但對(duì)我意義深長(zhǎng)!C程序也算是對(duì)我們耐心的考驗(yàn),只有不懈的追求,才能迎向勝利的曙光!加油!五、參考文獻(xiàn)1、 譚浩強(qiáng)C程序設(shè)計(jì)(chn x sh j

10、)北京:清華大學(xué)出版社,20052 、劉成等C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京(bi jn):中國(guó)鐵道出版社,2006六、源程序#include stdio.h#include stdlib.h#include string.h#include conio.h#include time.h#define N 5struct student char banci10; char facheshijian20; char zaikeliang20; int maipiao; int yupiao;STN=01,06:40,50,0,50, 02,09:30,40,0,40, 03,13:00,40

11、,0,40, 04,16:00,40,0,40, 05,20:00,50,0,50 ; void search(); void save();void sell();void localtimes();void tuipiao();int menu();int menu() int c; printf(*歡迎乘坐(chn zu)本次由沈陽開往植物園的客車*n); printf(1.保存當(dāng)天(dngtin)數(shù)據(jù).n); printf(2.顯示當(dāng)前(dngqin)時(shí)間.n); printf(3.查詢顯示當(dāng)前售票情況.n);/*顯示當(dāng)前售票情況*/ printf(4.買票.n); printf(5.

12、退票.n); printf(6.退出售票系統(tǒng).n); printf( *歡迎使用*); do printf(n 請(qǐng)選擇(1-6)繼續(xù):); scanf(%d,&c); while(c6);return (c); void save() FILE *fp; int i; if(fp=fopen(myfile.txt,w+)=NULL) printf(文件(wnjin)無法讀取!n); return; for(i=0;iN;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf(n); printf(|*存儲(chǔ)(cn ch)成功!*|n); prin

13、tf( 請(qǐng)選擇相應(yīng)(xingyng)的數(shù)字進(jìn)行下一步操作!n); void load()FILE*fp;int i;if(fp=fopen(myfile.txt,w+)=NULL) printf(cannot open infilen); return;for(i=0;iN;i+)if(fread(&STi,sizeof(ST ),1,fp)!=1) if(feof(fp)fclose(fp);return;printf(文件讀取錯(cuò)誤n); fclose(fp);void search() int i; / printf(請(qǐng)選擇(xunz)班次n);printf(請(qǐng)輸入您要查詢(chxn)的班

14、次(格式如:03):n); scanf(%d,&i); i=i-1; printf(nn*查詢(chxn)結(jié)果*n); printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n); printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao); printf(*查詢結(jié)束(謝謝使用v)*n);void localtimes()struct tm *p;time_t t;t=time(NULL);p=localtime(&t);printf(asctime(p);voi

15、d sell()int i,n;char b15;system(cls);/clrscr();load();int i;printf(nn*售票情況(qngkung)*n);printf(班次(bnc) 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i=0;i=6)printf(對(duì)不起,每人最多只能購(gòu)買5張票n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0&n=5) /*如果輸入和班次相符,進(jìn)行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-n;printf(*購(gòu)買成功*);printf(nn*售票情

16、況*n);printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*謝謝使用*n);/*/save();void tuipiao()int i,n;char b15;system(cls);/clrscr();load();printf(nn*當(dāng)前情況*n);printf(班次(bnc) 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i=0;iN;i+)pr

17、intf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*(謝謝(xi xie)使用v)*n);printf(溫馨提示(tsh):已發(fā)車的不能退票!n);printf(請(qǐng)輸入您要退的班次(格式如:02):n);scanf(%s,b);printf(請(qǐng)輸入您要退的張數(shù)(格式如:3):n);scanf(%d,&n);for(i=0;i=0) /*如果未售票*/STi.maipiao=STi.maipiao-n;STi.yupiao=STi.yupiao+n;printf(退票成功!);printf(nn*退票結(jié)果*n);printf(班次 |發(fā)車時(shí)間 |載客量 |已售票數(shù) |余票n);for(i=0;iN;i+)printf(%4s %10s %7s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*退票結(jié)束(jish),謝謝使用*n);save();main() / textbackground(YELLOW

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論