收藏 分享(赏)

停车场管理系统C、C++代码.doc

上传人:hskm5268 文档编号:7872235 上传时间:2019-05-28 格式:DOC 页数:9 大小:66.50KB
下载 相关 举报
停车场管理系统C、C++代码.doc_第1页
第1页 / 共9页
停车场管理系统C、C++代码.doc_第2页
第2页 / 共9页
停车场管理系统C、C++代码.doc_第3页
第3页 / 共9页
停车场管理系统C、C++代码.doc_第4页
第4页 / 共9页
停车场管理系统C、C++代码.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、#include using namespace std;#include #define MAX_STOP 4 /定义停车场最大停车数#define MAX_PLATE 10 /定义车牌号最大长度 /数据结构定义/定义存储汽车信息的结构体typedef structchar license_plateMAX_PLATE; /汽车牌照号码,定义为一个字符指针类型char state; /汽车当前状态,字符 p 表示停放在停车位上,字符 s 表示停放在便道上,每辆车的初始状态用字符 i 来进行表示CAR;/定义模拟停车场的栈结构typedef structCAR STOPMAX_STOP; /汽

2、车信息的存储空间int top; /用来指示栈顶位置的静态指针SeqStack;/定义模拟便道的队列结构typedef struct nodeCAR WAIT; /汽车信息的存储空间struct node *next; /用来指示队列位置的动态指针QNode; /链队列节点的类型/定义链队列的收尾指针typedef structQNode *front,*rear;LQueue; /将头尾指针封装在一起的链队/函数声明int Empty_LQueue(LQueue *q); /判队空int LeaveCheck(SeqStack parking , char *license_plate);

3、/检查离开的车是否在停车场中int QueueLength(LQueue *q); /判队长度int Out_LQueue(LQueue * /出队操作int StackEmpty(SeqStack parking); /判断栈是否为空int StackFull(SeqStack parking); /判断栈是否为满int StackPop(SeqStack /出栈操作int StackTop(SeqStack parking , char *license_plate );/取栈顶元素void Car_come(SeqStack /有车到来时的操作void Car_leave(SeqStac

4、k /有车离开的操作void Display(SeqStack parking); /显示停车场内的所有信息 调试时用void InitStack(SeqStack /初始化栈void InitList(LQueue * /初始化队列void In_LQueue(LQueue * /进队操作void Input_Check(char *license_plate); /检验输入的车牌是否合法void StackPush(SeqStack /进栈操作void main()/定义变量SeqStack parking;LQueue *sidewalk = NULL;char *choice = ne

5、w char;int flag = 1; /定义一个变量 判断是否退出/初始化一个为空的停车场InitStack(parking);/初始化一个为空的便道InitList(sidewalk);/运行界面及功能选择while(flag)coutfront=sidewalk-rear = NULL;/入队void In_LQueue(LQueue *car_on_sidewalk = (QNode *)malloc(sizeof(QNode); /为新节点开辟新空间strcpy(car_on_sidewalk-WAIT.license_plate , license_plate); /将数据写入节

6、点car_on_sidewalk-WAIT.state = s; /写入停车信息car_on_sidewalk-next = NULL;if(Empty_LQueue(sidewalk) /队空则创建第一个节点sidewalk-front = sidewalk-rear = car_on_sidewalk;else /队非空插入队尾sidewalk-rear-next = car_on_sidewalk;sidewalk-rear = car_on_sidewalk;/判队空int Empty_LQueue(LQueue *q)if(q-front = NULL)return 1;else r

7、eturn 0;/判队长度 返回队长int QueueLength(LQueue *q) QNode *p=q-front; int i=0;while(p != NULL) i+; p=p-next; return i; /出队 成功返回 1 队空返回 0int Out_LQueue(LQueue *if(Empty_LQueue(sidewalk) /如果队空返回 0return 0;car_on_sidewalk = sidewalk-front;strcpy(license_plate , car_on_sidewalk-WAIT.license_plate);/取出队头元素if(si

8、dewalk-front = sidewalk-rear) /队中只有一个元素sidewalk-front = sidewalk-rear=NULL; /删除元素elsesidewalk-front = sidewalk-front-next; /队头指针后移free(car_on_sidewalk); /释放指针return 1; /检查离开的车是否在停车场中 返回车在停车场中位置 不在则返回 0int LeaveCheck(SeqStack parking,char *license_plate)int flag = parking.top+1; /定义变量记录当前车在停车场中位置if(S

9、tackEmpty(parking)return 0;else /查找离开车所在位置while(parking.top != -1 parking.top-; return flag;/检验输入的车牌是否合法void Input_Check(char *license_plate)int flag = 1;int i;string tmpstr;while(flag)cintmpstr;getchar();if(tmpstr.length()MAX_PLATE)for(i=0;i10;i+)license_platei = tmpstr.c_str()i;flag = 0;else cout“输入有误,请重新输入:“;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报