下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言課程設(shè)計(jì)實(shí)習(xí)報(bào)告目 錄題目要求需求分析總體設(shè)計(jì)四. 具體程序五. 上機(jī)操作及使用說明六. 存在問題與不足七學(xué)習(xí)心得停車場(chǎng)管理一.題目要求1. 設(shè)計(jì)一個(gè)停車場(chǎng)用長度為 N的堆棧來模擬。由于停車場(chǎng)內(nèi)如有某輛車要開走,在它之后進(jìn)來的車都必須先退出為它讓道,待其開出停車場(chǎng)后,這些車再依原來的順序進(jìn)入。2. 程序輸出每輛車到達(dá)后的停車位置,以及某輛車離開停車場(chǎng)時(shí)應(yīng)交納的費(fèi)用和它在停車場(chǎng)內(nèi)停留的時(shí)間。需求分析根據(jù)題目要求首先設(shè)計(jì)一個(gè)堆棧,以堆棧來模擬停車場(chǎng),又每輛汽車的車牌號(hào)都不一樣, 這樣一來可以根據(jù)車牌號(hào)準(zhǔn)確找到汽車位置,所以堆棧里的數(shù)據(jù)元素設(shè)計(jì)成汽車的車牌號(hào)。當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后
2、進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入停車場(chǎng)。這是個(gè)一退一進(jìn)的過程,而且讓道的汽車必須保持原有的先后順序,因此可再設(shè)計(jì)一個(gè)堆棧,以之來暫時(shí)存放為出站汽車暫時(shí)讓道的汽車車牌號(hào)。當(dāng)停車場(chǎng)滿后,繼續(xù)進(jìn)來的汽車需要停放在停車場(chǎng)旁邊的便道上等候,若停車場(chǎng)有汽車開走,則按排隊(duì)的先后順序依次進(jìn)站,最先進(jìn)入便道的汽車將會(huì)最先進(jìn)入停車場(chǎng),這完全是一個(gè)先進(jìn)先出模型, 因此可設(shè)計(jì)一個(gè)隊(duì)列來模擬便道,隊(duì)列中的數(shù)據(jù)元素仍然設(shè)計(jì)成汽車的車牌號(hào)。另外,停車場(chǎng)根據(jù)汽車在停車場(chǎng)內(nèi)停放的總時(shí)長來收費(fèi)的,在便道上的時(shí)間不計(jì)費(fèi),因此必須記錄車輛進(jìn)入停車場(chǎng)時(shí)的時(shí)間,車輛離開停車場(chǎng)時(shí)的時(shí)間不需要記錄
3、,當(dāng)從終端輸入時(shí)可直接使用。由于時(shí)間不像汽車一樣需要讓道,可設(shè)計(jì)了一個(gè)順序表來存放時(shí)間。又用順序表用派生法設(shè)計(jì)了一個(gè)堆棧,恰好滿足上面模擬停車場(chǎng)的需要。三總體設(shè)計(jì)四.具體程序#i nclude <stdio.h>#i nclude <malloc.h>#defi ne SIZE 3#defi ne NULL 0typedef struct int hour;int min; time;typedef struct int num;int positi on;time t;float mon ey; Car;typedef struct Car elemSIZE+1;in
4、t top; Stack;typedef struct Node Car data;struct Node *n ext;CQueueNode;typedef struct CQueueNode *front;CQueueNode *rear;Lin kQueue;void In itStack(Stack *S) S->top=0; void Push(Stack *S,Car *r) S->top+;S->elemS->top. num=r->num;r->positi on=S->elemS->top.positi on=S->top
5、;S->elemS->top.t.hour=r->t.hour;S->elemS->top.t.mi n=r->t.mi n;int IsEmpty(Stack* S) return(S->top=0?1:0); int lsFull(Stack *S) return(S->top=SIZE?1:0); int GetTop(Stack *S,Car *n) n->num=S->elemS->top. num;n->positio n=S->elemS->top.positio n; n->t.hour=
6、S->elemS->top.t.hour; n->t.mi n=S->elemS->top.t.mi n;return 1;void In itQueue(L in kQueue *Q) Q->fro nt=(CQueueNode*)malloc(sizeof(CQueueNode); if(Q->fro nt!=NULL) Q->rear=Q->fr ont;Q->fro nt-> next=NULL; int En terQueue(Li nkQueue *Q,Car *t) CQueueNode *NewNode;NewN
7、ode=(CQueueNode*)malloc(sizeof(CQueueNode); if(NewNode!=NULL)NewNode->data .num=t- >num;NewNode->data.t.hour=t->t.hour;NewNode->data.t. min=t->t. min;NewNode-> next=NULL;Q->rear- >n ext=NewNode;Q->rear=NewNode;return 1;else return 0;int DeleteQueue(L in kQueue *Q,Car *x
8、) CQueueNode *p;if(Q->fr on t=Q->rear)return 0;p=Q->fr ont->n ext;Q->front->n ext=p->n ext;if(Q->rear=p)Q->rear=Q->fr ont;x->num=p->data. num;x->t.hour=p->data.t.hour;x->t.mi n=p->data.t.mi n;free(p);return 1;void prin t1(Stack *S)int tag;Car x;printf(
9、"停車場(chǎng)停車情況:n");if(lsEmpty(S)printf("無車!");for(tag=S->top;S->top>0;S->top-)if(GetTop(S, &x)printf("車牌號(hào) d,所在位置 d,至U達(dá)/離開時(shí)間 d:%dn ",x .nu m,x.positi on, x.t.hour,x.t. min);S->top=tag;void prin t2(Li nkQueue *Q) CQueueNode *p;p=Q->fr ont->n ext;for(;p!
10、=NULL;p=p->n ext)prin tf("等待車牌號(hào)%d, 到達(dá) / 離開時(shí)間 %d:%d",p->data .nu m,p->data.t.hour,p->data.t. min);void TaM(Car *r,int h,i nt m) if(m>r->t.mi n)r->t.m in+=60;r->t.hour-=1;h=r->t.hour-h;m=r->t.mi n-m;prin tf("n停車 %d 小時(shí) %d 分鐘 n",h,m);printf("每小時(shí)收費(fèi)30
11、元n");h=h*60;m=h+m;r->mon ey=0.5*m;printf("請(qǐng)支付金額 %.2f 元n",r->money);void In (Stack *S,L in kQueue *Q,Car*r)if(lsFull(S) printf("車庫已滿,請(qǐng)等待!");En terQueue(Q,r);elsePush(S,r);printf("n您現(xiàn)在所在位置 %d",r->position);void Out(Stack *S,Stack *S0,Car *r,Li nkQueue *Q) in
12、t tag=S->top;Car x;if(IsEmpty(S) pri ntf("沒有此車!");else for(;r->num!=S->elemtag.num&&tag>0;tag-) Push(S0,&S->elemtag);S->top-;if(r->num=S->elemtag. num) TaM(r,S->elemtag.t.hour,S->elemtag.t.mi n); S->top-;for(;S0->top>0;S0->top-)Push(S,&
13、amp;S0->elemS0->top);if(S->top<SIZE && Q->front!=Q->rear) DeleteQueue(Q, &x);Push(S, &x);else if(tag=0) printf("未進(jìn)入停車場(chǎng)應(yīng)支付金額0元!");for(;S0->top>0;S0->top-)Push(S,&S0->elemS0->top);void prin t()prin tf("n*n");*printf("n請(qǐng)選擇:n&
14、quot;);prin tf("n 1:到達(dá)");prin tf("n 2:離開");prin tf("n 3:搜索");prin tf("n 4:退出 n");prin tf("n");int main() int n, m,i=1,j,flag=0;Car c10;Car x;Stack S,S0;Lin kQueue Q;In itStack(&S);In itStack(&S0);Ini tQueue(&Q);while(1) pri nt();scan f(&q
15、uot;%d",&m);switch(m)case 1:printf("n請(qǐng)輸入車牌號(hào):");scan f("%d",&ci. nu m);printf("n請(qǐng)輸入到達(dá)/離開時(shí)間:"); scan f("%d:%d",&ci.t.hour,&ci.t.mi n);ln(&S,&Q,&ci);i+;break;case 2:printf("n請(qǐng)輸入車牌號(hào):");scan f("%d",&n);for(j=
16、0;j<10;j+)if(n=cj. num) break;printf("n請(qǐng)輸入到達(dá)/離開時(shí)間:");scan f("%d:%d",&cj.t.hour,&cj.t.mi n);Out(&S,&S0,&cj,&Q); break;case 3: prin t1(&S);pri nt2(&Q);break;case 4: flag=1; break;default:printf("n輸入錯(cuò)誤,請(qǐng)輸入 1,2,3 或 4"); if(flag)break; retu
17、rn 0;五.上機(jī)操作及使用說明運(yùn)行Microsoft Visual C+,進(jìn)入運(yùn)行狀態(tài):1.主菜單:根據(jù)頁面提示,輸入相應(yīng)數(shù)字。2.車輛到達(dá):車輛到達(dá)停車場(chǎng),輸入數(shù)字1,根據(jù)頁面提示輸入車牌號(hào)和到 達(dá)時(shí)間。頁面將顯示車輛目前所處位置歡迎光臨I輸入車牌號(hào)曲輸人到達(dá)丿裔開時(shí)間:呵:an潮I在所在位置1_ ,到¥話輸入車牌耳迄請(qǐng)輸入到達(dá)/離幵時(shí)間曲恥達(dá)幵畫岀»- 二1|溝輸入年牌號(hào)2 詢輛入到達(dá)嚴(yán)禹開 您現(xiàn)在所在位置3戲迎無臨*:鬻請(qǐng)輸入車牖旨“4停車場(chǎng)情況查詢: 該程序可提供隨時(shí)查詢,輸入數(shù)字 3,可獲知停車場(chǎng)現(xiàn)在停車情況。停車場(chǎng)無車:xl嚴(yán) HC:Documeiiit5 a
18、nd SettinigsVIuo件笑:D亡buq;0L亡xe"當(dāng)停車服請(qǐng)?jiān)枔?卄7»"*«*«»*歡迎光 I 質(zhì)達(dá)開至嗔魔:1停車場(chǎng)有車:Dl刻2:青迪洋:斗iiRc:! Slr:DnnimpnK and SettingsMuol H$JE.S9iS jtfMDeb<iakOuewe"離“藥m、車*E1! YJ-在在4, r2丄膽3 一一 開開開0 " 離離®一 XZX寸二 達(dá)達(dá)達(dá)口 一 - ,1 - r lbL bL faL '0 0 “2 10 IT -H s s 衣0 0 0牌餐 停車車宰 5.車輛離開車輛離開,輸入數(shù)字2,頁面顯示該車停放具體情況,包括總計(jì)停放時(shí)間以JCMLKJLXJlJCJt JOCJCJOCirjj;卬11 干 X J<JIJ<JIJ< 買
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省中山火炬開發(fā)區(qū)2024-2025學(xué)年高一上學(xué)期11月期中考試數(shù)學(xué)試題
- 孤獨(dú)癥兒童的玩具使用
- 董事長公司年會(huì)精彩講話稿
- 綠色建筑材料的創(chuàng)新與應(yīng)用
- 《空調(diào)功能測(cè)試報(bào)告》課件
- 心理健康講話稿
- 建筑中介合同范例
- 學(xué)校用租房合同模板
- 建筑分公司經(jīng)營合同范例
- 產(chǎn)品照拍攝合同范例
- 義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)解讀
- 力的合成說課課件省公開課金獎(jiǎng)全國賽課一等獎(jiǎng)微課獲獎(jiǎng)?wù)n件
- 中國農(nóng)業(yè)文化遺產(chǎn)與生態(tài)智慧智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 實(shí)習(xí)生頂崗實(shí)習(xí)安全教育
- (正式版)QBT 5976-2024 制漿造紙行業(yè)綠色工廠評(píng)價(jià)要求
- 醫(yī)院數(shù)據(jù)隱私泄露預(yù)案
- 數(shù)字貿(mào)易學(xué) 課件 第12章 消費(fèi)者行為與權(quán)益
- MOOC 概率論與數(shù)理統(tǒng)計(jì)-北京理工大學(xué) 中國大學(xué)慕課答案
- 糖尿病肌電圖
- 計(jì)算機(jī)操作員(五級(jí))理論考試題庫(濃縮300題)
- 化驗(yàn)室崗位培訓(xùn)
評(píng)論
0/150
提交評(píng)論