C++堆栈队列实验

本文介绍了使用C++编程实现一个停车场管理系统,系统按照车辆到达时间排序,并在停车场满时使用候车场进行等待。当车辆离开时,后续车辆需按顺序退出让路,离场车辆需支付停车费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 汽车在停车场内按车辆到达时间的先后顺序依次由南向北排列(大门在最北端,最先到达的第一辆车停放在停车场的最南端),若停车场内已停满n辆车,则后来的汽车只能在门外的便道(即候车场)等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车辆开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在它离开停车场时必须按停留的时间长短交纳费用。

#include<iostream>
#include<time.h>
using namespace std;
#define Maxsize 3//栈最大队列数
#define Maxsize1 4//环形队,最大队列为Maxsize1-1
#define price 0.01//每秒计费

//-------------------------------------------------------以下为候车场相关(环形队)---------------------------------------------------------------------
typedef class {
public:
	string plate_number[Maxsize1];
	int front, rear;
}SqQueue;

//候车场计数
int countsq(SqQueue a) {
	int s = 0;
	while (a.front != a.rear) { s++; a.front++; }
	return s;
}

//队列初始化
void initsqueue(SqQueue& Q)
{
	Q.front = Q.rear = 0;
}




//入队,爆队返回false
bool enqueue(SqQueue& Q, string a) {
	if ((Q.rear + 1) % Maxsize1 == Q.front)return false;
	Q.plate_number[Q.rear] = a;
	Q.rear = (Q.rear + 1) % Maxsize1;
	return true;
}


//出队,栈空的返回fa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值