void test_finding(DictionaryList& dl) { // Pretend that a user is trying to look up names. cout << "\nLet's look up some names ...\n"; dl.find(8001); if (dl.cursor_ok()) cout << " name for 8001 is: " << dl.cursor_datum().c_str() << ".\n"; else cout << " Sorry, I couldn't find 8001 in the list. \n" ; dl.find(8000); if (dl.cursor_ok()) cout << " name for 8000 is: " << dl.cursor_datum().c_str() << ".\n"; else cout << " Sorry, I couldn't find 8000 in the list. \n" ; dl.find(8002); if (dl.cursor_ok()) cout << " name for 8002 is: " << dl.cursor_datum().c_str() << ".\n"; else cout << " Sorry, I couldn't find 8002 in the list. \n" ; dl.find(8004); if (dl.cursor_ok()) cout << " name for 8004 is: " << dl.cursor_datum().c_str() << ".\n"; else cout << " Sorry, I couldn't find 8004 in the list. \n" ; cout << "***----Finished tests of finding -------------------------***\n\n"; }
void print(DictionaryList& dl) { if (dl.size() == 0) cout << " List is EMPTY.\n"; for (dl.go_to_first(); dl.cursor_ok(); dl.step_fwd()) { cout << " " << dl.cursor_key(); cout << " " << dl.cursor_datum().c_str() << '\n'; } }
void test_operator_overloading(DictionaryList& dl) { DictionaryList dl2 = dl; dl.go_to_first(); dl.step_fwd(); dl2.go_to_first(); cout << "\n\nTesting a few comparison and insertion operators." << endl; // Needs to overload >= and << (insertion operator) in class Mystring if (dl.cursor_datum() >= (dl2.cursor_datum())) cout << endl << dl.cursor_datum() << " is greater than or equal " << dl2.cursor_datum(); else cout << endl << dl2.cursor_datum() << " is greater than " << dl.cursor_datum(); // Needs to overload <= for Mystring if(dl.cursor_datum() <= (dl2.cursor_datum())) cout << dl.cursor_datum() << " is less than or equal" << dl2.cursor_datum(); else cout << endl << dl2.cursor_datum() << " is less than " << dl.cursor_datum(); // Needs to overload != for Mystring if(dl.cursor_datum() != (dl2.cursor_datum())) cout << endl << dl.cursor_datum() << " is not equal to " << dl2.cursor_datum(); else cout << endl << dl2.cursor_datum() << " is equal to " << dl.cursor_datum(); // Needs to overload > for Mystring if(dl.cursor_datum() > (dl2.cursor_datum())) cout << endl << dl.cursor_datum() << " is greater than " << dl2.cursor_datum(); else cout << endl << dl.cursor_datum() << " is not greater than " << dl2.cursor_datum(); // Needs to overload < for Mystring if(dl.cursor_datum() < (dl2.cursor_datum())) cout << endl << dl.cursor_datum() << " is less than " << dl2.cursor_datum(); else cout << endl << dl.cursor_datum() << " is not less than " << dl2.cursor_datum(); // Needs to overload == for Mystring if(dl.cursor_datum() == (dl2.cursor_datum())) cout << endl << dl.cursor_datum() << " is equal to " << dl2.cursor_datum(); else cout << endl << dl.cursor_datum() << " is not equal to " << dl2.cursor_datum(); cout << endl << "\nUsing square bracket [] to access elements of Mystring objects. "; char c = dl.cursor_datum()[1]; cout << endl << "The second element of " << dl.cursor_datum() << " is: " << c; dl.cursor_datum()[1] = 'o'; c = dl.cursor_datum()[1]; cout << endl << "The second element of " << dl.cursor_datum() << " is: " << c; cout << endl << "\nUsing << to display key/datum pairs in a Dictionary list: \n"; /* The following line is expected to display the content of the linked list * dl2 -- key/datum pairs. It should display: * 8001 Allen * 8002 Peter * 8003 Sam * 8004 PointyHair */ cout << dl2; cout << endl << "\nUsing [] to display the datum only: \n"; /* The following line is expected to display the content of the linked list * dl2 -- datum. It should display: * Allen * Peter * Sam * PointyHair */ for(int i =0; i < dl2.size(); i++) cout << dl2[i] << endl; cout << endl << "\nUsing [] to display sequence of charaters in a datum: \n"; /* The following line is expected to display the characters in the first node * of the dictionary. It should display: * A * l * l * e * n */ cout << dl2[0][0] << endl; cout << dl2[0][1] << endl; cout << dl2[0][2] << endl; cout << dl2[0][3] << endl; cout << dl2[0][4] << endl; cout << "\n\n***----Finished tests for overloading operators ----------***\n\n"; }