diff options
Diffstat (limited to 'BlankConsoleLab/Lab3.cpp')
| -rw-r--r-- | BlankConsoleLab/Lab3.cpp | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/BlankConsoleLab/Lab3.cpp b/BlankConsoleLab/Lab3.cpp new file mode 100644 index 0000000..4bee218 --- /dev/null +++ b/BlankConsoleLab/Lab3.cpp @@ -0,0 +1,133 @@ +//Lab 3 +//Trevor Bouchillon +// + +#include <iostream> +#include <fstream> // For the files!!!! +#include <iomanip> // 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; +} + + + + + + |