diff options
Diffstat (limited to 'chapter6/bag4demo.cxx')
| -rw-r--r-- | chapter6/bag4demo.cxx | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/chapter6/bag4demo.cxx b/chapter6/bag4demo.cxx new file mode 100644 index 0000000..994bb3d --- /dev/null +++ b/chapter6/bag4demo.cxx @@ -0,0 +1,64 @@ +// FILE: bag4demo.cxx
+// Demonstration program for the 4th version of the bag
+// (from bag4.h and bag4.template).
+// This is a the same as the demonstration program for bag1,
+// except that we are now using a template class, and we no longer need to
+// check whether the bag reaches its capacity.
+
+#include <iostream> // Provides cout and cin
+#include <cstdlib> // Provides EXIT_SUCCESS
+#include "bag4.h" // Provides the bag<Item> template class
+using namespace std;
+using namespace main_savitch_6A;
+
+// PROTOTYPES for functions used by this demonstration program:
+void get_ages(bag<int>& ages);
+// Postcondition: The user has been prompted to type in the ages of family
+// members. These ages have been read and placed in the ages bag, stopping
+// when the user types a negative number.
+
+void check_ages(bag<int>& ages);
+// Postcondition: The user has been prompted to type in the ages of family
+// members once again. Each age is removed from the ages bag when it is typed,
+// stopping when the bag is empty.
+
+
+int main( )
+{
+ bag<int> ages;
+
+ get_ages(ages);
+ check_ages(ages);
+ cout << "May your family live long and prosper." << endl;
+ return EXIT_SUCCESS;
+}
+
+
+void get_ages(bag<int>& ages)
+{
+ int user_input; // An age from the user's family
+
+ cout << "Type the ages in your family. ";
+ cout << "Type a negative number when you are done:" << endl;
+ cin >> user_input;
+ while (user_input >= 0)
+ {
+ ages.insert(user_input);
+ cin >> user_input;
+ }
+}
+
+void check_ages(bag<int>& ages)
+{
+ int user_input; // An age from the user's family
+
+ cout << "Type those ages again. Press return after each age:" << endl;
+ while (ages.size( ) > 0)
+ {
+ cin >> user_input;
+ if (ages.erase_one(user_input))
+ cout << "Yes, I've got that age and have removed it." << endl;
+ else
+ cout << "No, that age does not occur!" << endl;
+ }
+}
|