![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Here, then, is the revised program:
#includeconst double pi = 3.14159; // Class definitions, with short_name and capacity definitions // Define railroad car pointer array: railroad_car *train[100]; // Define input buffer: char input_buffer[100]; // Declare enumeration constants, needed in switch statement: enum {eng_code = 'E', box_code = 'B', tnk_code = 'T', cab_code = 'C'}; char extract_car_code (char *input_buffer) {return input_buffer[4];} main ( ) { // Declare various integer variables: int n, car_count; // Read serial number and create car class objects: for (car_count = 0; cin >> input_buffer; ++car_count) switch (extract_car_code (input_buffer)) { case eng_code: train[car_count] = new engine; break; case box_code: train[car_count] = new box_car; break; case tnk_code: train[car_count] = new tank_car; break; case cab_code: train[car_count] = new caboose; break; } // Display report: for (n = 0; n < car_count; ++n) cout << train[n] -> short_name ( ) << " " << train[n] -> capacity ( ) << endl; } --- Data --- TPW-E-783 PPU-B-422 NYC-B-988 NYC-T-988 TPW-C-271 --- Result --- eng 0 box 3990 box 3990 tnk 1539.38 cab 0