#include <iostream>
#include<string.h>
#include<string.h>
using namespace std;
static int n; //货架(栈)的最大容量
//信息结构体
typedef struct /*Inform*/ //可以去掉Inform,在需要在结构体中定义结构体对象(指针)时不能去掉
{
string name;
int a;
}Inform;
typedef struct /*Inform*/ //可以去掉Inform,在需要在结构体中定义结构体对象(指针)时不能去掉
{
string name;
int a;
}Inform;
//栈的*顺序*结构体
typedef struct
{
Inform *base; //栈和队列存储的元素都为inform类,所以指针定义为inform类
Inform *top;
int stacksize;
}SqStack;
typedef struct
{
Inform *base; //栈和队列存储的元素都为inform类,所以指针定义为inform类
Inform *top;
int stacksize;
}SqStack;
//队列*顺序*结构体
typedef struct
{
Inform *base;
int fro;
int rear;
}SqQueue;
typedef struct
{
Inform *base;
int fro;
int rear;
}SqQueue;
void Found1(SqStack &s); //货物上架
void Found2(SqStack &s); //创建顺序空栈
void Foundd(SqQueue &d); //创建顺序队列
void TurnsZ1(SqStack &s1,SqQueue d); //对于前天未剩余(第一天)倒货
void TurnsZ2(SqStack &s1,SqStack &s1_,SqStack s2); //对于前天有剩余倒货
void Print(SqStack &s1); //取下货架上的货物
void Found2(SqStack &s); //创建顺序空栈
void Foundd(SqQueue &d); //创建顺序队列
void TurnsZ1(SqStack &s1,SqQueue d); //对于前天未剩余(第一天)倒货
void TurnsZ2(SqStack &s1,SqStack &s1_,SqStack s2); //对于前天有剩余倒货
void Print(SqStack &s1); //取下货架上的货物
int main()
{
int day=1,k;
cout << "请输入货架的最大容量\t";
cin >> n;
SqStack s1,s1_,s2; //s1为货架货物; s1_为第二天上架货物暂存处 s2:临时栈
SqQueue d; //声明队列
Found2(s1);
Found2(s1_);
Found2(s2); //创建四个空栈
while(k!=3)
{
cout<<"第"<<day++<<"天货物上架"<<endl;
if(s1.base==s2.top)
{
Found1(s1);
TurnsZ1(s1,d);
cout<<"1:出售货物 2:继续上货 3:结束上货"<<endl;
if(k==1)
cin>>k;
switch(k)
{
case 1:
{
Print(s1);
cout<<"2:继续上货 3:结束上货"<<endl;
cin>>k;
&n
{
int day=1,k;
cout << "请输入货架的最大容量\t";
cin >> n;
SqStack s1,s1_,s2; //s1为货架货物; s1_为第二天上架货物暂存处 s2:临时栈
SqQueue d; //声明队列
Found2(s1);
Found2(s1_);
Found2(s2); //创建四个空栈
while(k!=3)
{
cout<<"第"<<day++<<"天货物上架"<<endl;
if(s1.base==s2.top)
{
Found1(s1);
TurnsZ1(s1,d);
cout<<"1:出售货物 2:继续上货 3:结束上货"<<endl;
if(k==1)
cin>>k;
switch(k)
{
case 1:
{
Print(s1);
cout<<"2:继续上货 3:结束上货"<<endl;
cin>>k;
&n