60
COBOL PROGRAMMING LAB Program: 1A Problem Statement: Write a program to evaluate the following using COMPUTE verb. Z=(A-B)*C. Source Code : IDENTIFICATION DIVISION. PROGRAM-ID.P1. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 A PIC S9(2). 77 B PIC S9(2). 77 C PIC S9(2). 77 Z1 PIC -ZZZZZ9. PROCEDURE DIVISION. ACCEPT-PARA. DISPLAY "ENTER THE VALUE OF A". ACCEPT A. DISPLAY "ENTER THE VALUE OF B". ACCEPT B. DISPLAY "ENTER THE VALUE OF C". ACCEPT C. DISPLAY-PARA. COMPUTE Z1=( A - B )*C. DISPLAY "VALUE OF EXPRESSION IS" Z1. STOP RUN. Department of MCA, DSCE COBOLLaboratory 1

COBOL Program

Embed Size (px)

Citation preview

Page 1: COBOL Program

COBOL PROGRAMMING LAB

Program:1A

Problem Statement:Write a program to evaluate the following using COMPUTE verb. Z=(A-B)*C.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID.P1.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION. 77 A PIC S9(2). 77 B PIC S9(2). 77 C PIC S9(2).77 Z1 PIC -ZZZZZ9.PROCEDURE DIVISION.ACCEPT-PARA. DISPLAY "ENTER THE VALUE OF A". ACCEPT A. DISPLAY "ENTER THE VALUE OF B". ACCEPT B. DISPLAY "ENTER THE VALUE OF C". ACCEPT C.DISPLAY-PARA. COMPUTE Z1=( A - B )*C.DISPLAY "VALUE OF EXPRESSION IS" Z1. STOP RUN.

Output:

1) ENTER THE VALUE OF A

Department of MCA, DSCE COBOLLaboratory1

Page 2: COBOL Program

COBOL PROGRAMMING LAB

4 ENTER THE VALUE OF B 2 ENTER THE VALUE OF C 9 VALUE OF EXPRESSION IS 18

2) ENTER THE VALUE OF A-3ENTER THE VALUE OF B-4ENTER THE VALUE OF C-9VALUE OF EXPRESSION IS- 9

Program:1B

Problem Statement:Write a program to find the sum of individual digits in the given ‘n’ digit decimal number

Source Code:

Department of MCA, DSCE COBOLLaboratory2

Page 3: COBOL Program

COBOL PROGRAMMING LAB

IDENTIFICATION DIVISION.PROGRAM-ID.P2.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION. 77 NUM PIC S9(8). 77 R PIC S9(2). 77 SUM2 PIC 9(4) VALUE 0. 77 SUM1 PIC Z(5).PROCEDURE DIVISION.ACCEPT-PARA. DISPLAY "ENTER THE NUMBER". ACCEPT NUM. PERFORM REV-PARA UNTIL NUM=0.DISPLAY "SUM OF THE DIGITS IS"SUM1. STOP RUN.REV-PARA. DIVIDE NUM BY 10 GIVING NUM REMAINDER R. ADD R TO SUM2. MOVE SUM2 TO SUM1.Output:

1) ENTER THE NUMBER 671 SUM OF THE DIGITS IS 14

2) ENTER THE NUMBER 78.96 SUM OF THE DIGITS IS 15

Program:2A

Problem Statement:Write a program for generating odd and even numbers between the given limits by using PERFORM statement.

Source Code:IDENTIFICATION DIVISION.PROGRAM-ID.P2A.ENVIRONMENT DIVISION.DATA DIVISION.

Department of MCA, DSCE COBOLLaboratory3

Page 4: COBOL Program

COBOL PROGRAMMING LAB

WORKING-STORAGE SECTION.01 NUM1 PIC 9(3).01 NUM2 PIC 9(3).01 R PIC 9(2).01 N PIC 9(2). 01 I PIC 9(2).01 J PIC 9(2). 01 M PIC Z(3).PROCEDURE DIVISION.DISPLAY-PARA. DISPLAY "ENTER THE LOWER LIMIT:". DISPLAY "_____________________". ACCEPT NUM1. DISPLAY "ENTER THE UPPER LIMIT:". DISPLAY "_____________________". ACCEPT NUM2. IF NUM1>NUM2 DISPLAY "INVALID INPUT" STOP RUN. DISPLAY "_____________________". DISPLAY "LIST OF EVEN NUMBERS". DISPLAY "_____________________". PERFORM CAL-PARA VARYING I FROM NUM1 BY 1 UNTIL I>NUM2. DISPLAY "______________________". DISPLAY "LIST OF ODD NUMBERS". DISPLAY "_____________________". PERFORM CAL1-PARA VARYING I FROM NUM1 BY 1 UNTIL I>NUM2. STOP RUN.CAL-PARA. DIVIDE I BY 2 GIVING N REMAINDER R. IF R=0 MOVE I TO JDISPLAY SPACES "|" J "|".CAL1-PARA. DIVIDE I BY 2 GIVING N REMAINDER R. IF R NOT = 0 MOVE I TO MDISPLAY SPACES "|" M "|".

Output:

ENTER THE LOWER LIMIT:

Department of MCA, DSCE COBOLLaboratory4

Page 5: COBOL Program

COBOL PROGRAMMING LAB

_____________________1ENTER THE UPPER LIMIT:_____________________10_____________________LIST OF EVEN NUMBERS_____________________ |02| |04| |06| |08| |10|______________________LIST OF ODD NUMBERS_____________________| 1|| 3|| 5|| 7|| 9|

Program:2B

Problem Statement:Write a program for sorting numeric numbers.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID.P2B.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.01 A1-TABLE. 02 A1 PIC S9(4)V99 OCCURS 10 TIMES. 77 I PIC 9(3).77 J PIC 9(3).77 K PIC 9(3).77 N PIC 9(3).77 NUM PIC 9(3).

Department of MCA, DSCE COBOLLaboratory5

Page 6: COBOL Program

COBOL PROGRAMMING LAB

77 NUM1 PIC 9(4). 77 TEMP PIC S9(3)V99. 77 TEMP1 PIC -Z(3)9.99.PROCEDURE DIVISION.MAIN-PARA. DISPLAY "ENTER THE NUMBER OF ELEMENTS". ACCEPT N. DISPLAY "ENTER THE ELEMENTS:". PERFORM ACPT-PARA VARYING I FROM 1 BY 1 UNTIL I>N. PERFORM SORT-PARA VARYING I FROM 1 BY 1 UNTIL I>N. DISPLAY "THE SORTED ELEMENTS ARE:". PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I>N. STOP RUN.ACPT-PARA. ACCEPT A1(I).SORT-PARA. SUBTRACT I FROM N GIVING K. PERFORM COMP-PARA VARYING J FROM 1 BY 1 UNTIL J>K.COMP-PARA. COMPUTE NUM = J. COMPUTE NUM1 = NUM + 1. IF A1(NUM) > A1(NUM1) MOVE A1(NUM) TO TEMP MOVE A1(NUM1) TO A1(NUM) MOVE TEMP TO A1(NUM1).DISP-PARA. MOVE A1(I) TO TEMP1. DISPLAY TEMP1.

