版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、沈 陽 航 空 工 業(yè) 學 院 課程設計學 號 _班 級 _ 姓 名 _指導教師 _尹航_ 年 月 日沈陽航空工業(yè)學院課程設計任務書電子信息工程學院 電子信息工程專業(yè) 84020103班 學號2008040201072一、課程設計題目:簡單的汽車站售票系統(tǒng)二、課程設計工作自2009年9月7日起至2009年9月11日止三、課程設計內(nèi)容:用C語言編寫程序完成以下任務:每天“沈陽植物園”有5個班次的汽車(假設),具體的數(shù)據(jù)如下:班次發(fā)車時間載客量已售票數(shù)106:40500209:30400313:00400416:00400520:00500請你為售票員開發(fā)一個小程序,以完成每天的“沈陽植物園”的售
2、票業(yè)務。要求如下:(1)售票: 應能夠控制每人只允許買5張票,且不能購買已經(jīng)發(fā)車的車票(取當前時間函數(shù)由老師提供)。(2)退票: 已經(jīng)發(fā)車的車票不能退(取當前時間函數(shù)由老師提供)。(3)可以隨時顯示售票現(xiàn)狀,并以文件(myfile.txt)形式保存當天各個車次的售票情況。四、課程設計要求:程序質(zhì)量:l 貫徹結構化程序設計思想。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應包括“運算選項”、“數(shù)據(jù)輸入”、“保存結果”、“退出”4項。l 代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。課程設計說明書:課程結束后,上交課程設計說明書(打印稿和電子稿),
3、其內(nèi)容如下:l 封面l 課程設計任務書l 目錄l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術的實現(xiàn)說明及相應程序段l 個人總結l 參考資料l 源程序及適當?shù)淖⑨屩笇Ы處煟?學生簽名: 五、成績:六、教師評語:沈 陽 航 院 設 計 用 紙目錄一、 需求分析1二、程序流程圖1三、關鍵技術分析5四、個人總結6五、參考文獻7六、源程序713一、需求分析本程序的設計題目是:“簡單的汽車站售票系統(tǒng)”,該系統(tǒng)要求存儲當天各個車次售票情況,所以程序需要定義結構體變量存儲售票情況,從整體上看,系統(tǒng)的全部過程都是為了通過記錄當天各個車次的情況來了解售票情況。這就需要通
4、過本程序中的主函數(shù)中的swich分支選擇調(diào)用各子函數(shù)以實現(xiàn)該系統(tǒng)的各種功能。然后再根據(jù)題目要求來編寫相應的子函數(shù)來執(zhí)行系統(tǒng)的各種功能。在用戶帶的顯示菜單上,我們還設計了一個退出功能,可以在程序的一次運行當中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。1、根據(jù)題目需求,我們需要定義五個主要函數(shù),分別有:系統(tǒng)程序的輸入函數(shù),存儲函數(shù)(save),讀取函數(shù)(load),買票函數(shù)和退票函數(shù),最后還附加有退出功能;2、結構化程序設計思想比較明確,使用戶界面友好,功能明確,操作方便,而且我們在用戶界面中的菜單上設計了“買票、退票、顯示當前售票情況、保存當天數(shù)據(jù)、退出”等功能,滿足了題目要求。二、程序流程
5、圖 輸入每個班次汽車的信息輸出一個菜單 保存當天數(shù)據(jù) 退出售票系統(tǒng)退票買票查詢顯示當前售票情況 顯示當天時間 圖1 系統(tǒng)總流程圖是if(fp=fopen("myfile.txt","w+")=NULL 否文件無法讀取for(i=0;i<N;i+)輸入數(shù)據(jù) 保存 關閉文件 圖2 文件讀取函數(shù) 圖3 售票函數(shù) 顯示當前的售票情況 輸入要購買的班次b 輸入要購買的票數(shù)n for(i=0;i<n;i+)if(strcmp(STi.banci,b)= =0&&n<=5&&已發(fā)車的不再售票)否 是STi.maipia
6、o=STi.maipiao-1STi.yupiao=STi.yupiao+1 保存 顯示當前的售票情況 輸入要退的班次b 輸入要退的票數(shù)n for(i=0;i<N;i+) If(strcmp(STi.banci,b)= =0&&已發(fā)車的不能退票)否 是 if (STi.maipiao-n>=0)否 是STi.maipiao=STi.maipiao-nSTi.yupiao=STi.yupiao+n 保存 圖4 退票函數(shù)三、關鍵技術分析核心技術的實現(xiàn)方法和程序段:本函數(shù)由六個自定義函數(shù)和一個主函數(shù)組成,其中 主函數(shù)是通過switch分支選擇調(diào)用其他個子函數(shù)以實現(xiàn)該系統(tǒng)的
7、各種功能。在這里,我們只分析輸入函數(shù)、存儲函數(shù)、讀取函數(shù)、買票函數(shù)、退票函數(shù)以及結束、退出中的一個程序較為核心的部分。具體分析如下:售票系統(tǒng): 定義數(shù)組存儲從獲得的數(shù)字,為了能夠多次輸入,我們可以構造像for(i=0;i<N;i+)來實現(xiàn)我們的要求;如果輸入和班次相符,并且要把當?shù)噩F(xiàn)在電腦顯示的時間與實際發(fā)車時間進行比較,如果用戶現(xiàn)在購買的班次還未發(fā)車,則可進行 if(strcmp(STi.banci,b)=0) 來繼續(xù)獲得不同的一組數(shù)字,直到買票成功。如果買票后,將會顯示相關信息來提示買票成功。本函數(shù)結束,退出。void sell()int i,n;char b15;clrscr();
8、load();int i;printf("nn*-售票情況-*n");printf("班次 發(fā)車時間 載客量 已售票數(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("*-謝謝使用-*n");printf("溫馨提示:已發(fā)車的不再售票!n");printf("請輸入您要購買的
9、班次(格式如:02):n");scanf("%s",b);printf("請輸入您要購買的票數(shù)(格式如:5):n");scanf("%d",&n);if(n>=6)printf("對不起,每人最多只能購買五張票n");for(i=0;i<N;i+)if(strcmp(STi.banci,b)=0&&n<=5) /*如果輸入和班次相符,進行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-nprintf(&qu
10、ot;*-購買成功-*");printf("nn*-售票情況-*n");printf("班次 發(fā)車時間 載客量 已售票數(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("*-謝謝使用-*n");/*/save();四、個人總結一個星期的C程序設計,說句實話,我真的好累!剛開始什么都不會,曾幾次想
11、放棄,但當我看到其他同學和我站在同一個“起跑線”上時,我又恢復了自信。還有在我們大家互相幫助的情況下,最后我終于完成了這次C程序設計課設,感覺真的好好??!心中的一塊重石終于落地了!一個星期的課程設計,時間雖短,但對我意義深長!C程序也算是對我們耐心的考驗,只有不懈的追求,才能迎向勝利的曙光!加油!五、參考文獻1、 譚浩強C程序設計北京:清華大學出版社,20052 、劉成等C語言程序設計實驗指導與習題集北京:中國鐵道出版社,2006六、源程序#include "stdio.h"#include "stdlib.h"#include "string
12、.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、13:00","40",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("*歡迎乘坐本次由沈陽開往植物園的客車*n"); printf("1.
14、保存當天數(shù)據(jù).n"); printf("2.顯示當前時間.n"); printf("3.查詢顯示當前售票情況.n");/*顯示當前售票情況*/ printf("4.買票.n"); printf("5.退票.n"); printf("6.退出售票系統(tǒng).n"); printf(" *歡迎使用*"); do printf("n 請選擇(1-6)繼續(xù):"); scanf("%d",&c); while(c<1|c>
15、6);return (c); void save() FILE *fp; int i; if(fp=fopen("myfile.txt","w+")=NULL) printf("文件無法讀取!n"); return; for(i=0;i<N;i+) fwrite(&STi,sizeof(ST),1,fp); fclose(fp); printf("n"); printf("|*存儲成功!*|n"); printf(" 請選擇相應的數(shù)字進行下一步操作!n"); v
16、oid load()FILE*fp;int i;if(fp=fopen("myfile.txt","w+")=NULL) printf("cannot open infilen"); return;for(i=0;i<N;i+)if(fread(&STi,sizeof(ST ),1,fp)!=1) if(feof(fp)fclose(fp);return;printf("文件讀取錯誤n"); fclose(fp);void search() int i; / printf("請選擇班次n&q
17、uot;);printf("請輸入您要查詢的班次(格式如:03):n"); scanf("%d",&i); i=i-1; printf("nn*-查詢結果-*n"); printf("班次 發(fā)車時間 載客量 已售票數(shù) 余票 n"); printf("%3s %10s %10s %8d %8dn",STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao); printf("*-查詢結束(謝謝使用v)-*n&
18、quot;);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");/clrscr();load();int i;printf("nn*-售票情況-*n");printf("班次 發(fā)車時間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8d %8dn&
19、quot;,STi.banci,STi.facheshijian,STi.zaikeliang,STi.maipiao,STi.yupiao);printf("*-謝謝使用-*n");printf("溫馨提示:已發(fā)車的不再售票!n");printf("請輸入您要購買的班次(格式如:02):n");scanf("%s",b);printf("請輸入您要購買的票數(shù)(格式如:5):n");scanf("%d",&n);if(n>=6)printf("對不起,
20、每人最多只能購買5張票n");for(i=0;i<N;i+)if(strcmp(STi.banci,b)=0&&n<=5) /*如果輸入和班次相符,進行下一步*/STi.maipiao=STi.maipiao+n;STi.yupiao=STi.yupiao-n;printf("*-購買成功-*");printf("nn*-售票情況-*n");printf("班次 發(fā)車時間 載客量 已售票數(shù) 余票 n");for(i=0;i<N;i+)printf("%3s %10s %10s %8
21、d %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*-當前情況-*n");printf("班次 發(fā)車時間 載客量 已售票數(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("*-(謝謝使用v)-*n");printf("溫馨提示:已發(fā)車的不能退票!n");printf("請輸入您要退的班次(格式如:02):n");scanf("%s",b);printf(&q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度草牧場承包經(jīng)營權租賃與農(nóng)業(yè)保險聯(lián)動合同3篇
- 二零二五版集裝箱租賃及售后服務合同樣本3篇
- 2025年度數(shù)字經(jīng)濟產(chǎn)業(yè)園區(qū)建設合同3篇
- 2025年移動辦公小程序定制開發(fā)與企業(yè)管理服務合同2篇
- 2024版成都市存量房屋買賣合同實施條例
- 二零二五版智能家居定制家具采購與售后保障合同3篇
- 2025年度餐飲行業(yè)食品安全風險評估合同21篇
- 二零二五河南事業(yè)單位100人招聘合同范本解讀與使用指南3篇
- 2024起重機械進出口貿(mào)易合同規(guī)范范本3篇
- 二零二五白酒定制酒生產(chǎn)與銷售合作合同3篇
- 春節(jié)英語介紹SpringFestival(課件)新思維小學英語5A
- 進度控制流程圖
- 2023年江蘇省南京市中考化學真題
- 【閱讀提升】部編版語文五年級下冊第四單元閱讀要素解析 類文閱讀課外閱讀過關(含答案)
- 供電副所長述職報告
- 現(xiàn)在完成時練習(短暫性動詞與延續(xù)性動詞的轉(zhuǎn)換)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 物業(yè)總經(jīng)理述職報告
- 新起點,新發(fā)展心得體會
- 深圳大學學校簡介課件
- 校園欺凌問題成因及對策分析研究論文
評論
0/150
提交評論