CIS 150 Lab 4: Functions, input validation – With C++ Code – Perfect Solution – Instant Delivery
Objectives
• Write user-defined functions
• Use user-defined functions
• Validate user input
Requirements
Modify the supplied program (functionLab.cpp) to make it work properly.
/*
functionLab.cpp
Name:
CIS 150
Date:
CIS 150 Chapter 6 Function Lab
*/
/*
Place your name and section at the top in comments.
Read the instructions for each section and then implement
your solution within this program.
You can comment out sections as you work. Declare variables
if necessary. You do not need to get input from the user
unless otherwise specified or that code is already written.
For this lab you will use the code in the file and
break it into functions. Code for functions has been marked
for you. To do this you will:
1. Cut the code from main() and paste
it below the closing } for main.
2. Declare the local variables in the function.
3. Create the prototypes for the function.
4. In main(), determine which variable declarations need to remain there
and which variables should be isolated to the various functions.
5. Call the functions, passing values as needed and using assignment
statements for any values returned from the functions.
6. Run and debug your program.
7. When the program is running correctly, upload the completed file to
D2L.
*/
#include
#include
#include
using namespace std;
/*******************************Prototypes******************************/
/*******************************main line*******************************/
int main() {
double x, miles, gallons, mpg, time;
bool valid;
/* The following while loop should become a function to get
and validate input from the user. The function should take three
parameters: a prompt, a minimum value, and a maximum value. The
minimum and maximum values in the loop below are the values 1 and
600. Use the function to get a value for miles. */
valid = false;
while (!valid) {
cout << "Enter the miles driven (1-600): ";
if (cin >> x) {
if (x < 1) {
cout << "Error: The minimum value is 1\n";
} else if (x > 600) {
cout << "Error: The maximum value is 600\n";
} else {
valid = true;
}
} else {
cin.clear();
cin.ignore(500, '\n');
cout << "Error: Invalid number\n";
}
}
miles = x;
/* Reuse the function you created for the previous input validation to
get the value for gallons. The same function should work for both. */
valid = false;
while (!valid) {
cout << "Enter the gallons used (1-50): ";
if (cin >> x) {
if (x < 1) {
cout << "Error: The minimum value is 1\n";
} else if (x > 50) {
cout << "Error: The maximum value is 50\n";
} else {
valid = true;
}
} else {
cin.clear();
cin.ignore(500, '\n');
cout << "Error: Invalid number\n";
}
}
gallons = x;
/* The following should become one function to calculate the mpg.
The function should take miles and gallons as input and return
the mpg.
*/
mpg = miles / gallons;
/* The following should become one function to calculate the time
(in hours) to drive the given miles going 60 miles per hour.
The function should take miles and return miles / 60.
*/
time = miles / 60;
/* The following should become one function to display the mileage
information to the user. The function should take miles, gallons,
mpg, and time as input.
*/
cout << "Your mileage specs are\n";
cout << fixed << showpoint << setprecision(2)
<< "Miles: " << setw(6) << miles << '\n'
<< "Gallons: " << setw(6) << gallons << '\n'
<< "MPG: " << setw(6) << mpg << '\n'
<< "Time: " << setw(6) << time << '\n';
/* Hold the screen open */
/* You can delete the next three lines if using Quincy */
cout << "Press enter to continue...";
cin.ignore();
cin.get();
return 0;
}
Example run of program
Enter the miles driven (1-600): -2
Error: The minimum value is 1
Enter the miles driven (1-600): 650
Error: The maximum value is 600
Enter the miles driven (1-600): 345
Enter the gallons used (1-50): 14.5
Your mileage specs are
Miles: 345.00
Gallons: 14.50
MPG: 23.79
Time: 5.75
Press enter to continue...
Rubric
• 4 points: for getting the function that gets a double working properly and using it
• 2 points: for getting the function that calculates the mpg working properly and using it
• 2 points: for getting the function that calculates the mph working properly and using it
• 2 points: for getting the function that displays the results working properly and using it