Output:

ENTER THE NUMBER OF ELEMENTS6ENTER THE ELEMENTS:0-1-6-349THE SORTED ELEMENTS ARE:- 6.00- 3.00

Department of MCA, DSCE COBOLLaboratory6

Page 7: COBOL Program

COBOL PROGRAMMING LAB

- 1.00 0.00 4.00 9.00

Program:4A

Problem Statement:By using table handling concepts, write a program for Sorting alphanumeric data.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID. 3A.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION. 01 A-TAB. 02 A PIC X(10) OCCURS 10 TIMES. 77 I PIC 99.77 J PIC 99.77 N PIC S999. 77 T PIC X(10).77 C PIC XX.PROCEDURE DIVISION.PARA-1. DISPLAY "ENTER THE NUMBER OF TERMS". ACCEPT N. IF N < 1 GO TO END-PARA. DISPLAY "ENTER THE ELEMENTS". PERFORM READ-PARA VARYING I FROM 1 BY 1 UNTIL I > N.

Department of MCA, DSCE COBOLLaboratory7

Page 8: COBOL Program

COBOL PROGRAMMING LAB

PERFORM B-PARA VARYING I FROM 1 BY 1 UNTIL I > N. DISPLAY "THE SORTED ELEMENTS LIST IS:". PERFORM DISPLAY-PARA VARYING I FROM 1 BY 1 UNTIL I > N. DISPLAY "DO YOU WANT TO CONTINUE,IF YES PRESS Y OTHERWISE

N". ACCEPT C. IF C='N' OR 'n' STOP RUN. IF C='Y' OR 'y' GO TO PARA-1 STOP RUN.

READ-PARA. ACCEPT A(I).

B-PARA. PERFORM SORT-PARA VARYING J FROM 1 BY 1 UNTIL J > N - 1.

SORT-PARA. IF A(J) > A(J + 1) MOVE A(J) TO T MOVE A(J + 1) TO A(J) MOVE T TO A(J + 1).

DISPLAY-PARA. DISPLAY A(I).

END-PARA. DISPLAY "INVALID INPUT". DISPLAY "DO YOU WANT TO CONTINUE,IF YES PRESS Y OTHERWISE

N". ACCEPT C. IF C='N' OR 'n' STOP RUN. IF C='Y' OR 'y' GO TO PARA-1 STOP RUN.

Department of MCA, DSCE COBOLLaboratory8

Page 9: COBOL Program

COBOL PROGRAMMING LAB

Output:

1) ENTER THE NUMBER OF TERMS5ENTER THE ELEMENTSICEBALL3901&*THE SORTED ELEMENTS LIST IS:&*0139BALLICEDO YOU WANT TO CONTINUE,IF YES PRESS Y OTHERWISE NyENTER THE NUMBER OF TERMS0INVALID INPUTDO YOU WANT TO CONTINUE,IF YES PRESS Y OTHERWISE Nn

Department of MCA, DSCE COBOLLaboratory9

Page 10: COBOL Program

COBOL PROGRAMMING LAB

Program:4B

Problem Statement:By using table handling concepts, write a program for Searching a numeric number using SEARCH verb.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID. 3B.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION. 77 N PIC S9(5).01 ARRAY. 03 A PIC S9(2) OCCURS 10 TIMES INDEXED BY I. 77 I1 PIC Z(3)9. 77 N1 PIC S9(5). 77 F PIC -Z(2).77 C PIC XX.PROCEDURE DIVISION.A-PARA. DISPLAY "ENTER THE SIZE OF THE ARRAY". ACCEPT N. IF N < 1 GO TO END-PARA. DISPLAY "ENTER THE ARRAY ELEMENTS". PERFORM READ-ARRAY VARYING I FROM 1 BY 1 UNTIL I > N. DISPLAY "ENTER THE NUMBER TO SEARCH". ACCEPT N1. PERFORM SEARCH-PARA. DISPLAY "DO YOU WISH TO CONTINUE(Y/N)?". ACCEPT C. IF C= 'N' OR 'n' STOP RUN. IF C= 'Y' OR 'y' GO TO A-PARA STOP RUN.

Department of MCA, DSCE COBOLLaboratory10

Page 11: COBOL Program

COBOL PROGRAMMING LAB

READ-ARRAY. ACCEPT A(I).

SEARCH-PARA. SET I TO 1. SEARCH A AT END DISPLAY "ELEMENT NOT FOUND" WHEN N1=A(I) MOVE I TO I1 MOVE A(I) TO F DISPLAY "ELEMENT " F " FOUND AT POSTION " I1.

END-PARA. DISPLAY "INVLAID INPUT". DISPLAY "DO YOU WISH TO CONTINUE(Y/N)?". ACCEPT C. IF C= 'N' OR 'n' STOP RUN. IF C= 'Y' OR 'y' GO TO A-PARA STOP RUN.

Output:

1) ENTER THE SIZE OF THE ARRAY4

Department of MCA, DSCE COBOLLaboratory11

Page 12: COBOL Program

COBOL PROGRAMMING LAB

ENTER THE ARRAY ELEMENTS-3409246ENTER THE NUMBER TO SEARCH-34ELEMENT -34 FOUND AT POSTION 1DO YOU WISH TO CONTINUE(Y/N)?yENTER THE SIZE OF THE ARRAY4ENTER THE ARRAY ELEMENTS9328072ENTER THE NUMBER TO SEARCH58ELEMENT NOT FOUNDDO YOU WISH TO CONTINUE(Y/N)?n

Program:5

Problem Statement:By using table handling concepts, write a program for matrix addition and matrix subtraction.

Source Code:

Department of MCA, DSCE COBOLLaboratory12

Page 13: COBOL Program

COBOL PROGRAMMING LAB

IDENTIFICATION DIVISION.PROGRAM-ID. MAT4.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.01 MAT. 02 ROW OCCURS 20 TIMES. 03 COLM OCCURS 20 TIMES. 04 A PIC S9(4). 04 B PIC S9(4). 04 SUM1 PIC S9(4). 04 DIFF1 PIC S9(4).01 T PIC -ZZZ9. 01 I PIC 9(2).01 J PIC 9(2). 01 P PIC S9(2). 01 Q PIC S9(2). 01 M PIC S9(2). 01 N PIC S9(2).PROCEDURE DIVISION.PARA-1. DISPLAY "ENTER ORDER OF MATRIX A:". ACCEPT M. ACCEPT N.

DISPLAY "ENTER ORDER OF MATRIX B:". ACCEPT P. ACCEPT Q.

IF M < 1 OR N < 1 OR P < 1 OR Q < 1 DISPLAY "INVLAID ORDER" GO TO PARA-1 ELSE IF M NOT= P OR N NOT= Q DISPLAY "ADDITION OR SUBTRACTION IS NOT POSSIBLE" GO TO PARA-1 ELSE DISPLAY "ENTER ELEMENTS FOR MATRIX A:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>M PERFORM VARYING J FROM 1 BY 1 UNTIL J>N ACCEPT A(I,J) COMPUTE SUM1(I,J) = 0 END-PERFORM END-PERFORM

