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



《大學(xué) C語(yǔ)言 停車(chē)場(chǎng)管理系統(tǒng) 設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì) (含調(diào)試圖)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《大學(xué) C語(yǔ)言 停車(chē)場(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): 停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì) 姓 名 : 學(xué) 號(hào) : 班 級(jí) : 指導(dǎo)教師 :
2、 編寫(xiě)日期 : 20 年1月5日—20 年1月31日 成績(jī): 1 / 15 目錄 (一)需求分析 3 1-1停車(chē) 3 1-2取車(chē) 3 1-3功能的選擇 3 (二)總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖) 3 2-1停車(chē)模塊 3 2-2取車(chē)模塊 3 2-3車(chē)輛信息瀏覽模塊 4 2-4程序設(shè)計(jì)組成框圖 4 (三)詳細(xì)設(shè)計(jì) 4 3-1停車(chē)場(chǎng)分析 4 3-2停車(chē)操作 4 3-3收費(fèi)管理(取車(chē)) 5 3-4車(chē)輛信息 5 3-5退出系統(tǒng) 5 (四)程序運(yùn)行結(jié)果測(cè)試與分析 5 (五)結(jié)論與心得 7 (六)參考文獻(xiàn) 7 (七
3、)致謝 8 附錄: 8 (一)需求分析 1-1停車(chē) 車(chē)輛信息要用文件存儲(chǔ),因而要提供文件的輸入輸出操作。 1-2取車(chē) 當(dāng)車(chē)離開(kāi)時(shí),要?jiǎng)h除文件中 該車(chē)的信息, 因而要提供文件的刪除操作。 1-3功能的選擇 提供現(xiàn)實(shí)操作和用鍵盤(pán)式菜單實(shí)現(xiàn)功能選擇。 (二)總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖) 2-1停車(chē)模塊 對(duì)車(chē)輛信息賦值,分配前檢查車(chē)位使用情況(按行查找 park 數(shù)組,元素為 0 表示車(chē)位 為空,則允許分配) 。把新添加的車(chē)輛信息以追加的方式寫(xiě)入汽車(chē)信息文件,并更改汽車(chē)信 息文件中其他汽車(chē)信息的停車(chē)時(shí)間(停車(chē)時(shí)間加 5) 。 2-2取車(chē)模塊 計(jì)算費(fèi)用(停車(chē)費(fèi)用=停車(chē)時(shí)
4、間*0.2 元) ,從文件中刪除該車(chē)信息。并將該車(chē)位對(duì)應(yīng)的 二位數(shù)組變量設(shè)為 0,表示該車(chē)位可用。輸出提示信息:是否輸出停車(chē)費(fèi)用總計(jì)?(Y/N) 如果選擇 Y,則輸出停車(chē)費(fèi)用,否則回到上級(jí)菜單。 2-3車(chē)輛信息瀏覽模塊 輸出車(chē)輛信息文件中的記錄。 另外,用戶(hù)按 Esc 鍵退出系統(tǒng)。 2-4程序設(shè)計(jì)組成框圖 停車(chē)場(chǎng)管理系統(tǒng) 取車(chē) 查看全部車(chē)輛信息 停車(chē) 退出 (三)詳細(xì)設(shè)計(jì) 3-1停車(chē)場(chǎng)分析 有一個(gè)兩層的停車(chē)場(chǎng), 每層有6個(gè)車(chē)位, 當(dāng)?shù)谝粚榆?chē)停滿(mǎn)后才允許使用第二層。 ( 停車(chē)場(chǎng)可用一個(gè)二維數(shù)組實(shí)現(xiàn), 每個(gè)數(shù)組元素存放一個(gè)車(chē)牌號(hào) ) 假設(shè)停車(chē)場(chǎng)初始狀態(tài)為第
5、一層已經(jīng)停有4輛車(chē), 其車(chē)位號(hào)依次為1—4 , 停車(chē)時(shí)間依次為20, 15, 10 , 5 . 即先將這四輛車(chē)的信息存入文件”car.dat”中。( 數(shù)組的對(duì)應(yīng)元素也要進(jìn)行賦值 ) 3-2停車(chē)操作 當(dāng)一輛車(chē)進(jìn)入停車(chē)場(chǎng)時(shí), 先輸入其車(chē)牌號(hào), 再為它分配一個(gè)層號(hào)和一個(gè)車(chē)位號(hào)(分配前先查詢(xún)車(chē)位的使用情況, 如果第一層有空則必須停在第一層), 停車(chē)時(shí)間設(shè)為5 , 最后將新停入的汽車(chē)的信息添加文件 ”car.dat”中, 并將在此之前的所有車(chē)的停車(chē)時(shí)間加5。 3-3收費(fèi)管理(取車(chē)) 當(dāng)有車(chē)離開(kāi)時(shí), 輸入其車(chē)牌號(hào), 先按其停車(chē)時(shí)間計(jì)算費(fèi)用, 每5分鐘0.2元. (停車(chē)費(fèi)用可設(shè)置一個(gè)變量進(jìn)行保
6、存), 同時(shí)從文件”car.dat”中刪除該車(chē)的信息, 并將該車(chē)對(duì)應(yīng)的車(chē)位設(shè)置為可使用狀態(tài)(即二維數(shù)組對(duì)應(yīng)元素清零). 按用戶(hù)的選擇來(lái)判斷是否要輸出停車(chē)收費(fèi)的總計(jì)。 3-4車(chē)輛信息 輸出停車(chē)場(chǎng)中全部車(chē)輛的信息。 3-5退出系統(tǒng) 退出系統(tǒng)。 (四)程序運(yùn)行結(jié)果測(cè)試與分析 系統(tǒng)初始運(yùn)行時(shí),會(huì)顯示如圖4-1所示的輸入界面,用戶(hù)可以根據(jù)提示,進(jìn)行相應(yīng)的選擇,來(lái)完成系統(tǒng)提供的各種功能。根據(jù)系統(tǒng)提示提示用戶(hù)選擇相應(yīng)的數(shù)字鍵,按ENTER鍵后進(jìn)入相應(yīng)的功能菜單。如下圖4-2是輸入1,顯示停車(chē)以及所需用戶(hù)的車(chē)牌號(hào)輸入后按ENTER鍵進(jìn)入所要放車(chē)的停車(chē)位菜單,其中包含了系統(tǒng)分配的層號(hào)和一個(gè)車(chē)位號(hào)
7、即圖4-3 下面即為此程序執(zhí)行此功能時(shí)的截圖: 圖4-1輸入界面 圖4-2輸入1和車(chē)牌號(hào)界面 圖4-3詳細(xì)信息界面 (五)結(jié)論與心得 通過(guò)這次實(shí)習(xí),讓我初步有了編寫(xiě)小系統(tǒng)的能力,我對(duì)很多的函數(shù)有了新的認(rèn)識(shí),也學(xué)會(huì)了運(yùn)用多種函數(shù),也明白了編寫(xiě)軟件的基本過(guò)程和基本方法。編寫(xiě)軟件的過(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ì)。 在程序的編寫(xiě)過(guò)程中我發(fā)現(xiàn)有很多的知識(shí)漏洞和缺陷,需要進(jìn)一步努力學(xué)習(xí)來(lái)鞏固完善自己的知識(shí)面。在這幾天的編寫(xiě)過(guò)程中我對(duì)c語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解。此次編程過(guò)程的經(jīng)驗(yàn)和知識(shí)肯定能促進(jìn)我以后的學(xué)習(xí),更是對(duì)我今后參加電子設(shè)計(jì)類(lèi)軟件編程大賽有較大的幫助 (六)參考文獻(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、取車(chē)請(qǐng)輸入 2 \n"); printf(" 查看全部車(chē)輛的信息請(qǐng)輸入 3 退出請(qǐng)輸入 0 \n"); }/*初始化停車(chē)場(chǎng)信息,初始狀態(tài)為第一層已經(jīng)停有4輛車(chē), * 其車(chē)位號(hào)依次為1-4 , 停車(chē)時(shí)間依次為20, 15, 10 , 5 */ void Init(struct Garage gar[][6]) { int i, j; /*給所有的車(chē)位的層號(hào),車(chē)位號(hào)初始化,停車(chē)時(shí)間初始化為0,停車(chē)位全都初始化為空*/ 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)車(chē)位停車(chē)*/ for (i=0; i<4; i++) { gar[0][i].isempty =0; } strcpy(gar[0][0].carnum, "0000"); /*初始化的車(chē)牌號(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;} /*新停入的汽車(chē)后,將在此之前的所有車(chē)的停車(chē)時(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; } } } } /*停車(chē)*/ vo
13、id Park(struct Garage gar[][6]) { int i; char num[8]; printf("請(qǐng)輸入車(chē)牌號(hào):"); scanf("%s", num); for (i=0; i<6; i++) { if (gar[0][i].isempty == 1) { printf("第一層第%d號(hào)車(chē)位空著,請(qǐng)?jiān)诖颂幫\?chē)\n", i+1); strcpy(gar[0][i].carnum, num); printf("車(chē)牌號(hào):%s 層號(hào):1 車(chē)位號(hào): %d \n", num, i+1); AddTime(gar); /*在此之前停車(chē)的所有汽車(chē)時(shí)間加5
14、*/ gar[0][i].isempty = 0; /*表示該車(chē)為已經(jīng)停車(chē)*/ gar[0][i].time = 5; /*將時(shí)間設(shè)為5*/ return; } } printf("第一層已經(jīng)沒(méi)有空車(chē)位\n"); for (i=0; i<6; i++) { if (gar[1][i].isempty == 1) { printf("第二層第%d號(hào)車(chē)位空著,請(qǐng)?jiān)诖颂幫\?chē)\n", i+1); strcpy(gar[1][i].carnum, num); printf("車(chē)牌號(hào):%s 層號(hào):2 車(chē)位號(hào): %d \n", num ,i+1); AddTi
15、me(gar); /*在此之前停車(chē)的所有汽車(chē)時(shí)間加5*/ gar[1][i].isempty = 0; /*表示該車(chē)位已經(jīng)停車(chē)*/ gar[1][i].time = 5; /*將時(shí)間設(shè)為5*/ return; } } printf("對(duì)不起,1 2層都沒(méi)有空車(chē)位,您現(xiàn)在不能在此停車(chē)\n"); } /*查看所有車(chē)輛信息*/ void Information(struct Garage gar[][6]) { int i, j; printf(" 車(chē)牌號(hào) 層號(hào) 車(chē)位號(hào) 停車(chē)時(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"); } /*取車(chē)*/ double Leave(struct Garage gar[2][6]) { int i, j; char num[8]; double charge = 0; printf("請(qǐng)輸入要取的車(chē)牌號(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車(chē)位停車(chē)%d分鐘\n", gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time); charge = gar[i][j].time/5*0.2; printf("停車(chē)費(fèi)用為每5分鐘0.2元,您需交%.2lf元\n", charge); gar[i][j].isempty = 1; return charge; }
18、 } } printf("沒(méi)有您輸入的車(chē)號(hào)。\n\n"); return charge; } /*是否查看總收入*/ void IsPrintTotal(double total) { char ch; printf("是否查看停車(chē)收費(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("停車(chē)收費(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輛車(chē) 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)益歸上傳用戶(hù)所有。
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ì)用戶(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025開(kāi)年第一課知敬畏守底線(xiàn)為2025年開(kāi)門(mén)紅營(yíng)造風(fēng)清氣正的干事環(huán)境
- 高考倒計(jì)時(shí)100天學(xué)生與家長(zhǎng)如何攜手前行主題班會(huì)
- 2025民營(yíng)企業(yè)座談會(huì)要點(diǎn)速覽促進(jìn)民營(yíng)經(jīng)濟(jì)發(fā)展
- 3月5日學(xué)習(xí)雷鋒主題班會(huì)爭(zhēng)做當(dāng)代雷鋒
- 三八婦女節(jié)致敬新時(shí)代的巾幗英雄
- 從井岡山歌謠感悟井岡山精神身體力行重唱紅歌
- 三八婦女節(jié)致敬新時(shí)代的巾幗英雄
- 心理開(kāi)學(xué)第一課家長(zhǎng)應(yīng)如何幫助孩子應(yīng)對(duì)開(kāi)學(xué)綜合征
- 初三中考百日倒計(jì)時(shí)動(dòng)員班會(huì)逆襲狂飆促奇跡
- 民俗文化二月二龍?zhí)ь^主題班會(huì)二月二龍?zhí)ь^風(fēng)調(diào)雨順好年頭
- 3月5日學(xué)雷鋒紀(jì)念日主題班會(huì)助人為樂(lè)無(wú)私奉獻(xiàn)
- 幼兒園開(kāi)學(xué)第一課家長(zhǎng)會(huì)家園共育緩解入學(xué)焦慮
- 我們開(kāi)學(xué)啦主題班會(huì)新學(xué)期新氣象新起點(diǎn)
- 人教版四年級(jí)數(shù)學(xué)上冊(cè)《筆算除法》教學(xué)課件
- 深入學(xué)習(xí)2025新修訂《中小學(xué)生學(xué)籍管理辦法》新辦法新在哪里
相關(guān)資源
更多