停車場管理系統(tǒng)_第1頁
停車場管理系統(tǒng)_第2頁
停車場管理系統(tǒng)_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C 語言課程設(shè)計(jì)報(bào)告停車場管理系統(tǒng)1 題目要求設(shè)有一個(gè)可以停放 n 輛汽車的狹長停車場,它只有一個(gè)大門可以供車輛進(jìn)出。車輛按到達(dá)停車場時(shí)間的早晚依次從停車場最里面向大門口處停放 (最先到達(dá)的第一輛車放在停車場的最里面) 。如果停車場已放滿 n 輛車,則后來的車輛只能在停車場大門外的便道上等待, 一旦停車場內(nèi)有車開走, 則排在便道上的第一輛車就進(jìn)入停車站。 停車站內(nèi)如有某輛車要開走, 在它之后進(jìn)入停車場的車都必須先退出停車站為它讓路, 待其開出停車場后,這些車輛再依原來的次序進(jìn)場。每輛車在離開停車場時(shí), 都應(yīng)根據(jù)它在停車場內(nèi)停留的時(shí)間長短交費(fèi)。 如果停留在便道上的車未進(jìn)停車場就要離去, 允許其離

2、去, 不收停車費(fèi), 并且仍然保持在便道上等待的車輛的次序。編制一程序模擬該停車場的管理?!净疽蟆恳蟪绦蜉敵雒枯v車到達(dá)后的停車位置(停車場或便道上) ,以及某輛車離開停車場是的停車時(shí)間及它應(yīng)該交的費(fèi)用。2 需求分析根據(jù)題目要求,因?yàn)橥\噲鍪且粋€(gè)單條的序列,可以用結(jié)構(gòu)體實(shí)現(xiàn);在程序中,需要知道每輛來車的具體停放位置,應(yīng)提供提示、查找、標(biāo)記工作。車輛離開要計(jì)時(shí)計(jì)費(fèi)。另外,每天開始時(shí),停車場要初始化 。3 總體設(shè)計(jì)這個(gè)系統(tǒng)可以分為:初始化、有車進(jìn)入、有車離開、退出四個(gè)模塊。4 詳細(xì)設(shè)計(jì)main()函數(shù)體內(nèi)包含了界面選則部分 menu(),并單獨(dú)抽出來作為一個(gè)獨(dú)立函數(shù),目的在于系統(tǒng)執(zhí)行每部分模塊后

3、能夠方便返回到系統(tǒng)界面。即 main()函數(shù)寫為如下:void main()/* 主函數(shù) */menu();/* 菜單函數(shù) */開始顯示一系列選項(xiàng)功能N輸入 n,判斷n 是不是 1-4?Y 根據(jù) n 的值調(diào)用各功能模塊 函1結(jié)束C 語言課程設(shè)計(jì)報(bào)告菜單函數(shù):void menu()int n,w;doputs("tt*MENU*nn");puts("ttt 1.初始化 ");puts("ttt 2.有車進(jìn)入 ");puts("ttt 3.有車離開 ");puts("ttt 4.退出 ");puts

4、("nntt*n");printf("Please choice your number(1-4): bb");scanf("%d",&n);if(n<1|n>4) /* 對(duì)選擇的數(shù)字作判斷 */w=1;getchar();else w=0;while(w=1);switch(n)case 1:chushi();break;/* 初始化函數(shù) */case 2:jinru();break;/* 車輛進(jìn)入函數(shù) */case 3:likai();break;/* 車輛離開函數(shù) */case 4:exit(0);/* 退出

5、 */初始化模塊設(shè)計(jì):【需求分析】該模塊是將每一天開始的停車場內(nèi)和便道車位清零。 首先建立場內(nèi)場外的結(jié)構(gòu)體,結(jié)構(gòu)體內(nèi)成員即車位的狀態(tài)。用循環(huán)實(shí)現(xiàn)車位的致零即可。2C 語言課程設(shè)計(jì)報(bào)告struct changnei/*場內(nèi)車道信息 */int neikong;chnN-1;struct changwai/*場外車道信息 */int waikong;chwM-1;N 和 M 分別是停車場和便道的車位預(yù)設(shè)值,用宏定義。用戶可根據(jù)實(shí)際情況改變。#define N 100/*預(yù)設(shè)停車場有 100 個(gè)車位 */#define M 100/* 預(yù)設(shè)便道有 100 個(gè)出位 */void chushi()/*

