Stack.h
#ifndef STACK_H_
#define STACK_H_
struct customer{
char fullname[35];
double payment;
};
typedef customer Item;
class Stack{
private:
enum{MAX=10};
Item items[MAX];
int top;
public:
Stack();
bool isEmpty()const;
bool isFull()const;
bool push(const Item &item);
bool pop(Item &item);
};
#endif
Stack.cpp
#include
#include “stack.h”
using namespace std;
Stack::Stack()
{
top=0;
}
bool Stack::isEmpty()const
{
return top==0;
}
bool Stack::isFull()const
{
return top==MAX;
}
bool Stack::push(const Item &item)
{
if(isFull())
{
cout<<”Error !Stack is full!”<<endl;
return false;
}
else
items[top++]=item;
return true;
}
bool Stack::pop(Item &item)
{
if(top<=0)
{
cout<<”Error !Stack is empty”<<endl;
return false;
}
else
{
item=items[–top];
return true;
}
}
main105.cpp
#include
#include “stack.h”
using namespace std;
void main105()
{
static int total=0;
Stack sc;
customer c[5]={
{“I”,10},
{“II”,20},
{“III”,40},
{“IV”,50},
{“V”,60}
};
customer s[10];//用于存储pop出来的customer
for(int i=0;i<5;i++)
{
sc.push(c[i]);
cout<<”now push “<<c[i].fullname<<” payment is “<<c[i].payment<<endl;
}
for(int i=0;i<5;i++)
{
sc.push(c[i]);
cout<<”now push “<<c[i].fullname<<” payment is “<<c[i].payment<<endl;
}
sc.push(c[3]);
for(int i=0;i<10;i++)
{
sc.pop(s[i]);
total+=s[i].payment;
cout<<”total=”<<total<<endl;
}
sc.pop(s[1]);
cin.get();
}
—————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/cprimerplus第六版课后编程题答案105/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!