47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
|
// stacker.cpp -- testing the Stack class
|
||
|
#include <iostream>
|
||
|
#include <cctype> // or ctype.h
|
||
|
#include "stack.h"
|
||
|
int main()
|
||
|
{
|
||
|
using namespace std;
|
||
|
Stack st; // create an empty stack
|
||
|
char ch;
|
||
|
unsigned long po;
|
||
|
cout << "Please enter A to add a purchase order,\n"
|
||
|
<< "P to process a PO, or Q to quit.\n";
|
||
|
while (cin >> ch && toupper(ch) != 'Q')
|
||
|
{
|
||
|
while (cin.get() != '\n')
|
||
|
continue;
|
||
|
if (!isalpha(ch))
|
||
|
{
|
||
|
cout << '\a';
|
||
|
continue;
|
||
|
}
|
||
|
switch(ch)
|
||
|
{
|
||
|
case 'A':
|
||
|
case 'a': cout << "Enter a PO number to add: ";
|
||
|
cin >> po;
|
||
|
if (st.isfull())
|
||
|
cout << "stack already full\n";
|
||
|
else
|
||
|
st.push(po);
|
||
|
break;
|
||
|
case 'P':
|
||
|
case 'p': if (st.isempty())
|
||
|
cout << "stack already empty\n";
|
||
|
else {
|
||
|
st.pop(po);
|
||
|
cout << "PO #" << po << " popped\n";
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
cout << "Please enter A to add a purchase order,\n"
|
||
|
<< "P to process a PO, or Q to quit.\n";
|
||
|
}
|
||
|
cout << "Bye\n";
|
||
|
return 0;
|
||
|
}
|