summaryrefslogtreecommitdiff
path: root/BlankConsoleLab/Lab3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'BlankConsoleLab/Lab3.cpp')
-rw-r--r--BlankConsoleLab/Lab3.cpp133
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;
+}
+
+
+
+
+
+