//DISPLAY 7.8 Production Graph Program //Reads data and displays a bar graph showing productivity for each plant. #include #include const int NUMBER_OF_PLANTS = 4; void input_data(int a[], int last_plant_number); //Precondition: last_plant_number is the declared size of the array a. //Postcondition: For plant_number = 1 through last_plant_number: //a[plant_number-1] equals the total production for plant number plant_number. void scale(int a[], int size); //Precondition: a[0] through a[size-1] each has a nonnegative value. //Postcondition: a[i] has been changed to the number of 1000s (rounded to //an integer) that were originally in a[i], for all i such that 0 <= i <= size -1. void graph(const int asterisk_count[], int last_plant_number); //Precondition: asterisk_count[0] through asterisk_count[last_plant_number-1] //have nonnegative values. //Postcondition: A bar graph has been displayed saying that plant //number N has produced asterisk_count[N-1] 1000s of units, for each N such that //1 <= N <= last_plant_number void get_total(int& sum); //Reads nonnegative integers from the keyboard and //places their total in sum. int round(double number); //Precondition: number >= 0. //Returns number rounded to the nearest integer. void print_asterisks(int n); //Prints n asterisks to the screen. int main( ) { using namespace std; int production[NUMBER_OF_PLANTS]; cout << "This program displays a graph showing\n" << "production for each plant in the company.\n"; input_data(production, NUMBER_OF_PLANTS); scale(production, NUMBER_OF_PLANTS); graph(production, NUMBER_OF_PLANTS); return 0; } //Uses iostream: void input_data(int a[], int last_plant_number) //The rest of the definition of input_data is given in Display 7.6. //Uses iostream: void get_total(int& sum) //The rest of the definition of get_total is given in Display 7.6. void scale(int a[], int size) //The rest of the definition of scale is given in Display 7.7. //Uses cmath: int round(double number) //The rest of the definition of round is given in Display 7.7. //Uses iostream: void graph(const int asterisk_count[], int last_plant_number) { using namespace std; cout << "\nUnits produced in thousands of units:\n"; for (int plant_number = 1; plant_number <= last_plant_number; plant_number++) { cout << "Plant #" << plant_number << " "; print_asterisks(asterisk_count[plant_number - 1]); cout << endl; } } //Uses iostream: void print_asterisks(int n) { using namespace std; for (int count = 1; count <= n; count++) cout << "*"; }