📄 商品货架.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
typedef int SElemType;
typedef struct
{ //建立顺序栈存储结构
SElemType *base;
SElemType *top;
int stacksize;
}Sqstack;
int init(Sqstack &s,int maxsize) //初始化
{
s.base=new SElemType[maxsize];
if(!s.base)exit(1);
s.top=s.base;
s.stacksize=maxsize;
return 0;
}
int push(Sqstack &s,int e) //入栈
{
if(s.top-s.base==s.stacksize)return 0;
else
{
*s.top=e;
s.top++;
}
return 0;
}
int pop(Sqstack &s) //出栈
{
int e;
if(s.top==s.base)
{
return 0;
}
else
e=*--s.top;
return e;
}
int length(Sqstack &L) //求栈长
{
SElemType *p;
p=L.base;
for(int i=0;p!=L.top;i++)
p++;
return i;
}
int showout(Sqstack L) //显示栈内所有元素
{
if(L.top==L.base)
{
cout<<"货架已空"<<endl;
return 0;
}
SElemType *p;
for(p=L.base;p!=L.top;p++)
cout<<"商品"<<*p<<endl;
return 0;
}
int a,b,c; //定义几个全局变量
int select(Sqstack &Q,Sqstack &S,Sqstack &D);
inital(Sqstack &Q,Sqstack &S,Sqstack &D) //开始函数,建立货架,并存放商品
{
cout<<"请确定货架大小"<<endl;
cin>>a;
init(Q,a+1); //货架
init(S,a+1); //辅助货架
init(D,a+1); //记录营业情况
cout<<"货架已经建立,请输入商品编号(20080101),生产日期早的编号小,先输入"<<endl;
c=1; //初始化c,使每次输入都有效
for(int i=1;i<=a;i++)
{
cin>>b;
if(b<c)
{
cout<<"编号不合法";
inital(Q,S,D);
}
push(S,b); //入辅助栈
c=b;
}
for(i=1;i<=a;i++)
{
int d;
d=pop(S);
push(Q,d);
}
cout<<"货架已经放满,可以开始营业"<<endl;
return 0;
}
int sell(Sqstack &Q,Sqstack &S,Sqstack &D) //出售商品
{
if(Q.base==Q.top)
cout<<"商品已经售空"<<endl;
int f=pop(Q);
push(D,f);
cout<<"商品"<<f<<"已经售出"<<endl;
select(Q,S,D);
return 0;
}
int selectstate(Sqstack &Q,Sqstack &S,Sqstack &D) //查询营业情况
{
cout<<"已经售出的商品"<<length(D)<<endl;
cout<<"还有"<<length(Q)<<"件商品可以出售"<<endl;
select(Q,S,D);
return 0;
}
int select(Sqstack &Q,Sqstack &S,Sqstack &D) //功能旋转
{
cout<<" 请选择操作 "<<endl;
cout<<"1.出售商品 2.查看营业情况"<<endl;
cout<<"3.查看货架商品 4.退出程序"<<endl;
cout<<""<<endl;
int n;
cin>>n;
if(n==1)
sell(Q,S,D);
else if(n==2)
selectstate(Q,S,D);
else if(n==3)
{
showout(Q);
select(Q,S,D);
}
else if(n==4)
exit(1);
else
{
cout<<"没有这个操作"<<endl;
select(Q,S,D);
}
return 0;
}
int main()
{
Sqstack Q,S,D; //定义三个栈
inital(Q,S,D);
select(Q,S,D);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -