大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)

上傳人:優(yōu)*** 文檔編號:35891476 上傳時(shí)間:2021-10-28 格式:DOC 頁數(shù):15 大小:282KB
收藏 版權(quán)申訴 舉報(bào) 下載
大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)_第1頁
第1頁 / 共15頁
大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)_第2頁
第2頁 / 共15頁
大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)》由會員分享,可在線閱讀,更多相關(guān)《大學(xué) C語言 停車場管理系統(tǒng) 設(shè)計(jì)c語言課程設(shè)計(jì) (含調(diào)試圖)(15頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 真誠為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請指正。 Xxxxx大學(xué) xxxxxxxxxxx系 20xx-20xx學(xué)年第一學(xué)期 《C程序設(shè)計(jì)》課程設(shè)計(jì) 題目名稱: 停車場管理系統(tǒng)設(shè)計(jì) 姓 名 : 學(xué) 號 : 班 級 : 指導(dǎo)教師 :

2、 編寫日期 : 20 年1月5日—20 年1月31日 成績: 1 / 15 目錄 (一)需求分析 3 1-1停車 3 1-2取車 3 1-3功能的選擇 3 (二)總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖) 3 2-1停車模塊 3 2-2取車模塊 3 2-3車輛信息瀏覽模塊 4 2-4程序設(shè)計(jì)組成框圖 4 (三)詳細(xì)設(shè)計(jì) 4 3-1停車場分析 4 3-2停車操作 4 3-3收費(fèi)管理(取車) 5 3-4車輛信息 5 3-5退出系統(tǒng) 5 (四)程序運(yùn)行結(jié)果測試與分析 5 (五)結(jié)論與心得 7 (六)參考文獻(xiàn) 7 (七

3、)致謝 8 附錄: 8 (一)需求分析 1-1停車 車輛信息要用文件存儲,因而要提供文件的輸入輸出操作。 1-2取車 當(dāng)車離開時(shí),要?jiǎng)h除文件中 該車的信息, 因而要提供文件的刪除操作。 1-3功能的選擇 提供現(xiàn)實(shí)操作和用鍵盤式菜單實(shí)現(xiàn)功能選擇。 (二)總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖) 2-1停車模塊 對車輛信息賦值,分配前檢查車位使用情況(按行查找 park 數(shù)組,元素為 0 表示車位 為空,則允許分配) 。把新添加的車輛信息以追加的方式寫入汽車信息文件,并更改汽車信 息文件中其他汽車信息的停車時(shí)間(停車時(shí)間加 5) 。 2-2取車模塊 計(jì)算費(fèi)用(停車費(fèi)用=停車時(shí)

4、間*0.2 元) ,從文件中刪除該車信息。并將該車位對應(yīng)的 二位數(shù)組變量設(shè)為 0,表示該車位可用。輸出提示信息:是否輸出停車費(fèi)用總計(jì)?(Y/N) 如果選擇 Y,則輸出停車費(fèi)用,否則回到上級菜單。 2-3車輛信息瀏覽模塊 輸出車輛信息文件中的記錄。 另外,用戶按 Esc 鍵退出系統(tǒng)。 2-4程序設(shè)計(jì)組成框圖 停車場管理系統(tǒng) 取車 查看全部車輛信息 停車 退出 (三)詳細(xì)設(shè)計(jì) 3-1停車場分析 有一個(gè)兩層的停車場, 每層有6個(gè)車位, 當(dāng)?shù)谝粚榆囃M后才允許使用第二層。 ( 停車場可用一個(gè)二維數(shù)組實(shí)現(xiàn), 每個(gè)數(shù)組元素存放一個(gè)車牌號 ) 假設(shè)停車場初始狀態(tài)為第

