Help please!
my assignment is:
Write a program that calculates and prints the bill for a cellular telephone company. The company offers two types of service: regular and premium. Its rates vary, depending on the type of service. The rates are computed as follows:
Regular: $10.00 plus first 50 minutes are free. Charges for over 50 minutes are $0.20 per minute.
Premium: $25.00 plus for calls made from 6 am to 6 pm, the first 75 minutes are free; charges for more than 75 minutes are $0.10 per minute. For calls made from 6pm to 6am, the first 100 minutes are free; charges for more than 100 minutes are $0.05 per minute.
Your program should prompt the user to enter a service type (type char), and the number of minutes the service was used. A service code of r or R means regular service; a service code of p or P means premium service. Treat any other character as an error. Your program should output the type of service, number of minutes the telephone service was used, and the amount due from the user.
For the premium service, the customer may be using the service during the say and the night. Therefore, to calculate the bill, you must ask the user to input the number of minutes the service was used during the day and the number of minutes the service was used during the night.
All input is to be read via cin.
• All output is written via cout.
• Format the output stream to show the decimal point and two places after the decimal because
of monetary values.
• NOTE: Constants declared in the global section of the source code can be seen in all functions.
They DO NOT have to be passed as parameters. They can be simply used in the function.
so far I have this:
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
|
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
const double REG_SERV_CHARGES = 10.00;
const int REG_FREE_MINUTES = 50;
const double REG_RATE_OVER_50 = 0.20;
const double PREM_SERV_CHARGES = 25.00;
const int PREM_FREE_DAY_MINUTES = 75;
const double PREM_DAY_RATE_OVER_75 = 0.10;
const int PREM_FREE_NIGHT_MINUTES = 100;
const double PREM_NIGHT_RATE_OVER_100 = 0.05;
int getMinutes (string promptMessage);
void regularAmtDue (int minUsed, double &amtDue);
void premiumAmtDue (int dayMin, int nightMin, double &amtDue);
void writeOutput (int minutes1, int minutes2, double amtDue, char service);
int main()
{
char serviceType;
int minutesUsed;
int minutesUsedPN;
double amountDue;
cout << fixed << showpoint;
cout << setprecision(2);
cout << "Enter service type: (r or R) for regular, "
<< "(p or P) for premium service: " << endl;
cin >> serviceType;
cout << endl;
switch (serviceType)
{
case 'r':
case 'R':
// call getMinutes for minutes of service here
// call regularAmtDue here
// call writeOutput here
break;
case 'p':
case 'P':
// call getMinutes for day minutes here
// call getMinutes for night minutes here
// call premiumAmtDue here
// call writeOutput here
break;
default:
cout << "Invalid Service Type" << endl;
}//end switch
system("PAUSE");
return 0;
} // end main
int getMinutes (char promptMessage)
{
//-------------------------------------------------------------------
// getMinutes is a value returning function that accepts a string and
// prompts the user for the number of minutes then returns this value
// to main.
//-------------------------------------------------------------------
} // end getMinutes
void regularAmtDue (int minUsed, double &amtDue)
{
if (minUsed <= 50)
{
amtDue = REG_SERV_CHARGES;
}
else if (minUsed > 50)
{
amtDue = REG_SERV_CHARGES + minUsed * REG_RATE_OVER_50;
}
} // end regularAmtDue
void premiumAmtDue (int dayMin, int nightMin, double &amtDue)
{
if (dayMin <= 75)
{
amtDue = PREM_SERV_CHARGES;
}
else if (nightMin > 100)
{
amtDue = PREM_SERV_CHARGES + (nightMin * PREM_NIGHT_RATE_OVER_100);
}
else if(nightMin > 100 && dayMin > 75)
{
amtDue = PREM_SERV_CHARGES + (dayMin * PREM_DAY_RATE_OVER_75)
+ (nightMin * PREM_NIGHT_RATE_OVER_100);
}
else
{
amtDue = PREM_SERV_CHARGES + (dayMin * PREM_DAY_RATE_OVER_75);
}
} // end premiumAmtDue
void writeOutput (int minutes1, int minutes2, double amtDue, char service)
{
if (service == 'r' || 'R')
{
minutes2 = 0;
amtDue = 0;
cout << "Your service is regular." << endl;
cout << "Your bill is " << regularAmtDue << endl;
}
if (service == 'p' || 'P')
{
amtDue = 0;
cout << "Your service is premium." << endl;
cout << "Your bill is " << premiumAmtDue << endl;
}
} // end writeOutput
|
I am a bit confused at to what to write in the
getMinutes function but the comment says what it should do, i guess its just going completely over my head.