大學(xué) C語(yǔ)言 停車場(chǎng)管理系統(tǒng) 設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì) (含調(diào)試圖)
《大學(xué) C語(yǔ)言 停車場(chǎng)管理系統(tǒng) 設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì) (含調(diào)試圖)》由會(huì)員分享,可在線閱讀,更多相關(guān)《大學(xué) C語(yǔ)言 停車場(chǎng)管理系統(tǒng) 設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì) (含調(diào)試圖)(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 真誠(chéng)為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請(qǐng)指正。 Xxxxx大學(xué) xxxxxxxxxxx系 20xx-20xx學(xué)年第一學(xué)期 《C程序設(shè)計(jì)》課程設(shè)計(jì) 題目名稱: 停車場(chǎng)管理系統(tǒng)設(shè)計(jì) 姓 名 : 學(xué) 號(hào) : 班 級(jí) : 指導(dǎo)教師 :
2、 編寫日期 : 20 年1月5日—20 年1月31日 成績(jī): 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停車場(chǎng)分析 4 3-2停車操作 4 3-3收費(fèi)管理(取車) 5 3-4車輛信息 5 3-5退出系統(tǒng) 5 (四)程序運(yùn)行結(jié)果測(cè)試與分析 5 (五)結(jié)論與心得 7 (六)參考文獻(xiàn) 7 (七
3、)致謝 8 附錄: 8 (一)需求分析 1-1停車 車輛信息要用文件存儲(chǔ),因而要提供文件的輸入輸出操作。 1-2取車 當(dāng)車離開(kāi)時(shí),要?jiǎng)h除文件中 該車的信息, 因而要提供文件的刪除操作。 1-3功能的選擇 提供現(xiàn)實(shí)操作和用鍵盤式菜單實(shí)現(xiàn)功能選擇。 (二)總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖) 2-1停車模塊 對(duì)車輛信息賦值,分配前檢查車位使用情況(按行查找 park 數(shù)組,元素為 0 表示車位 為空,則允許分配) 。把新添加的車輛信息以追加的方式寫入汽車信息文件,并更改汽車信 息文件中其他汽車信息的停車時(shí)間(停車時(shí)間加 5) 。 2-2取車模塊 計(jì)算費(fèi)用(停車費(fèi)用=停車時(shí)
4、間*0.2 元) ,從文件中刪除該車信息。并將該車位對(duì)應(yīng)的 二位數(shù)組變量設(shè)為 0,表示該車位可用。輸出提示信息:是否輸出停車費(fèi)用總計(jì)?(Y/N) 如果選擇 Y,則輸出停車費(fèi)用,否則回到上級(jí)菜單。 2-3車輛信息瀏覽模塊 輸出車輛信息文件中的記錄。 另外,用戶按 Esc 鍵退出系統(tǒng)。 2-4程序設(shè)計(jì)組成框圖 停車場(chǎng)管理系統(tǒng) 取車 查看全部車輛信息 停車 退出 (三)詳細(xì)設(shè)計(jì) 3-1停車場(chǎng)分析 有一個(gè)兩層的停車場(chǎng), 每層有6個(gè)車位, 當(dāng)?shù)谝粚榆囃M后才允許使用第二層。 ( 停車場(chǎng)可用一個(gè)二維數(shù)組實(shí)現(xiàn), 每個(gè)數(shù)組元素存放一個(gè)車牌號(hào) ) 假設(shè)停車場(chǎng)初始狀態(tài)為第
5、一層已經(jīng)停有4輛車, 其車位號(hào)依次為1—4 , 停車時(shí)間依次為20, 15, 10 , 5 . 即先將這四輛車的信息存入文件”car.dat”中。( 數(shù)組的對(duì)應(yīng)元素也要進(jìn)行賦值 ) 3-2停車操作 當(dāng)一輛車進(jìn)入停車場(chǎng)時(shí), 先輸入其車牌號(hào), 再為它分配一個(gè)層號(hào)和一個(gè)車位號(hào)(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時(shí)間設(shè)為5 , 最后將新停入的汽車的信息添加文件 ”car.dat”中, 并將在此之前的所有車的停車時(shí)間加5。 3-3收費(fèi)管理(取車) 當(dāng)有車離開(kāi)時(shí), 輸入其車牌號(hào), 先按其停車時(shí)間計(jì)算費(fèi)用, 每5分鐘0.2元. (停車費(fèi)用可設(shè)置一個(gè)變量進(jìn)行保
6、存), 同時(shí)從文件”car.dat”中刪除該車的信息, 并將該車對(duì)應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對(duì)應(yīng)元素清零). 按用戶的選擇來(lái)判斷是否要輸出停車收費(fèi)的總計(jì)。 3-4車輛信息 輸出停車場(chǎng)中全部車輛的信息。 3-5退出系統(tǒng) 退出系統(tǒng)。 (四)程序運(yùn)行結(jié)果測(cè)試與分析 系統(tǒng)初始運(yùn)行時(shí),會(huì)顯示如圖4-1所示的輸入界面,用戶可以根據(jù)提示,進(jìn)行相應(yīng)的選擇,來(lái)完成系統(tǒng)提供的各種功能。根據(jù)系統(tǒng)提示提示用戶選擇相應(yīng)的數(shù)字鍵,按ENTER鍵后進(jìn)入相應(yīng)的功能菜單。如下圖4-2是輸入1,顯示停車以及所需用戶的車牌號(hào)輸入后按ENTER鍵進(jìn)入所要放車的停車位菜單,其中包含了系統(tǒng)分配的層號(hào)和一個(gè)車位號(hào)
7、即圖4-3 下面即為此程序執(zhí)行此功能時(shí)的截圖: 圖4-1輸入界面 圖4-2輸入1和車牌號(hào)界面 圖4-3詳細(xì)信息界面 (五)結(jié)論與心得 通過(guò)這次實(shí)習(xí),讓我初步有了編寫小系統(tǒng)的能力,我對(duì)很多的函數(shù)有了新的認(rèn)識(shí),也學(xué)會(huì)了運(yùn)用多種函數(shù),也明白了編寫軟件的基本過(guò)程和基本方法。編寫軟件的過(guò)程中我又學(xué)到了曾經(jīng)自己不知道的函數(shù)或是自己不會(huì)的函數(shù)的用法。這次課程設(shè)計(jì)課總的來(lái)說(shuō)讓我受益匪淺。 在軟件的設(shè)計(jì)過(guò)程中遇到了很多的困難。在軟件一次一次的調(diào)試失敗下,曾經(jīng)想過(guò)要放棄。我最后還是堅(jiān)持了下來(lái),毫不畏懼困難,在一起討論論證到底是用什么函數(shù)
8、,什么樣的循環(huán)來(lái)最簡(jiǎn)單的實(shí)現(xiàn)程序的功能,經(jīng)過(guò)幾個(gè)日夜的努力我總算是順利的完成了軟件的設(shè)計(jì)。 在程序的編寫過(guò)程中我發(fā)現(xiàn)有很多的知識(shí)漏洞和缺陷,需要進(jìn)一步努力學(xué)習(xí)來(lái)鞏固完善自己的知識(shí)面。在這幾天的編寫過(guò)程中我對(duì)c語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解。此次編程過(guò)程的經(jīng)驗(yàn)和知識(shí)肯定能促進(jìn)我以后的學(xué)習(xí),更是對(duì)我今后參加電子設(shè)計(jì)類軟件編程大賽有較大的幫助 (六)參考文獻(xiàn) [1]譚浩強(qiáng),《C程序設(shè)計(jì)(第四版)》,北京:清華大學(xué)出版社,2010.6 [2] (七)致謝 能夠完成這次課程設(shè)計(jì)要感謝c語(yǔ)言課程的老師,感謝老師的悉心教導(dǎo),幫助改錯(cuò),還要感謝各位同學(xué)的幫助,我會(huì)繼續(xù)努力的。
9、
附錄:
程序源代碼:
#include
10、取車請(qǐng)輸入 2 \n"); printf(" 查看全部車輛的信息請(qǐng)輸入 3 退出請(qǐng)輸入 0 \n"); }/*初始化停車場(chǎng)信息,初始狀態(tài)為第一層已經(jīng)停有4輛車, * 其車位號(hào)依次為1-4 , 停車時(shí)間依次為20, 15, 10 , 5 */ void Init(struct Garage gar[][6]) { int i, j; /*給所有的車位的層號(hào),車位號(hào)初始化,停車時(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號(hào)車位停車*/ for (i=0; i<4; i++) { gar[0][i].isempty =0; } strcpy(gar[0][0].carnum, "0000"); /*初始化的車牌號(hào)*/ 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("請(qǐng)輸入車牌號(hào):"); scanf("%s", num); for (i=0; i<6; i++) { if (gar[0][i].isempty == 1) { printf("第一層第%d號(hào)車位空著,請(qǐng)?jiān)诖颂幫\嘰n", i+1); strcpy(gar[0][i].carnum, num); printf("車牌號(hào):%s 層號(hào):1 車位號(hào): %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)沒(méi)有空車位\n"); for (i=0; i<6; i++) { if (gar[1][i].isempty == 1) { printf("第二層第%d號(hào)車位空著,請(qǐng)?jiān)诖颂幫\嘰n", i+1); strcpy(gar[1][i].carnum, num); printf("車牌號(hào):%s 層號(hào):2 車位號(hào): %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("對(duì)不起,1 2層都沒(méi)有空車位,您現(xiàn)在不能在此停車\n"); } /*查看所有車輛信息*/ void Information(struct Garage gar[][6]) { int i, j; printf(" 車牌號(hào) 層號(hào) 車位號(hào) 停車時(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("請(qǐng)輸入要取的車牌號(hào):"); 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("沒(méi)有您輸入的車號(hào)。\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("請(qǐng)輸入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("請(qǐng)輸入要進(jìn)行的操作:"); scanf("%d", &choice); while (choice<0 || choice>3) { printf("輸入的不合法,請(qǐng)輸入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ì)閱讀后才下載使用,萬(wàn)分感謝!
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 領(lǐng)導(dǎo)班子2024年度民主生活會(huì)對(duì)照檢查材料范文(三篇)
- 金融工作主題黨課講稿范文(匯編)
- 鍋爐必備學(xué)習(xí)材料
- 鍋爐設(shè)備的檢修
- 主題黨課講稿:走中國(guó)特色金融發(fā)展之路加快建設(shè)金融強(qiáng)國(guó)(范文)
- 鍋爐基礎(chǔ)知識(shí):?jiǎn)t注意事項(xiàng)技術(shù)問(wèn)答題
- 領(lǐng)導(dǎo)班子2024年度民主生活會(huì)“四個(gè)帶頭”對(duì)照檢查材料范文(三篇)
- 正常運(yùn)行時(shí)影響鍋爐汽溫的因素和調(diào)整方法
- 3.鍋爐檢修模擬考試復(fù)習(xí)題含答案
- 司爐作業(yè)人員模擬考試試卷含答案-2
- 3.鍋爐閥門模擬考試復(fù)習(xí)題含答案
- 某公司鍋爐安全檢查表
- 3.工業(yè)鍋爐司爐模擬考試題庫(kù)試卷含答案
- 4.司爐工考試題含答案解析
- 發(fā)電廠鍋爐的運(yùn)行監(jiān)視和調(diào)整