6、初始化函數(shù) */int i,j;for(i=0;i<=N-1;i+)chni.neikong=0;/* 將場內(nèi)車道設(shè)置為空 */for(j=0;j<=M-1;j+)chwi.waikong=0;/* 將便道車道設(shè)置為空 */printf("nntt 已初始化 nn");menu();函數(shù)出示化后將回到菜單界面。車輛進(jìn)入函數(shù):【需求分析】車輛到達(dá)后,要指定車輛的停車位置。 用戶根據(jù)菜單函數(shù)進(jìn)入車輛進(jìn)入模塊。按照每輛車的到達(dá)次序給予車輛次序號(hào),由0 號(hào)開始。車輛信息也建立結(jié)構(gòu)體。struct car/*車輛信息 */int car_num;/* 車輛次序號(hào) */in

7、t car_arr;/*車輛到達(dá)時(shí)間 */int car_lef;/* 車輛離開時(shí)間 */int car_stay;/*車輛停放位置 */carCIXUHAO;3C 語言課程設(shè)計(jì)報(bào)告其中, CIXUHAO 是車輛次序號(hào)的宏定義:#define CIXUHAO 1000/* 預(yù)設(shè)車輛次序號(hào)。 不管車輛到達(dá)時(shí)停在場內(nèi)或便道, 均依次設(shè)置一個(gè)次序號(hào),由 0 開始 */給予車輛次序號(hào)之后,用循環(huán)判斷停車場是否停滿,再分別給予選擇:場內(nèi)是否已滿已滿,將車停在便道未滿,指定停車場位置void jinru()/* 車輛進(jìn)入函數(shù) */int i,a;int h=0;printf("nn 請(qǐng)輸入該車次

8、序號(hào)(從0 號(hào)開始) :");scanf("%d",&a);for(i=0;i<N;i+)if(chni.neikong=0);/* 無車標(biāo)記 0*/if(chni.neikong=1)/* 有車標(biāo)記 1*/h=h+1;if(h=N)printf(" 停車場內(nèi)已停滿,請(qǐng)停在便道上n");elsecara.car_stay=h;chnh.neikong=1;printf(" 該車應(yīng)該停在停車場內(nèi)第道 %d(從 0 道開始記) n",h); printf(" 請(qǐng)輸入該車進(jìn)停車場時(shí)刻( 24 小時(shí)整點(diǎn)計(jì)時(shí))

9、:n");scanf("%d",&cara.car_arr);便道上還有車嗎?menu();程序執(zhí)行完后回到菜單。4C 語言課程設(shè)計(jì)報(bào)告車輛離開函數(shù):【需求分析】若有一輛車要離開,則需要記錄該車的離開時(shí)間,以計(jì)算出該車在停車場內(nèi)的停車時(shí)間和應(yīng)該繳納的費(fèi)用。該車離開后,要判斷便道上是否有車等待進(jìn)入,如有,則將便道上第一輛車停放在停車場內(nèi)最后的位置并記錄好進(jìn)場時(shí)間;若無,則返回菜單。有車離開記錄該車離開時(shí)間得到停車時(shí)間和費(fèi)用便道上還有車嗎?NY返回主令其進(jìn)場菜單輸入次序號(hào)和進(jìn)場時(shí)間void likai()/* 車輛離開函數(shù) */ int i,k,choi,ti

10、me;double fee;printf(" 請(qǐng)輸入離開車輛次序號(hào) , 并將此車之后的車先全部退出停車場! "); scanf("%d",&i);printf("n 請(qǐng)輸入離開車輛的離開時(shí)刻( 24 小時(shí)整點(diǎn)計(jì)時(shí)): n"); scanf("%d",&cari.car_lef); fee=D*(cari.car_lef-cari.car_arr); time=cari.car_lef-cari.car_arr;printf(" 次序號(hào)為 %d 的車停車時(shí)間 %d 小時(shí),應(yīng)收費(fèi) %f 元 n

11、",i,time,fee); printf("nnn 請(qǐng)讓場內(nèi)退出的車再依次進(jìn)場! nnn");printf(" 便道上現(xiàn)在有車嗎? (請(qǐng)選擇 1 或 2)n1.有n2.沒有 n");/* 因便道上可能沒有車,因此要做選擇 */scanf("%d",&choi);if(choi=2)menu();if(choi=1)printf(" 請(qǐng)讓便道上的第一輛車進(jìn)場n");5C 語言課程設(shè)計(jì)報(bào)告printf(" 該車次序號(hào)為 :n");scanf("%d",&

12、;k);printf(" 請(qǐng)輸入該車進(jìn)場時(shí)間 :n");scanf("%d",&cark.car_arr);menu();D 為預(yù)設(shè)停車場單位小時(shí)費(fèi)用,用宏定義,便于以后修改。#define D 1.2/*預(yù)設(shè)車輛停車費(fèi)為1.2 元每小時(shí) */5 上機(jī)操作( 1) 主菜單函數(shù)(2)初始化操作6C 語言課程設(shè)計(jì)報(bào)告(3)有車進(jìn)入7C 語言課程設(shè)計(jì)報(bào)告以上分別舉例0,1,2 三個(gè)車的進(jìn)場情況(4)有車離開若便道上沒車,則退回到主菜單8C 語言課程設(shè)計(jì)報(bào)告若便道上有車6 總結(jié)通過該實(shí)例的實(shí)習(xí),要求大家進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法,初步掌握

