writing a program using functions.

hi!! I'm in need of major homework help. I have to write a program using functions that basically outputs a phone bill to the monitor. I honestly can't seem to grasp the concept of functions and am having some trouble finishing my code. Ignore the switch case right now, i'm having trouble with what to place in my writeOutPut function and my getMinutes functions:

Here's my code..again ignore the switch case:
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
#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 (string 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)
{
   //------------------------------------------------------------------------------------
// writeOutput is a void function
//  All parameters passed by value.
//  This function determines which service type is used and based on that decision 
//  writes the appropriate set of output statements.
//  When calling this function any int parameter not used can be passed 0 in that
//  position.
//-------------------------------------------------------------------------------------

} // end writeOutput 


can someone please please please please please point me in the right direction,thanks!
Could you copy and paste the assignment so we know what you are supposed to do? It's hard to 'write a program using functions' without know what functions you need.
certainly.


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, is it up to you to decide what needs to be done in functions and what doesn't? That seems like a fairly broad task...

Well, firstly, I'd recommend reading the functions tutorial on this website:
http://www.cplusplus.com/doc/tutorial/functions/
and part two if you want.

Then, decide which tasks you will use over and over and make functions for them so you need only call the function rather than rewrite code over and over. ;)
well my professor gave me this as in outline for what I should do with the functions:

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
} // end main

//------------------------------------------------------------------- 
// 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.
//-------------------------------------------------------------------
int getMinutes (string promptMessage){

} // end getMinutes

//-----------------------------------------------------------------------
// regularAmtDue is a void function
//  minUsed - passed by value, number of minutes used in regular service
//  amtDue -  passed by reference, calculated amount due for regular
//           service type.
//-----------------------------------------------------------------------
void regularAmtDue (int minUsed, double &amtDue) {

} // end regularAmtDue

//------------------------------------------------------------------------------------
// premiumAmtDue is a void function
//  dayMin   - passed by value, number of minutes used during day for premium service
//  nightMin - passed by value, number of minutes used during night for premium service
//  amtDue   -  passed by reference, calculated amount due for premium service type.
//-------------------------------------------------------------------------------------
void premiumAmtDue (int dayMin, int nightMin, double &amtDue){

} // end premiumAmtDue

//------------------------------------------------------------------------------------
// writeOutput is a void function
//  All parameters passed by value.
//  This function determines which service type is used and based on that decision 
//  writes the appropriate set of output statements.
//  When calling this function any int parameter not used can be passed 0 in that
//  position.
//-------------------------------------------------------------------------------------
void writeOutput (int minutes1, int minutes2, double amtDue, char service){

} // end writeOutput 


but yeah, I will read the article on here too.
Topic archived. No new replies allowed.