停車場管理系統

2023-01-24 14:39:06 字數 3231 閱讀 2956

華北電力大學

實驗報告

實驗名稱: 停車場管理

課程名稱: 資料結構

停車場管理系統

1 問題描述

停車場內有乙個可停放n輛汽車的狹長通道,且只有乙個大門可供汽車進出。汽車在停車場內按車輛到達時的先後順序,依次由北向南排列(大門在最南端,最先到達的第一車輛停放在車輛的最北端),若車場內已停滿n輛汽車則後來的汽車只能在門外便道上等候,一旦停車場內有車開走,則排在便道上的第一輛車即可開入;當停車場內某輛車要離開時,由於停車場是狹長的通道,在它之後開入車場的車輛必須先退出停車場為他讓路,待該車輛開出大門後,為它讓路的車輛再按原次序進入車場。在這裡假設汽車不能從便道上開走。

設計程式

2 需求分析

(1)車輛到達時,停車場若未滿,則進入停車場,否則到便道排隊等候。

(2)當有車輛從停車場離開時,停車場裡排到前面的車進入臨時停車場,等車離開後再回來,等待在便道的車輛按順序進入停車場停放。

(3)用順序棧來表示停車場,臨時棧表示臨時停車場,鏈隊表示停車場外的便道。

(4)程式執行的命令為:①車輛進入停車場 ②車輛在便道等候③車輛進入臨時停車場 ④車輛離開停車場。

3 執行環境

4 開發工具

vs2010

5 設計概要

定義兩個順序棧ts與ps:

typedef struct

elemtype;

struct seqstack

ts,ps;

定義鏈隊:

squeue:

typedef struct lnode

*squeue;

init_pstack(seqstack &s):

棧的初始化定義push(&s,e):

push_pstack(seqstack &s,int x):

棧中元素的新增

pop_pstack(seqstack &s):

棧中元素的刪除pop(&s,&e)

empty_pstack(seqstack &s):

判斷棧是否為空

top_pstack(seqstack &s):

取棧頂元素

init_que(squeue &f,squeue &r):

佇列的初始化定義

in_que(squeue &f,squeue &r,int x):

佇列的元素新增

out_que(squeue &f,squeue &r):

佇列的元素刪除

gethead_que(squeue &f):

取隊頭元素

empty_que(squeue &f,squeue &r):

判斷佇列是否為空

6 **實現

#include

using namespace std;

#define stacksize 3 //棧

#define queuesize n //佇列

#define error 0

typedef struct

elemtype;

struct seqstack

ts,ps;

typedef struct lnode

*squeue; //鏈隊的定義

squeue f,r;

int top;

bool out;

int temp;

int number;

char ch;

seqstack init_pstack(seqstack &s)//棧的初始化定義

void push_pstack(seqstack &s,int x)//棧中元素的新增

}void pop_pstack(seqstack &s)//棧中元素的刪除

bool empty_pstack(seqstack &s)//判斷棧是否為空

int top_pstack(seqstack &s)//取棧頂元素

void init_que(squeue &f,squeue &r)//佇列的初始化定義

void in_que(squeue &f,squeue &r,int x)//佇列的元素新增

void out_que(squeue &f,squeue &r)//佇列的元素刪除

}int gethead_que(squeue &f)//取隊頭元素

bool empty_que(squeue &f,squeue &r)//判斷佇列是否為空

void main()

{ int number;

init_pstack(ts);

init_pstack(ps);

init_que(f,r);

out=false;

cout<<"請輸入車號"< cin>>number;

cout<<"請選擇該車的出行,a為進入停車場,l為離開停車場"< cin>>ch;

while(number>0)

{switch(ch)

{case 'a':

if(in_que(f,r,number);

cout<<"車牌號為"<

else

push_pstack(ps,number);

cout<<"車牌號為"<

break;

case 'l':

while((!empty_pstack(ps))&&(top_pstack(ps)!=number))

temp=top_pstack(ps);

pop_pstack(ps);

push_pstack(ts,temp);

if (empty_pstack(ps))

cout<<"停車場沒有此車"

pop_pstack(ps);

cout<<"車牌號為"

while(!empty_pstack(ts))

temp=top_pstack(ts);

pop_pstack(ts);

push_pstack(ps,temp);

if(out&&!empty_que (f,r))

temp=gethead_que(f);

out_que(f,r);

out=false;;

push_pstack(ps,temp);

break;

cout<<"請輸入車號"< cin>>number;

cout<<"請選擇該車的出行,a為進入停車場,l為離開停車場"< cin>>ch;

實驗停車場管理系統

實驗二 停車場管理問題 一 問題描述 1 實驗題目 設停車場是乙個可停放n輛汽車的狹長通道,且只有乙個大門可供汽車進出。汽車停在停車場內按車輛到達時間的先後順序,依次由北向南排列 大門在最南端,最先到達的第一輛車停放在車場的最北端 若停車場內已經停滿n輛車,那麼後來的車只能在門外的便道上等候。一旦有...

停車場管理系統簡介

停車場管理系統是以一種高效 公正準確 科學經濟的停車場管理工具,實現停車場對於車輛動態和靜態的綜合管理。系統以感應卡為載體,通過感應卡記錄車輛進出資訊,利用計算機管理手段確定停車場的計費金額,結合工業自動化控制技術控制機電一體化外圍裝置,從而管理進出停車場的各種車輛。由於科技的日新月異不斷更新,為了...

停車場系統方案

目錄第一節停車場管理系統的分類 2 第二節停車場智慧型管理系統 2 一 系統的組成 2 二 與國內其它品牌對比優勢 3 三 管理體制 4 2 1系統使用的智慧卡種類 4 2 2收費制式 5 2 3計費 收費方式 5 2 4收費標準 5 四 系統安全保證措施 5 五 系統主要功能 6 1 自動道閘 6...