Hello again all.
I've been working on this program for a couple of weeks but I still cannot get to work like the homework requires.
The assignment is as follows:
Lone Star Package Service ships packages within the state of Texas. Packages are accepted for shipping subject to the following restrictions:
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.
Input Validation
Check to be sure that the user enters positive numbers for the package weight and dimensions. 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 teh 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.
(
This is where a table detailing the array values would be, I can't get it to paste correctly, the program has it correct.)
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:
1 2
|
if ( packageWeight == 4 || packageWeight == 5)
shippingCost = 6.75;
|
Output
Write a Shipping Log to an output file as you process the packages (see example below). Print column headings for the Shipping Log before you start the transaction processing loop (see example below). Then print the information for each package as the package is processed.
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 to the end of the Shipping Log. Transactions that contain invalid input should not be counted.
The screen dialog should look similar to this
For each transaction, enter package weight and 3 dimensions.
Enter -1 to quit.
Enter package weight and 3 dimensions: 1 2 3 3
Enter package weight and 3 dimensions: 7 4 2 3
Enter package weight and 3 dimensions: 21 12 15 12
Enter package weight and 3 dimensions: 45 12 20 2
Enter package weight and 3 dimensions: 49 24 40 20
Enter package weight and 3 dimensions: 25 35 30 20
Enter package weight and 3 dimensions: 68 10 20 10
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
Enter package weight and 3 dimensions: 45 20 20 20
Enter package weight and 3 dimensions: -1
The Shipping Log should look similar to this:
Trans Accept/Reject Weight Cost
1 Accepted 1 1.50
2 Accepted 7 9.90
3 Accepted 21 31.90
4 Accepted 45 47.40
5 Rejected 49 -
6 Rejected 25 -
7 Rejected 68 -
8 Accepted 50 55.20
9 Rejected 45 -
Number of accepted packages: 5
Number of rejected packages: 4
Additional Requirements:
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.
You must use multiple functions in this program. Do not write the program as one large main function.
Do not read and store the transaction information in arrays. 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.
What I have will be in the next post