Department of MCA, DSCE COBOLLaboratory13

Page 14: COBOL Program

COBOL PROGRAMMING LAB

DISPLAY "ENTER ELEMENTS FOR MATRIX B:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>P PERFORM VARYING J FROM 1 BY 1 UNTIL J>Q ACCEPT B(I,J) COMPUTE DIFF1(I,J) = 0 END-PERFORM END-PERFORM

DISPLAY "THE ELEMENTS OF MATRIX A:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>M PERFORM VARYING J FROM 1 BY 1 UNTIL J>N MOVE A(I,J) TO T DISPLAY T SPACE SPACE WITH NO ADVANCING END-PERFORM DISPLAY " " END-PERFORM

DISPLAY "THE ELEMENTS OF MATRIX B:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>P PERFORM VARYING J FROM 1 BY 1 UNTIL J>Q MOVE B(I,J) TO T DISPLAY T SPACE SPACE WITH NO ADVANCING END-PERFORM DISPLAY " " END-PERFORM PERFORM VARYING I FROM 1 BY 1 UNTIL I>M PERFORM VARYING J FROM 1 BY 1 UNTIL J>Q COMPUTE SUM1(I,J) = A(I,J) + B(I,J) COMPUTE DIFF1(I,J) = A(I,J) - B(I,J) END-PERFORM END-PERFORM

DISPLAY "ADDITION MATRIX IS:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>M PERFORM VARYING J FROM 1 BY 1 UNTIL J>N MOVE SUM1(I,J) TO T DISPLAY T SPACE SPACE WITH NO ADVANCING END-PERFORM DISPLAY " " END-PERFORM

Department of MCA, DSCE COBOLLaboratory14

Page 15: COBOL Program

COBOL PROGRAMMING LAB

DISPLAY "DIFFERENCE MATRIX IS:" PERFORM VARYING I FROM 1 BY 1 UNTIL I>M PERFORM VARYING J FROM 1 BY 1 UNTIL J>N MOVE DIFF1(I,J) TO T DISPLAY T SPACE SPACE WITH NO ADVANCING END-PERFORM DISPLAY " " END-PERFORM STOP RUN.

Output:

ENTER ORDER OF MATRIX A:0-3ENTER ORDER OF MATRIX B:4-5INVLAID ORDER

ENTER ORDER OF MATRIX A:32ENTER ORDER OF MATRIX B:23ADDITION OR SUBTRACTION IS NOT POSSIBLEENTER ORDER OF MATRIX A:33

Department of MCA, DSCE COBOLLaboratory15

Page 16: COBOL Program

COBOL PROGRAMMING LAB

ENTER ORDER OF MATRIX B:33ENTER ELEMENTS FOR MATRIX A:920-257336287-477983ENTER ELEMENTS FOR MATRIX B:26 92 26 0 -724 72 72 89 27

THE ELEMENTS OF MATRIX A: 92 0 - 25 73 36 287- 47 79 83

THE ELEMENTS OF MATRIX B: 26 92 260 - 724 72 72 89 27

ADDITION MATRIX IS: 118 92 173 - 688 359 25 168 110

DIFFERENCE MATRIX IS:66 - 92 - 51 73 760 215- 119 - 10 56

Department of MCA, DSCE COBOLLaboratory16

Page 17: COBOL Program

COBOL PROGRAMMING LAB

Program:6

Problem Statement:By using table handling concepts, write a program for matrix multiplication.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID.MUL.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.01 MATRIX1. 02 A1 OCCURS 10 TIMES. 03 A PIC S9(3) OCCURS 10 TIMES.01 MATRIX2. 02 B1 OCCURS 10 TIMES. 03 B PIC S9(3) OCCURS 10 TIMES.01 MATRIX3. 02 C1 OCCURS 10 TIMES. 03 C PIC S9(3) OCCURS 10 TIMES.01 MATRIX4. 02 D1 OCCURS 10 TIMES. 03 D PIC -Z(3)9 OCCURS 10 TIMES. 77 I PIC 9.77 J PIC 9.77 K PIC 9.77 M PIC S99.

Department of MCA, DSCE COBOLLaboratory17

Page 18: COBOL Program

COBOL PROGRAMMING LAB

77 N PIC S99.77 P PIC S99.77 Q PIC S99.77 LIN PIC 9(2).77 COLM PIC 9(2).PROCEDURE DIVISION.MAINPARA-1. DISPLAY " ENTER THE ORDER OF MATRIX 1:". ACCEPT M. ACCEPT N.

DISPLAY " ENTER THE ORDER OF MATRIX 2:". ACCEPT P. ACCEPT Q.

IF N IS LESS THAN 1 OR M IS LESS THAN 1 OR Q IS LESS THAN 1 OR P IS LESS THAN 1

DISPLAY "INVALID ORDER" PERFORM MAINPARA-1

ELSE IF N NOT = P DISPLAY " MULTIPLICATION CANNOT BE PERFORMED" PERFORM MAINPARA-1 ELSE DISPLAY " ENTER THE ELEMENTS OF MATRIX 1 " PERFORM ACCEPT-PARA1 VARYING I FROM 1 BY 1 UNTIL I > M AFTER J FROM 1 BY 1 UNTIL J > N

DISPLAY " ENTER THE ELEMENTS OF MATRIX 2" PERFORM ACCEPT-PARA2 VARYING I FROM 1 BY 1 UNTIL I > P AFTER J FROM 1 BY 1 UNTIL J > Q

DISPLAY(21 10) " MATRIX 1 ".MOVE 22 TO LIN.MOVE 5 TO COLM. PERFORM DISPLAY-PARA1 VARYING I FROM 1 BY 1 UNTIL I > MAFTER J FROM 1 BY 1 UNTIL J > N.

DISPLAY(21 35) " MATRIX 2 ".MOVE 22 TO LIN.MOVE 30 TO COLM. PERFORM DISPLAY-PARA2 VARYING I FROM 1 BY 1 UNTIL I > PAFTER J FROM 1 BY 1 UNTIL J > Q.

Department of MCA, DSCE COBOLLaboratory18

Page 19: COBOL Program

COBOL PROGRAMMING LAB

PERFORM MUL-PARA VARYING I FROM 1 BY 1 UNTIL I > MAFTER J FROM 1 BY 1 UNTIL J > Q.DISPLAY(21 50) " RESULTANT MATRIX ".MOVE 22 TO LIN.MOVE 50 TO COLM.

PERFORM MUL-DISPLAY VARYING I FROM 1 BY 1 UNTIL I > MAFTER J FROM 1 BY 1 UNTIL J > Q. STOP RUN.

ACCEPT-PARA1. ACCEPT A(I J).ACCEPT-PARA2. ACCEPT B(I J).

DISPLAY-PARA1. MOVE A(I J) TO D(I J).DISPLAY(LIN COLM) D(I J). ADD 5 TO COLM.IF(J = N) ADD 1 TO LINMOVE 5 TO COLM.

