⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 商品货架.cpp

📁 商品货架管理
💻 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 + -