精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

停車場實習報告 -實習報告

時間:2024-08-11 12:51:21 實習報告 我要投稿
  • 相關推薦

停車場實習報告 -實習報告

實習報告題目:停車場的管理班級:姓名:學號:完成日期:一.需求分析1.以棧模擬停車場,以隊列模擬車場外車道,按照以終端讀入的輸入數據序列進行模擬管理。每一組輸入數據項:汽車到達活離去的信息,汽車車牌號碼以及到達離去的時間。對每一組數輸入數據操作后的信息為:若是車輛離去,則輸出汽車在停車場內停留的時間和應繳納的費用。棧以順序結構實現,隊列以鏈表結構實現。2.演示程序以用戶和計算機的對話方式執行,即在計算機終端上現實提示信息之后,由用戶在鍵盤上輸入演示中規定的運算命令;3.程序執行的命令包括:1)創建停車場,和車道2)車輛進入3)車輛離去,時間,車位以及停車費的輸出4.測試數據數據:(A 15)(A 210)(D 115)(A 320)(A 425)(A 530)(D 235)(D 440)(E 00)二.概要設計1.ADT StackParking{數據對象:D={ai|ai∈car,i=1,2.n}數據關系:R={ai-1,ai|ai-1,ai∈D,i=2,.n}a1為棧頭,an為棧尾2.ADT ChannelQueue{數據對象:D={ai|ai∈car,i=1,2.n}數據關系:R={ai-1,ai|ai-1,ai∈D,i=2,.n}a1為隊列頭,an隊列尾}基本操作:initparking(parking&S)初始化停車場,創建一個規定大小的棧initchannel(channel&Q)初始化創建車道inchannel(channel&Q,car e)傳入查找到的元素指針,進行輸出,并刪除節點,實現查找inparking(parking&S,car e)將元素e,壓入停車場put(parking&A,channel&B,car e)初始條件:停車場棧內有元素操作結果:刪除車輛元素,返回車費push(parking&S,car e)插入e,為棧頂元素Defirst(channel&Q,car&e)初始條件:過道隊列有元素操作結果:刪除過道對頭元素,用e返回}三.詳細設計#include iostream using namespace std;#define STACK_INIT_SIZE 2#define STACKINCREMENT 3#define ERROR 0#define OVERFLOW-2#define fare 1typedef struct car//定義車的類型{char ch;int num;int time;car*next;};typedef struct parking//定義停車場{car*base;car*top;int length;int stacksize;};typedef struct channel//定義過道{car data;int length;//記錄過道車輛數channel*next;car*front;car*rear;}*Schannel;int initparking(parking&S)//初始化停車場{S.base=(car*)malloc(STACK_INIT_SIZE*sizeof(car));if(!S.base)exit(OVERFLOW);S.length=0;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return 1;}int initchannel(channel&Q)//初始化過道{Q.rear=Q.front=(car*)malloc(sizeof(car));Q.length=0;if(!Q.front)exit(OVERFLOW);return 1;}int inchannel(channel&Q,car e)//進入過道{car*p;cout"車在過道上:"endl;Q.length++;p=(car*)malloc(sizeof(car));if(!p)exit(OVERFLOW);*p=e;p-next=Q.rear;Q.rear=p;return 1;}int inparking(parking&S,car e)//進入停車場{*S.top=e;S.top++;S.length++;//cout"(重置時間)輸入"e.num"號車進入停車場時間:";//cin e.time;cout"停在第"S.length"車位"endl;return 1;}void put(parking&A,ch

停車場實習報告 -實習報告