DISPLAY-PARA2. MOVE B(I J) TO D(I J).DISPLAY(LIN COLM) D(I J). ADD 5 TO COLM.IF(J = Q) ADD 1 TO LINMOVE 30 TO COLM.

MUL-PARA. MOVE 0 TO C(I J). PERFORM MUL-PARA1 VARYING K FROM 1 BY 1 UNTIL K > N.

MUL-PARA1. COMPUTE C(I,J) = C(I,J) + (( A(I,K) * B(K,J)).

MUL-DISPLAY. MOVE C(I J) TO D(I J).DISPLAY( LIN COLM) D(I J). ADD 5 TO COLM.

Department of MCA, DSCE COBOLLaboratory19

Page 20: COBOL Program

COBOL PROGRAMMING LAB

IF(J = M) ADD 1 TO LINMOVE 50 TO COLM.

Output:

ENTER THE ORDER OF MATRIX 1:9-5 ENTER THE ORDER OF MATRIX 2:03INVALID ORDER

ENTER THE ORDER OF MATRIX 1:32 ENTER THE ORDER OF MATRIX 2:32 MULTIPLICATION CANNOT BE PERFORMED

ENTER THE ORDER OF MATRIX 1:33 ENTER THE ORDER OF MATRIX 2:33 ENTER THE ELEMENTS OF MATRIX 1936-2507236488195

ENTER THE ELEMENTS OF MATRIX 2

Department of MCA, DSCE COBOLLaboratory20

Page 21: COBOL Program

COBOL PROGRAMMING LAB

46826-89516432892

MATRIX 1 MATRIX 2 RESULTANT MATRIX 9 36 - 25 46 82 6 -949 -542 -6700 72 36 - 8 95 16 972 848 464 48 81 95 43 28 92 645 291 324

Program:7A

Problem Statement:Write a program to sort records in the file using SORT verb.

Source Code:IDENTIFICATION DIVISION.PROGRAM-ID.6A.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL. SELECT SOL ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT SOR ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WORKFILE ASSIGN TO DISK.

DATA DIVISION.

Department of MCA, DSCE COBOLLaboratory21

Page 22: COBOL Program

COBOL PROGRAMMING LAB

FILE SECTION. FD SOL LABEL RECORDS ARE STANDRAD VALUE OF FILE-ID IS "SOL.DAT" DATA RECORD IS SO-REC. 01 SO-REC. 02 NAME PIC X(10).02 REGNO PIC 9(10).

FD SOR LABEL RECORDS ARE STANDRAD VALUE OF FILE-ID IS "SOR.DAT" DATA RECORD IS SORTE.01 SORTE. 02 NAME PIC X(10).02 REGNO PIC 9(10).

SD WORKFILE01 W-REC. 02 NAME1 PIC X(10).02 REGNO1 PIC 9(10).PROCEDURE DIVISION.MAIN. SORT WORKFILE ON ASCENDINGKEY NAME1 USING SOL GIVING SOR. STOP RUN.

Output:

C:\Cobol>TYPE SOL.DATMANJU IP09MCA32RAGHU IP09MCA70ROHIT IP09MCA72PRAVEEN IP09MCA69AMBRISH IP09MCA05RAJA IP09MCA76

C:\Cobol>TYPE SOR.DAT

AMBRISHIP09MCA05MANJU IP09MCA32PRAVEENIP09MCA69RAGHU IP09MCA70

Department of MCA, DSCE COBOLLaboratory22

Page 23: COBOL Program

COBOL PROGRAMMING LAB

RAJA IP09MCA76ROHIT IP09MCA72

Program:7B

Problem Statement:Write a program to merge files using MERGE verb.

Source Code:

IDENTIFICATION DIVISION.PROGRAM-ID.6B.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL. SELECT MYFILE1 ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT MYFILE2 ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT OFILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WFILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL.DATA DIVISION. FILE SECTION. FD MYFILE1 LABEL RECORDS ARE STANDARD VALUE OF FILE-ID "FILE1.DAT" DATA RECORD IS AREC.01 AREC. 02 NAME PIC X(10).02 REG PIC 9(10). FD MYFILE2 VALUE OF FILE-ID IS "FILE2.DAT" DATA RECORD IS BREC.01 BREC. 02 NAME PIC X(10).02 REG PIC 9(10). FD OFILE VALUE OF FILE-ID IS "FILE3.DAT" DATA RECORD IS OREC.

Department of MCA, DSCE COBOLLaboratory23

Page 24: COBOL Program

COBOL PROGRAMMING LAB

01 OREC. 02 NAME PIC X(10).02 REG PIC 9(10).

SD WFILE01 WREC. 02 WNAME PIC X(10).02 WREG PIC 9(10).

PROCEDURE DIVISION.MAIN-PARA. MERGE WFILE ON ASCENDING KEY WREG USING MYFILE1,MYFILE2 GIVING OFILE. STOP RUN.

Output:

C:\Cobol>TYPE FILE1.DATMANJU IP09MCA32RAGHU IP09MCA70ROHIT IP09MCA72

C:\Cobol>TYPE FILE2.DATPRAVEEN IP09MCA69AMBRISH IP09MCA05RAJA IP09MCA76

C:\Cobol>TYPE FILE3.DATAMBRISHIP09MCA05MANJU IP09MCA32PRAVEENIP09MCA69RAGHU IP09MCA70RAJA IP09MCA76ROHIT IP09MCA72

Department of MCA, DSCE COBOLLaboratory24

Page 25: COBOL Program

COBOL PROGRAMMING LAB

Program:8

Problem Statement:Write a program to read employee file as sequential file and calculate Gross Pay and Net pay for employees in the organization.

Source Code:

IDENTIFICATION DIVISION. PROGRAM-ID. EMP. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMP-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD EMP-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "EMP.DAT". 01 EMP-REC. 02 EMP-ID PIC X(15). 02 NAME PIC X(15). 02 BS PIC 9(5). 02 DA PIC 9(5). 02 HRA PIC 9(5). 02 TA PIC 9(5). 02 TAX PIC 9(5). 02 PFND PIC 9(5). WORKING-STORAGE SECTION. 01 GP PIC 9(7). 01 NP PIC 9(7). 01 OPTION PIC X VALUE IS "Y". 01 EGP PIC Z(6)9. 01 ENP PIC Z(6)9. PROCEDURE DIVISION. MAIN-PARA. OPEN OUTPUT EMP-FILE. PERFORM WRITE-PARA UNTIL OPTION NOT = "Y". CLOSE EMP-FILE.

Department of MCA, DSCE COBOLLaboratory25

Page 26: COBOL Program

COBOL PROGRAMMING LAB

OPEN INPUT EMP-FILE. DISPLAY "------------------------------------------". DISPLAY "EMP-ID EMP-NAME BASIC PAY GROSS PAY NET PAY". DISPLAY "--------------------------------------------". PERFORM READ-PARA. STOP RUN. WRITE-PARA. DISPLAY "ENTER EMPLOYEE DETAILS". DISPLAY "----------------------------------------". DISPLAY "ENTER EMP-ID". ACCEPT EMP-ID OF EMP-REC. DISPLAY "ENTER EMP-NAME". ACCEPT NAME OF EMP-REC. DISPLAY "ENTER BASIC PAY". ACCEPT BS OF EMP-REC. COMPUTE TA = 0.10 * BS. COMPUTE DA = 0.15 * BS. COMPUTE HRA = 0.10 * BS. COMPUTE TAX = 0.10 * BS. COMPUTE PFND = 0.10 * BS. WRITE EMP-REC. DISPLAY "PRESS Y/N TO ADD MORE EMPLOYEE RECORDS". ACCEPT OPTION. IF OPTION = "Y" MOVE "Y" TO OPTION. READ-PARA. READ EMP-FILE RECORDS AT END GO TO CLOSE-PARA. COMPUTE GP = BS + DA + TA + HRA. COMPUTE NP = GP - ( TAX + PFND ). MOVE GP TO EGP. MOVE NP TO ENP. DISPLAY EMP-ID NAME BS EGP ENP. GO TO READ-PARA. CLOSE-PARA. DISPLAY "------------------------------------". CLOSE EMP-FILE.

Output:

ENTER THE EMPLOYEE DETAILS===========================================================ENTER EMPLOYEE-ID:

Department of MCA, DSCE COBOLLaboratory26

Page 27: COBOL Program

COBOL PROGRAMMING LAB

1P109MCA68ENTER EMPLOYEE'S NAME:RAGHUVEERENTER EMPLOYEE'S BASIC PAY:80000PRESS Y/y TO ADD MORE EMPLOYEE RECORDS:YENTER THE EMPLOYEE DETAILS===========================================================ENTER EMPLOYEE-ID:1PI09MCA69ENTER EMPLOYEE'S NAME:VIKASENTER EMPLOYEE'S BASIC PAY:75000PRESS Y/y TO ADD MORE EMPLOYEE RECORDS:N----------------------------------------------------------------------------------------------------EMP-ID EMP-NAME BASIC-PAY GROSS-PAY NET-PAY----------------------------------------------------------------------------------------------------1PI09MCA68 RAGHUVEER 80000 108000 920001PI09MCA69 VIKAS 75000 101250 86250

Program:9

Problem Statement:Write a program to store student’s details with results in a file with sequential file handling techniques.Source Code:

IDENTIFICATION DIVISION. PROGRAM-ID. 8A. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL SELECT STFILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STFILE LABEL RECORDS ARE STANDARD

Department of MCA, DSCE COBOLLaboratory27

Page 28: COBOL Program

COBOL PROGRAMMING LAB

VALUE OF FILE-ID IS "STUD.DAT" DATA RECORD IS AREC. 01 AREC. 02 REGNO PIC 9(3). 02 NAME PIC A(15). 02 SUB1 PIC 9(3). 02 SUB2 PIC 9(3). 02 SUB3 PIC 9(3). 02 SUB4 PIC 9(3). 02 SUB5 PIC 9(3). 02 TOTAL PIC 9(5). 02 PRCNT PIC 999.99. 02 REMARKS PIC A(10). WORKING-STORAGE SECTION. 01 EREGNO PIC 9(3). 01 ENAME PIC A(10). 01 ESUB1 PIC Z(3). 01 ESUB2 PIC Z(3). 01 ESUB3 PIC Z(3). 01 ESUB4 PIC Z(3). 01 ESUB5 PIC Z(3). 01 MAX PIC 9(3) VALUE 500. 01 ANS1 PIC X VALUE "Y". PROCEDURE DIVISION. MAIN-PARA. OPEN OUTPUT STFILE. PERFORM ACC-PARA UNTIL ANS1 NOT = "Y". CLOSE STFILE. MOVE "Y" TO ANS1. OPEN INPUT STFILE. DISPLAY "---------STUDENT RECORD---------". PERFORM READ-PARA THRU DISP-PARA UNTIL ANS1 = "N". CLOSE STFILE. ACC-PARA. DISPLAY "ENTER REG NO:". ACCEPT REGNO. DISPLAY "ENTER NAME OF THE STUDNT". ACCEPT NAME. DISPLAY "ENTER MARKS IN SUB1". ACCEPT SUB1. DISPLAY "ENTER MARKS IN SUB2". ACCEPT SUB2. DISPLAY "ENTER MARKS IN SUB3".

Department of MCA, DSCE COBOLLaboratory28

Page 29: COBOL Program

COBOL PROGRAMMING LAB

ACCEPT SUB3. DISPLAY "ENTER MARKS IN SUB4" . ACCEPT SUB4. DISPLAY "ENTER MARKS IN SUB5" . ACCEPT SUB5. COMPUTE TOTAL = SUB1 + SUB2 + SUB3 + SUB4 + SUB5. IF( SUB1 < 35 OR SUB2 < 35 OR SUB3 < 35 OR SUB4 < 35 OR SUB5 < 35 ) MOVE "FAIL" TO REMARKS ELSE IF TOTAL > 200 AND TOTAL < 251 MOVE "THIRD" TO REMARKS ELSE IF TOTAL > 250 AND TOTAL < 301 MOVE "SECOND" TO REMARKS ELSE IF TOTAL > 300 MOVE "FIRST" TO REMARKS. COMPUTE PRCNT = TOTAL / MAX * 100. WRITE AREC. DISPLAY "ANY MORE RECORD (Y/N)?". ACCEPT ANS1. READ-PARA. READ STFILE AT END MOVE "N" TO ANS1. IF ANS1 = "N" STOP RUN. MOVE-PARA. MOVE REGNO TO EREGNO. MOVE NAME TO ENAME. MOVE SUB1 TO ESUB1. MOVE SUB2 TO ESUB2. MOVE SUB3 TO ESUB3. MOVE SUB4 TO ESUB4. MOVE SUB5 TO ESUB5. DISP-PARA. DISPLAY "REGNO:" EREGNO. DISPLAY "NAME OF THE STUDENT:" ENAME. DISPLAY "SUB1:" ESUB1. DISPLAY "SUB2:" ESUB2. DISPLAY "SUB3:" ESUB3. DISPLAY "SUB4:" ESUB4. DISPLAY "SUB5:" ESUB5. DISPLAY "TOTAL:" TOTAL. DISPLAY "PERCENT:" PRCNT. DISPLAY "REMARKS:" REMARKS.

Department of MCA, DSCE COBOLLaboratory29

Page 30: COBOL Program

COBOL PROGRAMMING LAB

DISPLAY " ".

Output:

ENTER REG NO: 1ENTER NAME: ABHISHEKENTER MARKS IN SUB1: 34ENTER MARKS IN SUB2: 78ENTER MARKS IN SUB3: 87ENTER MARKS IN SUB4: 95ENTER MARKS IN SUB5: 70ANY MORE REC(Y/N) ?YENTER REG NO: 2ENTER NAME: RAGHUVEERENTER MARKS IN SUB1: 98ENTER MARKS IN SUB2: 68ENTER MARKS IN SUB3: 86ENTER MARKS IN SUB4: 84ENTER MARKS IN SUB5: 92ANY MORE REC(Y/N) ?N

-------STUDENT RECORD------REGISTER NUMBER IS : 001NAME OF THE STUDENT IS :ABHISHEKMARKS IN SUB1 IS : 34MARKS IN SUB2 IS : 78MARKS IN SUB3 IS : 87MARKS IN SUB4 IS : 95MARKS IN SUB5 IS : 70TOTAL MARKS IS : 364PERCENTAGE IS : 72.80REMARKS : FAIL

REGISTER NUMBER IS : 002NAME OF THE STUDENT IS : RAGHUVEERMARKS IN SUB1 IS : 98MARKS IN SUB2 IS : 68MARKS IN SUB3 IS : 86MARKS IN SUB4 IS : 84MARKS IN SUB5 IS : 92TOTAL MARKS IS : 428

Department of MCA, DSCE COBOLLaboratory30

Page 31: COBOL Program

COBOL PROGRAMMING LAB

PERCENTAGE IS : 85.60REMARKS : FIRST

Program:10

Problem Statement:Using the index file organization,a)write a program to store employee details.b)To delete a record in the index file.c)To search a record in the index file.

