Answer to Question #165133 in C++ for innocent

Question #165133

Just post is a new courier service company which services all provinces in the South Africa. They charge 

their customers based on the weight of the parcel as indicated in the table below. However, if kilograms 

are above 50, the cost is charged according to the number of hours it took to deliver. Although the time 

is entered in minutes but they are charged R95.00 per hour. Clients may also add some extras to the 

delivery such as insurance which is charged 8.5% and priority is charged at 5% of the charge.


Distance Weight Cost (R)

Local Under 5 kg R125.00

Local 5 kg up to 20 kg R175.00

Local Over 20 Kg R250.00

Long Under 5 kg R390.00

Long 5 kg up to 20 kg R450.00

Write a program that will assist with calculating the postage amount.

2.1 Create a C++ source file called Postage and save it in a file called Postage.cpp. 

2.2 Create the following functions: 

 

Functions:

Function Description Marks

2.2.1 enterPostageDetails() This function will receive five parameters that will consists of 

the minutes, the weight of a parcel, the distance, a status 

indicate if the parcel is a priority and if it will be insured.

The function will then prompt the user for the following as 

indicated in Figure 2.1 and Figure 2.2:

 the minutes, 

 the weight of a parcel, the distance, 

 priority (Y/y Or N/n) and an insurance indication (Y/y

Or N/n

2.2.2 determineCost() This function will receive three parameter that will consists of 

the distance, weight and time in hours.

The function must then determine and return the postage cost 

for that particular distance using the information above and 

the information on Table 1.

11

2.2.3 convertTime() This function will receive one parameter that will consists of

the delivery time in minutes.

This function must then convert the given time from minutes 

to hours and it must then return the number of hours in that 

given time.

7

2.2.4 calcAmtDue() This function will receive six parameter that will consists of the

postage cost, an indication whether the insurance is the taken 

and whether the parcel is priority or not, the insurance 

amount, priority amount as well as the amount due.

This function must then calculate the insurance, priority 

amount and the amount due respectively.

7

2.2.5 main() Add necessary pre-processor directives.

NB: The functions must be implemented below the main.

 Declare all necessary constants and variables.

 Allow the program to randomly generate an invoice 

number, the range must be from 105 to 550.

 Prompt the user for the postage details by calling the 

correct function.

 Calculate the postage cost as well as the amount due 

by calling the correct functions. 

 Display the postage details as indicated in Figure 2.3

and Figure 2.4.

 This process must be repeated until there are no 

parcels to deliver (See Figure 2.4).

 Display the number of deliveries for both Local or 

Long distances and the total revenue when the 

program terminates (See Figure 2.5)


1
Expert's answer
2021-02-21T19:51:55-0500
#include <iostream>
using namespace std;
void enterPostageDetails(int minutes, int weight, string distance, char insurance, char priority) {
    cout << "Enter the number of minutes it took to deliver: ";
    cin >> minutes;
    cout << "Enter the weight of the product: ";
    cin >> weight;
    cout << "Enter the distance(Local, Long): ";
    cin >> distance;
    cout << "Enter the status of insurance (Y/y Or N/n): ";
    cin >> insurance;
    cout << "Enter the status of priority (Y/y Or N/n): ";
    cin >> priority;
}
float convertTime (int minutes) {
    float Hours;
    Hours = (float) minutes / 60;
    return Hours;
}
float determineCost(string distance, int weight, float timeHours) {
    float costProduct;
    if (weight <= 50) {
        if (weight <= 5) {
            if (distance == "Local") {
                costProduct = 125.00;
            }
            if (distance == "Long") {
                costProduct = 390.00;
            }
        }
        if (weight > 5 && weight <= 20) {
            if (distance == "Local") {
                costProduct = 175.00;
            }
            if (distance == "Long") {
                costProduct = 450.00;
            }
        }
        if (weight > 20) {
            if (distance == "Local") {
                costProduct = 250.00;
            }
            if (distance == "Long") {
                costProduct = 500.00;
            }
        }
    }
    else {
        costProduct = 95 * timeHours;
    }
    return costProduct;
}
void calcAmtDue (float costProduct, char insurance, char priority) {
    float insuranceCost, priorityCost;
    if (tolower(insurance) == 'y') {
        insuranceCost = costProduct * 0.085;
        cout << "the amount of insurance: " << insuranceCost;
    }
    if (tolower(insurance) == 'n') {
        cout << "no insurance";
    }
    if (tolower(priority) == 'y') {
        priorityCost = costProduct * 0.05;
        cout << "the amount of priority: " << priorityCost;
    }
    if (tolower(priority) == 'n') {
        cout << "no insurance";
    }
    costProduct += insuranceCost + priorityCost;
    cout << "total product cost: " << costProduct;
}
int main () {
    int minutes, weight;
    string distance;
    char insurance, priority;
    enterPostageDetails(minutes, weight, distance, insurance, priority);
    float timeHours;
    timeHours = convertTime(minutes);
    float costProduct;
    costProduct = determineCost(distance, weight, timeHours);
    calcAmtDue(costProduct, insurance, priority);
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment