-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlab4.cpp
More file actions
143 lines (108 loc) · 2.92 KB
/
lab4.cpp
File metadata and controls
143 lines (108 loc) · 2.92 KB
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
//Author: Autumn Henderson
//Title: Lab 4
//Date: September 18th, 2018
//Description: This program will take in vehicle input and mpg and
//output average mpg for the vehicle.
#include <iostream>
#include <limits>
using namespace std;
int main() {
//Command variables
string car = "car";
string truck = "truck";
string done = "done";
string command;
//True or False variables
bool isThereCars = false;
bool isThereTrucks = false;
//Miles & Gallons for Car variables
double carMiles = 0;
double carGallons = 0;
double totalCarMiles = 0;
double totalCarGallons = 0;
//Miles & Gallons for Truck variables
double truckMiles = 0;
double truckGallons = 0;
double totalTruckMiles = 0;
double totalTruckGallons = 0;
//Average MPG variables
double avgCarMPG = 0;
double avgTruckMPG = 0;
do { //do-while loop checks for command.
cout << "Enter command: ";
cin >> command;
//If statement checks for the command to ask for miles and gallons.
while (!((command == car) || (command == truck) || (command == done))) {
cout << "Unknown command.\n";
cout << "Enter command: ";
cin >> command;
}
//If the command is "car":
if (command == car) {
isThereCars = true;
//Check car miles
do {
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
cout << "Enter car's miles: ";
}while (!(cin >> carMiles));
totalCarMiles += carMiles;
//Check car gallons
do {
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
cout << "Enter car's gallons: ";
}while (!(cin >> carGallons));
totalCarGallons += carGallons;
}
//If the command is "truck":
else if (command == truck) {
isThereTrucks = true;
//Check truck miles
do {
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
cout << "Enter truck's miles: ";
}while (!(cin >> truckMiles));
totalTruckMiles += truckMiles;
//Check truck gallons
do {
if (cin.fail()) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
cout << "Enter truck's gallons: ";
}while (!(cin >> truckGallons));
totalTruckGallons += truckGallons;
}
//Else the command was "done"
else {
break;
}
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}while (!(command == done));
//If there were cars, will calculate average MPG. Otherwise, no cars.
if (isThereCars == true) {
avgCarMPG = totalCarMiles / totalCarGallons;
cout << "Average car MPG = " << avgCarMPG << "\n";
}
else {
cout << "Fleet has no cars.\n";
}
//If there were trucks, will calculate average MPG. Otherwise, no trucks.
if (isThereTrucks == true) {
avgTruckMPG = totalTruckMiles / totalTruckGallons;
cout << "Average truck MPG = " << avgTruckMPG << "\n";
}
else {
cout << "Fleet has no trucks.\n";
}
return 0;
}