Source Code:IDENTIFICATION DIVISION. PROGRAM-ID. PRO12. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMPINFILE ASSIGN TO DISK ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS EMP-ID. DATA DIVISION. FILE SECTION. FD EMPINFILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "EMP12.DAT" DATA RECORDS ARE EMPREC. 01 EMPREC. 02 EMP-ID PIC 9(3). 02 EMP-NAME PIC A(10). 02 EMP-BASIC PIC 9(5). WORKING-STORAGE SECTION. 01 I PIC 9 VALUE 1. 01 J PIC 9 VALUE 1. 01 EXIS PIC 9 VALUE 1. 01 FLAG PIC 9. 01 C PIC 9 VALUE 1. 01 CH1 PIC 9 VALUE 1. 01 EOF PIC 9 VALUE 0.

Department of MCA, DSCE COBOLLaboratory31

Page 32: COBOL Program

COBOL PROGRAMMING LAB

PROCEDURE DIVISION. MAIN. DISPLAY "-------------------------------". DISPLAY "SEARCH & DELETE THE RECORDS IN THE INDEX FILE". DISPLAY "----------------------------------------". MAIN-PARA. OPEN OUTPUT EMPINFILE. PERFORM D-PARA UNTIL C=5. D-PARA. DISPLAY " " DISPLAY "1. INSERT 2. SEARCH 3.DELETE 4.DISPLAY 5.EXIT" DISPLAY "ENTER YOUR CHOICE: ". ACCEPT C.

