// //Lab 3 //Trevor Bouchillon // #include #include // For the files!!!! #include // For manipulators & formatting options using std::cin; using std::cout; using std::endl; using std::setw; using std::ios; using std::ifstream; using std::ofstream; using std::left; using std::setprecision; using std::string; const int MAX = 100; 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[], int counter, float TotalFare[], float CostPerMile[]); int main() { int pick[MAX]; int drop[MAX]; int psgr[MAX]; float dist[MAX]; float fare[MAX]; float toll[MAX]; float TotalFare[MAX]; float CostPerMile[MAX]; int record_counter(0); ifstream inFile; ofstream outFile("C:\\TEMP\\largeout.txt"); string FileLoc; cout << "Please enter the input file name including extension: "; cin >> FileLoc; inFile.open(FileLoc); 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, record_counter, TotalFare, CostPerMile); 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; float sum = 0; float FareSum = 0; inFile >> pick[counter] >> drop[counter] >> psgr[counter] >> dist[counter] >> fare[counter] >> toll[counter]; // Priming Read cout << setiosflags(ios::left) << left << setw(20) << "PickUpLoc" << setiosflags(ios::left) << setw(20) << left << "DropOffLoc" << setiosflags(ios::left) << left << setw(20) << "PassengerCount" << setiosflags(ios::left) << left << setw(20) << "Distance" << setiosflags(ios::left) << left << setw(20) << "Fare" << setiosflags(ios::left) << left << setw(20) << "Toll" << setiosflags(ios::left) << left << setw(20) << "TotalFare" << setiosflags(ios::left) << left << setw(20) << "CostPerMile" << endl; while (!inFile.eof()) { float TotalFare[MAX]; float CostPerMile[MAX]; for (int r = 0; r <= counter ; r++) { TotalFare[r] = toll[r] + fare[r]; CostPerMile[r] = fare[r] / dist[r]; if (dist[r] == 0) { CostPerMile[r] = 0; } } sum = sum + psgr[counter]; FareSum = FareSum + (fare[counter] + toll[counter]); cout << setiosflags(ios::left) << setw(20) << pick[counter] << resetiosflags(ios::left) << left << setw(20) << drop[counter] << resetiosflags(ios::left) << left << setw(20) << psgr[counter] << resetiosflags(ios::left) << left << setw(20) << dist[counter] << resetiosflags(ios::left) << left << setw(20) << fare[counter] << resetiosflags(ios::left) << left << setw(20) << toll[counter] << resetiosflags(ios::left) << left << setw(20) << TotalFare[counter] << resetiosflags(ios::left) << left << setw(20) << setprecision(3) << CostPerMile[counter] << endl; counter++; inFile >> pick[counter] >> drop[counter] >> psgr[counter] >> dist[counter] >> fare[counter] >> toll[counter]; } cout << endl << endl << "Total # of Passengers: " << sum; cout << endl << setprecision(6) << "Total Fare: " << FareSum; cout << endl << setprecision(4) << "Average cost per person: " << FareSum / sum; return counter; } void WriteOutputFile(ofstream& outFile, int pick[], int drop[], int psgr[], float dist[], float fare[], float toll[], int counter, float TotalFare[], float CostPerMile[]) { float sum = 0; float FareSum = 0; outFile << setiosflags(ios::left) << left << setw(20) << "PickUpLoc" << setiosflags(ios::left) << setw(20) << left << "DropOffLoc" << setiosflags(ios::left) << left << setw(20) << "PassengerCount" << setiosflags(ios::left) << left << setw(20) << "Distance" << setiosflags(ios::left) << left << setw(20) << "Fare" << setiosflags(ios::left) << left << setw(20) << "Toll" << setiosflags(ios::left) << left << setw(20) << "TotalFare" << setiosflags(ios::left) << left << setw(20) << "CostPerMile" << endl; for (int r = 0; r <= counter - 1; r++) { TotalFare[r] = toll[r] + fare[r]; CostPerMile[r] = fare[r] / dist[r]; if (dist[r] == 0) { CostPerMile[r] = 0; } sum = sum + psgr[r]; FareSum = FareSum + (fare[r] + toll[r]); outFile << setiosflags(ios::left) << left << setw(20) << pick[r] << resetiosflags(ios::left) << left << setw(20) << drop[r] << resetiosflags(ios::left) << left << setw(20) << psgr[r] << resetiosflags(ios::left) << left << setw(20) << dist[r] << resetiosflags(ios::left) << left << setw(20) << fare[r] << resetiosflags(ios::left) << left << setw(20) << toll[r] << resetiosflags(ios::left) << left << setw(20) << TotalFare[r] << resetiosflags(ios::left) << left << setw(20) << setprecision(3) << CostPerMile[r] << endl; } outFile << endl << endl << "Total # of Passengers: " << sum; outFile << endl << setprecision(6) << "Total Fare: " << FareSum; outFile << endl << setprecision(4) << "Average Cost Per Person: " << FareSum / sum << endl << endl; }