Bob Shipping Company will ship your package based on the weight and how far you are sending the package, which can be anywhere in the world. They will only ship small packages up to 10 pounds. You need to write a program, which will help you determine how much they will charge.
The charges are based on a flat rate per weight range and each 500 miles shipped/segment.
Please see attached file for instruction.
Shipping Calculator
Assignment
Shipping Calculator
Bob Shipping Company will ship your package based on the weight and how far you are sending the package, which can be anywhere in the world. They will only ship small packages up to 10 pounds (which is of data type double or float). You need to have a program, which will help you determine how much they will charge.
The charges are based on each 500 miles shipped. The mileage should be in whole numbers. They are not prorated, i.e., 600 miles is the same charge as 900 miles; in other words, 600 and 900 miles is counted as 2 segments of 500 miles each.
Here is the table they gave you:
Package Weight Rate per 500 miles shipped
Charge
2 pounds or less and > 0
$1.50
More than 2 but not more than 6
$3.70
More than 6 but not more than 10
$5.25
Your code needs to validate the input completely, e.g., the weight and mile amounts must be positive. If an input is invalid, e.g., the weight is zero or less, you should display an appropriate, professional error message, e.g., Error: Weight must be greater than zero!, which should be offset and surrounded by white space, so it stands out, and repeat getting that input until valid input is received. Keep in mind, the user will find it annoying if they must enter both the miles and weight at the same time, and only one of them caused an error, or they must reenter already valid data. Also, make sure you follow the
Code Conventions
and good programming practices, e.g., appropriately initialize variables to zeros, avoid stacked if or if-else constructs unless necessary, don’t use break or continue to get out of a loop, goto, etc.; in other words, you should NOT use stacked if/if-else constructs, break, or continue for this assignment.
At this point for the code, you should only solve the problem using what you learned from Chapters 1 – 6, i.e., NO arrays, only functions, etc. Only if all the input is valid, should the program calculate and display one shipping charge, and pause, but not quit, before proceeding to a new customer. Your test cases should test the various possibilities, and the limits of the program, which means, you will need to use an appropriate loop, which will ask if you would like to process the next customer or not by asking them to enter an appropriate value. Once there are no more customers to process, the program should display
Good-bye!
and end. Remember to solve each aspect of the program separately, and then, put the parts together.
The program should consist of five functions
main
(),
milesToSegmen
t (int miles) twopounds (int segment, double cost), twoToSixpounds (int segment, double cost) and sixToTenpounds (int segment, double cost).
Main()
function – Ask the user to input the miles, weight, then display the cost and prompt the user to continue. The main function calls the other 4 functions and passes the appropriate information to the function.
milesToSegment
(int miles) – Accepts the mileage as a parameter and return the number of segments base on the given miles.
twoPounds(
int segment, double cost)
– calculate the shipping cost of an item that is 2 or less pounds. Accepts the mileage segment and the cost as parameters.
twoToSixPounds(
int segment, double cost)
– calculate the shipping cost of an item that is more than 2 and less than or equal to 6 pounds. Accepts the mileage segment and the cost as parameters.
sixToTenPounds(
int segment, double cost)
– calculate the shipping cost of an item that is more than 6 and less than or equal to 10 pounds . Accepts the mileage segment and the cost as parameters.
Hints: You may need to reset any values after you display the answer and before you get the input for the next customer. Big Helpful Hint: For the number of segments calculation, you may want to start with integer division, e.g., 1200 miles / 500 miles per segment = 2 segments, and then, expand on that.
You should be able to solve this problem using loops.
Sample Run
Enter the number of miles as a whole number: 0
Error: Miles must be greater than zero!
Enter the number of miles as a whole number: 1
Enter the weight of the package in pounds: 0
Error: Weight must be greater than zero!
Enter the weight of the package in pounds: 1
The cost to ship your package is: $1.50.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 500
Enter the weight of the package in pounds: 2
The cost to ship your package is: $1.50.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 500
Enter the weight of the package in pounds: 2.5
The cost to ship your package is: $3.70.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 500
Enter the weight of the package in pounds: 6
The cost to ship your package is: $3.70.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 500
Enter the weight of the package in pounds: 11
Error: We don’t ship packages over 10 pounds!
Enter the weight of the package in pounds: 10
The cost to ship your package is: $5.25.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 501
Enter the weight of the package in pounds: 3.75
The cost to ship your package is: $7.40.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 1000
Enter the weight of the package in pounds: 6.1
The cost to ship your package is: $10.50.
Enter 1 to continue or 0 to quit: 1
Enter the number of miles as a whole number: 12450
Enter the weight of the package in pounds: 1
The cost to ship your package is: $37.50.
Enter 1 to continue or 0 to quit: 0
Good-bye!
Press any key to continue . . .
Create an IPO Diagram Here
Input |
Process |
Output |
Test Case 1
Input Data |
Expected Results |
||||||||
Weight: 1.5 pounds Miles: 200 miles (This is one 500-mile segment.) |
Your shipping charge is $1.50. |
Test Case 2
Weight: 5.6 pounds Miles: 1200 miles (This is three 500-mile segments.) |
Your shipping charge is $11.10. |
Create Test Cases 3 – 5 Here
Test Case 3
Weight: 2 pounds Miles: 1501 Miles (This is three 500-mile segments.) |
The cost to ship your package is: $6.0 |
Test Case 4
Weight: 6 pounds Miles: 850 Miles (This is two 500-mile segments.) |
The cost to ship your package is : $10.5 |
Test Case 5
Weight: 11 Miles: 0 Miles |
Error: Miles must be greater than zero!
Error: We don’t ship packages over 10 pounds! And prompt the user to enter correct values. |