IF C=1 PERFORM WRITE-PARA ELSE IF C=2 CLOSE EMPINFILE OPEN I-O EMPINFILE PERFORM UPDATE-PARA GO TO CHOICE-PARA ELSE IF C=3 CLOSE EMPINFILE OPEN I-O EMPINFILE PERFORM DEL-PARA GO TO CHOICE-PARA ELSE IF C=4 CLOSE EMPINFILE OPEN INPUT EMPINFILE MOVE 0 TO EOF DISPLAY "--------------------------" DISPLAY "EMP-ID NAME SALARY" DISPLAY "--------------------------" PERFORM DISPLAY-PARA UNTIL EOF=1 ELSE IF C=5 GO TO EXIT-PARA ELSE DISPLAY "WRONG CHOICE!!!".

CHOICE-PARA. PERFORM NEXT-PARA UNTIL CH1=5.

Department of MCA, DSCE COBOLLaboratory32

Page 33: COBOL Program

COBOL PROGRAMMING LAB

NEXT-PARA. DISPLAY " " DISPLAY "2.SEARCH 3. DELETE 4. DISPLAY 5. EXIT" DISPLAY "ENTER YOUR CHOICE: ". ACCEPT CH1.

IF CH1=2 CLOSE EMPINFILE OPEN I-O EMPINFILE PERFORM UPDATE-PARA ELSE IF CH1=3 CLOSE EMPINFILE OPEN I-O EMPINFILE PERFORM DEL-PARA

ELSE IF CH1=4 MOVE 0 TO EOF CLOSE EMPINFILE OPEN INPUT EMPINFILE DISPLAY "--------------------------" DISPLAY "EMP ID NAME SALARY" DISPLAY "---------------------------" PERFORM DISPLAY-PARA UNTIL EOF=1 ELSE IF CH1=5 GO TO EXIT-PARA ELSE DISPLAY "INVALID INPUT!!!".

DISPLAY-PARA. READ EMPINFILE NEXT RECORD AT END MOVE 1 TO EOF. IF EOF=0 DISPLAY EMP-ID " " EMP-NAME " " EMP-BASIC.

WRITE-PARA. DISPLAY " ". DISPLAY "ENTER EMPLOYEE ID: ". ACCEPT EMP-ID. DISPLAY "ENTER EMPLOYEE NAME: ". ACCEPT EMP-NAME. DISPLAY "ENTER BASIC SALARY: ". ACCEPT EMP-BASIC. WRITE EMPREC INVALID KEY DISPLAY " DUPLICATE ENTRY ".

Department of MCA, DSCE COBOLLaboratory33

Page 34: COBOL Program

COBOL PROGRAMMING LAB

UPDATE-PARA. MOVE 1 TO EXIS. DISPLAY "ENTER THE EMP ID TO SEARCH: ". ACCEPT EMP-ID. READ EMPINFILE RECORD KEY IS EMP-ID INVALID KEY MOVE 0 TO EXIS. IF EXIS = 0 DISPLAY "RECORD IS NOT EXISTS" ELSE DISPLAY "EMPLOYEE ID : " EMP-ID DISPLAY "EMPLOYEE NAME : " EMP-NAME DISPLAY "BASIC SALARY : " EMP-BASIC.

DEL-PARA. MOVE 1 TO EXIS. DISPLAY "ENTER EMP ID TO DELETE: ". ACCEPT EMP-ID. DELETE EMPINFILE INVALID KEY MOVE 0 TO EXIS. IF EXIS = 1 DISPLAY "RECORD DELETED" ELSE DISPLAY "RECORD NOT FOUND".

EXIT-PARA. CLOSE EMPINFILE.

STOP RUN.

Output:------------------------------------------------------------------------------ SEARCH & DELETE THE RECORDS IN THE INDEX FILE------------------------------------------------------------------------------

1. INSERT 2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 1

ENTER EMPLOYEE ID: 12ENTER EMPLOYEE NAME:RAGHUVEERENTER BASIC SALARY: 25000

1. INSERT 2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 1

Department of MCA, DSCE COBOLLaboratory34

Page 35: COBOL Program

COBOL PROGRAMMING LAB

ENTER EMPLOYEE ID: 43ENTER EMPLOYEE NAME: SHARATHENTER BASIC SALARY: 20000

1. INSERT 2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 2ENTER THE EMP ID TO SEARCH: 12EMPLOYEE ID : 012EMPLOYEE NAME : RAGHUVEERBASIC SALARY : 25000

2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 4---------------------------------------EMP ID NAME SALARY---------------------------------------012 RAGHUVEER 25000043 SHARATH 20000

2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 3ENTER EMP ID TO DELETE: 43RECORD DELETED: 43

