Question

In: Computer Science

Subject is C++ Write a program to compute internet charges according to a rate schedule. The...

Subject is C++

Write a program to compute internet charges according to a rate schedule.

The rate schedule is as follows:

$0.08 per GB for usage between 0 and 40 GB, inclusive

$0.07 per GB for usage between 41 GB and 70 GB, inclusive

$0.05 per GB for usage between 71 GB and 110 GB, inclusive

$0.04 per GB for usage greater than 110 GB

code must use these four functions, using these names (in addition to main):

  1. getData
  2. computeCharges
  3. printAccountInfo
  4. printTotals

Requirements for the getData Function

Purpose:

This function prompts the user for an account number (integer) and a GB value (integer). It passes these values back to main via two output parameters.

Output Parameters:

  1. account number (as an integer)
  2. GB value (as an integer)

Algorithm:

Prompt and read. There must be only one prompt, and the user must enter the data on one line with a space between each value.

Return value:

None

Requirements for the computeCharges Function

Purpose:

This function computes the charges for one transaction. It uses one input parameter (GB value as an integer) and a return value (amount of the charge, which may include decimals).

Input Parameter:

  1. GB value (as an integer)

Algorithm:

Use a selection structure to determine the charge per GB, using the above rate schedule. Calculate the charges using multiplication.

Return value:

Transaction charges (may include decimals)

Requirements for the printAccountInfo Function

Purpose:

This function displays the information for one account transaction to the screen.

Input Parameters:

  1. account number
  2. GB value
  3. Transaction charges

Algorithm:

Print, using appropriate spacing and formatting. The transaction charges must display with two decimal places.

Return value:

None

Requirements for the printTotals Function

Purpose:

This function displays totals to the screen at the end of the program.

Input Parameters:

  1. Total number of accounts
  2. Sum of all GB values
  3. Sum of all transaction charges

Algorithm:

Print, using appropriate spacing and formatting. The sum of transaction charges must display with two decimal places.

Return value:

None

Requirements for main:

  1. Variable declarations in main should only include the variables needed within main. Do not declare all the variables needed in the program here – only the ones needed within main.
  2. The main function must use a conditional loop that prompts the user to enter a Y or an N to indicate if they wish to continue adding more input. Your code must be able to handle lowercase or uppercase: y, Y, n, or N.

Be sure the first prompt is for actual data, not the continuation response.

IMPORTANT NOTE ABOUT THIS LOOP – You will encounter the situation where there is a scanf for a number immediately before the scanf for the Y or N. We have seen this problem before…

  1. The loop body calls the appropriate functions with the appropriate arguments and return values, if necessary. Within the loop, you must keep track of the totals needed by the printTotals function.
  2. When the loop is complete, call the print_totals function with the appropriate arguments.
  3. All prompts and output must display exactly as demonstrated in the sample runs below. Pay attention to spacing and alignment!

Sample Run

Enter account number and GB used (one space between data): 12345 80
Account number: 12345        GB Used:     80        Charge:     4.00

Do you wish to continue? (y/n) y

Enter account number and GB used (one space between data): 98765 25
Account number: 98765        GB Used:     25        Charge:     2.00

Do you wish to continue? (y/n) Y

Enter account number and GB used (one space between data): 25413 120
Account number: 25413        GB Used:    120        Charge:     4.80

Do you wish to continue? (y/n) Y

Enter account number and GB used (one space between data): 42598 50
Account number: 42598        GB Used:     50        Charge:     3.50

Do you wish to continue? (y/n) n

Total accounts =        4
Total GB Used =       275
Total Charges =     14.30

Solutions

Expert Solution

Here is the code:

#include <iostream>
#include <iomanip>
using namespace std;

void getData (int &account, int &usage) {
    cout << "Enter account number and GB used (one space between data): ";
    scanf ("%d %d", &account, &usage);
    while ((getchar()) != '\n');
}

double computeCharges (int usage) {
    if (usage <= 40)
        return (0.08 * usage);
    else if (usage <= 70)
        return (usage * 0.07);
    else if (usage <= 110)
        return (usage * 0.05);
    else
        return (usage * 0.04);
}

void printAccountInfo (int account, int usage, double charges) {
    cout << "Account number: " << account << "\tGB Used:\t" << usage << "\tCharge: \t";   
    cout << std::setprecision(2) << std::fixed << charges << endl;
}

void printTotals (int totalAccounts, int totalUsage, double totalCharges) {
    cout << "Total accounts = \t" << totalAccounts << endl;
    cout << "Total GB Used = \t" << totalUsage << endl;
    cout << std::setprecision(2) << std::fixed;
    cout << "Total Charges = \t" << totalCharges << endl;
}

