




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 c語言課程設(shè)計報告 目錄一、 題目要求,需求分析二、 總體設(shè)計思路與功能模塊劃分三、 程序設(shè)計四、 程序運行測試五、 總結(jié)前 言計算機科學(xué)技術(shù)的發(fā)展,不僅極大地促進了整個科學(xué)技術(shù)的發(fā)展,而且明顯地加快了經(jīng)濟信息化和社會信息化的進程。因此,計算機教育在全國備受重視,計算機知識與能力已成為21世紀(jì)人才素質(zhì)的基本要素之一。如今,高等教育的計算機教育發(fā)展十分迅速。十多年前,只有部分理工科專業(yè)開設(shè)計算機課程。今天,幾乎所有高校的所有專業(yè)都開設(shè)了程度不同的計算機課程。人們已經(jīng)認(rèn)識到,計算機知識已成為當(dāng)代知識分子知識結(jié)構(gòu)中不可缺少的重要組成部分。而除了掌握計算機的基礎(chǔ)知識和操作的基本能力外,掌握一門高級編
2、程語言,并可以熟練運用它,已成為當(dāng)代大學(xué)生綜合能力必要組成。計算機技術(shù)發(fā)展如此迅猛,計算機應(yīng)用如此廣泛,需要學(xué)習(xí)的東西愈來愈多,而我們的總學(xué)時是有限的。一般來說,計算機課程學(xué)習(xí)可以分為兩部分:一部分是理論課程學(xué)習(xí),一部分是上機應(yīng)用實習(xí)。根據(jù)我們專業(yè)的性質(zhì)和要求,則應(yīng)側(cè)重于上機操作運用。為此,學(xué)校特意在本學(xué)期最后安排了32個學(xué)時的上機實習(xí)。現(xiàn)將一星期的實習(xí)內(nèi)容及結(jié)果分析分列如下:一、題目要求:27.停車場管理21、有一個兩層的停車場,每層有6個車位,當(dāng)?shù)谝粚榆囃M后才允許使用第二層,(停車場可用一個二維數(shù)組實現(xiàn),每個數(shù)組元素存放一個車牌號)每輛車的信息包括車牌號,層號,車位號,停車時間共4項,其
3、中停車時間按分鐘計算。2、假設(shè)停車場初始狀態(tài)為第一層已經(jīng)停有4輛車,其車位號依次為14,停車時間依次為20,15,10,5。即先將這四輛車的信息存入文件“car.dat"中(數(shù)組的對應(yīng)元素也要進行賦值)。3、停車操作:當(dāng)一輛車進入停車場時,先輸入其車牌號,再為它分配一個層號和一個車位號(分配前先查詢車位的使用情況,如果第一層有空則必須停在第一層),停車時間設(shè)為5,最后將新停入的汽車的信息添加文件"car.dat"中,并將在此之前的所有車的停車時間加5。4、收費管理(取車):當(dāng)有車離開時,輸入其車牌號,先按其停車時間計算費用,每5分鐘0.2元。(停車費用可設(shè)置一個變
4、量進行保存),同時從文件"car.dat"中刪除該車的信息,并將該車對應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對應(yīng)元素清零)。按用戶的選擇來判斷是否要輸出停車收費的總計。5、輸出停車場中全部車輛的信息。6、退出系統(tǒng)。需求分析:車輛信息用文件儲存,提供文件的輸入輸出操作;當(dāng)車離開時要刪除文件中該車的信息,因而要提供文件的刪除操作;另外還要用鍵盤式菜單實現(xiàn)功能選擇。二、總體設(shè)計思路:整個管理系統(tǒng)設(shè)計可設(shè)計為停車模塊、取車模塊、車輛瀏覽信息模塊。另外車輛停放信息涉及到從car.dat中讀取,保存和修改,為了方便起見,和程序的模塊化,我們將文件的讀入和保存單獨設(shè)計為兩個子程序。輸入車輛
5、車牌號存車 putcar停車模塊saveall將車輛信息存入car.dat輸入車牌號碼取車getcar取車模塊刪除車輛信息顯示停車費用main鍵盤式菜單showinfo車位信息exit退出 圖1 整體模塊圖各子程序設(shè)計如下:1.使用全局變量數(shù)組,用一個二維數(shù)組實現(xiàn)停車場車位的信息, int cars124;2.通過讀取car.dat的數(shù)據(jù),對程序初始化。下圖為car.dat的初始數(shù)據(jù):在init()通過一個for循環(huán)完成對car.dat中數(shù)據(jù)的讀取。for(i=0;i<12;i+) fscanf(fp,"%d ", &carsi0); fscanf(fp,&q
6、uot;%d ", &carsi1); fscanf(fp,"%d ", &carsi2); fscanf(fp,"%d ", &carsi3); 3.同理,我們設(shè)計一個子程序saveall()用來保存停車場車位的信息到car.dat。用for循環(huán)再將處理后的數(shù)據(jù)存入文件中。for(i=0;i<12;i+) fprintf(fp,"%d ", carsi0);fprintf(fp,"%d ", carsi1);fprintf(fp,"%d ", carsi
7、2);fprintf(fp,"%d ", carsi3);fprintf(fp,"n" );4.進行對停車模塊的設(shè)計:首先,輸入車輛的車牌號,我們從鍵盤讀取車牌號碼,并判斷車牌號碼是否正確(五位數(shù)整型車牌號碼)。輸入出錯時要求繼續(xù)輸入。我們引入flag標(biāo)志量判斷車牌號是否正確,初始int flag=1,從鍵盤讀入車牌號碼,并判斷:printf("請輸入您的車牌號:");doscanf("%d",&temp);if(temp>9999)&&(temp<100000)break;fl
8、ag=0;printf("請重新輸入五位數(shù)車牌號n :");while(!flag);其次,讀取的車牌號正確之后對標(biāo)志量清零flag=0,代表沒有沒有找到車位,進行為車輛找停車位的操作,如下:flag=0; for(i=1;i<13;i+) if(carsi0!=0)continue; carsi0=temp; flag=1; break; 通過for循環(huán)和continue語句找到?jīng)]有停車的車位,即cari0不等于0,并將標(biāo)志量flag賦值1,表示有車位,用break語句跳出循環(huán)。再用if語句處理flag=1的情況,即停車場車位已滿無法停車。最后,對存入的車輛賦初始時
9、間5,并且前面的已存入的車輛時間都加5。語句如下:for(i=0;i<12;i+) if(carsi0!=0)carsi3+=5;carsi2+=i;又因為我在car.dat已經(jīng)對車輛的停放樓層和車位有過初始賦值,可以省去再對carsi1和carsi2的操作。并且可以滿足“第一層有空位必須停在第一層”的要求,不過存在一個問題就是車輛只能按車位序號停放。5、取車模塊:第一步,讀取要提取車輛的車牌號碼。再通過flag標(biāo)志量對所輸入車牌號正誤分別處理。(初始flag=0)第二步,對于輸入正確的車輛進行操作:刪除車輛信息,再計算費用,再對時間清零并標(biāo)志取車成功。第三步,進過上一步后取車不成功時即
10、flag還是為0時,提示重復(fù)輸入車牌號直道成功為止。程序如下:doscanf("%d",&temp);if(temp>9999)&&(temp<100000)for(i=0;i<12;i+)if(carsi0=temp)carsi0=0; cost=0.2*carsi3/5;carsi3=0;flag=1;break;if(flag=0)printf("您輸入的車牌號碼有誤,請重新輸入。n");while(!flag);第四步,有選擇性的顯示收費價格:printf("n 顯示停車費用?是(1)/否(2)
11、");scanf("%d",&i);switch(i)case 1:printf("n車牌號 : %d 費用 %8.2f元n",temp,cost);case 2:default: break;最后,調(diào)用saveall()函數(shù)來保存數(shù)據(jù)到car.dat。6、車輛信息瀏覽模塊:注意我們只需要顯示有車的車位可以用for循環(huán)語句再加上if判斷語句來實現(xiàn)顯示功能。printf("車牌號tt樓層t 車位 tt時間n");for(i=0;i<12;i+)if(carsi0!=0)printf("%dtt %d t
12、t%d tt %dn",carsi0,carsi1,carsi2,carsi3);7、主函數(shù):調(diào)用子函數(shù)init()初始化讀取car.dat文件。用printf在屏幕上顯示停車場的菜單。再用switch語句實現(xiàn)選擇執(zhí)行哪個模塊語句。switch(a) case 1:putcar(); break;case 2:getcar();break;case 3:showinfo();break;case 4:exit(0); break; default:printf("您輸入的信息有誤!n"); break;getchar();三、程序設(shè)計#include <st
13、dio.h>#include <stdlib.h>#include<conio.h>#include<io.h>int cars124; /*停車場使用數(shù)組*/void init() /*初始化*/char filename = "car.dat"file *fp;int i;if(fp = fopen(filename,"r") = null)printf("無法打開文件 " car.dat"n");return ;for(i=0;i<12;i+) /*讀數(shù)據(jù)文件內(nèi)
14、容到數(shù)組*/fscanf(fp,"%d ", &carsi0);fscanf(fp,"%d ", &carsi1);fscanf(fp,"%d ", &carsi2);fscanf(fp,"%d ", &carsi3);fclose(fp);void saveall() /*保存數(shù)據(jù)到car.dat*/char filename = "car.dat"file *fp;int i=0;if(fp = fopen(filename,"w") =
15、null)printf("無法打開文件 " car.dat"n");return ;for(i=0;i<12;i+) /*寫數(shù)據(jù)到文件*/fprintf(fp,"%d ", carsi0);fprintf(fp,"%d ", carsi1);fprintf(fp,"%d ", carsi2);fprintf(fp,"%d ", carsi3);fprintf(fp,"n" );fclose(fp);void putcar() /*停車操作*/int
16、i;int temp;int flag=1;printf("nn*歡迎來到地大停車場*n");printf("請輸入你的車牌號:");doscanf("%d",&temp);if(temp>0)&&(temp<10000)break;flag=0;printf("your car number is a digit between 0 and 10000:");while(!flag);flag=0;for(i=0;i<12;i+)if(carsi0!=0)continue
17、;carsi0=temp;flag=1;break;if(flag=0) /*沒有找到位置,停車場已滿*/printf("很抱歉!車位已滿:n");return ;for(i=0;i<12;i+) /*所有車的停車時間一起加5*/if(carsi0!=0)carsi3+=5;saveall();getchar();printf("存車成功!n按任意鍵回到主菜單.");void getcar() /*取車*/int i,temp,flag=0;float cost;printf("nn*從停車場取車*n ");printf(&qu
18、ot; 請輸入你的車牌號碼:");doscanf("%d",&temp);if(temp>0)&&(temp<10000)for(i=0;i<12;i+)if(carsi0=temp)carsi0=0; /*刪除該車位車輛信息*/cost=0.2*carsi3/5;carsi3=0;flag=1;break;if(flag=0)printf("您輸入的車牌號碼有誤,請重新輸入。n");while(!flag);printf("n printf out the cost?yes(1)/no(2)
19、");scanf("%d",&i);switch(i)case 1:printf("n車牌號 : %d 費用 %8.2f元n",temp,cost);case 2:default: break;saveall(); /*保存數(shù)據(jù)*/getchar();printf("取車成功!n按任意鍵回到主菜單.");void showinfo() /*顯示當(dāng)前停車場信息*/int i;printf("nn*當(dāng)前停車場車位信息*n");printf("車牌號tt樓層t 車位 tt時間n");for(i=0;i<12;i+)if(carsi0!=0)printf("%dtt %d tt%d tt %dn",carsi0,carsi1,carsi2,carsi3);getchar();printf("輸入任意鍵返回主菜單.");int main()int a;init();do printf("nnn*n");printf("* 地大停車場管理系統(tǒng) *n");printf("* 1.停車
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZGTX 27-2025 原生態(tài)雪域滑雪能力要求規(guī)范
- T-ZSM 0059-2024“領(lǐng)跑者”評價技術(shù)要求 數(shù)控圓鋸床
- 二零二五年度房屋租賃合同租賃雙方租賃期間租賃物租賃權(quán)法律適用協(xié)議
- 2025年度汽車行業(yè)代理招聘人才合作協(xié)議
- 2025年度餐廳員工勞動合同試用期規(guī)定
- 鋼結(jié)構(gòu)合同補充協(xié)議(2025年度)安裝工程
- 二零二五年度危險品車輛運輸司機安全責(zé)任協(xié)議
- 2025年度食品飲料經(jīng)銷商授權(quán)及市場開發(fā)協(xié)議
- 二零二五年度借車車輛損失免責(zé)合同
- 二零二五年度雙方個人教育培訓(xùn)合作協(xié)議
- 2024至2030年中國蜜柚行業(yè)市場發(fā)展現(xiàn)狀及潛力分析研究報告
- 高達模型市場需求與消費特點分析
- XX小學(xué)法治副校長(派出所民警)法制教育課講稿
- 人音版音樂一年級上冊第3課《國旗國旗真美麗》說課稿
- 腸系膜上動脈栓塞護理查房課件
- DL∕T 2528-2022 電力儲能基本術(shù)語
- 產(chǎn)品研發(fā)指導(dǎo)專家聘用協(xié)議書
- 【正版授權(quán)】 IEC 60268-5:2003/AMD1:2007 EN-FR Amendment 1 - Sound system equipment - Part 5: Loudspeakers
- 2024年晉中職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整參考答案
- DL-T5493-2014電力工程基樁檢測技術(shù)規(guī)程
- 小學(xué)體育小課題研究
評論
0/150
提交評論