2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 4

---------------------------------------EMP ID NAME SALARY---------------------------------------012 RAGHUVEER 25000

2. SEARCH 3. DELETE 4. DISPLAY 5. EXITENTER YOUR CHOICE: 5

Program:11

Problem Statement:Using the index file organization, write a program to update employee salary (increase DA of 3%)

Source Code:

Department of MCA, DSCE COBOLLaboratory35

Page 36: COBOL Program

COBOL PROGRAMMING LAB

IDENTIFICATION DIVISION. PROGRAM-ID. INDEXD11. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMP-FILE ASSIGN TO DISK ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS EMP-NO.

DATA DIVISION. FILE SECTION. FD EMP-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "EMP.TXT". 01 EMP-REC. 02 EMP-NO PIC X(8). 02 EMP-NAME PIC X(10).

02 EMP-DA PIC 9(5)V99. 02 EMP-BASIC PIC 9(5)V99. 02 EMP-DAP PIC 9(2)V99. 02 EMP-SALARY PIC 9(5)V99.

WORKING-STORAGE SECTION. 01 DA PIC Z(4)9.99. 01 SALARY PIC Z(4)9.99. 01 BASIC PIC Z(4)9.99. 01 DAP PIC Z9.99.

77 CHOICE1 PIC A VALUE IS "Y". 77 CHOICE2 PIC A VALUE IS "Y".

PROCEDURE DIVISION. MAIN. OPEN OUTPUT EMP-FILE. PERFORM CREATE-PARA UNTIL CHOICE1 = "N" OR CHOICE1 = "n". CLOSE EMP-FILE.

OPEN I-O EMP-FILE.

Department of MCA, DSCE COBOLLaboratory36

Page 37: COBOL Program

COBOL PROGRAMMING LAB

PERFORM PROCESS-PARA UNTIL CHOICE2 = "N" OR CHOICE2 = "n". CLOSE EMP-FILE. STOP RUN.

CREATE-PARA. DISPLAY "UPDATE EMPLOYEE SALARY(INDEX FILE ORGANIZATION)". DISPLAY "_____________________________________________". DISPLAY "ENTER EMPLOYEE ID: ". ACCEPT EMP-NO. DISPLAY "ENTER THE NAME OF THE EMPLOYEE: ". ACCEPT EMP-NAME. DISPLAY "ENTER THE BASIC SALARY OF THE EMPLOYEE: ". ACCEPT EMP-BASIC. DISPLAY "ENTER THE PERCENTAGE(%) OF DA". ACCEPT EMP-DAP.

COMPUTE EMP-DA = EMP-BASIC * ( EMP-DAP / 100 ). COMPUTE EMP-SALARY = EMP-BASIC + EMP-DA.

WRITE EMP-REC INVALID KEY DISPLAY "INVALID KEY".

DISPLAY " ENTER MORE RECORDS ? (Y/N)". ACCEPT CHOICE1.

PROCESS-PARA. DISPLAY "ENTER EMPLOYEE ID, OF THE RECORD TO BE MODIFIED". ACCEPT EMP-NO.

READ EMP-FILE INVALID KEY GO TO NOT-FOUND.

MOVE EMP-DA TO DA. MOVE EMP-BASIC TO BASIC. MOVE EMP-SALARY TO SALARY. MOVE EMP-DAP TO DAP.

DISPLAY "=============================================". DISPLAY "BEFORE INCREMENTING".

Department of MCA, DSCE COBOLLaboratory37

Page 38: COBOL Program

COBOL PROGRAMMING LAB

DISPLAY "=============================================". DISPLAY " NO NAME BASIC DA% EDA SALARY". DISPLAY " ---------------------------------------------". DISPLAY EMP-NO EMP-NAME BASIC DAP DA SALARY. DISPLAY "_____________________________________________". DISPLAY " ".

COMPUTE EMP-DAP = EMP-DAP + 3. COMPUTE EMP-DA = EMP-BASIC * ( EMP-DAP / 100 ). COMPUTE EMP-SALARY = EMP-BASIC + EMP-DA. REWRITE EMP-REC.

MOVE EMP-DA TO DA. MOVE EMP-SALARY TO SALARY. MOVE EMP-DAP TO DAP.

DISPLAY "=======================================". DISPLAY "AFTER INCREMENTING". DISPLAY "==========================================". DISPLAY "NO NAME BASIC DA% EDA SALARY". DISPLAY "------------------------------------------". DISPLAY EMP-NO EMP-NAME BASIC DAP DA SALARY. DISPLAY "___________________________________________". DISPLAY "DO U WANT TO MODIFY MORE RECORDS ? (Y/N) :". ACCEPT CHOICE2. NOT-FOUND. DISPLAY "EMPLOYEE RECORD DOESN'T EXIST". STOP RUN.

Output:

UPDATE EMPLOYEE SALARY(INDEX FILE ORGANIZATION)_____________________________________________ENTER EMPLOYEE ID:1ENTER THE NAME OF THE EMPLOYEE:RAGHUVEERENTER THE BASIC SALARY OF THE EMPLOYEE:1000ENTER THE PERCENTAGE(%) OF DA

Department of MCA, DSCE COBOLLaboratory38

Page 39: COBOL Program

COBOL PROGRAMMING LAB

2 ENTER MORE RECORDS ? (Y/N)YUPDATE EMPLOYEE SALARY(INDEX FILE ORGANIZATION)_____________________________________________ENTER EMPLOYEE ID:1ENTER THE NAME OF THE EMPLOYEE:ROSHANENTER THE BASIC SALARY OF THE EMPLOYEE:20000ENTER THE PERCENTAGE(%) OF DA2INVALID KEYENTER MORE RECORDS ? (Y/N)YUPDATE EMPLOYEE SALARY(INDEX FILE ORGANIZATION)_____________________________________________ENTER EMPLOYEE ID:2ENTER THE NAME OF THE EMPLOYEE:ANILENTER THE BASIC SALARY OF THE EMPLOYEE:2000ENTER THE PERCENTAGE(%) OF DA2 ENTER MORE RECORDS ? (Y/N)N

ENTER EMPLOYEE ID, OF THE RECORD TO BE MODIFIED1=========================================================BEFORE INCREMENTING=========================================================NO NAME BASIC DA% EDA SALARY-------------------------------------------------------------------------------------------------1 RAGHUVEER 1000.00 2.00 20.00 1020.00________________________________________________________________

=========================================================AFTER INCREMENTING=========================================================NO NAME BASIC DA% EDA SALARY

Department of MCA, DSCE COBOLLaboratory39

Page 40: COBOL Program

COBOL PROGRAMMING LAB

-------------------------------------------------------------------------------------------------1 RAGHUVEER 1000.00 5.00 50.00 1050.00________________________________________________________________DO U WANT TO MODIFY MORE RECORDS ? (Y/N) :N

Program:12

Problem Statement:Write a program to calculate Net Pay and Gross Pay by reading relative file containing records emp-no, emp-name, basic-pay. Store the output in relative file.

Source Code:

