//****************************************************************** // Incomes program // This program reads a file of income amounts classified by // gender and computes the average income for each gender //****************************************************************** #include #include // For setprecision() #include // For file I/O #include // For string type using namespace std; int main() { char sex; // Coded 'F' = female, 'M' = male int femaleCount; // Number of female income amounts int maleCount; // Number of male income amounts float amount; // Amount of income for a person float femaleSum; // Total of female income amounts float maleSum; // Total of male income amounts float femaleAverage; // Average female income float maleAverage; // Average male income ifstream incFile; // File of income amounts string fileName; // External name of file cout << fixed << showpoint // Set up floating pt. << setprecision(2); // output format // Separately count females and males, and sum incomes // Initialize ending condition cout << "Name of the income data file: "; cin >> fileName; incFile.open(fileName.c_str()); // Open input file if ( !incFile ) // and verify attempt { cout << "** Can't open input file **" << endl; return 1; } incFile >> sex >> amount; // Perform priming read // Initialize process femaleCount = 0; femaleSum = 0.0; maleCount = 0; maleSum = 0.0; while (incFile) { // Update process cout << "Sex: " << sex << " Amount: " << amount << endl; if (sex == 'F') { femaleCount++; femaleSum = femaleSum + amount; } else { maleCount++; maleSum = maleSum + amount; } // Update ending condition incFile >> sex >> amount; } // Compute average incomes femaleAverage = femaleSum / float(femaleCount); maleAverage = maleSum / float(maleCount); // Output results cout << "For " << femaleCount << " females, the average " << "income is " << femaleAverage << endl; cout << "For " << maleCount << " males, the average " << "income is " << maleAverage << endl; return 0; }