Question

In C++ Assignment 7 - Postal Packages In the Gaddis textbook read Chapter 8 sections 8.1-8.10...

In C++

Assignment 7 - Postal Packages

In the Gaddis textbook read Chapter 8 sections 8.1-8.10 and Chapter 9 section 9.1 before starting this assignment.

Lone Star Package Service ships packages within the state of Texas. Packages are accepted for shipping subject to the following restrictions:

Shipping requirements

  • The package weight must not exceed 50 pounds.
  • The package must not exceed 3 feet in length, width, or height.
  • The girth of the package must not exceed 5 feet. The girth is the circumference around the two smallest sides of the package. If side1, side2, and side3 are the lengths of the three sides, and largest is the largest of the three sides, then the girth can be calculated using:
    girth = 2 * ( side1 + side2 + side3 - largest )

For each transaction (package to be shipped), the user should enter the package weight followed by the 3 package dimensions in any order. The weight should be specified as a whole number of pounds and the dimensions are specified as a whole number of inches.

To end the program, the user should enter a weight of -1. When the user enters -1 to end the program, they should not have to enter values for the 3 package dimensions. That is, when the user is ready to end the program, they should only have to enter the weight:

Enter package weight and 3 dimensions: -1

They should not have to enter:

Enter package weight and 3 dimensions: -1 0 0 0

Input Validation

Check to be sure that the user enters positive numbers for the package weight and dimensions (weight and dimensions must be larger than zero). For transactions with invalid weight or dimensions, print an error message and skip the transaction.

The shipping charge is based on the following table. This table may be represented in your program as parallel arrays (two one-dimensional arrays), one for the weight and one for the shipping charge. Alternatively, you may define a struct or simple class to represent one table entry (one weight and cost). Then the table would be an array of structs or an array of objects.

Note: Do not use a two-dimensional array to store the weights and costs. The weights need to be stored as integers, and the costs need to be stored as floating-point values. So they cannot be mixed in one array.

You can initialize the array elements in the array declarations using the values from the table below.

Weight

Shipping Charge

1

1.50

2

2.10

3

4.00

5

6.75

7

9.90

10

14.95

13

19.40

16

24.20

20

27.30

25

31.90

30

38.50

35

43.50

40

44.80

45

47.40

50

55.20

To determine the shipping charge, search the weight array for the package weight and then use the corresponding element from the shipping charge array. For example, the shipping charge for a 3 pound package would be $4.00. If the package weight falls between the weights in the weight table, use the larger weight. For example, the shipping charge for a 4 pound package would be 6.75. Do not hard code these values into your program code. For example, you should NOT have code like:

if ( packageWeight == 4 || packageWeight == 5)
   shippingCost = 6.75;

If you need a hint, check here:

programming assignment 7 hint

Output

Note that you should be able to write this program with only two loops, a transaction processing loop and a cost search loop. You do not need an input validation loop. If the package input is invalid, just print an error message and skip the normal package processing.

I want you to input the package information, process the package and output some information about the package in a single loop (the transaction processing loop).

Your program output should look similar to the example below.

Note: Do not store the package information in an array or vector. If you process a lot of packages, you will eventually run out of space in the array. If you use a vector, as you process more transactions you will eat up more and more memory. This program should be designed to run for long periods of time without running out of memory.

For each transaction, print:

  • the transaction number (start counting with 1)
  • whether the package was accepted or rejected
  • the package weight
  • the cost for shipping (if applicable)

When the program ends, print the number of packages accepted for shipping and the number of packages rejected. Transactions that contain invalid input should not be counted (see Input Validation section).

The screen dialog should look similar to this (user input is shown in bold):

For each transaction, enter package weight and 3 dimensions.
Enter -1 to quit.

Enter package weight and 3 dimensions: 1 2 3 3

Transaction:         1
Status     :  Accepted
Weight     :         1
Cost       :      1.50

Enter package weight and 3 dimensions: 7 4 2 3

Transaction:         2
Status     :  Accepted
Weight     :         7
Cost       :      9.90

Enter package weight and 3 dimensions: 21 12 15 12

Transaction:         3
Status     :  Accepted
Weight     :        21
Cost       :     31.90

Enter package weight and 3 dimensions: 45 12 20 2

