///////////////////////////////////////////////////////////////////// // collection.cpp - defines collection of name, value pairs // // ver 1.1 // // Language: Visual C++, ver 7.0 // // Platform: Dell Dimension 8300, Windows XP Pro, SP1.0 // // Application: CSE687 - Object Oriented Design, Pr#3 prototype // // Author: Jim Fawcett, CST 2-187, Syracuse University // // (315) 443-3948, jfawcett@twcny.rr.com // ///////////////////////////////////////////////////////////////////// #ifdef TEST_COLLECTION #include #include #include "collection.h" void main() { std::cout << "\n Testing Collections " << "\n =====================\n"; collection animals; animals.push_back("Mammal","zebra"); animals.push_back("Marsupial","possum"); animals.push_back("reptile","pit viper"); animals.push_back("fish","tuna"); animals.front(); animals.insert("bird","falcon"); std::cout.setf(std::ios::left,std::ios::adjustfield); std::string name, value; std::cout << "\n size of animals collection is " << animals.size() << std::endl; animals.front(); while(animals.next(name,value)) { std::cout << "\n " << std::setw(10) << name.c_str() << " : " << std::setw(10) << value.c_str(); } std::cout << "\n\n"; std::cout << "\n Testing copy construction " << "\n ---------------------------\n"; collection copied = animals; do { copied.item(name,value)++; std::cout << "\n " << std::setw(10) << name.c_str() << " : " << std::setw(10) << value.c_str(); } while(!copied.end()); std::cout << "\n\n"; std::cout << "\n Testing assignment " << "\n --------------------\n"; collection assigned; assigned = animals; do { assigned.name(name); assigned.value(value); ++assigned; std::cout << "\n " << std::setw(10) << name.c_str() << " : " << std::setw(10) << value.c_str(); } while(!assigned.end()); std::cout << "\n\n"; std::cout << "\n Testing reversal " << "\n ------------------\n"; collection reverse = animals; reverse.back(); do { reverse--; // usually would pre-decrement for efficiency // this is done to test a change reverse.name(name); reverse.value(value); std::cout << "\n " << std::setw(10) << name.c_str() << " : " << std::setw(10) << value.c_str(); } while(!reverse.begin()); std::cout << "\n\n"; } #endif