// Lab3 // // Taylor Rogers // #include #include #include using std::cout; using std::cin; using std::endl; using std::setw; using std::ios; using std::string; using std::ifstream; using std::ofstream; const int MAX = 50; int ReadData(ifstream& inFile, int pick[], int drop[], int psgr[], float dist[], float fare[], float toll[]); void WriteOutputFile(ofstream& outFile, int pick[], int drop[], int psgr[], float dist[], float fare[], float toll[], float total[], float cmp[], int counter); void PrintTotalsAndSummary(ofstream& out, int totalRecords); int main() { int pick[MAX]; int drop[MAX]; int psgr[MAX]; float dist[MAX]; float fare[MAX]; float toll[MAX]; float total[MAX]; float cpm[MAX]; int record_counter(0); string fnameinput; // Filename from user input cout << "Enter the file name you wish to read data from: "; cin >> fnameinput; cout << endl; ifstream inFile; ofstream outFile("lab3_Report.txt"); inFile.open(fnameinput); if (inFile.is_open()) { record_counter = ReadData(inFile, pick, drop, psgr, dist, fare, toll); inFile.close(); if (outFile.is_open()) { WriteOutputFile(outFile, pick, drop, psgr, dist, fare, toll, total, cpm, record_counter); PrintTotalsAndSummary(outFile, record_counter); outFile.close(); } else { cout << "Trouble Opening File"; cout << "\n\n\t\t ** About to EXIT NOW! ** "; } } else { cout << "Trouble Opening File"; cout << "\n\n\t\t ** About to EXIT NOW! ** "; } return 0; } int ReadData(ifstream& inFile, int pick[], int drop[], int psgr[], float dist[], float fare[], float toll[]) { int counter = 0; inFile >> pick[counter] >> drop[counter] >> psgr[counter] >> dist[counter] >> fare[counter] >> toll[counter]; // Priming Read while (!inFile.eof()) { cout << setiosflags(ios::left) << setw(5) << pick[counter] << resetiosflags(ios::left) << setw(10) << drop[counter] << resetiosflags(ios::left) << setw(12) << psgr[counter] << resetiosflags(ios::left) << setw(14) << dist[counter] << resetiosflags(ios::left) << setw(14) << fare[counter] << resetiosflags(ios::left) << setw(14) << toll[counter] << endl; counter++; inFile >> pick[counter] >> drop[counter] >> psgr[counter] >> dist[counter] >> fare[counter] >> toll[counter]; } return counter; } void WriteOutputFile(ofstream& outFile, int pick[], int drop[], int psgr[], float dist[], float fare[], float toll[], float total[], float cpm[], int counter) { outFile << " Here is the Output File" << endl; outFile << endl; outFile << setw(5) << "Pickup" << resetiosflags(ios::left) << setw(10) << "Dropoff" << resetiosflags(ios::left) << setw(12) << "Passengers" << resetiosflags(ios::left) << setw(14) << "Distance" << resetiosflags(ios::left) << setw(14) << "Fare" << resetiosflags(ios::left) << setw(14) << "Toll" << resetiosflags(ios::left) << setw(14) << "Total" << resetiosflags(ios::left) << setw(20) << "Cost per Mile" << endl; for (int r = 0; r <= counter - 1; r++) { total[r] = fare[r] + toll[r]; cpm[r] = total[r] / dist[r]; outFile << setiosflags(ios::left) << setw(5) << pick[r] << resetiosflags(ios::left) << setw(10) << drop[r] << resetiosflags(ios::left) << setw(12) << psgr[r] << resetiosflags(ios::left) << setw(14) << dist[r] << resetiosflags(ios::left) << setw(14) << fare[r] << resetiosflags(ios::left) << setw(14) << toll[r] << resetiosflags(ios::left) << setw(14) << total[r] << resetiosflags(ios::left) << setw(20) << cpm[r] << endl; } } void PrintTotalsAndSummary(ofstream& outFile, int totalRecords) { // To screen cout << "\n\n\t** Total Records: " << totalRecords << " **\n" << "\t\t The End \n"; // To file outFile << "\n\n\t** Total Records: " << totalRecords << " **\n" << "\t\t The End \n"; }