Question

In: Computer Science

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 structure
  • Use functions with input arguments, output arguments, and return values
  • Display neatly formatted output to the screen

Requirements

Your 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

Code:

#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
//global variables
int account,gb;
//function to get account and gb
void getData()
{
    printf("\nEnter account number and GB used (one space between data): ");
    scanf("%d%d",&account,&gb);
}
//function to conpute charges per gb
float computeCharges(int gb)
{
    //conditions for the gb rate
    if(gb>0 && gb<=40)
    {
        return(gb*0.08);
    }
    else if(gb>40 && gb<=70)
    {
        return(gb*0.07);
    }
    else if(gb>70 && gb<=110)
    {
        return(gb*0.05);
    }
    return(gb*0.04);
}
//function to print account information
void printAccountInfo(int account,int gb, float charges)
{
    printf("\nAccount Number:%d\t GB Used:\t%d\tCharge:\t%0.2f",account,gb,charges);
}
//function to print all the information
void printTotals(int totalAcc, int totalGB, float totalCharges)
{
    printf("\nTotal Accounts=\t%d",totalAcc);
    printf("\nTotal GB Used=\t%d",totalGB);
    printf("\nTotal Charges=\t%0.2f",totalCharges);
}
//main function
int main()
{
    //local variables for main function
    //character variable for repeatation
    char ch='y';
    //variables to calculate total account,gb and charges
    int totalAcc=0,totalGB=0;
    float totalCharges=0,charge;
    //do while loop
    do{
        //calling function to get account and gb
        getData();
        //incrementing number of accounts
        totalAcc=totalAcc+1;
        //calling function for calculating the charge
        charge=computeCharges(gb);
        //incrementing the totalCharge by adding charge
        totalCharges=totalCharges+charge;
        //incrementing the totalGB by adding gb
        totalGB=totalGB+gb;
        //calling function to print account information
        printAccountInfo(account,gb,charge);
        //if user wants to repeat the procedure
        printf("\nDo you wish to continue? (y/n)");
        scanf(" %c",&ch);
    }while(ch=='y' || ch=='Y');//condition for the repetition
    //function to print all the information
    printTotals(totalAcc,totalGB,totalCharges);
    return 0;
}//end of the program

(i) The above program is completly based upon the requirements mentioned in the case study. Two global variables account and gb are declared at the top of the code. The function getData prompts for giving the account number and gb used. Both of them are stored in the global variable account and gb.

(ii) The function computeCharges calculates the charge of the internet usage as conditions mentioned in the case study. In those conditions directly return statements are written. For the gb above 110 there is no conditon and the value is directly returned from the function.

(iii) printAccountinfo function prints the details of the global variable which is used single time and the function printTotals print the total number of accounts, total gb used and total charges which is passed as parameter from the main function.

(iv)In the main function local variables for calculating totals and for contiuation a char variable is declared which is initialized to 'y'. Here do-while loop is used for first time execution without any condition checkng. In the conditon of do while loop the value of ch is checked with 'y' and 'Y'. In the loop firstly the getData function is called for taking inputs from the user and the totalAcc is incremented by 1.

(v) After that the function for computing charges is called where the return value is stored in charge value and it is added to totalCharge variable and at the same time gb is added to the totalGB. The function printsAcountInfo is called for printing account details. At last the user is asked if he/she wants to continue the execution where the character is fetched using char variable. After completing the loop the function printTotals is called.

Output:

Screenshot of the code:


Related Solutions

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): getData computeCharges...
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