C++的一个问题，求助大神

template
class Queue//循环队列
{
public:
Queue()
{//构造空队列
maxSize = MAX_PASS_SIZE + 1;
queue = new T[maxSize];
front = rear = 0;
}
~Queue() { delete[]queue; }
bool isEmpty()
{//判断队列是否为空
return front == rear;
}
bool isFull()
{//判断队列是否满
if ((rear + 1) % maxSize == front) return true;
else return false;
}
T first()
{//返回对首元素
if (isEmpty())cout << "队列为空" << endl;
else return queue[(front + 1) % maxSize];

}
T last()
{//返回队尾元素
if (isEmpty())cout << "队列为空" << endl;
else return queue[rear];
}
Queue&push(T &x)
{//入队
if (isFull()) cout << "队列已满" << endl;
else
{
queue[rear] = x;
rear = (rear + 1) % maxSize;

}return *this;
}
Queue&pop(T &x)
{//出队
if (isEmpty())cout << "队列为空" << endl;
else
{
x = queue[front];
front = (front + 1) % maxSize;

}return *this;
}
//private:
int front;//队首
int rear;//队尾
int maxSize;//队列大小
T*queue;
};

template
class Stack
{
public:
Stack()
{//构造空栈
maxTop = MAX_PARKING_SIZE - 1;
stack = new T[MAX_PARKING_SIZE];
top = -1;
}
~Stack() { delete[]stack; }
bool isEmpty()
{//判断栈是否为空
}
bool isFull()
{//判断栈是否满
}
T getTop()
{//返回栈顶元素
if (isEmpty()) cout << "栈为空" << endl;
else return stack[top];
}
Stack&push(T &x)
{//入栈
if (isFull()) cout << "栈已满" << endl;
else
{
top++;
stack[top] = x;
}
return *this;
}
Stack&pop(T &x)
{//出栈
if (isEmpty())cout << "栈为空" << endl;
else
{
x = stack[top];
top--;

}
return *this;
}
//private:
int top;//栈顶
int maxTop;//最大栈顶值
T*stack;//动态数组存储元素
};

#include
#include
#include"stack.h"
#include"queue.h"
using namespace std;
const int MAX_PARKING_SIZE = 5;
const int MAX_PASS_SIZE = 5;
class Car
{
public:

void createArriveCar()
{
cout << "请输入车牌号:";
cin >> carNumber;
status = true;
cout << "请输入到达的时间:";
cin >> hour >> minute;
}
void createLeaveCar()
{
cout << "请输入车牌号:";
cin >> carNumber;
status = false;
cout << "请输入离开的时间:";
cin >> hour >> minute;
}
void print()
{
if (status)
cout << "车牌号：" << carNumber << " 到达时间" << hour << ":" << minute << endl;
else cout << "空" << endl;

}
string carNumber;//车牌号
int hour;
int minute;//到达的时间
bool status = false;//true代表进入停车场，false代表出停车场

};
class Parking
{
public:
void carArrive(Car car)
{
if (!parkingStack.isFull())
{
parkingStack.push(car);
cout << "车辆进入停车场，在停车场的位置为：" << parkingStack.top + 1 << endl;
}
else if (parkingQueue.isFull())
cout << "停车场和通道中都没有位置" << endl;
else if (parkingStack.isFull())
{
parkingQueue.push(car);
cout << "停车场已满，车辆进入等待通道，在通道中的位置为：" << parkingQueue.rear << endl;
}
}
void carLeave(Car car)
{
Car leaveCar;
Car temporaryCar;
int time;//以分钟记的停留时间
double money;//收费
Stack temporaryStack; //临时栈
while (car.carNumber != parkingStack.getTop().carNumber)
{
parkingStack.pop(leaveCar);
temporaryStack.push(leaveCar);
if (parkingStack.isEmpty())
{
cout << "车站中没有这辆车" << endl;
break;
}

}
if (!parkingStack.isEmpty())
{
parkingStack.pop(leaveCar);
time = (car.hour - leaveCar.hour) * 60 + (car.minute - leaveCar.minute);
money = time * 1;
cout << "离开的车辆在停车场里停留了" << time << "分钟，需付费用：" << money << endl;
}

while (!temporaryStack.isEmpty())
{
temporaryStack.pop(temporaryCar);
parkingStack.push(temporaryCar);
}

while (!parkingStack.isFull() && !parkingQueue.isEmpty())//在通道中的车辆进入停车场，时间改为进入的时间
{
parkingQueue.pop(temporaryCar);
temporaryCar.hour = car.hour;
temporaryCar.minute = car.minute;
parkingStack.push(temporaryCar);
}

}
void listshow()
{
for (int i = 0; i<MAX_PARKING_SIZE; i++)
{

cout << "第" << i + 1 << "号停车位：";
parkingStack.stack[i].print();

}
}
private:
Stack parkingStack;
Queue parkingQueue;
};
int main()
{
Parking parking;
int option;
while(1)
{
try {
cout << "欢迎使用本停车管理系统" << endl;
cout << "1. 车辆到达,2. 车辆离开,3. 列表显示,4.退出系统" << endl;
cin >> option;
switch (option)
{
case 1:
{
Car aParkingCar;
aParkingCar.createArriveCar();
parking.carArrive(aParkingCar);
break;
}
case 2:
{
Car aLeaveCar;
aLeaveCar.createLeaveCar();
parking.carLeave(aLeaveCar);
break;
}
case 3:
{
parking.listshow();
break;
}
case 4:return 0;
default:
{
cout << "命令错误" << endl;
break;
}
}
}
catch (exception e) {
break;
}
}
}

