商品货架管理

/*

*尚品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。

*上货时,需要倒货架,以保证生产日期较新的商品在较靠里的位置

*针对一种特定商品,实现上述管理过程

*测试数据:由学生自己确定一组测试数据。注意测试边界数据,如空栈。

*/

shelf.h

#include

#include
using namespace std;

struct Goods{
    int number;
    string name;
    char date[10];
};

class GoodsShelf{

public: 

    GoodsShelf(int size); 

     ~GoodsShelf();            
    bool goodsShelfEmpty();     
    bool goodsShelfFull();   
    bool push(Goods goods);  
    bool pop(Goods &goods);  
    void goodsShelfTraverse();  
private:
    int m_iTop;
    Goods *m_pBuffer;      
    int m_iSize;
};

GoodsShelf::GoodsShelf(int size){
    m_iSize = size;
    m_pBuffer = new Goods[size];
    m_iTop = 0;  
}

GoodsShelf::~GoodsShelf(){
    delete [] m_pBuffer;

     
bool GoodsShelf::goodsShelfEmpty(){
    if(m_iTop == 0)
        return true;
    return false;
}   

bool GoodsShelf::goodsShelfFull(){
    if(m_iTop == m_iSize)
        return true;
    return false;
}  

bool GoodsShelf::push(Goods goods){

     if(goodsShelfFull())

        return false;
    m_pBuffer[m_iTop] = goods;
    m_iTop++;
    return true;



bool GoodsShelf::pop(Goods &goods){
    if(goodsShelfEmpty())
        return false;
    m_iTop--;
    goods = m_pBuffer[m_iTop];
    return true;
}


void GoodsShelf::goodsShelfTraverse(){
    for(int i = m_iTop-1;i>=0;i--)
        cout<

}


demo.cpp

#include
#include "shelf.h"
using namespace std;
int main(){
//指定货架容量
    GoodsShelf s1(10),s2(10);
    Goods goods;
    int n;
    cout<<"请输入货架上现有商品数量:";
    cin>>n;
    cout<<"请输入货架上现有商品的编号,商品名,日期(从货架最里端到最外端依次输入):"<    for(int i=1;i<=n;i++){
        cin>>goods.number;
        cin>>goods.name;
        cin>>goods.date;
        s1.push(goods);
    }
    while(!s1.goodsShelfEmpty()){    
        s1.pop(goods);
        s2.push(goods);
    }
    cout<<"请输入新上货架商品的数量:";
    cin>>n;
    cout<<"请输入新上货架商品的编号,商品名,日期:(日期从新到旧依次输入)"<    for( i=1;i<=n;i++){
        cin>>goods.number;
        cin>>goods.name;
        cin>>goods.date;
        s1.push(goods);
    }
    while(!s2.goodsShelfEmpty()){
        s2.pop(goods);
        s1.push(goods);
    }
    cout<<"放入新货品后货架上的所有商品的编号,商品名,日期(从货架最外端到最里端依次输出):"<    s1.goodsShelfTraverse();
    return 0;
}

你可能感兴趣的:(数据结构C++篇,数据结构C++)