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 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, 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. 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 !". TO-CONTINUE. DISPLAY (16, 30) "CONTINUE ?(Y/N)". ACCEPT DUMMY. IF DUMMY = "Y" GO TO PROGRAM-BEGIN ELSE GO TO PROGRAM-DONE.