大家帮我看看我的错误!可能会有点多··有写菜 不好意思·

停车场管理系统设计
本文介绍了一个简易的停车场管理系统设计,该系统使用C语言实现,并通过栈和队列数据结构来模拟车辆进出过程。用户可以选择车辆进入或离开,系统会计算停车费用。

#include <stdio.h>

#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

#define STACK_INIT_SIZE 5;
#define STACKINCREMENT 2;

typedef int car1;
typedef int car2;

typedef struct
{
 car *fcar;
 car *lcar;
 int stacksize;
}SqStac;//停车场

typedef struct QNode
{
 car date;
 struct QNode *next;
}QNode,*QueuePtr;

typedef struct
{
 QueuePtr front;
 Queueptr rear;
}LinkQueue;

typedef struct
{
 int id;
 int time;
}car1,car2;

 

 


int main()
{
 int choice1;
 char choice2;
 float time,money;
 SqStack S1;
 SqStack S2;
 LinkQueue Q;  
 car1 car1_A,car1_B,car1_C;
    InitStack(&S1);
 InitStack(&S2);
 InitQueue(&Q);

 while(choice1==1)
 {

  printf("欢迎来到XX停车场!/n");
  printf("请按键选择:(A 进入停车场  D 离开停车场  E 退出系统)/n");
  scanf("选择:%c",&choice2);
  printf("/n");
  switch(choice2)
  case'A':
   printf("请输入您的车牌ID和进入停车场时间/n");
   scanf("ID:%d/n",&car1_A.id);
   scanf("time:%d",&car1_A.time);
   if(StackEmpty1(S1))
   {


    Push1(*S1,car1_A);//?
    printf ("你的车牌是:%d/n进入时间是%d/n",car1_A.id,car1_A.time);
    printf("是否继续? 请选择:1 继续 0 退出/n");
    scanf("%d",choice1);
   }
   else
   {
       printf("停车场已满,请停入临时车道/n");
       EnQueue(*Q, car1_A);
    printf("是否继续? 请选择:1 继续 0退出/n");
    scanf("%d",choice1);
   }
  case'D':
   printf ("输入你要开走的车的车牌ID和时间/n");
   scanf("ID:%d/n",&car1_B.id);
   scanf("时间:",&car1_B.time);
   while(!StackEmpty1(S1))
   {
    pop1(*S1,car_C);
    if(car1_B.id==car1_C.id)
    {
     printf("欢迎下次再来!/n");
     printf("你的车牌是%d",car1_B.id);
     printf("你停入时间是%d/n 你离开时间是%d/n",car1_A.time,car1_B.time);
     time=car1_B.time-car1_A.time;
     money=time*2;
     printf("你总共用时间%f/n",time);
     printf("你需缴纳的停车费为%f",money);
    }
    else
     push2(*S2,car_C);
   }
   while(!StackEmpty2(S2))
   {
    pop2(*S2,car_C);
    push(*S1,car_C);  
   }
   while(!QueueEmpty(Q)&&!StackFull1(S1))
   {
    DeQueue(&Q,&car_C);
    if(!StackFull1(S1))
    { 
     Push1(&S1,car_C);
    }
   }
   printf("是否继续?1 继续 0退出");
   scanf("%d/n",chioce1);
   break;
  case'E':
   break;
 }
 return 0;
}


int InitStack(SqStack *S1)
{
 (*S1).fcar=(car1 *) malloc(STACK_INIT_SIZE * sizeof (car));
 if (!(*S1).fcar) exit (OVERFLOW);
 (*S1).lcar=(*S1).fcar;
 (*S1).stacksize=STACK_INIT_SIZE;
 return OK;
}//构建空栈为停车场

int StackEmpty1(SqStack S1)
{
 if (S1.fcar==S1.lcar)
  return OK;
}

int StackFull1(SqStack S1)    /*查看停车厂是否已满*/
{
 if(S1.lcar-S1.fcar>=STACK_INIT_SIZE)                                                                           /*若栈顶与栈底之差大于等于栈的最大存储空间,则已满*/
  return OK;
 else
  return ERROR;
}

int Push(SqStack *S1,car e)
{
 if ((*S1).lcar -(*S1).fcar >=(*S1).stacksize )
 {
  (*S1).fcar =(car *)realloc((*S1).fcar,((*S1).stacksize +STACKINCREMENT)*sizeof (car));
  if (!(*S1).fcar )exit (OVERFLOW);
  (*S1).lcar =(*S1).fcar+(*S1).stacksize ;
  (*S1).stacksize +=STACKINCREMENT;
 }
 *(*S1).lcar ++=e;
 return OK;
}//停入停车场

int Pop(SqStack *S1,car *e)
{
 if((*S1).lcar ==(*S1).fcar)
  return ERROE;
 else
  e=*--(*S1).lcar;//先把S.lcar减减,再减的S.lcar指针赋值为E
 return OK;
}//出主停车场


/*``````````````````````````停车场````````````````````````````*/


/*````````````````````````````````备用停车道````````````````````````*/
int InitQueue(LinkQueue *Q)
{
 (*Q).front=(*Q).rear=(QueuePtr)malloc(sizeof(QNode));
 if(!(*Q).front)exit(OVERFLOW);
 (*Q).front->next=NULL;
 return OK;
}//构建一条临时车道

int EnQueue(LinkQueue *Q, car1 e)
{
 QueuePtr p;
 p=(QueuePtr)malloc(sizeof(QNode));
 if(!p)exit(OVERFLOW);
 p->date=e;
 p->next=NULL;
 Q->rear->next=p;
 Q->rear=p;
 
}//??

int DeQueue(LinkQueue *Q,car1 *e)
{
 QueuePtr p;
 if (Q->front==Q->rear)
  return ERROR;
 p=Q->front->next;
 *e=p->date;
 Q->front->next=p->next;//??
    if (Q->rear==P)
  Q->rear=Q->front;
 free(p);
 return OK;
}

int QueueEmpty(LinkQueue Q)
{
 if (Q.front==Q.rear)
  return OK;
 else
  return ERROR;

}

 

 有个  “执行 cl.exe 时出错”

是不是逻辑有错误?

 

--------------------Configuration: 停车场 - Win32 Debug--------------------
C:/Documents and Settings/Administrator/桌面/学习资料/第三学期课程设计/完成作业/停车场/停车场.c(37) : error C2061: syntax error : identifier 'Queueptr'
C:/Documents and Settings/Administrator/桌面/学习资料/第三学期课程设计/完成作业/停车场/停车场.c(38) : error C2059: syntax


执行 cl.exe 时出错.

停车场.exe - 1 error(s), 0 warning(s)
 

 

 


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值