PROGRAM 9
IDENTIFICATION DIVISION.
PROGRAM-ID. PROJECT9.
AUTHOR. ANTHONY F. ORTIZ.
******************************
* HONEST ABE'S CARPETORIUM *
******************************
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PROGRAM-CONSTANTS.
02 ERROR-MESSAGE PIC X(28)
VALUE ' ERROR, TYPE 1, 2, OR 3.'.
02 ERASE-ERROR-MESSAGE PIC X(27)
VALUE SPACES.
01 PROGRAM-VARIABLES.
02 INPUT-VARIABLES.
03 IN-CHOICE PIC 9(1) VALUE ZERO.
03 IN-WIDTH PIC 999 VALUE ZERO.
03 IN-LENGTH PIC 999 VALUE ZERO.
03 IN-ANS PIC X VALUE SPACES.
02 PROCESS-VARIABLES.
03 PROCESS-AREA PIC 999999 VALUE ZERO.
03 PROCESS-COST PIC 9999999 VALUE ZERO.
02 OUTPUT-VARIABLES.
03 OUT-AREA PIC ZZZ,ZZ9.99 VALUE ZERO.
03 OUT-COST PIC $$,$$$,$$9.99 VALUE ZERO.
01 PROGRAM-TABLE.
02 PER-YARD-COSTS-TABLE.
03 PER-YARD-COST-CONSTANTS.
04 PER-YARD-COST PIC 99V99 VALUE 12.00.
04 PER-YARD-COST PIC 99V99 VALUE 18.00.
04 PER-YARD-COST PIC 99V99 VALUE 22.00.
03 PER-YARD-COST-TABLE REDEFINES PER-YARD-COST-CONSTANTS
PIC 99V99
OCCURS 3 TIMES.
PROCEDURE DIVISION.
MAIN-LINE.
PERFORM PRINT-MENU.
PERFORM GET-CHOICE UNTIL IN-CHOICE IS NUMERIC AND
IN-CHOICE >= 1 AND
IN-CHOICE <= 3.
PERFORM GET-LENGTH-WIDTH.
PERFORM COMPUTE-AREA-COST.
PERFORM DISPLAY-AREA-PRICE.
PERFORM DO-AGAIN.
PRINT-MENU.
DISPLAY " " LINE 1 COL 1 WITH BLANK SCREEN.
DISPLAY "HONEST ABE'S CARPETORIUM" LINE 1 COL 28.
DISPLAY "CARPET TYPES COST/YARD" LINE 3 COL 27.
DISPLAY "1. QUALITY - $12.00" LINE 5 COL 27.
DISPLAY "2. PREMIUM - $18.00" LINE 7 COL 27.
DISPLAY "3. SUPERIOR - $22.00" LINE 9 COL 27.
DISPLAY "CARPET TYPE DESIRED:" LINE 11 COL 17.
DISPLAY "LENGTH DESIRED:" LINE 13 COL 22.
DISPLAY "WIDTH DESIRED:" LINE 13 COL 56.
DISPLAY "YARDS NEEDED:" LINE 15 COL 24.
DISPLAY "PRICE:" LINE 15 COL 64.
GET-CHOICE.
ACCEPT IN-CHOICE LINE 11 COL 38.
IF IN-CHOICE IS NOT NUMERIC OR
IN-CHOICE < 1 OR
IN-CHOICE > 3
DISPLAY ERROR-MESSAGE LINE 11 COL 38
ELSE
DISPLAY ERASE-ERROR-MESSAGE LINE 11 COL 39.
GET-LENGTH-WIDTH.
ACCEPT IN-LENGTH LINE 11 COL 38.
ACCEPT IN-WIDTH LINE 11 COL 71.
COMPUTE-AREA-COST.
COMPUTE PROCESS-AREA = ((IN-LENGTH * IN-WIDTH) / 9) + 1.
COMPUTE PROCESS-COST = PROCESS-AREA *
PER-YARD-COST-TABLE (IN-CHOICE).
DISPLAY-AREA-PRICE.
MOVE PROCESS-AREA TO OUT-AREA.
MOVE PROCESS-COST TO OUT-COST.
DISPLAY OUT-AREA LINE 15 COL 38.
DISPLAY OUT-COST LINE 15 COL 71.
DO-AGAIN.
DISPLAY "WOULD YOU LIKE TO RUN THIS PROGRAM AGAIN (Y/N)? "
LINE 13 COL 17.
ACCEPT IN-ANS LINE 13 COL 38.
IF IN-ANS = "Y" OR IN-ANS = "y"
PERFORM MAIN-LINE
ELSE
DISPLAY " " LINE 1 COL 1 WITH BLANK SCREEN.
* OUTFILE: PROG9.OUT *
HONEST ABE'S CARPETORIUM
CARPET TYPES COST/YARD
1. QUALITY - $12.00
2. PREMIUM - $18.00
3. SUPERIOR - $22.00
CARPET TYPE DESIRED:
LENGTH DESIRED: 100 WIDTH DESIRED: 100
YARDS NEEDED: 1112 PRICE: $13344.00
WOULD YOU LIKE TO RUN THIS PROGRAM AGAIN (Y/N)? n
BACK TO CIS165 PAGE.