Respuesta :
Answer:
- #include <iostream>
- #include <fstream>
- using namespace std;
- void getNameAndHoursParked(string &name, int &hour){
- cout<<"Enter employee name: ";
- cin>>name;
- cout<<"Enter parking hours: ";
- cin>>hour;
- }
- bool isVehicleNotAnRV(){
- int response;
- cout<<"Is vehicle an RV: (1) Yes (2) No: ";
- cin>>response;
- if(response == 1){
- return true;
- }else{
- return false;
- }
- }
- double getFinalCharge(int hour, bool rv){
- double charge;
- if(hour <=8){
- charge = 24;
- }
- else{
- hour = hour - 8;
- charge = 24 + hour * 3.25;
- }
- if(rv==true){
- charge += 10;
- }
- if(charge > 70 ){
- charge = 70;
- }
- return charge;
- }
- int main()
- {
- string employeeName;
- int hour;
- bool rv;
- double final_charge;
- getNameAndHoursParked(employeeName, hour);
- rv = isVehicleNotAnRV();
- final_charge = getFinalCharge(hour, rv);
- ofstream file;
- file.open ("charge-report.txt");
- file << "Customer name: " + employeeName + "\n";
- file << "Parking charge $"<< final_charge;
- file.close();
- return 0;
- }
Explanation:
Firstly, write the function getNameAndHoursParked to get employee name and number of parking hour. To enable pass by reference, the two parameters of this function are the reference variables (Line 6 - 11). These reference variables, name and hour, are associated with the variable employeeName and hour in the Main Program. Any values assigned to the two reference variables in the function will directly be set to employeeName and hour in the Main Program.
Next create a function isVehicleNotAnRV to enable user to input if a vehicle is a RV or not and return either true or false (Line 13 - 23).
Next create getFinalCharge function and create if else if statements to consider multiple parking hour options and apply the formula to calculate and return the total charge (Line 25 -45).
In the main program, declare all the required variables and call the functions to get all the required parking info (Line 49 - 56). Lastly output employee name and final charge to a file (Line 58 - 62).
Answer:
See explaination for the program code
Explanation:
Program code below;
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
//function to return name and hours
void getNameAndHoursParked(string &name, int &hours)
{
cout<<"Enter the employee's full name: ";
getline(cin, name);
cout<<"Enter Number of Hours Parked: ";
cin>>hours;
}
//function to check if vehicle is not a Recreational Vehicle
bool isVehicleNotAnRV()
{
string rv;
cout<<"Is the vehicle is not a Recreational Vehicle: (Y/N)";
cin>>rv;
cin.ignore();
if(rv=="Y" || rv=="y") return true;
return false;
}
//function to calculates the parking charges
float getFinalCharge(int hours, bool rv)
{
float charge;
if(hours<=8)
charge = 24;
else
charge = 24 + (hours-8)*3.25;
if(rv) charge += 10;
if(hours<=24 && charge>70) charge = 70;
return charge;
}
//main function
int main()
{
//variable declaration
string name;
int hours;
ofstream ofs;
//open the file
ofs.open("charge-report.txt");
ofs<<left<<setw(15)<<"Full Name"<<setw(15)<<"Parking-Hours";
ofs<<setw(10)<<"Is-RV"<<"Charge"<<endl;
for(int i=0; i<5; i++)
{
//get name and parking hours
getNameAndHoursParked(name, hours);
//check if vehicle is not a Recreational Vehicle
bool rv =isVehicleNotAnRV();
//calculates the parking charges
float charge = getFinalCharge(hours, rv);
ofs<<left<<setw(20)<<name<<setw(10)<<hours;
ofs<<setw(10)<<boolalpha<<rv<<"$"<<charge<<endl;
}
//close the file
ofs.close();
return 0;
}