#include #include #include using namespace std; #define MAX 100 void getData(int ind, ifstream &infile, float len[], float wid[]); void calcAreaPerim(int ind, float len[], float wid[], float area[], float perim[]); void print(int size, float len[], float wid[], float area[], float perim[]); int main() { float len[MAX], wid[MAX], area[MAX], perim[MAX]; ifstream infile; int size; // array index infile.open("shapes.data"); if (infile.fail()) { cout << "ERROR opening input file shapes.data" << endl << endl; return 0; } // end if fail size = 0; // initialize array index to 0 getData(size, infile, len, wid); // Read to EOF and also make sure not out-of-bounds on array while ((size < MAX) && (!infile.eof())) { calcAreaPerim(size, len, wid, area, perim); size++; getData(size, infile, len, wid); } // end !eof infile.close(); // close file print(size, len, wid, area, perim); return 0; } // end main void getData(int ind, ifstream &infile, float len[], float wid[]) { infile >> len[ind] >> wid[ind]; return; } // end function getData void calcAreaPerim(int ind, float len[], float wid[], float area[], float perim[]) { area[ind] = len[ind] * wid[ind]; perim[ind] = (2 * len[ind]) + (2 * wid[ind]); return; } // end function calcAreaPerim void print(int size, float len[], float wid[], float area[], float perim[]) { // print heading cout << setprecision(3) << fixed << showpoint; cout << endl; cout << setw(15) << "Length" << setw(15) << "Width" << setw(15) << "Area" << setw(15) << "Perimeter" << endl; for (int i = 0; i < size; i++) { cout << setw(15) << len[i] << setw(15) << wid[i] << setw(15) << area[i] << setw(15) << perim[i] << endl; } return; } // end function print