停车场管理系统源代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

停车场管理系统源

代码

//停车场管理系统

#include

#include

#define OVERFLOW 0

#define ERROR 0

#define OK 1

#define STACKSIZE 2 //车库容量

//时间节点

typedef struct time{

int hour;

int min;

}Time;

//车辆信息

typedef struct{

char CarNum;

float time;

int pos_a; //车在停车场中的位置

int pos_b; //车在便道上的位置

int flag;

}Car,Car2;

//车库信息(顺序栈)

typedef struct{

Car *top;

Car *base;

int stacksize;

}SqStack;

//初始化

int InitStack(SqStack &S){

S.base=new Car[STACKSIZE];

if(!S.base) exit(OVERFLOW);

S.top=S.base;

S.stacksize=STACKSIZE;

return OK;

}

//判空

int StackEmpty(SqStack S){

if(S.top==S.base) return OK;

else return ERROR;

}

//判满

int StackFull(SqStack S){

if(S.top-S.base>=S.stacksize) return OK;

else return ERROR;

}

//入栈

int Push(SqStack &S,Car e){

if(S.top-S.base==S.stacksize) return ERROR;

*S.top++=e;

return OK;

}

//出栈

int Pop(SqStack &S,Car &e){

if(S.top==S.base) return ERROR;

e=*--S.top;

return OK;

}

//遍历栈

int StackTraverse(SqStack S) {

Car *p=S.top;

Car *q=S.base;

int l=1;

if(StackEmpty(S)){

for(int j=1;j<=STACKSIZE;j++){

printf("\t车牌: ");

printf("\t\t到达时间: ");

printf("\t位置%d:空空",j);

printf("\n");

}

return OK;

}

while(p!=q){

Car car=*(q);

printf("\t车牌: %d",car.CarNum);

printf("\t\t到达时间:%5.2f",car.time);

printf("\t\t位置:%d",l++);

printf("\n");

q++;

}

return OK;

}

//备用车道(顺序栈)

typedef struct {

Car2 *top2;

Car2 *base2; //

int stacksize2;

}SqStack2;

//初始化

int InitStack2(SqStack2 &S2){

S2.base2=new Car2[STACKSIZE];

if(!S2.top2) exit(OVERFLOW); //

S2.top2=S2.base2;

S2.stacksize2=STACKSIZE;

return OK;

}

//判空

int StackEmpty2(SqStack2 S2){

if(S2.top2==S2.base2) return OK;

else return ERROR;

}

//进栈

int Push2(SqStack2 &S2,Car2 e2){

相关文档
最新文档