用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

停车场收费系统C语言版

2012-12-17 作者: xiaofei举报

[c]代码库

# include<stdlib.h>
 
# include<stdio.h>
 
# define N 2    //通道允许的最大停车数量,可重新设置
 
# define NULL 0  //空值
 
# define PRICE 1  //收费单价,可重新设置
 
 
 
typedef struct car_infor
 
 {
 
 int  licen_tag;
 
 int  time;
 
}SElemType;
 
 
 
typedef struct
 
 {
 
 SElemType *base1;       //通道的栈底指针
 
 SElemType *top1;        //通道的栈顶指针
 
 SElemType *base2;       //临时道的栈底指针
 
 SElemType *top2;        //临时道的栈顶指针
 
}Stack;
 
 
 
typedef struct Qnode
 
 {
 
 int  licen_tag;
 
 int  time;
 
 struct Qnode *next;
 
}Qnode,*QueuePtr;
 
 
 
typedef struct
 
 {
 
 QueuePtr front;
 
 QueuePtr rear;
 
}LinkQueue;
 
 
 
void initStack(Stack &S) //初始化通道与临时道
 
 {
 
 S.base1=(SElemType *)malloc(N*sizeof(SElemType));
 
 S.top1=S.base1;
 
 S.base2=(SElemType *)malloc(N*sizeof(SElemType));
 
 S.top2=S.base2;
 
}
 
 
 
void initQueue(LinkQueue &Q) //初始化便道
{
 
 Q.front=Q.rear=(QueuePtr)malloc(sizeof(Qnode));
 
 Q.front->next=NULL;
 
}
 
 
 
void Push1(Stack &S,int licen_tag,int time) //车辆进通道
 
 {
 
 S.top1->licen_tag=licen_tag;
 
 S.top1->time=time;
 
 S.top1++;
 
}
 
 
 
void Push2(Stack &S) //让路的车辆从通道暂时离开,进临时道
 
 {
 
 S.top2->licen_tag=S.top1->licen_tag;
 
 S.top2->time=S.top1->time;
 
 S.top2++;
 
 S.top1--;
 
}
 
 
 
void Pop(Stack &S) //车辆从临时道回到通道
 
 {
 
 S.top2--;
 
 S.top1->licen_tag=S.top2->licen_tag;
 
 S.top1->time=S.top2->time;
 
 S.top1++;
 
}
 
 
 
void EnQueue(LinkQueue &Q,int licen_tag,int time) //通道满时,车辆进便道
 
 {
 
 QueuePtr p;
 
 p=(QueuePtr)malloc(sizeof(Qnode));
 
 p->next=NULL;
 
 Q.rear->next=p;
 
 Q.rear=p;
 
 p->licen_tag=licen_tag;
 
 p->time=time;
 
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...