000100 ID DIVISION. 000200 PROGRAM-ID. All-together-with-menu. 000300 AUTHOR. ChanJin Chung. 000400 ENVIRONMENT DIVISION. 000500 INPUT-OUTPUT SECTION. 000600 FILE-CONTROL. 000700*---------- NOTE: MODE IS RANDOM TO READ ---------------------- 000800 SELECT IDX-FILE ASSIGN TO DISK 'PART.IXF' 000900 ORGANIZATION IS INDEXED 001000 ACCESS MODE IS RANDOM 001100 RECORD KEY IS IDX-KEY. 001200*-------------------------------------------------------------- 001300 DATA DIVISION. 001400 FILE SECTION. 001500 FD IDX-FILE RECORD CONTAINS 30 CHARACTERS. 001600 01 IDX-RECORD. 001700 05 IDX-KEY PIC X(4). 001800 05 I-NAME PIC X(15). 001900 05 U-PRICE PIC 9(5)V99. 002000 05 IN-STOCK PIC 9(4). 002100*-------------------------------------------------------------- 002200 WORKING-STORAGE SECTION. 002300 01 U-PART-NO PIC X(4). 002400 01 T-PART PIC 9(4). 002500 01 CHOICE PIC X VALUE 'M'. 002600 002700 PROCEDURE DIVISION. 002800 allprocess-rtn. 002900 OPEN I-O IDX-FILE 003000 PERFORM MAIN-RTN 003100 CLOSE IDX-FILE 003200 STOP RUN. 003300 MAIN-RTN. 003400 PERFORM UNTIL CHOICE = 'q' or CHOICE = 'Q' 003500 PERFORM DISPLAY-MENU 003600 ACCEPT CHOICE 003700 EVALUATE CHOICE 003800 WHEN '1' 003900 PERFORM GET-RTN 004000 WHEN '2' 004100 PERFORM UPDATE-RTN 004200 WHEN '3' 004300 PERFORM DELETE-RTN 004400 END-EVALUATE 004500 END-PERFORM. 004600 DISPLAY-MENU. 004700 DISPLAY ' ***** MAIN MENU *****' 004800 DISPLAY ' 1. GET A RECORD' 004900 DISPLAY ' 2. UPDATE A RECORD' 005000 DISPLAY ' 3. DELETE A RECORD' 005100 DISPLAY ' ENTER A NUMBER or Q to quit: '. 005200 GET-RTN. 005300 DISPLAY 'ENTER a PART Number to get:' 005400 ACCEPT U-PART-NO 005500 MOVE U-PART-NO TO IDX-KEY 005600 READ IDX-FILE 005700 INVALID KEY DISPLAY 'INVALID KEY' 005800 NOT INVALID KEY DISPLAY IDX-RECORD 005900 END-READ. 006000 UPDATE-RTN. 006100 DISPLAY 'Enter Part Number to be Updated:' 006200 ACCEPT U-PART-NO 006300 MOVE U-PART-NO TO IDX-KEY 006400 READ IDX-FILE 006500 INVALID KEY DISPLAY 'INVALID KEY' 006600 NOT INVALID 006700 DISPLAY IDX-RECORD 006800 DISPLAY 'Enter Current Parts in Stock' 006900 ACCEPT T-PART 007000 MOVE T-PART TO IN-STOCK 007100 REWRITE IDX-RECORD 007200 INVALID KEY 007300 DISPLAY 'REWRITE ERROR' U-PART-NO 007400 NOT INVALID KEY DISPLAY IDX-RECORD 007500 END-REWRITE 007600 END-READ. 007700 DELETE-RTN. 007800 DISPLAY 'ENTER PART Number to be deleted:' 007900 ACCEPT U-PART-NO 008000 MOVE U-PART-NO TO IDX-KEY 008100 READ IDX-FILE 008200 INVALID KEY DISPLAY 'INVALID KEY' 008300 NOT INVALID KEY 008400 DISPLAY IDX-RECORD 008500 DISPLAY 'The above record has been deleted' 008600- 'from PART.IXF' 008700 DELETE IDX-FILE RECORD 008800 INVALID KEY DISPLAY 'DELETE ERROR' 008900 END-DELETE 009000 END-READ.