IDENTIFICATION DIVISION. PROGRAM-ID. 13P. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMP-FILE ASSIGN TO DISK ORGANIZATION IS RELATIVE RELATIVE KEY IS POS ACCESS MODE DYNAMIC. DATA DIVISION. FILE SECTION. FD EMP-FILE

Department of MCA, DSCE COBOLLaboratory40

Page 41: COBOL Program

COBOL PROGRAMMING LAB

LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "EMP13.TXT" DATA RECORD IS EMPREC. 01 EMPREC. 02 EMP-NO PIC 9(6). 02 EMP-NAME PIC X(15). 02 EMP-BASIC PIC 9(5). 02 GPAY PIC 9(6). 02 NETPAY PIC 9(6). WORKING-STORAGE SECTION. 01 POS PIC S9(3). 01 EMP-DA PIC 9(4). 01 EMP-HRA PIC 9(4). 01 EMP-TAX PIC 9(4). 01 EBASIC PIC Z(5). 01 ENO PIC Z(6). 01 EGPAY PIC Z(6). 01 ENETPAY PIC Z(6). 01 CH1 PIC X. PROCEDURE DIVISION. MAIN-PARA. OPEN OUTPUT EMP-FILE. PERFORM READ-PARA UNTIL CH1 = 'N' OR 'n'. CLOSE EMP-FILE.

OPEN I-O EMP-FILE. PERFORM COMP-PARA. CLOSE EMP-FILE. STOP RUN.

READ-PARA. DISPLAY "ENTER RELATIVE POSITION(1-100)". ACCEPT POS.

IF ( POS< 1 OR POS > 100 ) DISPLAY "INVALID POSITION" GO TO READ-PARA. DISPLAY "ENTER EMPLOYEE NUMBER". ACCEPT EMP-NO. DISPLAY "ENTER EMPLOYEE NAME". ACCEPT EMP-NAME. DISPLAY "ENTNER EMPLOYEE BASIC SALARY". ACCEPT EMP-BASIC.

Department of MCA, DSCE COBOLLaboratory41

Page 42: COBOL Program

COBOL PROGRAMMING LAB

WRITE EMPREC INVALID KEY DISPLAY "RECORD ALREADY EXIST".

DISPLAY "DO YOU WANT TO ENTER MORE RECORDS(Y/N)?". ACCEPT CH1.

COMP-PARA. READ EMP-FILE NEXT AT END GO TO TITLE-PARA. COMPUTE EMP-DA = EMP-BASIC * 0.15. COMPUTE EMP-HRA = EMP-BASIC * 0.10. COMPUTE EMP-TAX = EMP-BASIC * 0.12. COMPUTE GPAY = EMP-BASIC + EMP-DA + EMP-HRA. COMPUTE NETPAY = GPAY - EMP-TAX.

REWRITE EMPREC. GO TO COMP-PARA.

TITLE-PARA. CLOSE EMP-FILE OPEN INPUT EMP-FILE. DISPLAY "=================================================". DISPLAY " EMPLOYEE INFORMATION". DISPLAY "=================================================". DISPLAY "EMP-NO EMP-NAME EMP-BASIC GROSSPAY NETPAY". DISPLAY "____________________________________________________". PERFORM DISP-PARA.

DISP-PARA. READ EMP-FILE NEXT AT END GO TO CLOSE-PARA.

MOVE EMP-NO TO ENO. MOVE EMP-BASIC TO EBASIC. MOVE GPAY TO EGPAY. MOVE NETPAY TO ENETPAY.

DISPLAY ENO " " EMP-NAME " " EBASIC " " EGPAY " " ENETPAY.

Department of MCA, DSCE COBOLLaboratory42

Page 43: COBOL Program

COBOL PROGRAMMING LAB

GO TO DISP-PARA.

CLOSE-PARA. DISPLAY "____________________________________________________". CLOSE EMP-FILE.

Output:

ENTER RELATIVE POSITION(1-100)4ENTER EMPLOYEE NUMBER12ENTER EMPLOYEE NAMERAGHUVEERENTNER EMPLOYEE BASIC SALARY25000DO YOU WANT TO ENTER MORE RECORDS(Y/N)?YENTER RELATIVE POSITION(1-100)2ENTER EMPLOYEE NUMBER23ENTER EMPLOYEE NAMEROHITENTNER EMPLOYEE BASIC SALARY20000DO YOU WANT TO ENTER MORE RECORDS(Y/N)?YENTER RELATIVE POSITION(1-100)4ENTER EMPLOYEE NUMBER25ENTER EMPLOYEE NAMEAMBRISHENTNER EMPLOYEE BASIC SALARY10000RECORD ALREADY EXISTDO YOU WANT TO ENTER MORE RECORDS(Y/N)?N==================================================== EMPLOYEE INFORMATION====================================================

Department of MCA, DSCE COBOLLaboratory43

Page 44: COBOL Program

COBOL PROGRAMMING LAB

EMP-NO EMP-NAME EMP-BASIC GROSSPAY NETPAY____________________________________________________ 23 ROHIT20000 25000 22600 12 RAGHUVEER 25000 31250 28250____________________________________________________

Program:13

Problem Statement:Write a program to find simple interest and compound interest using subroutine concept.

Main:IDENTIFICATION DIVISION. PROGRAM-ID. PRO13. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 P PIC 9(5). 77 T PIC 9(2). 77 R PIC 9(2)V99. 77 SI PIC 9(4)V99. 77 CI PIC 9(4)V99. 77 S PIC Z(3)9.99. 77 C PIC Z(3)9.99.

PROCEDURE DIVISION. MAIN-PARA. DISPLAY "ENTER THE PRINCIPLE:". ACCEPT P. DISPLAY "ENTER THE TIME:". ACCEPT T. DISPLAY "ENTER THE RATE:". ACCEPT R.

CALL "SUBPROG" USING P T R SI CI.

MOVE SI TO S. MOVE CI TO C.

Department of MCA, DSCE COBOLLaboratory44

Page 45: COBOL Program

COBOL PROGRAMMING LAB

DISPLAY "THE SIMPLE INTEREST IS:" S. DISPLAY "THE COMPOUND INTEREST IS:" C. STOP RUN.

Subroutine:

IDENTIFICATION DIVISION.PROGRAM-ID.SUBPROG.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.LINKAGE SECTION.01 P1 PIC 9(5).01 T1 PIC 9(2). 01 R1 PIC 9(2)V99. 01 SI PIC 9(4)V99. 01 CI PIC 9(4)V99. PROCEDURE DIVISION USING P1,T1,R1,SI,CI.MAIN-PARA. COMPUTE R1 = R1 / 100 . COMPUTE SI = P1 * T1 * R1. COMPUTE CI = P1 * ( ( 1 + R1 ) ** T1 ) - P1. EXIT PROGRAM.

Output:

ENTER THE PRINCIPLE:20000ENTER THE DURATION2ENTER THE RATE:12THE SIMPLE INTEREST IS:4800.00THE COMPOUND INTEREST IS:5088.00

Department of MCA, DSCE COBOLLaboratory45

Page 46: COBOL Program

COBOL PROGRAMMING LAB

Department of MCA, DSCE COBOLLaboratory46