2个回答

![图片说明](https://img-ask.csdn.net/upload/202002/26/1582693107_599502.png) ```#include<stdio.h>![图片说明](https://img-ask.csdn.net/upload/202002/26/1582693066_35433.png) #include "pch.h" #include<stdlib.h> #include<time.h> #include<stdlib.h> #include<conio.h> #include<iostream> using std::endl; using std::cout; using std::cin; #define ERROR 0 #define FALSE 0 #define OVERFLOW -1 #define TRUE 1 #define OK 1 #define RANGE 10 #define h 12 #define w 12 #pragma warning(disable:4996) typedef struct { int r, c; }PosType; // 坐标r表示行，c表示列 typedef struct { PosType seat; int d; }ElemType;//seat表示当前坐标，d表示当前要转的方向序号 typedef struct { ElemType data[1000]; int top; }SqStack;//栈元素类型，含有一个三元组， top 表示该数组的元素个数 ```
C#算法问题求助大神帮忙

C++的一个问题，求助大神

C语言的相关问题，求助大神们。
![图片说明](https://img-ask.csdn.net/upload/201612/08/1481206905_905931.png)原题如图所示。C语言中，设计函数：search()，用折半查找法在已排序的n个数种查找指定的数据，若存在，返回其所处的位置，否则，将其插入适当位置使数据仍有序。 这个程序我已经写完了前半段，但是后半段的那个插入其中使其保持原来的顺序，我的是从大到小排列，不知道后半段代码该如何写了。求助大神们。 int search (int *d,int n,int key){ int low,high,mid,i; low=0; high=n-1; while( low <= high){ mid=(low+high)/2; if(key==d[mid]) return mid; else if(key>d[mid]) high=mid-1; else low = mid + 1; } return 0; }
C++无法执行求助大神帮忙

6-3 函数重载实现两数相加 (15分) 设计一个重载函数add，该函数有两个参数，可以实现两个类型相同的参数相加的操作，函数返回相加的结果。两个参数可以是整数、实数和字符串，但必须保证两个参数类型相同。 裁判测试程序样例： #include <iostream> #include <string> #include <iomanip> using namespace std; /* 请在这里填写答案 */ int main() { int a, b; double c, d; string s1, s2; cin >> a >> b; cin >> c >> d; cin >> s1 >> s2; cout << add(a, b) << endl; cout << fixed << setprecision(2) << add(c, d) << endl; cout << add(s1, s2) << endl; 输入样例： 3 5 3.3333 5.555555 hello world 输出样例： 8 8.89 helloworld 字符串的add函数不大懂 char add(char *s1,char *s2) { return strcat(s1,s2); }

C++套接字编程遇到问题，求助大神

7-5 类的定义与对象使用 (15分) 请定义一个学生类(Student),包含学号、姓名、年龄(7-60岁)三个私有成员。从键盘输入学生的成员值后生成对象，并按要求输出相应的结果。 输入格式: 第一行一个整数k，代表后面要生成的学生人数。 从第二行开始的连续k行，每行3个数据，分别表示一个学生的学号、姓名和年龄。 输出格式: 输出每个学生的基本情况。如果数据不符合要求则输出"bad" 输入样例: 3 20174042001 zhangsan 20 20174042030 lisi 2 20174042050 wangwu 17 输出样例: zhangsan 20174042001 20 bad wangwu 20174042050 17 #include<iostream> using namespace std; class Student{ private: long int number; char name[10]; int age; public: void Init(int k); void print(int k); }; Student stu[100]; void Student::Init(int k) { for(int i=0;i<k;i++) { cin>>stu[i].number>>stu[i].name>>stu[i].age; } } void Student::print(int k) { for(int i=0;i<k;i++) { if(stu[i].age<7&&stu[i].age>60){ cout<<"bcd"<<endl; continue; } cout<<stu[i].number<<" "<<stu[i].name<<" "<<stu[i].age<<endl; } } int main() { int k; cin>>k; stu[100].Init(k); stu[100].print(k); }

《MySQL 性能优化》之理解 MySQL 体系结构

Java 14 都快来了，为什么还有这么多人固守Java 8？

【CSDN编者按】1月2日，阿里巴巴发布《达摩院2020十大科技趋势》，十大科技趋势分别是：人工智能从感知智能向认知智能演进；计算存储一体化突破AI算力瓶颈；工业互联网的超融合；机器间大规模协作成为可能；模块化降低芯片设计门槛；规模化生产级区块链应用将走入大众；量子计算进入攻坚期；新材料推动半导体器件革新；保护数据隐私的AI技术将加速落地；云成为IT技术创新的中心 。 新的画卷，正在徐徐展开。...

Python+OpenCV实时图像处理

2020年一线城市程序员工资大调查

python爬取百部电影数据，我分析出了一个残酷的真相
2019年就这么匆匆过去了，就在前几天国家电影局发布了2019年中国电影市场数据，数据显示去年总票房为642.66亿元，同比增长5.4%；国产电影总票房411.75亿元，同比增长8.65%，市场占比 64.07%；城市院线观影人次17.27亿，同比增长0.64%。 看上去似乎是一片大好对不对？不过作为一名严谨求实的数据分析师，我从官方数据中看出了一点端倪：国产票房增幅都已经高达8.65%了，为什...

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

2020 年，大火的 Python 和 JavaScript 是否会被取而代之？
Python 和 JavaScript 是目前最火的两大编程语言，但是2020 年，什么编程语言将会取而代之呢？ 作者 |Richard Kenneth Eng 译者 |明明如月，责编 | 郭芮 出品 | CSDN（ID：CSDNnews） 以下为译文： Python 和 JavaScript 是目前最火的两大编程语言。然而，他们不可能永远屹立不倒。最终，必将像其他编程语言一...

Idea 中最常用的10款插件（提高开发效率），一定要学会使用！

AI 没让人类失业，搞 AI 的人先失业了

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

B站是个宝，谁用谁知道???? 作为一名大学生，你必须掌握的一项能力就是自学能力，很多看起来很牛X的人，你可以了解下，人家私底下一定是花大量的时间自学的，你可能会说，我也想学习啊，可是嘞，该学习啥嘞，不怕告诉你，互联网时代，最不缺的就是学习资源，最宝贵的是啥？ 你可能会说是时间，不，不是时间，而是你的注意力，懂了吧！ 那么，你说学习资源多，我咋不知道，那今天我就告诉你一个你必须知道的学习的地方，人称...