int main()
{
    int account, usage, totalUsage = 0, noAccounts = 0;
    double charges, totalCharges = 0;
    char yn;
    

    do {
        getData (account, usage);    
        charges = computeCharges (usage);
        printAccountInfo (account, usage, charges);
        cout << "Do you wish to continue? (y/n)";
        scanf ("%c", &yn);
        yn = tolower (yn);
        
        noAccounts++;
        totalUsage += usage;
        totalCharges += charges;
    } while (yn == 'y');
    
    printTotals (noAccounts, totalUsage, totalCharges);

    return 0;
}

Related Solutions

Write a program In C to compute internet charges according to a rate schedule. The rate...
Write a program In C to compute internet charges according to a rate schedule. The rate schedule is as follows: $0.08 per GB for usage between 0 and 40 GB, inclusive $0.07 per GB for usage between 41 GB and 70 GB, inclusive $0.05 per GB for usage between 71 GB and 110 GB, inclusive $0.04 per GB for usage greater than 110 GB Learning Objectives In this assignment, you will: Use a selection control structure Use a repetition control...
Write a program to compute internet charges according to a rate schedule. The rate schedule is...
Write a program to compute internet charges according to a rate schedule. The rate schedule is as follows: $0.08 per GB for usage between 0 and 40 GB, inclusive $0.07 per GB for usage between 41 GB and 70 GB, inclusive $0.05 per GB for usage between 71 GB and 110 GB, inclusive $0.04 per GB for usage greater than 110 GB Learning Objectives In this assignment, you will: Use a selection control structure Use a repetition control structure Use...
Program in C++ **********Write a program to compute the number of collisions required in a long...
Program in C++ **********Write a program to compute the number of collisions required in a long random sequence of insertions using linear probing, quadratic probing and double hashing. For simplicity, only integers will be hashed and the hash function h(x) = x % D where D is the size of the table (fixed size of 1001). The simulation should continue until the quadratic hashing fails.*********
in C++ Write a program to compute the current and the power dissipation in an AC...
in C++ Write a program to compute the current and the power dissipation in an AC circuit that has four resistors R1, R2, R3, and R4 in parallel. The voltage source is V. Test your solution with various voltage levels and resistor values. Execute and submit the program and the results in screen captures. Please note that the equivalent resistor is given by 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + 1/R4 and the current I is given by I...
C program help 1. Write a program to compute the Mileage given by a vehicle. Mileage...
C program help 1. Write a program to compute the Mileage given by a vehicle. Mileage = (new_odometer – old_odometer)/(gallons_gas) // illustrating how ‘for’ loop works. 2. How to initialize an array of size 5 using an initializer list and to compute it’s sum How to initialize an array of size 5 with even numbers starting from 2 using ‘for’ loop and to compute it’s sum 3. Program to compute the car insurance premium for a person based on their...
write c++ program that takes the depth ( in kilometer) inside the earth to compute and...
write c++ program that takes the depth ( in kilometer) inside the earth to compute and display the temperature at the depth in degrees celsius and fahrenheit. the relevant formulas are: celsius+ 10 x depth + 20 fahrenheit = 9/5 celsius + 23
C++ Overloaded Hospital Write a program that computes and displays the charges for a patient’s hospital...
C++ Overloaded Hospital Write a program that computes and displays the charges for a patient’s hospital stay. First, the program should ask if the patient was admitted as an in-patient or an out-patient. Please keep asking the user until the user enters the valid choice. Please refer to the test cases for more details. If the patient was an in-patient the following data should be entered: • The number of days spent in the hospital • The daily rate •...
C++ Write a program that outputs an amortization schedule for a given loan. Must be written...
C++ Write a program that outputs an amortization schedule for a given loan. Must be written using user-defined functions must take at least 1 argument Output number of months, payment, interest to pay, principle to pay, and ending balance
Write a C++ program that will display the top internet stories from the stories.txt file The...
Write a C++ program that will display the top internet stories from the stories.txt file The program must display the stories that have a score which the statistical "mode". The "mode" of a set of values is the value that occurs most often (with the greatest frequency) The data about the stories is in a file that contains the following: storyTitle    (a sequence of numbers and/or letters, may contain spaces in it) storyURL    (a regular URL, like http://www.twitter.com/story1,without spaces) score        (an integer number,...
Using C++ Write a program to compute the number of collisions required in a long random...
Using C++ Write a program to compute the number of collisions required in a long random sequence of insertions using linear probing, quadratic probing, and double hashing.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT