123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // stacktem.cpp -- testing the template stack class
- #include <iostream>
- #include <string>
- #include <cctype>
- #include "stacktp.h"
- using std::cin;
- using std::cout;
- int main()
- {
- Stack<std::string> st; // create an empty stack
- char ch;
- std::string po;
- cout << "Please enter A to add a purchase order,\n"
- << "P to process a PO, or Q to quit.\n";
- while (cin >> ch && std::toupper(ch) != 'Q')
- {
- while (cin.get() != '\n')
- continue;
- if (!std::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";
- // cin.get();
- // cin.get();
- return 0;
- }
|