annel&B,car e){int boo=1;car*p;for(p=A.base;p A.top;p++)//在停車場內查找是否有車牌相同的車輛,返回錯誤信息{if(e.num==(*p).num){cout"車牌錯誤!"endl;boo=0;break;}}if(B.length!=0)//過道內如果有車,也進行一次查找,返回錯誤信息{p=B.rear;if(B.length==1){if(e.num==(*p).num){cout"車牌錯誤!"endl;boo=0;}p=p-next;}for(int i=0;i B.length-1;i++){if(e.num==(*p).num){cout"車牌錯誤!"endl;boo=0;break;}p=p-next;}}if(boo)//假如該車信息正確,講車放進停車場,或者過道{if((A.top-A.base)=A.stacksize){inchannel(B,e);cout"過道上第"B.length"車位"endl;}else{inparking(A,e);}}}int push(parking&S,car e)//插入e為棧頂元素{*S.top++=e;S.length++;return 1;}int Pop(parking&S,car&e)//刪除棧頂元素,用e返回{if(S.top==S.base)return ERROR;e=*--S.top;S.length--;return 1;}int Defirst(channel&Q,car&e)//刪除過道頂元素,用e返回?{car*p,*v;//if(Q.front==Q.rear)return ERROR;for(p=Q.rear;p-next!=Q.front;)p=p-next;//用p指向過道第一輛車e=*p;if(Q.length==1){Q.rear=Q.front;free(p);}//只有一輛車,特殊處理else{for(v=Q.rear;v-next!=p;v=v-next);v-next=Q.front;free(p);}//刪除第一輛車Q.length--;return 1;}int out(parking&A,parking B,channel&C,car e){car*p,*w,*v,*L;int boo=1;car h,k;for(p=A.base;p A.top;p++)//查找離開的車輛{if((*p).num==e.num){boo=0;if((e.time-(*p).time)=0)cout"時間錯誤!"endl;//如果時間錯誤,返回錯誤信息else{cout e.num"號車的車費:"(e.time-(*p).time)*fare endl;}//如不錯誤,返回停車費for(L=A.top-1;L p;L--){Pop(A,h);push(B,h);//將停前面的車,退出棧}Pop(A,k);for(L=B.top-1;L=B.base;L--){Pop(B,h);push(A,h);//退出棧的車,進入棧}if(C.length==0);//假如過道有車,將過道第一輛車,進入停車場else{Defirst(C,h);h.time=e.time;push(A,h);}break;}}if(boo)cout"不在停車場/狀態錯誤!"endl;//如未找到車牌相同的車,返回錯誤信息if(C.rear!=C.front)//如果車在過道上,直接刪除節點,不用車費{w=C.rear;if((*w).num==e.num)//只有一輛車特殊處理{C.rear=C.front;free(w);cout"不用停車費!"endl;}else{for(w=C.rear;w-next!=C.front;w=w-next){if((*w).num==e.num){for(v=C.rear;v-next!=w;v=v-next);cout"不用停車費!"endl;v-next=v-next-next;free(w);break;}}}}return 1;}void main(){car a;cout"初始定義停車費9元/小時,停車場能容2輛車"endl;int n;parking b,c;initparking(b);initparking(c);channel t;initchannel(t);cout"輸入車的狀態,車牌,到達/離開時間:";cin a.ch a.num a.time;while(a.ch!=E){n=a.time;if(a.ch==A){put(b,t,a);}else if(a.ch==D){out(b,c,t,a);}cout"輸入車的狀態,車牌,到達/離開時間:";cin a.ch a.num a.time;if(a.ch==E)break;if(a.time=n){cout"時間錯誤!請重新輸入時間:";cin a.time;}}}主程序put out Inparking inchannel pop push Defirst四.調試分析1.在設計棧和隊列時,在查找的時候很容易出現內存非法訪問的錯誤,所以要

小心。2.總得感覺這個程序設計不夠合理,沒有調理,還需改進3.函數put,out的時間復雜度都為O(n+m)棧和隊列總的空間大小五.用戶手冊1.本程序的運行環境為DOS操作系統,執行文件為Tingchechang.exe 2.進入程序后顯示用戶界面:3.按提示輸入合法的密碼,以回車符表示結束4.接受命令后執行相應的查找刪除和現實相應的序列六.測試結果輸入車的狀態,車牌,到達/離開時間:A 15停在第1車位輸入車的狀態,車牌,到達/離開時間:A 210停在第2車位輸入車的狀態,車牌,到達/離開時間:D 115 1號車的車費:10輸入車的狀態,車牌,到達/離開時間:A 320停在第2車位輸入車的狀態,車牌,到達/離開時間:A 425過道上第1車位輸入車的狀態,車牌,到達/離開時間:A 530過道上第2車位輸入車的狀態,車牌,到達/離開時間:D 235 2號車的車費:25輸入車的狀態,車牌,到達/離開時間:D 440 4號車的車費:5輸入車的狀態,車牌,到達/離開時間:E 00七.附錄由函數寫在同一文件下,無其他源程序文件名MSN空間完美搬家到新浪博客!

【停車場實習報告 -實習報告】相關文章:

實習報告 -實習報告08-13

IT實習報告 -實習報告10-04

焊接實習報告 -實習報告07-24

實習報告2 -實習報告05-14

實習報告1 -實習報告05-27

護士實習報告 -實習報告10-04

實習報告5 -實習報告07-31

物流實習報告 -實習報告08-23

法律實習報告 -實習報告09-17

畢業實習報告 -實習報告06-16