IDENTIFICATION
DIVISION.
PROGRAM-ID. RANKLIST-INPUT-OUTPUT-PRO.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL. |
| |
SELECT STU-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT WORKFILE ASSIGN TO DISK.
SELECT SORTFILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL. |
DATA DIVISION.
FILE SECTION.
FD STU-FILE |
| |
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID "STU.DAT"
DATA RECORD IS STU-REC. |
| 01 STU-REC. |
| |
02 IREGNO PIC 9(4).
02 INAME PIC X(25).
02 IMARK1 PIC 9(3).
02 IMARK2 PIC 9(3).
02 IMARK3 PIC 9(3).
02 ITOTAL PIC 9(4). |
| SD WORKFILE |
| |
DATA RECORD IS WORK-REC. |
| 01 WORK-REC. |
| |
02 WREGNO PIC 9(4).
02 WNAME PIC X(25).
02 WMARK1 PIC 9(3).
02 WMARK2 PIC 9(3).
02 WMARK3 PIC 9(3).
02 WTOTAL PIC 9(4). |
| FD SORTFILE |
| |
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID "STU1.DAT"
DATA RECORD IS STU1-REC. |
| 01 STU1-REC. |
| |
02 SREGNO PIC 9(4).
02 SNAME PIC X(25).
02 STOTAL PIC 9(4).
02 SRANK PIC 999. |
WORKING-STORAGE
SECTION.
01 CON PIC 9.
01 PRETOTAL PIC 9(4) VALUE ZERO.
01 FLAG PIC 9(3) VALUE ZERO.
01 CH PIC X.
01 SP PIC X(49) VALUE ALL "-".
01 SP1 PIC X(80) VALUE SPACES.
PROCEDURE DIVISION.
OPEN-PARA. |
| |
OPEN OUTPUT STU-FILE.
DISPLAY (1 25) "ENTER THE STUDENT DETAILS".
DISPLAY (2 25) "*************************". |
| MAIN1-PARA. |
| |
DISPLAY (3 1)ERASE.
DISPLAY " ENTER REGNO & NAME ".
ACCEPT IREGNO.
ACCEPT INAME. |
| MARK-PARA. |
| |
DISPLAY "ENTER THREE MARKS
".
ACCEPT IMARK1.
IF IMARK1 > 100 GO TO ER-PARA.
ACCEPT IMARK2.
IF IMARK1 > 100 GO TO ER-PARA.
ACCEPT IMARK3.
IF IMARK1 > 100 GO TO ER-PARA.
WRITE STU-REC.
DISPLAY "DO YOU HAVE MORE RECORDS FOR ENTERING
1 for con".
ACCEPT CON.
IF CON = 1 GO TO MAIN1-PARA.
CLOSE STU-FILE. |
| MAIN-PARA. |
| |
SORT WORKFILE ON DESCENDING
KEY WTOTAL
INPUT PROCEDURE IS IN-SEC
OUTPUT PROCEDURE IS OUT-SEC. |
| OPEN3-PARA. |
| |
OPEN INPUT SORTFILE.
DISPLAY (1 1 )ERASE.
DISPLAY (2 17) "RANK LIST OF STUENTS".
DISPLAY (3 17) "********************".
DISPLAY (4 1) "REGNO".
DISPLAY (4 9) "NAME".
DISPLAY (4 37) "TOTAL".
DISPLAY (4 46) "RANK".
DISPLAY (5 1) SP.
DISPLAY (6 1) SP1. |
| READ3-PARA. |
| |
READ SORTFILE RECORD AT END
GO TO CLOSE3-PARA.
DISPLAY SREGNO " " SNAME " "
STOTAL " " SRANK .
GO TO READ3-PARA. |
| CLOSE3-PARA. |
| |
CLOSE SORTFILE.
DISPLAY " ".
STOP RUN. |
| ER-PARA. |
| |
DISPLAY "THE MARK SHOUD
BE LESS THAN 100 ".
DISPLAY "Press any key to continue".
ACCEPT CH.
GO TO MARK-PARA. |
IN-SEC SECTION.
OPEN1-PARA. |
| |
OPEN INPUT STU-FILE. |
| READ1-PARA. |
| |
READ STU-FILE RECORD AT END
GO TO CLOSE1-PARA.
MOVE IREGNO TO WREGNO.
MOVE INAME TO WNAME.
MOVE IMARK1 TO WMARK1.
MOVE IMARK2 TO WMARK2.
MOVE IMARK3 TO WMARK3.
COMPUTE WTOTAL = IMARK1 + IMARK2 + IMARK3 .
RELEASE WORK-REC.
GO TO READ1-PARA. |
| CLOSE1-PARA. |
| |
CLOSE STU-FILE. |
| EXIT1-PARA. |
| |
EXIT. |
OUT-SEC SECTION.
OPEN2-PARA. |
| |
OPEN OUTPUT SORTFILE. |
| WRITE1-PARA. |
| |
RETURN WORKFILE RECORD AT END
GO TO CLOSE2-PARA.
IF PRETOTAL NOT = WTOTAL
COMPUTE FLAG = FLAG + 1
MOVE WTOTAL TO PRETOTAL.
MOVE WREGNO TO SREGNO.
MOVE WNAME TO SNAME.
MOVE WTOTAL TO STOTAL.
MOVE FLAG TO SRANK.
WRITE STU1-REC.
GO TO WRITE1-PARA. |
| CLOSE2-PARA. |
| |
CLOSE SORTFILE. |
| EXIT2-PARA. |
| |
EXIT. |