#include #include #include "NameT.h" using namespace std; NameT ReadName(){ NameT name; char tmp; string tmpName; cout << "Enter the first name => "; cin >> name.firstName; cout << "Enter the middle initial, or 0 if none => "; cin >> tmp; if (isalpha(tmp)) { name.middleInitial = tmp; } else { name.middleInitial = ' '; } cout << "Enter the last name or 0 if none => "; cin >> tmpName; if (tmpName != "0") { name.lastName = tmpName; } else { name.lastName = ""; } return name; } void PrintName(NameT name){ cout << NameString(name); return; } string NameString(NameT name){ string rv; // everyone must have a first name. rv = name.firstName; // cover the case where there is no middle initial. if (name.middleInitial != ' ') { rv = rv + ' ' + name.middleInitial + '.'; } // cover the case where there is no last name. // don't want an extra space at the end of the name if (name.lastName != "") { rv = rv + ' ' + name.lastName; } return rv; } int CompareNames(NameT a , NameT b){ int returnValue = 0; if (a.lastName == b.lastName) { if (a.firstName == b.firstName) { if (a.middleInitial == b.middleInitial) { returnValue = 0; } else if (a.middleInitial < b.middleInitial) { returnValue = -1; } else { returnValue = 1; } } else if (a.firstName < b.firstName) { returnValue = -1; } else { returnValue = 1; } } else if (a.lastName < b.lastName) { returnValue = -1; } else { returnValue = 1; } return returnValue; }