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