Tuesday, April 17, 2012

COBOL program to manipulate the student details.

//MYJOB JOB 1,'MAHA'
//STEP1 EXEC IGYWCLG
IDENTIFICATION DIVISION.
PROGRAM-ID. LAB1.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO DA-S-INPUT.
SELECT PRNT-FILE ASSIGN TO UR-S-PRNT.
EJECT
DATA DIVISION.
SKIP3
FILE SECTION.
FD INPUT-FILE
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS ARE STANDARD.
01 INPUT-REC PIC X(80).
SKIP2
FD PRNT-FILE
LABEL RECORDS ARE OMITTED.
01 PRNT-REC PIC X(125).
WORKING-STORAGE SECTION.
01 INPUT-DATA.
03 I-NAME PIC X(5).
03 REG PIC 9(4).
03 MARK1 PIC 9(2).
03 MARK2 PIC 9(2).
03 MARK3 PIC 9(2).
03 TOT PIC 9(3).
03 AVG PIC 9(3).9(2).
03 FILLER PIC X(21).
01 PRNT-DATA1.
03 FILLER PIC X(5) VALUE SPACES.
03 L-NAME1 PIC X(5).
03 FILLER PIC X(5) VALUE SPACES.
03 L-REG PIC 9(4).
03 FILLER PIC X(3) VALUE SPACES.
03 L-MARK1 PIC 9(2).
03 FILLER PIC X(3) VALUE SPACES.
03 L-MARK2 PIC 9(2).
03 FILLER PIC X(3) VALUE SPACES.
03 L-MARK3 PIC 9(2).
03 FILLER PIC X(4) VALUE SPACES.
03 L-TOT PIC 9(3).
03 FILLER PIC X(4) VALUE SPACES.
03 L-AVG PIC 9(3).9(2).
01 PRNT-HEADING1.
03 FILLER PIC X(5) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'NAME'.
03 FILLER PIC X(5) VALUE SPACES.
03 FILLER PIC X(4) VALUE 'REG'.
03 FILLER PIC X(3) VALUE SPACES.
03 FILLER PIC X(2) VALUE 'M1'.
03 FILLER PIC X(3) VALUE SPACES.
03 FILLER PIC X(2) VALUE 'M2'.
03 FILLER PIC X(3) VALUE SPACES.
03 FILLER PIC X(2) VALUE 'M3'.
03 FILLER PIC X(4) VALUE SPACES.
03 FILLER PIC X(3) VALUE 'TOT'.
03 FILLER PIC X(4) VALUE SPACES.
03 FILLER PIC X(3) VALUE 'AVG'.
01 MISC.
03 EOF-I PIC 9 VALUE 0.
PROCEDURE DIVISION.
MAINLINE.
OPEN INPUT INPUT-FILE
OUTPUT PRNT-FILE.
PERFORM READ-INPUT.
PERFORM PRINT-HEAD.
PERFORM LOOP1
UNTIL EOF-I = 1.
CLOSE INPUT-FILE
PRNT-FILE.
STOP RUN.
PRINT-HEAD.
WRITE PRNT-REC FROM PRNT-HEADING1
AFTER ADVANCING PAGE.
MOVE SPACES TO PRNT-REC.
WRITE PRNT-REC
AFTER ADVANCING 1 LINE.
LOOP1.
PERFORM PRINT-NAMES.
PERFORM READ-INPUT.
PRINT-NAMES.
ADD MARK1,MARK2,MARK3 GIVING TOT.
DIVIDE TOT BY 3 GIVING AVG.
MOVE I-NAME TO L-NAME1.
MOVE REG TO L-REG.
MOVE MARK1 TO L-MARK1.
MOVE MARK2 TO L-MARK2.
MOVE MARK3 TO L-MARK3.
MOVE TOT TO L-TOT.
MOVE AVG TO L-AVG.
WRITE PRNT-REC FROM PRNT-DATA1
AFTER ADVANCING 1 LINE.
READ-INPUT.
READ INPUT-FILE INTO INPUT-DATA
AT END MOVE 1 TO EOF-I.
//GO.SYSOUT DD SYSOUT=*
//GO.SYSPRINT DD SYSOUT=*
//GO.INPUT DD *
ANU 123 909090
BALA 567 808080
CEMA 901 707070
DEVI 345 606060
//GO.PRNT DD SYSOUT=*

No comments:

Post a Comment