5、一層已經(jīng)停有4輛車, 其車位號依次為1—4 , 停車時(shí)間依次為20, 15, 10 , 5 . 即先將這四輛車的信息存入文件”car.dat”中。( 數(shù)組的對應(yīng)元素也要進(jìn)行賦值 ) 3-2停車操作 當(dāng)一輛車進(jìn)入停車場時(shí), 先輸入其車牌號, 再為它分配一個(gè)層號和一個(gè)車位號(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時(shí)間設(shè)為5 , 最后將新停入的汽車的信息添加文件 ”car.dat”中, 并將在此之前的所有車的停車時(shí)間加5。 3-3收費(fèi)管理(取車) 當(dāng)有車離開時(shí), 輸入其車牌號, 先按其停車時(shí)間計(jì)算費(fèi)用, 每5分鐘0.2元. (停車費(fèi)用可設(shè)置一個(gè)變量進(jìn)行保

6、存), 同時(shí)從文件”car.dat”中刪除該車的信息, 并將該車對應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對應(yīng)元素清零). 按用戶的選擇來判斷是否要輸出停車收費(fèi)的總計(jì)。 3-4車輛信息 輸出停車場中全部車輛的信息。 3-5退出系統(tǒng) 退出系統(tǒng)。 (四)程序運(yùn)行結(jié)果測試與分析 系統(tǒng)初始運(yùn)行時(shí),會顯示如圖4-1所示的輸入界面,用戶可以根據(jù)提示,進(jìn)行相應(yīng)的選擇,來完成系統(tǒng)提供的各種功能。根據(jù)系統(tǒng)提示提示用戶選擇相應(yīng)的數(shù)字鍵,按ENTER鍵后進(jìn)入相應(yīng)的功能菜單。如下圖4-2是輸入1,顯示停車以及所需用戶的車牌號輸入后按ENTER鍵進(jìn)入所要放車的停車位菜單,其中包含了系統(tǒng)分配的層號和一個(gè)車位號

7、即圖4-3 下面即為此程序執(zhí)行此功能時(shí)的截圖: 圖4-1輸入界面 圖4-2輸入1和車牌號界面 圖4-3詳細(xì)信息界面 (五)結(jié)論與心得 通過這次實(shí)習(xí),讓我初步有了編寫小系統(tǒng)的能力,我對很多的函數(shù)有了新的認(rèn)識,也學(xué)會了運(yùn)用多種函數(shù),也明白了編寫軟件的基本過程和基本方法。編寫軟件的過程中我又學(xué)到了曾經(jīng)自己不知道的函數(shù)或是自己不會的函數(shù)的用法。這次課程設(shè)計(jì)課總的來說讓我受益匪淺。 在軟件的設(shè)計(jì)過程中遇到了很多的困難。在軟件一次一次的調(diào)試失敗下,曾經(jīng)想過要放棄。我最后還是堅(jiān)持了下來,毫不畏懼困難,在一起討論論證到底是用什么函數(shù)

8、,什么樣的循環(huán)來最簡單的實(shí)現(xiàn)程序的功能,經(jīng)過幾個(gè)日夜的努力我總算是順利的完成了軟件的設(shè)計(jì)。 在程序的編寫過程中我發(fā)現(xiàn)有很多的知識漏洞和缺陷,需要進(jìn)一步努力學(xué)習(xí)來鞏固完善自己的知識面。在這幾天的編寫過程中我對c語言有了更進(jìn)一步的認(rèn)識和了解。此次編程過程的經(jīng)驗(yàn)和知識肯定能促進(jìn)我以后的學(xué)習(xí),更是對我今后參加電子設(shè)計(jì)類軟件編程大賽有較大的幫助 (六)參考文獻(xiàn) [1]譚浩強(qiáng),《C程序設(shè)計(jì)(第四版)》,北京:清華大學(xué)出版社,2010.6 [2] (七)致謝 能夠完成這次課程設(shè)計(jì)要感謝c語言課程的老師,感謝老師的悉心教導(dǎo),幫助改錯(cuò),還要感謝各位同學(xué)的幫助,我會繼續(xù)努力的。

9、 附錄: 程序源代碼: #include #include #include struct Garage { char carnum[8]; /*車牌號*/ int lay; //層號 int garagenum; /*車位號*/ int time; /*停車時(shí)間*/ int isempty; /*該車位是否為空,1表示空,0表示有車*/ };/*打印使用說明*/ void Instruction() { printf(" 停車場管理系統(tǒng)使用說明\n"); printf(" 停車請輸入 1

10、取車請輸入 2 \n"); printf(" 查看全部車輛的信息請輸入 3 退出請輸入 0 \n"); }/*初始化停車場信息,初始狀態(tài)為第一層已經(jīng)停有4輛車, * 其車位號依次為1-4 , 停車時(shí)間依次為20, 15, 10 , 5 */ void Init(struct Garage gar[][6]) { int i, j; /*給所有的車位的層號,車位號初始化,停車時(shí)間初始化為0,停車位全都初始化為空*/ for (i=0; i<2; i++) { for (j=0; j<6; j++) { gar[i][j].lay = i+1; gar[i][j

