// Tree with Person objects // Author: Hans-Peter Weber // Date: 08.05.04 #include using std::cout; using std::cerr; using std::cin; using std::endl; #include using std::ofstream; using std::ifstream; using std::ios; #include using std::string; #include #include "tree.h" #include "person.h" int main() { Tree< Person > personTree; int fileOrConsole; string lastName, firstName; cout << "Neue Namen eingeben(1) oder vorhandene Datei nutzen(2): "; cin >> fileOrConsole;; if( fileOrConsole == 1 ) { cout << "Name, Vorname eingeben" << endl << "(Beenden mit 'Strg z'): "; ofstream out( "Daten.txt", ios::app ); if( !out ) { cerr << "Datei konnte nicht geoeffnet werden." << endl; exit( 1 ); } while( cin >> lastName >> firstName ) { out << lastName << " " << firstName << endl; personTree.insertNode( *( new Person( lastName, firstName ) ) ); cout << "Eingeben: "; } } else { ifstream in( "Daten.txt", ios::in ); if( !in ) { cerr << "Datei konnte nicht geoeffnet werden." << endl; exit( 1 ); } while( in >> lastName >> firstName ) { personTree.insertNode( *( new Person( lastName, firstName ) ) ); } } cout << "\nInorder traversal\n\n"; personTree.inOrderTraversal(); cout << endl << endl; return 0; }