13、開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法, 學(xué)會(huì)調(diào)試較長的程序, 學(xué)會(huì)利用流程圖表示算法,進(jìn)一步掌握和提高利用 C 語言進(jìn)行程序設(shè)計(jì)的能力。7 原程序代碼#include<stdio.h>#include<stdlib.h>9C 語言課程設(shè)計(jì)報(bào)告#include<string.h>#define N 100/*預(yù)設(shè)停車場有 100 個(gè)車位 */#define M 100/* 預(yù)設(shè)便道有 100 個(gè)出位 */#define D 1.2/*預(yù)設(shè)車輛停車費(fèi)為1.2 元每小時(shí) */#define CIXUHAO 1000/* 預(yù)設(shè)車輛次序號(hào)。 不管車輛到達(dá)時(shí)停在場內(nèi)或便道,

14、均依次設(shè)置一個(gè)次序號(hào),由 0 開始 */void menu();void chushi();void jinru();void likai();struct car/*車輛信息 */int car_num;/* 車輛次序號(hào) */int car_arr;/*車輛到達(dá)時(shí)間 */int car_lef;/* 車輛離開時(shí)間 */int car_stay;/*車輛停放位置 */carCIXUHAO;struct changnei/*場內(nèi)車道信息 */int neikong;chnN-1;struct changwai/*場外車道信息 */int waikong;chwM-1;void main()/*

15、主函數(shù) */menu();/* 菜單函數(shù) */void menu()int n,w;doputs("tt*MENU*nn");puts("ttt 1.初始化 ");puts("ttt 2.有車進(jìn)入 ");puts("ttt 3.有車離開 ");puts("ttt 4.退出 ");10C 語言課程設(shè)計(jì)報(bào)告puts("nntt*n");printf("Please choice your number(1-4): bb");scanf("%d&quo

16、t;,&n);if(n<1|n>4)/* 對(duì)選擇的數(shù)字作判斷 */w=1;getchar();else w=0;while(w=1);switch(n)case 1:chushi();break;/*初始化函數(shù) */case 2:jinru();break;/*車輛進(jìn)入函數(shù) */case 3:likai();break;/*車輛離開函數(shù) */case 4:exit(0);/*退出 */void chushi()/* 初始化函數(shù) */int i,j;for(i=0;i<=N-1;i+)chni.neikong=0;/* 將場內(nèi)車道設(shè)置為空 */for(j=0;j<

17、=M-1;j+)chwi.waikong=0;/* 將便道車道設(shè)置為空 */printf("nntt 已初始化 nn");menu();void jinru()/* 車輛進(jìn)入函數(shù) */int i,a;int h=0;printf("nn 請(qǐng)輸入該車次序號(hào)(從0 號(hào)開始) :");scanf("%d",&a);for(i=0;i<N;i+)if(chni.neikong=0);/* 無車標(biāo)記 0*/if(chni.neikong=1)/* 有車標(biāo)記 1*/h=h+1;if(h=N)11C 語言課程設(shè)計(jì)報(bào)告printf(&q

18、uot; 停車場內(nèi)已停滿,請(qǐng)停在便道上n");elsecara.car_stay=h;chnh.neikong=1;printf(" 該車應(yīng)該停在停車場內(nèi)第道 %d(從 0 道開始記) n",h); printf(" 請(qǐng)輸入該車進(jìn)停車場時(shí)刻( 24 小時(shí)整點(diǎn)計(jì)時(shí)):n"); scanf("%d",&cara.car_arr);menu();void likai()/* 車輛離開函數(shù) */ int i,k,choi,time;double fee;printf(" 請(qǐng)輸入離開車輛次序號(hào) , 并將此車之后的車先全部退出停車場! "); scan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論