PROGRAM 10
IDENTIFICATION DIVISION. PROGRAM-ID. PROJ10. AUTHOR. ANTHONY F. ORTIZ. *********************************** * DEPARTMENT OF MOTOR VECHICLES * *********************************** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT LICENSE-FILE ASSIGN TO DISK "LICENSE.DAT" ORGANIZATION IS INDEXED RECORD KEY IS IN-LICENSE-PLATE ACCESS IS RANDOM. DATA DIVISION. FILE SECTION. FD LICENSE-FILE LABEL RECORD IS STANDARD. 01 IN-RECORD. 02 IN-LICENSE-PLATE PIC X(7). 02 IN-OWNER-NAME PIC X(20). 02 IN-MAKE-VEHICLE PIC X(8). 02 IN-STYLE-VEHICLE PIC X(8). 02 IN-COLOR-VEHICLE PIC X(8). WORKING-STORAGE SECTION. 01 PROGRAM-INDICATORS. 02 ERROR-FLAG PIC 9(1) VALUE ZERO. 01 PROGRAM-VARIABLES. 02 INPUT-VARIABLES. 03 IN-CHOICE PIC X(1) VALUE SPACES. 03 IN-ANYCHAR PIC X(1) VALUE SPACES. 02 OUTPUT-VARIABLES. 03 OUT-LICENSE-PLATE PIC X(7) VALUE SPACES. 03 OUT-OWNER-NAME PIC X(20) VALUE SPACES. 03 OUT-MAKE-VEHICLE PIC X(8) VALUE SPACES. 03 OUT-STYLE-VEHICLE PIC X(8) VALUE SPACES. 03 OUT-COLOR-VEHICLE PIC X(8) VALUE SPACES. 01 PROGRAM-CONSTANTS. 02 INVALID-CHOICE PIC X(1) VALUE '7'. 02 ERROR-MESSAGE PIC X(38) VALUE 'ERROR, THIS RECORD IS NOT IN THE FILE.'. PROCEDURE DIVISION. MAIN-LINE. PERFORM OPEN-FILES. PERFORM GET-SELECTION UNTIL IN-CHOICE = '6'. PERFORM CLOSE-FILES. DISPLAY " " LINE 1 COL 1 WITH BLANK SCREEN. STOP RUN. OPEN-FILES. OPEN I-O LICENSE-FILE. GET-SELECTION. PERFORM MAKE-SURE-IT-PAUSES-FOR-INPUT. PERFORM PRINT-MENU UNTIL IN-CHOICE = '1' OR IN-CHOICE = '2' OR IN-CHOICE = '3' OR IN-CHOICE = '4' OR IN-CHOICE = '5' OR IN-CHOICE = '6'. IF IN-CHOICE = '1' PERFORM INITIALIZE-IN-LICENSE-PLATE PERFORM INQUIRE-SINGLE-LICENSE-PLATE THRU END-INQUIRE UNTIL IN-LICENSE-PLATE = SPACES ELSE IF IN-CHOICE = '2' PERFORM INQUIRE-RANGE-LICENSE-PLATE ELSE IF IN-CHOICE = '3' PERFORM ADD-LICENSE-PLATE ELSE IF IN-CHOICE = '4' PERFORM CHANGE-LICENSE-PLATE ELSE IF IN-CHOICE = '5' PERFORM DELETE-LICENSE-PLATE. MAKE-SURE-IT-PAUSES-FOR-INPUT. MOVE INVALID-CHOICE TO IN-CHOICE. PRINT-MENU. DISPLAY "DEPARTMENT OF MOTOR VEHICLES" LINE 1 COL 1 WITH BLANK SCREEN. DISPLAY "1. INQUIRE SINGLE LICENSE PLATE DATA." LINE 3 COL 5. DISPLAY "2. INQUIRE RANGE OF LICENSE PLATE DATA." LINE 4 COL 5. DISPLAY "3. ADD LICENSE PLATE DATA." LINE 5 COL 5. DISPLAY "4. CHANGE LICENSE PLATE DATA." LINE 6 COL 5. DISPLAY "5. DELETE LICENSE PLATE DATA." LINE 7 COL 5. DISPLAY "6. TERMINATE THE PROGRAM." LINE 8 COL 5. DISPLAY "PRESS ENTER KEY TO CONTINUE. " LINE 10 COL 1. ACCEPT IN-CHOICE LINE 10 COL 30. IF IN-CHOICE < '1' OR IN-CHOICE > '6' DISPLAY " " LINE 10 COL 30 WITH BEEP. INITIALIZE-IN-LICENSE-PLATE. MOVE HIGH-VALUE TO IN-LICENSE-PLATE. INQUIRE-SINGLE-LICENSE-PLATE. DISPLAY "ENTER A 7 CHARACTER LICENSE PLATE. " LINE 1 COL 1 WITH BLANK SCREEN. DISPLAY "PRESS ENTER KEY (ONLY) TO CONTINUE." LINE 3 COL 1. PERFORM INITIALIZE-IN-RECORD. ACCEPT IN-LICENSE-PLATE LINE 1 COL 36. IF IN-LICENSE-PLATE = SPACES GO TO END-INQUIRE. PERFORM READ-FILE. IF ERROR-FLAG = 1 PERFORM MOVE-IN-OUT PERFORM DISPLAY-RECORD PERFORM PRESS-ENTER-KEY ELSE PERFORM PRINT-ERROR-MESSAGE PERFORM PRESS-ENTER-KEY. END-INQUIRE. EXIT. INITIALIZE-IN-RECORD. MOVE SPACES TO IN-RECORD. READ-FILE. PERFORM INITIALIZE-ERROR-FLAG. READ LICENSE-FILE INVALID MOVE 2 TO ERROR-FLAG. INITIALIZE-ERROR-FLAG. MOVE 1 TO ERROR-FLAG. MOVE-IN-OUT. MOVE IN-LICENSE-PLATE TO OUT-LICENSE-PLATE. MOVE IN-OWNER-NAME TO OUT-OWNER-NAME. MOVE IN-MAKE-VEHICLE TO OUT-MAKE-VEHICLE. MOVE IN-COLOR-VEHICLE TO OUT-COLOR-VEHICLE. MOVE IN-STYLE-VEHICLE TO OUT-STYLE-VEHICLE. DISPLAY-RECORD. DISPLAY "LICENSE PLATE: " LINE 1 COL 1 WITH BLANK SCREEN. DISPLAY "OWNER'S NAME: " LINE 3 COL 1. DISPLAY "MAKE OF VEHICLE: " LINE 5 COL 1. DISPLAY "COLOR OF VEHICLE: " LINE 7 COL 1. DISPLAY "STYLE OF VEHICLE: " LINE 9 COL 1. DISPLAY OUT-LICENSE-PLATE LINE 1 COL 19. DISPLAY OUT-OWNER-NAME LINE 3 COL 19. DISPLAY OUT-MAKE-VEHICLE LINE 5 COL 19. DISPLAY OUT-COLOR-VEHICLE LINE 7 COL 19. DISPLAY OUT-STYLE-VEHICLE LINE 9 COL 19. PRESS-ENTER-KEY. DISPLAY "PRESS ENTER KEY TO CONTINUE ..... " LINE 11 COL 1. ACCEPT IN-ANYCHAR. PRINT-ERROR-MESSAGE. DISPLAY ERROR-MESSAGE LINE 1 COL 1 WITH BLANK SCREEN. INQUIRE-RANGE-LICENSE-PLATE. DISPLAY "THIS PROCEDURE IS STILL UNDER CONSTRUCTION." LINE 1 COL 1 WITH BLANK SCREEN. PERFORM PRESS-ENTER-KEY. ADD-LICENSE-PLATE. DISPLAY "THIS PROCEDURE IS STILL UNDER CONSTRUCTION." LINE 1 COL 1 WITH BLANK SCREEN. PERFORM PRESS-ENTER-KEY. CHANGE-LICENSE-PLATE. DISPLAY "THIS PROCEDURE IS STILL UNDER CONSTRUCTION." LINE 1 COL 1 WITH BLANK SCREEN. PERFORM PRESS-ENTER-KEY. DELETE-LICENSE-PLATE. DISPLAY "THIS PROCEDURE IS STILL UNDER CONSTRUCTION." LINE 1 COL 1 WITH BLANK SCREEN. PERFORM PRESS-ENTER-KEY. CLOSE-FILES. CLOSE LICENSE-FILE. * DATA FILE: LICENSE.DAT, LICENSE.IDX (NOT TEXT FILES) * * OUTFILE: PROG10.OUT * DEPARTMENT OF MOTOR VEHICLES 1. INQUIRE SINGLE LICENSE PLATE DATA. 2. INQUIRE RANGE OF LICENSE PLATE DATA. 3. ADD LICENSE PLATE DATA. 4. CHANGE LICENSE PLATE DATA. 5. DELETE LICENSE PLATE DATA. 6. TERMINATE THE PROGRAM. PRESS ENTER KEY TO CONTINUE. 6
BACK TO CIS165 PAGE.