1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
const int MAX_STR = 100;
int loadData(ifstream& fin, string rideNames[], double q1Earnings[], double q2Earnings[],
double q3Earnings[], double q4Earnings[]);
double calculateQuarterlyEarnings(int rideCount, const double earnings[]);
int profitable(int rideCount, const double earnings[]);
void calculateYearlyProfits(int rideCount, const double q1Earnings[], const double q2Earnings[],
const double q3Earnings[], const double q4Earnings[], double yearly[]);
void generateReport(int rideCount, const string rides[], const double q1Earnings[],
const double q2Earnings[], const double q3Earnings[], const double q4Earnings[],
const double yearly[]);
int main()
{
double q1Earnings[MAX_STR], q2Earnings[MAX_STR], q3Earnings[MAX_STR], q4Earnings[MAX_STR], yearly[MAX_STR];
ifstream fin;
ofstream outputFile;
string rideNames[MAX_STR], inputFileName, outputFileName;
cout << "What file should be opened for processing? " << endl;
//cin >> inputFileName;
fin.open("report.txt");
outputFile.open("out.txt");
cout << setprecision(2) << fixed;
cout << setw(95) << "RIDE NAME Q1 Earnings Q2 Earnings Q3 Earnings Q4 Earnings YEARLY" << endl;
cout << "***********************************************************************************************" << endl;
int rides = loadData(fin, rideNames, q1Earnings, q2Earnings, q3Earnings, q4Earnings);
for (int i = 0; i < rides; i++)
{
cout << setw(20) << right << rideNames[i] << setw(15) << right << q1Earnings[i] << setw(15) << right <<
q2Earnings[i] << setw(15) << right << q3Earnings[i] << setw(15) << right << q4Earnings[i] << endl;
}
cout << "***********************************************************************************************" << endl;
cout << setw(19) << right << "TOTALS:" << setw(16) << right << calculateQuarterlyEarnings(rides, q1Earnings)
<< setw(15) << right << calculateQuarterlyEarnings(rides, q2Earnings) << setw(15) << right <<
calculateQuarterlyEarnings(rides, q3Earnings) << setw(15) << right << calculateQuarterlyEarnings(rides, q4Earnings) << endl;
cout << setw(19) << right << "Profitable Rides:" << setw(14) << right << profitable(rides, q1Earnings) << '/'
<< rides << setw(13) << right << profitable(rides, q2Earnings) << '/' << rides << setw(13) << right <<
profitable(rides, q3Earnings) << '/' << rides << setw(13) << right << profitable(rides, q4Earnings) <<
'/' << rides;
fin.close();
outputFile.close();
return 0;
}
int loadData(ifstream & fin, string rideNames[], double q1Earnings[], double q2Earnings[],
double q3Earnings[], double q4Earnings[])
{
int i = 0;
double cost = 0;
double earnings;
getline(fin, rideNames[i]);
while (fin)
{
fin >> cost;
fin >> earnings;
q1Earnings[i] = earnings - cost;
fin >> earnings;
q2Earnings[i] = earnings - cost;
fin >> earnings;
q3Earnings[i] = earnings - cost;
fin >> earnings;
q4Earnings[i] = earnings - cost;
fin.get();
i++;
getline(fin, rideNames[i]);
}
return i;
}
double calculateQuarterlyEarnings(int rideCount, const double earnings[])
{
double totalQuarterlyEarnings = 0;
for (int i = 0; i < rideCount; i++)
{
totalQuarterlyEarnings += earnings[i];
}
return totalQuarterlyEarnings;
}
int profitable(int rideCount, const double earnings[])
{
int quarterlyProfitCounter = 0;
for (int i = 0; i < rideCount; i++)
{
if (earnings[i] > 0)
{
quarterlyProfitCounter++;
}
}
return quarterlyProfitCounter;
}
void calculateYearlyProfits(int rideCount, const double q1Earnings[], const double q2Earnings[], const double q3Earnings[], const double q4Earnings[], double yearly[])
{
double yearlyProfits = 0;
for (int i = 0; i < rideCount; i++)
{
q1Earnings[i] + q2Earnings[i] + q3Earnings[i] + q4Earnings[i] += yearly[];
}
}
|