Transaction:         4
Status     :  Accepted
Weight     :        45
Cost       :     47.40

Enter package weight and 3 dimensions: 49 24 40 20

Transaction:         5
Status     :  Rejected
Weight     :        49
Cost       :         -

Enter package weight and 3 dimensions: 25 35 30 20

Transaction:         6
Status     :  Rejected
Weight     :        25
Cost       :         -

Enter package weight and 3 dimensions: 68 10 20 10

Transaction:         7
Status     :  Rejected
Weight     :        68
Cost       :         -

Enter package weight and 3 dimensions: 50 0 10 10

Error - package weight and dimensions must be larger than 0
Please re-enter transaction

Enter package weight and 3 dimensions: 50 10 10 10

Transaction:         8
Status     :  Accepted
Weight     :        50
Cost       :     55.20

Enter package weight and 3 dimensions: 45 20 20 20

Transaction:         9
Status     :  Rejected
Weight     :        45
Cost       :         -

Enter package weight and 3 dimensions: -1

Number of accepted packages: 5
Number of rejected packages: 4

Additional Requirements:

  1. Do not use global variables in any assignment. A global variable is a variable that is declared outside any function. It is okay to use global constants.
  2. You must use multiple functions in this program. Do not write the program as one large main function.
  3. Do not store the transaction information in arrays or vectors. When you store transactions in arrays, you set a limit on the number of transactions your program can process. For this program, you should be able to read and process transactions one at a time.
0 0
Add a comment Improve this question Transcribed image text
Answer #1

Thanks for the question.


Here is the completed code for this problem. Comments are included so that you understand whats going on. Let me know if you have any doubts or if you need anything to change.


Thank You !!


======================================================================================

======================================================================================

#include<iostream>
using namespace std;

double getShippingCharges(int);
int weights[] = {1,2,3,5,7,10,13,16,20,25,30,35,40,45,50};
double charges[] = {1.50,2.10,4,6.75,9.9,14.95,19.4,24.2,27.3,31.9,38.5,43.5,44.8,47.4,55.2};

// returns the charges looping through the wt array
double getShippingCharges(int weight) {

for(int i=0;i<15; i++) {
if(weight-weights[i]<=0) {
return charges[i];
}
}
return 0;
}
// returns the largest number of the three
int getLargestOfThree(int a, int b, int c) {
if(a>=b && a>=c)
return a;
if(b>=a && b>=c)
return b;
if(c>=b && c>=a)
return c;

}
// finds the largest number of the three and then returns the girth
int getGirth(int a, int b, int c) {

int largest = getLargestOfThree(a,b,c);
return 2 * ( a + b + c - largest );

}

int main() {

cout<<"For each transaction, enter package weight and 3 dimensions."<<endl;
cout<<"Enter -1 to quit."<<endl<<endl;

int wt, side1, side2, side3;
int accepted=0,rejected=0;
int transaction =1;
while(true) {

cout<<"Enter package weight and 3 dimensions: ";
cin>>wt;
if(wt==-1){
break;
}
cin>>side1>>side2>>side3;
if(getGirth(side1,side2,side3)>(5*12) || side1<0 || side2<0 || side3<0 || wt>50){

rejected+=1;
cout<<"Transaction: "<<transaction<<endl;
cout<<"Status : "<<"Rejected"<<endl;
cout<<"Weight : "<<wt<<endl;
cout<<"Cost : "<<"-"<<endl;
}else{
accepted+=1;
cout<<"Transaction: "<<transaction<<endl;
cout<<"Status : "<<"Accepted"<<endl;
cout<<"Weight : "<<wt<<endl;
cout<<"Cost : "<<getShippingCharges(wt)<<endl;

}
cout<<endl;
transaction+=1;

}
cout<<"Number of accepted packages: "<<accepted<<endl;
cout<<"Number of rejected packages: "<<rejected<<endl;

}

===================================================================================