11、].garagenum = j+1; gar[i][j].time = 0; gar[i][j].isempty = 1; } } /*第一層的1-4號車位停車*/ for (i=0; i<4; i++) { gar[0][i].isempty =0; } strcpy(gar[0][0].carnum, "0000"); /*初始化的車牌號*/ gar[0][0].time = 20; strcpy(gar[0][1].carnum, "1111"); gar[0][1].time = 15; strcpy(gar[0][2].carnum, "

12、2222"); gar[0][2].time = 10; strcpy(gar[0][3].carnum, "3333"); gar[0][3].time = 5;} /*新停入的汽車后,將在此之前的所有車的停車時(shí)間加5*/ void AddTime(struct Garage gar[][6]) { int i, j; for (i=0; i<2; i++) { for (j=0; j<6; j++) { if (gar[i][j].isempty == 0) { gar[i][j].time += 5; } } } } /*停車*/ vo

13、id Park(struct Garage gar[][6]) { int i; char num[8]; printf("請輸入車牌號:"); scanf("%s", num); for (i=0; i<6; i++) { if (gar[0][i].isempty == 1) { printf("第一層第%d號車位空著,請?jiān)诖颂幫\嘰n", i+1); strcpy(gar[0][i].carnum, num); printf("車牌號:%s 層號:1 車位號: %d \n", num, i+1); AddTime(gar); /*在此之前停車的所有汽車時(shí)間加5

14、*/ gar[0][i].isempty = 0; /*表示該車為已經(jīng)停車*/ gar[0][i].time = 5; /*將時(shí)間設(shè)為5*/ return; } } printf("第一層已經(jīng)沒有空車位\n"); for (i=0; i<6; i++) { if (gar[1][i].isempty == 1) { printf("第二層第%d號車位空著,請?jiān)诖颂幫\嘰n", i+1); strcpy(gar[1][i].carnum, num); printf("車牌號:%s 層號:2 車位號: %d \n", num ,i+1); AddTi

15、me(gar); /*在此之前停車的所有汽車時(shí)間加5*/ gar[1][i].isempty = 0; /*表示該車位已經(jīng)停車*/ gar[1][i].time = 5; /*將時(shí)間設(shè)為5*/ return; } } printf("對不起,1 2層都沒有空車位,您現(xiàn)在不能在此停車\n"); } /*查看所有車輛信息*/ void Information(struct Garage gar[][6]) { int i, j; printf(" 車牌號 層號 車位號 停車時(shí)間\n"); for (i=0; i<2; i++) { for(j=0; j<6

16、; j++) { if (gar[i][j].isempty == 0) printf(" %s%8d%8d%8d\n", gar[i][j].carnum, gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time); } } printf("\n"); } /*取車*/ double Leave(struct Garage gar[2][6]) { int i, j; char num[8]; double charge = 0; printf("請輸入要取的車牌號:"); scanf("%s", nu

17、m); for (i=0; i<2; i++) { for (j=0; j<6; j++) { if (!strcmp(gar[i][j].carnum, num)) { printf("您在%d層%d車位停車%d分鐘\n", gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time); charge = gar[i][j].time/5*0.2; printf("停車費(fèi)用為每5分鐘0.2元,您需交%.2lf元\n", charge); gar[i][j].isempty = 1; return charge; }

18、 } } printf("沒有您輸入的車號。\n\n"); return charge; } /*是否查看總收入*/ void IsPrintTotal(double total) { char ch; printf("是否查看停車收費(fèi)總計(jì)?Y/N"); scanf("%c", &ch); while (ch!=y && ch!=Y && ch!=n && ch!=N) { printf("請輸入Y或N "); scanf("%c", &ch); printf("\n"); } switch (ch) { case Y:

19、case y: printf("停車收費(fèi)總計(jì)為%.2lf元\n", total); break; case N: case n: break; } } main() { int choice; double total = 0; struct Garage gar[2][6]; Init(gar); //初始化第一層已經(jīng)停有的4輛車 while (1) { Instruction(); printf("請輸入要進(jìn)行的操作:"); scanf("%d", &choice); while (choice<0 || choice>3) { printf("輸入的不合法,請輸入0-3選擇:"); scanf("%d", &choice); } switch (choice) { case 1: Park(gar); break; case 2: total += Leave(gar); IsPrintTotal(total); break; case 3: Information(gar); break; case 0: exit(0); } } return 0; } 溫馨提示:最好仔細(xì)閱讀后才下載使用,萬分感謝!

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!