




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、沈 陽(yáng) 航 空 航 天 大學(xué) 課程設(shè)計(jì)學(xué) 號(hào) 1班 級(jí) 04110201姓 名 王帥指導(dǎo)教師 郭建新2012年 6 月 21 日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)任務(wù)書(shū)系:材料科學(xué)與工程 專(zhuān)業(yè):材料成型及控制工程 班級(jí):04110201學(xué)號(hào):1題目:火車(chē)站售票系統(tǒng)一、課程設(shè)計(jì)時(shí)間20112012第2學(xué)期第16周,共計(jì)1周,20學(xué)時(shí)。二、課程設(shè)計(jì)內(nèi)容用C語(yǔ)言編寫(xiě)軟件完成以下任務(wù):每天“沈陽(yáng)大連”有5次的火車(chē)(假設(shè)),具體的數(shù)據(jù)如下:班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù)D1 06:40 500 0D2 09:30 600 0A1 13:00 800 0A2 16:00 800 0L1 20:00 500 0請(qǐng)你
2、開(kāi)發(fā)一個(gè)小程序,以完成每天的:“沈陽(yáng)大連”的售票業(yè)務(wù)。要求如下:能夠售票和退票。某個(gè)火車(chē)已經(jīng)過(guò)了開(kāi)車(chē)時(shí)間,則該班次不再售票??梢噪S時(shí)顯示售票現(xiàn)狀,并以文件(myfile.test)的形式保存當(dāng)天各個(gè)車(chē)次的售票情況。三、課程設(shè)計(jì)要求程序質(zhì)量:² 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。² 用戶(hù)界面友好,功能明確,操作方便。² 用戶(hù)界面中的菜單至少應(yīng)包括、“售票”、“退票”、“顯示當(dāng)前售票情況”、“保存當(dāng)天數(shù)據(jù)”、“退出”等項(xiàng)。² 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋?zhuān)栽鰪?qiáng)程序的可讀性。課程設(shè)計(jì)說(shuō)明書(shū):² 課程結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書(shū)和源程序。課程設(shè)計(jì)說(shuō)明書(shū)的內(nèi)
3、容參見(jiàn)提供的模板。²四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、成績(jī)六、教師評(píng)語(yǔ)目 錄一、需求分析4二、程序流程圖.4三、關(guān)鍵技術(shù)分析7四、個(gè)人總結(jié)10五、參考文獻(xiàn)11六、源程序11一、需求分析(1)售票系統(tǒng)要求存儲(chǔ)當(dāng)天各個(gè)車(chē)次售票情況,所以程序需要定義結(jié)構(gòu)體變量存儲(chǔ)售票情況。系統(tǒng)的整體功能通過(guò)記錄當(dāng)天各個(gè)車(chē)次了解售票情況。編程時(shí)采取模塊化設(shè)計(jì)思想,設(shè)計(jì)主函數(shù),通過(guò)主函數(shù)中的switch分支選擇調(diào)用各子函數(shù)以實(shí)現(xiàn)該系統(tǒng)的各種功能。然后設(shè)計(jì)相應(yīng)的子函數(shù)來(lái)執(zhí)行系統(tǒng)的各種功能,程序還具有退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。1、 經(jīng)過(guò)對(duì)程序
4、設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為五個(gè)模塊,其中每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù),他們的功能分別是存儲(chǔ)函數(shù)(save)、賣(mài)票函數(shù)、退票函數(shù)、定售總金額、退出。2、 增強(qiáng)了程序的實(shí)用性,使系統(tǒng)用戶(hù)界面友好、功能明確、操作方便,應(yīng)采取直接用printf函數(shù)的方式在界面上輸出可供用戶(hù)選擇的菜單。據(jù)此應(yīng)該能夠很好的完成要求二、程序流程圖1 程序總體結(jié)構(gòu)圖輸入c C=1? 真 假查詢(xún)當(dāng)前售票情況 C=2?真 假定票 C=3?真 假 退票 C=4?真 假保存當(dāng)前車(chē)次售票情況 C=5?真 假退出 圖1 程序總體結(jié)構(gòu)圖2 函數(shù)功能圖(1) 退票函數(shù)tuipiao(2) 保存信息的函數(shù)save(3)賣(mài)票函數(shù)s
5、ell 三、主要界面截圖四、關(guān)鍵技術(shù)分析核心技術(shù)的實(shí)現(xiàn)方法和程序段:本函數(shù)由六個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中 主函數(shù)以菜單形式調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。主函數(shù)分別調(diào)用保存函數(shù)(save)、讀取函數(shù)、賣(mài)票函數(shù)、退票函數(shù)、訂票總金額、退出。程序中較為核心的部分,具體分析如下:1 保存函數(shù)void save() /*存儲(chǔ)函數(shù)*/ FILE *fp; int i; if(fp=fopen("myfile.txt","w+")=NULL) printf("cannot open infilen"); exit(0); for(i=0
6、;i<N;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf("n"); printf("|*存儲(chǔ)成功!*|n"); printf(" 請(qǐng)選擇相應(yīng)的數(shù)字進(jìn)行下一步操作!n"); 2 查詢(xún)函數(shù)void search() /*查詢(xún)函數(shù)*/ int i,j;printf("請(qǐng)輸入要查詢(xún)的班次n");scanf("%s",&j);for(i=0;i<N;i+)if(int(STi.banci)=j)printf("
7、;n*-查詢(xún)售票結(jié)果-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();3 售票系統(tǒng): 定義數(shù)組存儲(chǔ)從獲得的數(shù)字,為了能夠多次輸入,我們可以構(gòu)造像for(i=0;i<N;i+)來(lái)實(shí)現(xiàn)我們的要求;如果輸入和班次相符可進(jìn)行 if(strcmp(STi.banci,b)=0) 來(lái)繼續(xù)獲得不同的一組數(shù)字,直到買(mǎi)票成功
8、,如果買(mǎi)票后,將會(huì)顯示相關(guān)信息來(lái)提示買(mǎi)票成功。本函數(shù)結(jié)束,退出。void sell() /*售票*/int i,c;char a50;int i;printf("nn*-沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("請(qǐng)輸入您要購(gòu)買(mǎi)
9、的班次(格式如:D1):n"); scanf("%s",a);printf("請(qǐng)輸入您要購(gòu)買(mǎi)的票數(shù)(格式如:10):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) /*判斷班次是否符合*/ STi.maipiao=STi.maipiao+c;STi.yupiao=STi.yupiao-c;printf("*-購(gòu)買(mǎi)成功-*:n");printf("*歡迎使用*:n");printf("nn*-
10、沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();4 退票系統(tǒng)void tuipiao() /*退票*/int i,c;char a50;printf("nn*-沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間
11、 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("請(qǐng)輸入您要退的班次(格式如:D1):n");scanf("%s",a);printf("請(qǐng)輸入您要退的張數(shù)(格式如:100):n");scanf("%d",&c);for(i=0;i<N;i+)
12、if(strcmp(STi.banci,a)=0) if(STi.maipiao-c>=0) STi.maipiao=STi.maipiao-c;STi.yupiao=STi.yupiao+c;printf("退票成功!");printf("*歡迎使用*:n");printf("nn*-退票結(jié)果-*n");printf("班次 |發(fā)車(chē)時(shí)間 |載客量 |已售票數(shù) |余票n");for(i=0;i<N;i+)printf("%4s %10s %7s %8d %8dn",STi.banci
13、,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();五、個(gè)人總結(jié)在這五天的C程序課程設(shè)計(jì)中,我深刻的體會(huì)到細(xì)心的重要性。C程序設(shè)計(jì)是一個(gè)繁瑣,需要投入很多的心思和精力的活。有時(shí)它會(huì)因?yàn)橐粋€(gè)標(biāo)點(diǎn)符號(hào),讓所有的心血白費(fèi)。所以寫(xiě)程序時(shí)真得要仔仔細(xì)細(xì)的。因而我們需要的不僅僅是平日知識(shí)的積累,可以說(shuō)這門(mén)課程還是有難度的,所以以后還要加強(qiáng)對(duì)這方面知識(shí)的學(xué)習(xí),掌握好這門(mén)課程對(duì)我以后的專(zhuān)業(yè)也有很大的好處。只有養(yǎng)成良好的習(xí)慣,才能保證我們的路可以越走越遠(yuǎn)!六、參考文獻(xiàn) 譚浩強(qiáng)C程序設(shè)計(jì)北京:清華大學(xué)出版社,2005七、源程序#inclu
14、de <stdio.h>#include <time.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define N 5struct train /*定義結(jié)構(gòu)體*/ char banci50; char facheshijian50; char zaikeliang50; int maipiao; int yupiao; STN= "D1","06:40","500",0,500, "D2&qu
15、ot;,"09:30","600",0,600, "A1","13:00","800",0,800, "A2","16:00","800",0,800, "L1","20:00","500",0,500 ;/*聲明各函數(shù)*/void search(); void save();void sell();void tuipiao();int menu();int menu() /*
16、定義菜單*/ int k; printf("1.查詢(xún)顯示當(dāng)前售票情況.n"); printf("2.買(mǎi)票.n"); printf("3.退票.n"); printf("4.儲(chǔ)存數(shù)據(jù).n"); printf("5.退出售票系統(tǒng).n"); do printf("n 請(qǐng)選擇(1-5)繼續(xù):"); scanf("%d",&k); while(k<1|k>5);return (k);void search() /*查詢(xún)函數(shù)*/ int i,j;p
17、rintf("請(qǐng)輸入要查詢(xún)的班次n");scanf("%s",&j);for(i=0;i<N;i+)if(int(STi.banci)=j)printf("n*-查詢(xún)售票結(jié)果-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();void sell() /
18、*售票*/int i,c;char a50;int i;printf("nn*-沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("請(qǐng)輸入您要購(gòu)買(mǎi)的班次(格式如:D1):n"); scanf("%s",a)
19、;printf("請(qǐng)輸入您要購(gòu)買(mǎi)的票數(shù)(格式如:10):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) /*判斷班次是否符合*/ STi.maipiao=STi.maipiao+c;STi.yupiao=STi.yupiao-c;printf("*-購(gòu)買(mǎi)成功-*:n");printf("*歡迎使用*:n");printf("nn*-沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間 載客
20、量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);save();void tuipiao() /*退票*/int i,c;char a50;printf("nn*-沈陽(yáng)大連 火車(chē)售票系統(tǒng)-*n");printf("班次 發(fā)車(chē)時(shí)間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf(&quo
21、t;%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("請(qǐng)輸入您要退的班次(格式如:D1):n");scanf("%s",a);printf("請(qǐng)輸入您要退的張數(shù)(格式如:100):n");scanf("%d",&c);for(i=0;i<N;i+)if(strcmp(STi.banci,a)=0) if(STi.maipiao-c>=0) STi.maipiao=STi.maipiao-c;STi.yupiao=STi.yupiao+c;printf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校接送服務(wù)合同
- 物流運(yùn)輸品牌合作協(xié)議范文
- 節(jié)能保溫材料銷(xiāo)售合同
- 中國(guó)硬質(zhì)合金燕尾銑刀行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025年中國(guó)電解金屬錳行業(yè)競(jìng)爭(zhēng)格局分析及投資戰(zhàn)略咨詢(xún)報(bào)告
- 2025年中國(guó)隔離開(kāi)關(guān)行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 中國(guó)竹產(chǎn)品行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)柔性芯片行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)果凍產(chǎn)品行業(yè)市場(chǎng)深度發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)本地專(zhuān)業(yè)貨運(yùn)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 煙葉質(zhì)量評(píng)價(jià)體系-洞察分析
- 商業(yè)廣場(chǎng)步行街改造合同
- 公司人員優(yōu)化整合實(shí)施方案
- 2024年二級(jí)建造師市政-學(xué)霸筆記
- 重癥患者人工氣道濕化護(hù)理
- 四川省涼山州安寧河聯(lián)盟2023-2024學(xué)年高一下學(xué)期期中聯(lián)考生物試題2
- 2024年浙江省中考科學(xué)試卷
- Python編程基礎(chǔ)(項(xiàng)目式微課版)教案1 1.1 Python概述
- 內(nèi)科護(hù)理學(xué)心肌病病人的護(hù)理
- 全國(guó)民族團(tuán)結(jié)進(jìn)步表彰大會(huì)全文
- 廣東省2024年中考數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論