版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈 陽 航 空 工 業(yè) 學(xué) 院 課程設(shè)計(jì)學(xué) 號(hào) 200704021150 班 級(jí) 7402101姓 名 圖里古爾指導(dǎo)教師 吳杰宏2008年 9 月 8 日沈 陽 航 院 設(shè) 計(jì) 用 紙沈陽航空工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書院系:電子信息工程 專業(yè):電子信息工程 班級(jí):7402101學(xué)號(hào):200704021150 題目:簡單的汽車站售票系統(tǒng)(2)一、課程設(shè)計(jì)時(shí)間200809第1學(xué)期第2周,共計(jì)1周,20學(xué)時(shí)。二、課程設(shè)計(jì)內(nèi)容用C語言編寫軟件完成以下任務(wù):每天“沈陽植物園”有5個(gè)班次的汽車(假設(shè)),具體的數(shù)據(jù)如下:班次發(fā)車時(shí)間載客量已售票數(shù)106:40500209:30400313:00400416:00
2、400520:00500請(qǐng)你為售票員開發(fā)一個(gè)小程序,以完成每天“沈陽植物園”售票業(yè)務(wù)。要求如下:能夠售票和退票。某個(gè)班次已經(jīng)過了開車時(shí)間,則該班次今天不再售票??梢噪S時(shí)顯示售票現(xiàn)狀,以文件(myfile.txt)形式保存當(dāng)天各個(gè)車次售票情況。主要功能包括:1錄入汽車班次信息;2退票并顯示;3保存當(dāng)天數(shù)據(jù)。三、課程設(shè)計(jì)要求1. 程序質(zhì)量: 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。 用戶界面友好,功能明確,操作方便。 用戶界面中的菜單至少應(yīng)包括“錄入汽車班次信息”、“退票處理”、“保存當(dāng)天數(shù)據(jù)并顯示”、“退出”4項(xiàng)。 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2. 課程設(shè)計(jì)說明書:課程結(jié)束后,上交課
3、程設(shè)計(jì)說明書和源程序。課程設(shè)計(jì)說明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、說明書成績 六、教師評(píng)語目 錄一、需求分析1二、程序流程圖.2三、關(guān)鍵技術(shù)分析4四、個(gè)人總結(jié)5五、參考文獻(xiàn)6六、源程序612一、需求分析(1)售票系統(tǒng)要求存儲(chǔ)當(dāng)天各個(gè)車次售票情況,所以程序需要定義結(jié)構(gòu)體變量存儲(chǔ)售票情況。系統(tǒng)的整體功能通過記錄當(dāng)天各個(gè)車次了解售票情況。編程時(shí)采取模塊化設(shè)計(jì)思想,設(shè)計(jì)主函數(shù),通過主函數(shù)中的switch分支選擇調(diào)用各子函數(shù)以實(shí)現(xiàn)該系統(tǒng)的各種功能。然后設(shè)計(jì)相應(yīng)的子函數(shù)來執(zhí)行系統(tǒng)的各種功能,程序還具有退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并
4、根據(jù)需要終止程序的執(zhí)行。1、 經(jīng)過對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為七個(gè)模塊,其中每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù),他們的功能分別是學(xué)生記錄輸入函數(shù)(save)、存儲(chǔ)函數(shù)(load)、讀取函數(shù)、賣票函數(shù)、退票函數(shù)、結(jié)束、退出。在這些函數(shù)當(dāng)中,前五個(gè)函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而后面的兩個(gè)函數(shù)屬于附加功能。2、 增強(qiáng)了程序的實(shí)用性,使系統(tǒng)用戶界面友好、功能明確、操作方便,應(yīng)采取直接用printf函數(shù)的方式在界面上輸出可供用戶選擇的菜單,即直觀又方便。據(jù)此應(yīng)該能夠很好的完成要求二、程序流程圖三、關(guān)鍵技術(shù)分析核心技術(shù)的實(shí)現(xiàn)方法和程序段:本函數(shù)由六個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中 主函數(shù)以
5、菜單形式調(diào)用其他函數(shù)來實(shí)現(xiàn)要求的所有功能。在這些函數(shù)記錄學(xué)生輸入函數(shù)(save)、存儲(chǔ)函數(shù)(load)、讀取函數(shù)、賣票函數(shù)、退票函數(shù)、結(jié)束、退出(只分析其中一個(gè))是程序中較為核心的部分,具體分析如下:售票系統(tǒng): 定義數(shù)組存儲(chǔ)從獲得的數(shù)字,為了能夠多次輸入,我們可以構(gòu)造像for(i=0;iN;i+)來實(shí)現(xiàn)我們的要求;如果輸入和班次相符可進(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;pr
6、intf(nn*-售票情況-*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);printf(請(qǐng)輸入您要購買的班次(格式如:02):n);scanf(%s,b);printf(請(qǐng)輸入您要購買的票數(shù)(格式如:5):n);scanf(%d,&n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0) /*
7、如果輸入和班次相符,進(jìn)行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-nprintf(*-購買成功-*);printf(nn*-售票情況-*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();四、個(gè)人總結(jié)在這為期一星期的C程序課程設(shè)計(jì)中,我深刻的體會(huì)
8、到細(xì)心的重要性。C程序設(shè)計(jì)是一個(gè)繁瑣,需要投入很多的心思和精力的活。有時(shí)它會(huì)因?yàn)橐粋€(gè)標(biāo)點(diǎn)符號(hào),讓所有的心血白費(fèi)。因而我們需要的不僅僅是平日知識(shí)的積累,還要養(yǎng)成良好的習(xí)慣,才能保證我們的路可以越走越遠(yuǎn)!同時(shí)我也明白,當(dāng)我們面臨困難時(shí),我們應(yīng)該正面迎擊! C程序也算是對(duì)我們耐心的考驗(yàn),只有不懈的追求,才能迎向勝利的曙光!五、參考文獻(xiàn)1 譚浩強(qiáng)C程序設(shè)計(jì)北京:清華大學(xué)出版社,20052 劉成等C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京:中國鐵道出版社,20063 劉振安等.C程序設(shè)計(jì)課程設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2004六、源程序#include stdio.h#include stdlib.h#incl
9、ude 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:10,40,0,40, 03,13:00,40,0,40, 04,16:00,40,0,40, 05,20:00,50,0,50 ; void search(); void save();void load();void sell();void l
10、ocaltimes();void tuipiao();int menu();int menu() int c; printf(*歡迎乘坐本次由沈陽開往植物園的客車*n); printf(1.保存當(dāng)天數(shù)據(jù).n); printf(2.顯示當(dāng)前時(shí)間.n); printf(3.查詢顯示當(dāng)前售票情況.n);/*顯示當(dāng)前售票情況*/ printf(4.買票.n); printf(5.退票.n); printf(6.退出售票系統(tǒng).n); printf( *歡迎使用*); do printf(n 請(qǐng)選擇(1-6)繼續(xù):); scanf(%d,&c); while(c6);return (c);void sav
11、e() FILE *fp; int i; if(fp=fopen(myfile.txt,w+)=NULL) printf(文件無法讀??!n); return; for(i=0;iN;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf(n); printf(|*存儲(chǔ)成功!*|n); printf( 請(qǐng)選擇相應(yīng)的數(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
12、;i+)if(fread(&STi,sizeof(ST ),1,fp)!=1) if(feof(fp)fclose(fp);return;printf(文件讀取錯(cuò)誤n); fclose(fp);void search() FILE*fp; int i;printf(請(qǐng)輸入您要查詢的班次(格式如:03):n); scanf(%d,&i); i=i-1; fp=fopen(myfile.txt,r+); fread(&STi,sizeof(ST ),1,fp); printf(nn*-查詢結(jié)果-*n); printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n); printf(%3s %10s
13、%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);void sell()int i,n;char b15;system(cls);load();int i;printf(nn*-售票情況-*n);printf(班次 發(fā)車時(shí)間 載客量 已售票數(shù) 余票 n);for(i
14、=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*-謝謝使用-*n);printf(請(qǐng)輸入您要購買的班次(格式如:02):n);scanf(%s,b);printf(請(qǐng)輸入您要購買的票數(shù)(格式如:5):n);scanf(%d,&n);for(i=0;iN;i+)if(strcmp(STi.banci,b)=0) /*如果輸入和班次相符,進(jìn)行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao
15、=STi.yupiao-n;printf(*-購買成功-*);printf(nn*-售票情況-*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);load();printf(nn*-當(dāng)前情況-*n);printf(班次 發(fā)車時(shí)間
16、 載客量 已售票數(shù) 余票 n);for(i=0;iN;i+)printf(%3s %10s %10s %8d %8dn,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf(*-(謝謝使用v)-*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
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020-2021學(xué)年廣東省汕頭市潮陽區(qū)高一上學(xué)期期末考試英語試題 解析版
- 施工企業(yè)2025年《春節(jié)節(jié)后復(fù)工復(fù)產(chǎn)》工作實(shí)施方案 (匯編3份)
- 《燃油供給系檢修》課件
- 檔案管理知識(shí)競賽試題附答案
- 上范司諫書(文言文)高考語文閱讀理解
- 云南省楚雄州2023-2024學(xué)年高三上學(xué)期期末考試英語試卷
- 高端會(huì)議保安工作總結(jié)與策略計(jì)劃
- 超市食品安全監(jiān)測(cè)總結(jié)
- 高管團(tuán)隊(duì)建設(shè)與管理計(jì)劃
- 機(jī)場(chǎng)保安工作要點(diǎn)
- 2025年蛇年春聯(lián)帶橫批-蛇年對(duì)聯(lián)大全新春對(duì)聯(lián)集錦
- 小班音樂教案:小瓢蟲飛教案及反思
- 生活中的代數(shù)智慧樹知到課后章節(jié)答案2023年下成都師范學(xué)院
- 監(jiān)獄物業(yè)投標(biāo)方案 (技術(shù)方案)
- 盲眼鐘表匠:生命自然選擇的秘密
- 雷達(dá)的分類及雷達(dá)信號(hào)處理詳解
- 焊接檢驗(yàn)作業(yè)指導(dǎo)書
- 甘河工業(yè)園區(qū)穩(wěn)定化固化車間和危廢暫存庫項(xiàng)目環(huán)評(píng)報(bào)告
- 《新時(shí)代勞動(dòng)教育教程與實(shí)踐(第2版)》課程標(biāo)準(zhǔn)
- 21ZJ111 變形縫建筑構(gòu)造
- 皮帶輸送機(jī)日常點(diǎn)檢表
評(píng)論
0/150
提交評(píng)論