CECS 282
LAB ASSIGNMENT 2
Assigned date: 8/31
Due date: 9/7
45 points
Problem 1 [5 points]
Write a program to swap three parameters such that they are in order.
Grading
Problem 2 [40 points]
Postal bar codes- For faster sorting of letters, the United States Postal Service encourages companies that send large volumes of mail to use a bar code denoting the zip code. (See Figure 1).
Figure 1 A Postal Bar Code
The encoding scheme for a five-digit code is shown in Figure 2. There are full-height frame bars on each side. The five encoded digits are followed by a check digit, which is computed as follows: Add up all digits, and choose the check digit to make the sume a multiple of 10. For example, the zip code 95014 has a sum of 19, so the check digit is 1 to make the sum equal to 20.
Figure 2 Encoding for Five-Digit Bar Codes
Each digit of the zip code, and the check digit, is encoded according to the following table where 0 denotes a half bar and 1 full bar.
Digit | Bar 1 (weight 7 ) |
Bar 2 (weight 4 ) |
Bar 3 (weight 2 ) |
Bar 4 (weight 1 ) |
Bar 5 (weight 0 ) |
1 | 0 | 0 | 0 | 1 | 1 |
2 | 0 | 0 | 1 | 0 | 1 |
3 | 0 | 0 | 1 | 1 | 0 |
4 | 0 | 1 | 0 | 0 | 1 |
5 | 0 | 1 | 0 | 1 | 0 |
6 | 0 | 1 | 1 | 0 | 0 |
7 | 1 | 0 | 0 | 0 | 1 |
8 | 1 | 0 | 0 | 1 | 0 |
9 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 |
The digit can be easily computed from the bar code using the column weights 7, 4, 2, 1, 0. For example, 01100 is 0x7 +1x4+1x2+0x1+0x0 = 6. The only exception is 0, which would yield 11 according to the weight formula.
Write a program that asks the user for a zip code and prints the bar code. Use : for half bars, | for full bars. For example, 95014 becomes
Also the program is able to reads in bar code and prints out the zip code it represents. Print an error message if the bar code is not correct.
Note: The problem is created by Cay Horstmann from the book C++ for everyone.
Grading