* PROGRAM USING SEQUENTIAL FILES * Made By GAURANG * Visit : gaurang85.tripod.com IDENTIFICATION DIVISION. PROGRAM-ID. SEQSRT. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MY-FILE ASSIGN TO DISK ORGANIZATION IS SEQUENTIAL. SELECT SORT-FILE ASSIGN TO DISK. SELECT OUT-FILE ASSIGN TO DISK ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD MY-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "FILE.DAT". 01 THE-RECORD. 02 NAME PIC X(20). 02 ROLL PIC 9(5). 02 SCIENCE PIC 999. 02 MATH PIC 999. 02 APTITUDE PIC 999. 02 TOTAL PIC 9(5). 02 PERCENTAGE PIC 999V99. FD OUT-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "OUT.DAT". 01 OUT-RECORD. 02 O-NAME PIC X(20). 02 O-ROLL PIC 9(5). 02 O-SCIENCE PIC 999. 02 O-MATH PIC 999. 02 O-APTITUDE PIC 999. 02 O-TOTAL PIC 9(5). 02 O-PERCENTAGE PIC 999V99. SD SORT-FILE. 01 SORT-RECORD. 02 S-NAME PIC X(20). 02 S-ROLL PIC 9(5). 02 S-SCIENCE PIC 999. 02 S-MATH PIC 999. 02 S-APTITUDE PIC 999. 02 S-TOTAL PIC 9(5). 02 S-PERCENTAGE PIC 999V99. WORKING-STORAGE SECTION. 01 DUMMY PIC X. 01 DUMMY1 PIC 9(5). 01 CHOICE PIC 9. 01 FILE-END PIC X. 01 PROMPT-1 PIC X(80) VALUE ALL "-". 01 PROMPT-2 PIC X(10) VALUE "NAME". 01 PROMPT-3 PIC X(10) VALUE "ROLL". 01 PROMPT-4 PIC X(20) VALUE "MARKS". 01 PROMPT-5 PIC X(10) VALUE "MATHS". 01 PROMPT-6 PIC X(10) VALUE "SCIENCE". 01 PROMPT-7 PIC X(10) VALUE "APTITUDE". 01 PROMPT-8 PIC X(10) VALUE "TOTAL". 01 PROMPT-9 PIC X(10) VALUE "PERCENTAGE". 01 PROMPT-0 PIC X(80). 01 D-NAME PIC X(20). 01 D-ROLL PIC 9(5). 01 D-SCIENCE PIC 999. 01 D-MATH PIC 999. 01 D-APTITUDE PIC 999. 01 D-TOTAL PIC 9(5). 01 D-PERCN PIC 999V99. PROCEDURE DIVISION. PROGRAM-BEGIN. PERFORM MAIN-PROCESS. GO TO-CONTINUE. PROGRAM-DONE. STOP RUN. MAIN-PROCESS. PERFORM MENU. PERFORM SWITCH. MENU. DISPLAY (1, 1) ERASE. DISPLAY (4, 10) "STUDENTS DATABASE". DISPLAY (4, 10) "TO SKIP MENU PRESS ANY OTHER KEY -". DISPLAY " THEN SAY 'N' TO EXIT". DISPLAY (5, 10) "1. ADD RECORDS". DISPLAY (6, 10) "2. DISPLAY RECORDS". DISPLAY (7, 10) "3. DISPLAY TOPPER". DISPLAY (8, 10) "4. MODIFY RECORDS". DISPLAY (9, 5) "ENTER CHOICE : ". ACCEPT CHOICE. SWITCH. IF CHOICE = 1 PERFORM ADD-RECORDS ELSE IF CHOICE = 2 PERFORM DISPLAY-ALL ELSE IF CHOICE = 3 PERFORM TO-DISPLAY-TOPPER ELSE IF CHOICE = 4 PERFORM MODIFY-RECORD. ADD-RECORDS. OPEN EXTEND MY-FILE. DISPLAY (1, 1) ERASE. DISPLAY (4, 20) "ENTER FOLLOWING DATA". DISPLAY (4, 20) PROMPT-2. ACCEPT NAME. DISPLAY (5, 20) PROMPT-3. ACCEPT ROLL. DISPLAY (6, 25) PROMPT-4. DISPLAY (7, 20) PROMPT-5. ACCEPT MATH. DISPLAY (8, 20) PROMPT-6. ACCEPT SCIENCE. DISPLAY (9, 20) PROMPT-7. ACCEPT APTITUDE. COMPUTE TOTAL = SCIENCE + MATH + APTITUDE. DISPLAY (10, 20) PROMPT-8 TOTAL. COMPUTE PERCENTAGE = (TOTAL / 300) * 100. DISPLAY (12, 20) PROMPT-9, " = ", PERCENTAGE, "%". WRITE THE-RECORD. CLOSE MY-FILE. DISPLAY-ALL. OPEN INPUT MY-FILE. MOVE "N" TO FILE-END. PERFORM READ-RECORD. PERFORM DISPLAY-RECORDS UNTIL FILE-END = "Y". CLOSE MY-FILE. READ-RECORD. READ MY-FILE NEXT RECORD AT END MOVE "Y" TO FILE-END. DISPLAY-RECORDS. PERFORM MOVE-RECORDS. PERFORM THEN-DISPLAY. DISPLAY (15, 30) "PRESS ENTER TO CONTINUE". ACCEPT DUMMY. PERFORM READ-RECORD. IF FILE-END = "Y" DISPLAY (15, 30) ERASE. DISPLAY (15, 30) "RECORDS OVER". MOVE-RECORDS. MOVE NAME TO D-NAME. MOVE ROLL TO D-ROLL. MOVE MATH TO D-MATH. MOVE SCIENCE TO D-SCIENCE. MOVE APTITUDE TO D-APTITUDE. MOVE TOTAL TO D-TOTAL. MOVE PERCENTAGE TO D-PERCN. THEN-DISPLAY. DISPLAY (1, 1) ERASE. DISPLAY (4, 20) PROMPT-2 D-NAME. DISPLAY (5, 20) PROMPT-3 D-ROLL. DISPLAY (6, 20) PROMPT-4. DISPLAY (7, 20) PROMPT-5 D-MATH. DISPLAY (8, 20) PROMPT-6 D-SCIENCE. DISPLAY (9, 20) PROMPT-7 D-APTITUDE. DISPLAY (10, 20) PROMPT-8 D-TOTAL. DISPLAY (11, 20) PROMPT-9 D-PERCN. TO-DISPLAY-TOPPER. PERFORM SORT-THE-FILE. PERFORM DISPLAY-SORTED. SORT-THE-FILE. SORT SORT-FILE ON DESCENDING KEY S-TOTAL USING MY-FILE GIVING OUT-FILE. DISPLAY-SORTED. OPEN INPUT OUT-FILE. MOVE "N" TO FILE-END. PERFORM READ-OUT-FILE. PERFORM DISPLAY-OUT-FILE UNTIL FILE-END = "Y". CLOSE OUT-FILE. READ-OUT-FILE. READ OUT-FILE NEXT RECORD AT END MOVE "Y" TO FILE-END. DISPLAY-OUT-FILE. PERFORM MOVE-TO. PERFORM DISPLAY-SORTED-RECORD. MOVE-TO. MOVE O-NAME TO D-NAME. MOVE O-ROLL TO D-ROLL. MOVE O-MATH TO D-MATH. MOVE O-SCIENCE TO D-SCIENCE. MOVE O-APTITUDE TO D-APTITUDE. MOVE O-TOTAL TO D-TOTAL. MOVE O-PERCENTAGE TO D-PERCN. DISPLAY-SORTED-RECORD. PERFORM THEN-DISPLAY. DISPLAY (15, 30) "PRESS ENTER TO CONTINUE...". ACCEPT DUMMY. PERFORM READ-OUT-FILE. IF FILE-END = "Y" DISPLAY (15, 30) ERASE DISPLAY (15, 30) "RECORDS OVER !". MODIFY-RECORD. DISPLAY (1, 1) ERASE. DISPLAY (5, 10) "ENTER ROLL NO TO MODIFY : ". ACCEPT (, 35) DUMMY1. OPEN I-O MY-FILE. MOVE "N" TO FILE-END. PERFORM READ-RECORD. IF ROLL = DUMMY1 PERFORM DISP-REC-TO-MOD DISPLAY (15, 30) "RECORDS MODIFIED" CLOSE MY-FILE ELSE CLOSE MY-FILE DISPLAY (15, 30) "RECORD NOT FOUND". DISP-REC-TO-MOD. PERFORM MOVE-RECORDS. PERFORM THEN-DISPLAY. DISPLAY (15, 30) "MODIFY THIS RECORD (Y/N) : ". ACCEPT ( , 60) DUMMY. IF DUMMY = "Y" OR "y" PERFORM DO-MODIFICATION. DO-MODIFICATION. DISPLAY (1, 1) ERASE. DISPLAY (2, 10) "ENTER FOLLOWING DATA". DISPLAY (4, 20) PROMPT-2. ACCEPT NAME. DISPLAY (5, 20) PROMPT-3. ACCEPT ROLL. DISPLAY (6, 20) PROMPT-4. DISPLAY (7, 20) PROMPT-5. ACCEPT MATH. DISPLAY (8, 20) PROMPT-6. ACCEPT SCIENCE. DISPLAY (9, 20) PROMPT-7. ACCEPT APTITUDE. COMPUTE TOTAL = SCIENCE + MATH + APTITUDE. DISPLAY (10, 20) PROMPT-8 TOTAL. COMPUTE PERCENTAGE = TOTAL / 3. DISPLAY (12, 20) PROMPT-9 PERCENTAGE. REWRITE THE-RECORD. TO-CONTINUE. DISPLAY (16, 30) "CONTINUE ?(Y/N)". ACCEPT DUMMY. IF DUMMY = "Y" GO TO PROGRAM-BEGIN ELSE GO TO PROGRAM-DONE.