Add a comment
Know the answer?
Add Answer to:
In C++ Assignment 7 - Postal Packages In the Gaddis textbook read Chapter 8 sections 8.1-8.10...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • C++ Lone Star Package Service ships packages within the state of Texas. Packages are accepted for...

    C++ Lone Star Package Service ships packages within the state of Texas. Packages are accepted for shipping subject to the following restrictions: Shipping requirements The package weight must not exceed 50 pounds. The package must not exceed 3 feet in length, width, or height. The girth of the package must not exceed 5 feet. The girth is the circumference around the two smallest sides of the package. If side1, side2, and side3 are the lengths of the three sides, and...

  • C PROGRAMMING Introduction In this part, you will solve a problem described in English. Although you...

    C PROGRAMMING Introduction In this part, you will solve a problem described in English. Although you may discuss ideas with your classmates, etc., everyone must write and submit their own version of the program. Do NOT use anyone else’s code, as this will result in a zero for you and the other person! Shipping Calculator Speedy Shipping Company will ship your package based on the weight and how far you are sending the package, which can be anywhere in the...

  • IN C++ PROGRAMMING (We use #include <iostream> and cout and cin) Shipping Calculator Speedy Shipping Company...

    IN C++ PROGRAMMING (We use #include <iostream> and cout and cin) Shipping Calculator Speedy 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 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...

  • In this assignment, you will develop a C++ program which calculates a shipping charge and determines...

    In this assignment, you will develop a C++ program which calculates a shipping charge and determines the “type of trip” for a freight shipping company. Ask the user to enter the distance a package is to be shipped, and use a menu and a switch statement to determine the rate based on the package’s weight. Then display the shipping charge and using the table in #7 below, display the type of trip. Below is the chart to use to calculate...

  • An Internet service provider offers four subscription packages to its customers, plus a discount for nonprofit...

    An Internet service provider offers four subscription packages to its customers, plus a discount for nonprofit organizations: Package A: 10 hours of access for $12.95 per month. Additional hours are $4.00 per hour. Package B: 20 hours of access for $14.95 per month. Additional hours are $2.00 per hour. Package C: 30 hours of access for $20 per month. Additional hours are $1.00 per hour. Package D: Unlimited access for $35.95 per month. A nonprofit organizations will get 20% discount...

  • C++ Model rocket engines (or motors) are generally purchases in boxes of 24 or packages of...

    C++ Model rocket engines (or motors) are generally purchases in boxes of 24 or packages of 3. If I want 32 engines I would need to purchase 1 box of 24 and 3 packages of 3 (I would end up with 1 extra engine). Write a program that calculates how many boxes and packages you must purchase to get a specific number of engines. Also enter the price of a box and a package and calculate the total cost of...

  • C++ Model rocket engines (or motors) are generally purchases in boxes of 24 or packages of...

    C++ Model rocket engines (or motors) are generally purchases in boxes of 24 or packages of 3. If I want 32 engines I would need to purchase 1 box of 24 and 3 packages of 3 (I would end up with 1 extra engine). Write a program that calculates how many boxes and packages you must purchase to get a specific number of engines. Also enter the price of a box and a package and calculate the total cost of...

  • write a program for C++ to use on Putty . C++ not Java The Fast Freight...

    write a program for C++ to use on Putty . C++ not Java The Fast Freight Company provides three kinds of shipping services for packages: regular, priority and overnight. They charge the following rates: Regular Priority Overnight <= 2 Kg $1.00 per Kg $3.50 per Kg $11.50 per Kg > 2 Kg but <=6 Kg $1.50 per Kg $5.50 per Kg $16.50 per Kg > 6 Kg but <=10 Kg $2.00 per Kg $7.50 per Kg $21.50 per Kg >...

  • In Microsoft Visual Studio (C#): An Internet service provider offers four subscription packages to its customers,...

    In Microsoft Visual Studio (C#): An Internet service provider offers four subscription packages to its customers, plus a discount for nonprofit organizations: Package A: 10 hours of access for $12.95 per month.  Additional hours are $4.00 per hour. Package B: 20 hours of access for $14.95 per month.  Additional hours are $2.00 per hour. Package C: 30 hours of access for $20 per month.  Additional hours are $1.00 per hour. Package D: Unlimited access for $35.95 per month. A nonprofit organizations will get...

  • C programming only (Original work only as well, I will get into trouble if it is...

    C programming only (Original work only as well, I will get into trouble if it is a copy) also please add comments if it is not too much trouble. Program 5: Shipping Calculator The Speedy Shipping Company will ship packages based on how much they weigh and how far they are being sent. They will only ship small packages up to 10 pounds. You have been tasked with writing a program that will help Speedy Shipping determine how much to...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT