Question: TemplatedSortedList-main.cpp #include #include #include #include // for exit() using std::string; using std::cin; using std::cout; using std::cerr; using std::endl; using std::getline; using std::ifstream; #include TemplatedSortedList.h bool
TemplatedSortedList-main.cpp
#include
#include
#include#include // for exit() using std::string; using std::cin; using std::cout; using std::cerr; using std::endl; using std::getline; using std::ifstream; #include "TemplatedSortedList.h" bool DEBUG = false; // toggles extra printing const string DEFAULT_INPUT_FILENAME = "project5-testA.tab"; // Action characters in the input file const char ADMIT = 'A'; const char DISCHARGE = 'D'; const char VISIT = 'V'; const char FIND = 'F'; // Process the patient records in inputFilename void processPatients( string inputFilename ); int main( /*int argc, char* argv[] */){ // If just a return (' ') is entered, then use DEFAULT_INPUT_FILENAME. // Otherwise, read in the input filename from STDIN. string inputFilename; cout << "Please enter the input filename (or simply press return to use " << DEFAULT_INPUT_FILENAME << ") "; getline( cin, inputFilename); if( inputFilename == ""){ inputFilename = DEFAULT_INPUT_FILENAME; } // process transactions in the file processPatients( inputFilename ); return 0; } void processPatients( string inputFilename ){ TemplatedSortedList patientList; // list to store patients // open file ifstream fileStream; fileStream.open( inputFilename.c_str() ); // verify the file is opened correctly if( ! fileStream ){ cerr << "ERROR: Can not open input file " << inputFilename << "!" << endl; exit(1); } cout << "Importing patients from " << inputFilename << " ..." << endl; char action = '\0'; // while there's more patients to process // read in the action and make sure that we're not at the end of the file while( fileStream >> action ){ if( DEBUG ){ cout << "action: " << action << endl; } string name; switch( action ){ case ADMIT: // get the patient's name from the file fileStream >> name; // add them to the list patientList += name; if( DEBUG ){ cout << patientList; } break; case DISCHARGE: // get the patient's name from the file fileStream >> name; // remove them from the list patientList -= name; if( DEBUG ){ cout << patientList; } break; case FIND: // get the patient's name from the file fileStream >> name; // look for this patient in the list patientList.print( name ); break; case VISIT: // display all patients in the list cout << patientList; break; default: cerr << "ERROR: Unknown action " << action << "!" << endl; exit(1); } } // close the file fileStream.close(); }
The driver code processes the following commands: A
Task (TO DO)
Write a sorted list class
Write a templated class
Overload different operators
TemplatedSortedList (deep) copy constructor (even if you're using an STL object)
Write a TemplatedSortedList class (in TemplatedSortedList.h) that implements a sorted list (linked- or array-based). Additionally, you get to template the classand provide overloaded operators such that the driver code compiles and produces correct output.
Input FILE
V F Sophia D Sophia A Sophia V F Sophia D Sophia V F Sophia D Sophia A Jackson A Emma A Aiden A Olivia A Lucas V D Jackson D Emma D Aiden D Olivia D Lucas V
Output
Please enter the input filename (or simply press return to use project5-testA.tab) Importing patients from project5-testA.tab ... There are no entries in the list to display Sophia is not found in the list Displaying the single entry in the list: Sophia Sophia is in the list There are no entries in the list to display Sophia is not found in the list Displaying all 5 entries in the list: Aiden Emma Jackson Lucas Olivia There are no entries in the list to display
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
