云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 停车场管理-数据结构课程设计源代码

停车场管理-数据结构课程设计源代码

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 17:47:40

Status QueueEmpty(LinkQueue Q)//判断队空 {

if (Q.front == Q.rear) return OK; else return ERROR; }

Status EnQueue(LinkQueue &Q, Car e)//入队 {

QueuePtr p; p = new QNode;

if (!p) return ERROR; p->data = e; p->next = NULL; Q.rear->next = p; Q.rear = p; return OK; }

Status DeQueue(LinkQueue &Q, Car &e)//出队 {

QueuePtr p;

if (Q.front == Q.rear) return ERROR; p = Q.front->next; e = p->data;

Q.front->next = p->next;

if (Q.rear == p) Q.rear = Q.front; delete p; return OK; }

Car* LocateQ(LinkQueue Q, Car e)//查找队列元素 {

QueuePtr p = Q.front; while (p != NULL) {

if (e.num == p->data.num) { Car *car0=&p->data; return car0; }

p=p->next; }

return NULL;

}

3.模拟停车场管理系统的操作(部分伪码如下) //满足需求2,3 :入场时的输出

void Arrive(SqStack &Park, LinkQueue &Wait, Car &car, int &pos, int &ppos) {

if (!StackFull(Park)) {//停车场不满 cout << \停车场未满,可以进入。\ Push(Park, car);

cout << \请停到 \号车位\

cout << \ cout << \车牌号\车型\进入时间\车位号\

cout << \

car.time << '\\t' << \

cout << \ pos++; }

else {//停车场满,要到便道等候

cout << \停车场已满,请到便道等候。\ EnQueue(Wait, car); ppos++;

car.path_time = car.time; } }

//满足需求2,3:离场时的输出 void Departure(SqStack &Park, LinkQueue &Wait, Car &car, int &pos, int &ppos) {

int price[3]={4,6,12}; //停车场收费标准 int pathprice[3]={2,3,6}; //便道收费标准 if (!(car0 = Locate(Park, car))) {

if(!(car0 = LocateQ(Wait, car))){

cout << \哈哈输入有误,请重新输入\ return; } }

if(!Locate(Park, car)) {t=0; pt = car.time - car0->path_time;} //车还未进停车场

else {t = car.time - car0->time; pt = car0->time - car0->path_time;}//车已经进了停车场

if (car.timepath_time) { cout << \哈哈输入有误,请重新输入\<< endl; return; }

else {

money = t*price[car0->type-1] + pt*pathprice[car0->type-1];

cout <<\您的停车费用为:\

cout <<\ cout <<\车牌号\车型\停车费用\离开时间\场内时间\便道时间\

cout <<\ \\

\

cout <<\ }

if(!Locate(Park, car)) {//要走的车在便道上 InitQueue(Temp);

QueuePtr Qcart=Wait.front->next;

while(Qcart->data.num!=car.num){//前面的车让道

cout<<\请\号车让道并自行排到便道尾\

Qcart=Qcart->next;

DeQueue(Wait, carn); ppos--; EnQueue(Temp, carn); }

DeQueue(Wait, carn); ppos--; Qcart=Temp.front->next;

while(!QueueEmpty(Temp)){//让道的车回到便道 EnQueue(Wait, Qcart->data); ppos++; DeQueue(Temp, carn); Qcart=Qcart->next; } }

else {//要走的车在停车场里 InitStack(Temp);

*cart = Park.top - 1;

while (!StackEmpty(Park)) { //停车场不空 if (cart->num == car.num) break; Push(Temp, *cart); --cart; } pos--;

Park.top = car0; //腾出空位 carr = (Temp.top - 1);

while (!StackEmpty(Temp)) {//临时栈不空 Pop(Temp, *carr); Push(Park, *carr); --carr; }

while (!QueueEmpty(Wait) && !StackFull(Park)) {

if (!StackFull(Park)) {//停车场不满,便道上的车进栈

cout << \停车场不满,请便道第一辆车进入停车场\ DeQueue(Wait, carn); ppos--; carn.time = car.time; Push(Park, carn); } } } }

4.主函数和其他函数的伪码算法 int main() {

int pos = 1, ppos = 1;//pos为汽车在停车场的位置,ppos为汽车在便道的位置 char i;//选择操作 InitStack(Park); InitQueue(Wait);

cout << \※※※※ 停车管理系统 ※※※※ \ cout << \

cout << \※ ※ 停车场容量:2辆 ※ ※ ※ \cout << \※ ※ 停车场收费:小汽车4元/小时 客车6元/小时 大卡车12元/小时 ※ \

cout << \※ ※ 便道收费:小汽车2元/小时 客车3元/小时 大卡车6元/小时 ※ ※ \

cout << \

cout << \※ -- ※ A 车辆到达 ※ -- ※ \ cout << \※ -- ※ D 车辆离开 ※ -- ※ \ cout << \※ -- ※ E 输入结束 ※ -- ※ \ cout << \车型:1小汽车 2客车 3大卡车\ cout << \<< endl; while (TRUE){

cout << \请输入A or D or E选择操作:\ cin >> i;

if (i != 'A'&&i != 'D'&&i != 'E'&&i != 'a'&&i != 'd'&&i != 'e') cout << \输入错误!请重新选择:\

else{

switch (i){

case 'A': case 'a':

cout << \有车到达停车场,\

cout << \请输入车辆车牌号码:\ cin >> car.num; cout << \请输入车型:\

cin >> car.type;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Status QueueEmpty(LinkQueue Q)//判断队空 { if (Q.front == Q.rear) return OK; else return ERROR; } Status EnQueue(LinkQueue &Q, Car e)//入队 { QueuePtr p; p = new QNode; if (!p) return ERROR; p->data = e; p->next = NULL; Q.rear->next = p; Q.rear = p; return OK; } Status DeQueue(LinkQueue &Q, Car &e)//出队 { QueuePtr p; if (Q.front

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com