Sie sind auf Seite 1von 92

COBOL Programming Laboratory

07MCA26

INDEX
N TITLE PAGE
O NO
INTRODUCTION OF COBOL 3–5
1 WRITE A PROGRAM FOR THE FOLLOWING: 6–7
1.1. Evaluate the following equation using COMPUTE Verb.
Z= (A-B)*C.
1.2. To Find the sum of individual digits in the given ‘n’ digit
Decimal Number.
2 WRITE A PROGRAM FOR THE FOLLOWING: 8– 10
2.1. Generate Odd and Even numbers between the given limits using
PERFORM statement.
2.2. Sorting Numeric Numbers.
3 BY USING TABLE HANDLING CONCEPTS, WRITE A PROGRAM FOR 11 – 14
3.1. Sorting Alphanumeric data.
3.2. Searching Numeric Number using SEARCH verb.
4 BY USING TABLE HANDLING CONCEPTS, WRITE A PROGRAM FOR MATRIX 15– 17
ADDITION AND MATRIX SUBTRACTION.
5 BY USING TABLE HANDLING CONCEPTS, WRITE A PROGRAM FOR MATRIX 18 – 20
MULTIPLICATION.
SEQUENTIAL FILE 21 - 22
SORTING AND MERGING 23
6 WRITE A PROGRAM FOR THE FOLLOWING: 24 – 35
6.1. To SORT records in the file using SORT verb.
6.2. To merge files using MERGE verb.
7 WRITE A PROGRAM TO READ EMPLOYEE FILE AS A SEQUENTIAL FILE AND 36 – 39
CALCULATE GROSS PAY AND NET PAY FOR EMPLOYEE IN THE
ORGANIZATION.
8 WRITE A PROGRAM TO STORE STUDENT DETAILS WITH RESULTS IN A FILE 40 – 44
WITH SEQUENTIAL FILE HANDLING TECHNIQUES.
9 WRITE A PROGRAM TO UPDATE A MASTER SEQUENTIAL FILE USING A 45– 50
SEQUENTIAL TRANSACTION FILE.
INDEX FILE 51 – 52
10 USING THE INDEX FILE ORGANIZATION, WRITE A PROGRAM TO STORE 53 – 60
EMPLOYEE DETAILS.
11 USING THE INDEX FILE ORGANIZATION, WRITE A PROGRAM TO UPDATE 61 – 64
THE EMPLOYEE SALARY (INCREASE DA BY 3%).
12 WRITE A PROGRAM FOR THE FOLLOWING: 65 – 73
12.1. To DELETE a Record in the INDEX file.
12.2. To SEARCH a Record in the INDEX file.
RELATIVE FILE 74 – 75

RYMEC ,Bellary . Dept. of MCA


Page 1
COBOL Programming Laboratory
07MCA26

13 WRITE A PROGRAM TO CALCULATE NET PAY AND GROSS PAY BY READING 76 – 81


RELATIVE FILE CONTAINING FIELDS EMP-NO, EMP-NAME, BASIC-
PAY.STORE THE OUTPUT IN RELATIVE FILE.
SUBROUTINES 82 – 84
14 WRITE A PROGRAM TO FIND SIMPLE INTEREST AND COMPOUND INTEREST 85 – 88
USING SUBROUTINE CONCEPT.

15 WRITE A PROGRAM TO GENERATE A SALES REPORT. 89 – 91

RYMEC ,Bellary . Dept. of MCA


Page 2
COBOL Programming Laboratory
07MCA26

Introduction to COBOL

COBOL is an acronym for Common Business Oriented


Language. This is used to solve business problems. COBOL was
developed in 1959 by the conference on Data Systems Languages
(CODASYL). The American National Standards Institute (ANSI)
was responsible for developing new COBOL standards.

Three ANSI standards for COBOL have been produced: in 1968,


1974 and 1985[COBOL-85].

Object-oriented COBOL is the fourth edition in the continuing


evolution of ANSI/ISO standard COBOL.

How to work with COBOL


C:\CD MCA
C:\MCA>PATH=C:\COBOL\
C:\MCA>NE TEST.COB (Or) C:\MCA>EDIT TEST.COB (To use
DOS Editor)
Here NE → Norton Editor
TEST → File Name
.COB→ COBOL File extension
Then type your program according to COBOL format.
For Compilation
C:\MCA>COBOL TEST.COB
Object filename [TEST.INT]:
Listing file name [NULL]: X

If any errors it shows then to correct the errors in the


program go to the COBOL program
C:\COBOL>NE TEST.COB
Then press F3 X
So the screen will be divided into two sections the below section
will be blank and it asks for the file name to be typed. So type the
listing filename i.e. X.LST.
By looking at the errors in the below section, you can easily
correct the errors on the top using line numbers of the program.

RYMEC ,Bellary . Dept. of MCA


Page 3
COBOL Programming Laboratory
07MCA26

To move the cursor from top section to below section and vice
versa you press F3 X.
To RUN the program
C:\MCA>RUNCOB TEST.COB
If you are working on file programs then you have to open
input-file and give data to it, and to see the result open the
output-file.

Before running the index program you have to type


C:\MCA>ISAM
ISAM → Indexed Sequential Access Mode.

File commands in NE (press F! for more help)

F3 S → SAVE
F3 E → SAVE and EXIT
F3 X → EXCHANGE WINDOWS
Coding format for COBOL Programs

COBOL Programs are written in coding sheet, which use a


standard format. There are 80 character positions on each line of
the coding sheet and these positions are grouped into the
following five fields:

Position Field
1–6 Sequence
7 Indicator (e.g.:- / for comment line)
8 – 11 Area A
12 – 72 Area B
73 – 80 Identification.

Structure of a COBOL Program


IDENTIFICATION DIVISION.
PROGRAM-ID. entry.
[AUTHOR. entry.]
[INSTALLATION. entry.]
[DATE-WRITTEN. entry.]
[DATE-COMPILED. entry.]

RYMEC ,Bellary . Dept. of MCA


Page 4
COBOL Programming Laboratory
07MCA26

[SECURITY. entry.]

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. entry.
OBJECT-COMPUTER. entry.
[SPECIAL NAMES. entry.]
[INPUT-OUTPUTSECTION.
FILE-CONTROL. entry.
[I-O-CONTROL. entry.]
DATA DIVISION.
[FILE SECTION.
File section entries…
…………………….]
[WORKING-STORAGE SECTION.
Working-storage entries…
…………………….]
PROCEDURE DIVISION.
{section-name SECTION.
[PARAGRAPH-NAME. [SENTENCE]…]…}…

Advantages:
-Simple and user-friendly language.
-Portable.
-Maintainable

Disadvantages:
-Very wordy and too lengthy.
-Very rigid format. This rigidity causes many errors in coding
and contributes to the difficulty of learning the language.
-Not designed to handle scientific applications.
-Less interactive.

Distinct Features of COBOL:


• The language is simple
• No pointers
• No user defined types
• No user defined functions
• ‘Structure like’ data types

RYMEC ,Bellary . Dept. of MCA


Page 5
COBOL Programming Laboratory
07MCA26

• File records are also described with great detail, as are


lines to be output to a printer
• COBOL is self-documenting

RYMEC ,Bellary . Dept. of MCA


Page 6
COBOL Programming Laboratory
07MCA26

PROGRAM 1.1: PROGRAM TO COMPUTE THE EQUATION USING


COMPUTE VERB.
Z= (A-B)*C

IDENTIFICATION DIVISION.
PROGRAM-ID. EQUA.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 A PIC 9(3).
77 B PIC 9(3).
77 C PIC 9(3).
77 Z PIC 9(5).
77 EZ PIC Z(4)99.
PROCEDURE DIVISION.
PARA.
DISPLAY "ENTER THE VALUES FOR A , B AND C".
ACCEPT A.
ACCEPT B.
ACCEPT C.
COMPUTE Z = ( A - B ) * C.
MOVE Z TO EZ.
DISPLAY "THE VALUE IS" EZ.
STOP RUN.

======================SAMPLE
OUTPUT======================

ENTER THE VALUES FOR A, B AND C


12
34
2
THE VALUE IS 44

RYMEC ,Bellary . Dept. of MCA


Page 7
COBOL Programming Laboratory
07MCA26

PROGRAM 1.2: PROGRAM TO FIND THE SUM OF INDIVIDUAL DIGITS


IN THE GIVEN ‘N’ DIGIT DECIMAL NUMBER.

IDENTIFICATION DIVISION.
PROGRAM-ID. SUMM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM PIC 9999.
77 I PIC 9 VALUE 0.
77 S PIC 99 VALUE 0.
77 Q PIC 99.
77 R PIC 99.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER NUMBER".
ACCEPT NUM.
PERFORM PARA-2 UNTIL NUM <= 0.
DISPLAY "SUM = " S.
STOP RUN.
PARA-2.
DIVIDE NUM BY 10 GIVING NUM REMAINDER R.
COMPUTE S = S + R.

======================SAMPLE
OUTPUT======================

ENTER NUMBER
136
SUM = 10

RYMEC ,Bellary . Dept. of MCA


Page 8
COBOL Programming Laboratory
07MCA26

PROGRAM 2.1: PROGRAM FOR GENERATING ODD AND EVEN


NUMBERS BETWEEN THE GIVEN LIMITS BY USING PERFORM
STATEMENT.

IDENTIFICATION DIVISION.
PROGRAM-ID. ODDEVEN.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 LIM PIC 99.
77 I PIC 99.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE RANGE".
ACCEPT LIM.
DISPLAY "LIST OF EVEN NUMBERS".
PERFORM PARA-2 VARYING I FROM 2 BY 2 UNTIL I > LIM.
DISPLAY "LIST OF ODD NUMBERS".
PERFORM PARA-3 VARYING I FROM 1 BY 2 UNTIL I > LIM.
STOP RUN.
PARA-2.
DISPLAY I.
PARA-3.
DISPLAY I.

======================SAMPLE
OUTPUT======================

ENTER THE RANGE


10
LIST OF EVEN NUMBERS
02
04
06
08
10
LIST OF ODD NUMBERS
01
03
05

RYMEC ,Bellary . Dept. of MCA


Page 9
COBOL Programming Laboratory
07MCA26

07
09
PROGRAM 2.2: PROGRAM TO SORT NUMERIC NUMBERS.

IDENTIFICATION DIVISION.
PROGRAM-ID. SORTNUM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMARRAY.
02 A PIC 99 OCCURS 10 TIMES.
77 I PIC 99.
77 J PIC 99.
77 LIM PIC 99.
77 TEMP PIC 99.
77 K PIC 99.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE RANGE".
ACCEPT LIM.
PERFORM ACC-PARA VARYING I FROM 1 BY 1 UNTIL I > LIM.
PERFORM PARA-2 VARYING I FROM 1 BY 1 UNTIL I > LIM.
DISPLAY "LIST OF SORTED NUMBERS".
PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I > LIM.
STOP RUN.
ACC-PARA.
DISPLAY "ENTER THE NUMBER".
ACCEPT A(I).
DISP-PARA.
DISPLAY A(I).

PARA-2.
COMPUTE K = I + 1.
PERFORM PARA-3 VARYING J FROM K BY 1 UNTIL J > LIM.
PARA-3.
IF A(I) > A(J)
MOVE A(I) TO TEMP
MOVE A(J) TO A(I)
MOVE TEMP TO A(J).

RYMEC ,Bellary . Dept. of MCA


Page 10
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER THE RANGE


5
ENTER THE NUMBER
12
ENTER THE NUMBER
10
ENTER THE NUMBER
6
ENTER THE NUMBER
8
ENTER THE NUMBER
7
LIST OF SORTED NUMBERS
06
07
08
10
12

RYMEC ,Bellary . Dept. of MCA


Page 11
COBOL Programming Laboratory
07MCA26

PROGRAM 3.1: PROGRAM TO SORT ALPHANUMERIC DATA USING


TABLE HANDLING CONCEPT

IDENTIFICATION DIVISION.
PROGRAM-ID. SORTA.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ANUMARRAY.
02 NAME PIC X(15) OCCURS 10 TIMES.
77 I PIC 99.
77 J PIC 99.
77 LIM PIC 99.
77 TEMP PIC X(10).
77 K PIC 99.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE RANGE".
ACCEPT LIM.
PERFORM ACC-PARA VARYING I FROM 1 BY 1 UNTIL I > LIM.
PERFORM PARA-2 VARYING I FROM 1 BY 1 UNTIL I > LIM.
DISPLAY "LIST OF SORTED NAMES".
PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I > LIM.
STOP RUN.
ACC-PARA.
DISPLAY "ENTER THE NAME".
ACCEPT NAME(I).
DISP-PARA.
DISPLAY NAME(I).
PARA-2.
COMPUTE K = I + 1.
PERFORM PARA-3 VARYING J FROM K BY 1 UNTIL J > LIM.
PARA-3.
IF NAME(I) > NAME(J)
MOVE NAME(I) TO TEMP
MOVE NAME(J) TO NAME(I)
MOVE TEMP TO NAME(J).

RYMEC ,Bellary . Dept. of MCA


Page 12
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER THE RANGE


5
ENTER THE NAME
VIJAY
ENTER THE NAME
MOHAN
ENTER THE NAME
HARI
ENTER THE NAME
ANIL
ENTER THE NAME
PRAS

LIST OF SORTED NAMES


ANIL
HARI
MOHAN
PRAS
VIJAY

RYMEC ,Bellary . Dept. of MCA


Page 13
COBOL Programming Laboratory
07MCA26

PROGRAM 3.2: PROGRAM TO SEARCHING A NUMERIC NUMBER


USING
SEARCH VERB AND TABLE HANDLING CONCEPT.

IDENTIFICATION DIVISION.
PROGRAM-ID. SRCHARR.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMARRAY.
02 NUM PIC 9(3) OCCURS 5 TIMES INDEXED BY A1.
77 LIM PIC 99.
77 I PIC 9(2).
77 N PIC 9(2).
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE RANGE".
ACCEPT LIM.
PERFORM ACC-PARA VARYING I FROM 1 BY 1 UNTIL I > LIM.
DISPLAY "ENTER NUMBER TO BE SEARCHED".
ACCEPT N.

SET A1 TO 1.
SEARCH-PARA.
SEARCH NUM
AT END DISPLAY "NUMBER NOT FOUND"
WHEN N = NUM (A1)
DISPLAY "NUMBER FOUND".
END-PARA.
STOP RUN.
ACC-PARA.
DISPLAY "ENTER THE NUMBER".
ACCEPT NUM(I).
DISP-PARA.
DISPLAY NUM(I).

RYMEC ,Bellary . Dept. of MCA


Page 14
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER THE RANGE


5
ENTER THE NUMBER
34
ENTER THE NUMBER
22
ENTER THE NUMBER
12
ENTER THE NUMBER
7
ENTER THE NUMBER
2
ENTER NUMBER TO BE SEARCHED
22
NUMBER FOUND

ENTER THE RANGE


5
ENTER THE NUMBER
34
ENTER THE NUMBER
22
ENTER THE NUMBER
12
ENTER THE NUMBER
7
ENTER THE NUMBER
2
ENTER NUMBER TO BE SEARCHED
23
NUMBER NOT FOUND

RYMEC ,Bellary . Dept. of MCA


Page 15
COBOL Programming Laboratory
07MCA26

PROGRAM 4: PROGRAM FOR MATRIX ADDITION AND MATRIX


SUBTRACTION USING TABLE HANDLING CONCEPT.

IDENTIFICATION DIVISION.
PROGRAM-ID. ADDSUBMAT.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MAT.
02 A OCCURS 10 TIMES.
03 B PIC 9(5) OCCURS 10 TIMES.
03 C PIC 9(5) OCCURS 10 TIMES.
03 D PIC 9(2) OCCURS 10 TIMES.
03 E PIC 9(2) OCCURS 10 TIMES.
77 M PIC 999.
77 N PIC 999.
77 P PIC 999.
77 Q PIC 999.
77 I PIC 999.
77 J PIC 999.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE ORDER OF MATRIX1".
ACCEPT M.
ACCEPT N.
DISPLAY "ENTER THE ORDER OF MATRIX2".
ACCEPT P.
ACCEPT Q.
IF M EQUAL TO P AND N EQUAL TO Q
DISPLAY "ENTER THE ELEMENTS OF THE MATRIX1"
PERFORM READ-PARA VARYING I FROM 1 BY 1 UNTIL I>M
AFTER J FROM 1 BY 1 UNTIL J>N
DISPLAY "ENTER THE ELEMENTS OF THE MATRIX2"
PERFORM READ-PARA1 VARYING I FROM 1 BY 1 UNTIL I>P
AFTER J FROM 1 BY 1 UNTIL J>Q

PERFORM ADD-PARA VARYING I FROM 1 BY 1 UNTIL I>M


AFTER J FROM 1 BY 1 UNTIL J>N
DISPLAY "THE ADDITION MATRIX IS"
PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I>P
AFTER J FROM 1 BY 1 UNTIL J>Q

RYMEC ,Bellary . Dept. of MCA


Page 16
COBOL Programming Laboratory
07MCA26

PERFORM SUB-PARA VARYING I FROM 1 BY 1 UNTIL I>M


AFTER J FROM 1 BY 1 UNTIL J>N
DISPLAY "THE SUBTRACTION MATRIX IS"
PERFORM DISP-PARA-1 VARYING I FROM 1 BY 1 UNTIL I>P
AFTER J FROM 1 BY 1 UNTIL J>Q

ELSE
DISPLAY "ORDERS ARE INVALID".
STOP RUN.
READ-PARA.
ACCEPT B(I,J).
READ-PARA1.
ACCEPT C(I,J).
ADD-PARA.
COMPUTE D(I,J) = B(I,J) + C(I,J).
SUB-PARA.
COMPUTE E(I,J) = B(I,J) - C(I,J).
DISP-PARA.
DISPLAY D(I,J).
DISP-PARA-1.
DISPLAY E(I,J).

RYMEC ,Bellary . Dept. of MCA


Page 17
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER THE ORDER OF MATRIX1


2
2
ENTER THE ORDER OF MATRIX2
2
2
ENTER THE ELEMENTS OF THE MATRIX1
10 8
5 7
ENTER THE ELEMENTS OF THE MATRIX2
6 2
3 1
RESULT OF MATRIX ADDITION IS
16 10
08 08
RESULT OF MATRIX SUBTRACTION IS
04 06
02 06

RYMEC ,Bellary . Dept. of MCA


Page 18
COBOL Programming Laboratory
07MCA26

PROGRAM 5: PROGRAM FOR MATRIX MULTIPLICATION USING TABLE


HANDLING CONCEPT.

IDENTIFICATION DIVISION.
PROGRAM-ID. MATMUL.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MAT.
02 A OCCURS 10 TIMES.
03 B PIC 9(5) OCCURS 10 TIMES.
03 C PIC 9(5) OCCURS 10 TIMES.
03 D PIC 9(2) OCCURS 10 TIMES.
77 M PIC 999.
77 K PIC 999.
77 N PIC 999.
77 P PIC 999.
77 Q PIC 999.
77 I PIC 999.
77 J PIC 999.
PROCEDURE DIVISION.
PARA-1.
DISPLAY "ENTER THE ORDER OF MATRIX1".
ACCEPT M.
ACCEPT N.
DISPLAY "ENTER THE ORDER OF MATRIX2".
ACCEPT P.
ACCEPT Q.
IF M EQUAL TO P AND N EQUAL TO Q
DISPLAY "ENTER THE ELEMENTS OF THE MATRIX1"
PERFORM READ-PARA VARYING I FROM 1 BY 1 UNTIL I>M
AFTER J FROM 1 BY 1 UNTIL J>N
DISPLAY "ENTER THE ELEMENTS OF THE MATRIX2"
PERFORM READ-PARA1 VARYING I FROM 1 BY 1 UNTIL I>P
AFTER J FROM 1 BY 1 UNTIL J>Q
DISPLAY "THE MULTIPLICATION MATRIX IS"
PERFORM CALC-PARA VARYING I FROM 1 BY 1 UNTIL I>M
AFTER J FROM 1 BY 1 UNTIL J>Q

PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I>P


AFTER J FROM 1 BY 1 UNTIL J>Q
ELSE
DISPLAY "ORDERS ARE INVALID".
STOP RUN.

RYMEC ,Bellary . Dept. of MCA


Page 19
COBOL Programming Laboratory
07MCA26

READ-PARA.
ACCEPT B(I,J).
READ-PARA1.
ACCEPT C(I,J).
CALC-PARA.
COMPUTE D(I,J) = 0.
PERFORM CALC-PARA1 VARYING K FROM 1 BY 1 UNTIL K>N.
CALC-PARA1.
COMPUTE D(I,J) = D(I,J) + B(I,K) * C(K,J).
DISP-PARA.
DISPLAY D(I,J).

RYMEC ,Bellary . Dept. of MCA


Page 20
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER THE ORDER OF MATRIX1


2
2
ENTER THE ORDER OF MATRIX2
2
2
ENTER THE ELEMENTS OF THE MATRIX1
10 8
5 7
ENTER THE ELEMENTS OF THE MATRIX2
6 2
3 1
THE MULTIPLICATION MATRIX IS
84 28
51 17

FILE CONCEPTS

RYMEC ,Bellary . Dept. of MCA


Page 21
COBOL Programming Laboratory
07MCA26

SEQUENTIAL FILES
A Sequential file is a file, whose records can be accessed in the order of their
appearance in the file.

This logic of accessing the records in a sequential manner is independent of the


medium used to store a sequential file. A magnetic tape file such as a card or a
printer file can only have a sequential organization. A disk file on the other hand can
have different organization including the sequential one.

GENERAL SYNTAX OF THE SELECT ENTRY FOR THE SEQUENTIAL FILES :

SELECT [OPTIONAL] file-name ASSIGN TO hardware-name

; RESERVE integer-1 AREA

AREAS

[; ORGANIZATION IS SEQUENTIAL ]

[; ACCESS MODE IS SEQUENTIAL ]

[; FILE STATUS IS data-name-1 ]

STATEMENTS FOR SEQUENTIAL FILES :

All Sequential files basically have 3 verbs. These are READ, WRITE, REWRITE.
In addition, there are OPEN & CLOSE verbs.

(i) OPEN STATEMENT: A file can be opened in any one of the 4 open modes –
INPUT, OUTPUT, EXTEND and I-O. When a file is opened in a INPUT mode,
it becomes an input file. When a file should be created for the first time it
must be opened in the OUTPUT mode. The EXTEND mode is useful when
an existing file should be appended by adding new records at its end.
When a file is opened in the I-O mode records can be read through READ
statements & can be written on the file through the REWRITE statement.
The WRITE statement cannot be used for the files opened in the I-O mode.

OPEN INPUT

OUTPUT file-name-1 [, file-name-2 ] ….

EXTEND

I-O

RYMEC ,Bellary . Dept. of MCA


Page 22
COBOL Programming Laboratory
07MCA26

INPUT

OUTPUT file-name-3 [, file-name-4 ] ….

EXTEND

I-O

(ii) CLOSE STATEMENT: The CLOSE statement terminates the processing of the
file. As a result of the execution of the CLOSE statement, the IOCS
performs the end of file processing. When a CLOSE statement is executed,
the file must be open.

CLOSE file-name-1 [ WITH LOCK]

[, file-name-2 [WITH LOCK] ]…

(iii)WRITE STATEMENT: The result of a execution of a WRITE statement, the


record is released from the record area & is written on to the file. The first
execution of the WRITE statement writes the first record & the subsequent
executions write the record sequentially.

WRITE record-name [FROM identifier]

(iv) REWRITE STATEMENT: The REWRITE statement is used to update an


existing record in the disk file. The REWRITE statement can only be used if
the file is opened in the I-O mode & its execution must be preceded by the
execution of a successful READ statement on the file.

REWRITE record-name [FROM identifier]

RYMEC ,Bellary . Dept. of MCA


Page 23
COBOL Programming Laboratory
07MCA26

SORTING AND MERGING OF FILES

SORT VERB :
The SORT verb form is to be used when it is required to sort a given input
file. The input file is not disturbed; instead, a new output file containing the
records in a sorted order is created. Besides the input and output files, the
SORT verb also requires a work file. The work file is used during the process
of sorting. Thus the simple SORT verb requires the naming of three files are
the unsorted input file, the sorted output file and the work file. The format of
the SORT verb is as follows:

SORT file-name-1 ON ASCENDING


DESCENDING KEY data-name-1 , data-
name-2 …

ON ASCENDING
DESCENDING KEY data-name-3, data-name-4 ……

USING file-name-2 GIVING file-name-3.

File-name-1 is the name of the work file, whereas the names of the input
and output files are to be specified in file-name-2 and file-name-3
respectively. File-name-2 and file-name-3 should be described in the usual

RYMEC ,Bellary . Dept. of MCA


Page 24
COBOL Programming Laboratory
07MCA26

manner by means of an FD entry. The work file is to be defined by a sort


description entry (SD entry). The format of the SD entry is as follows:

SD file-name

; RECORD CONTAINS integer-1 TO integer-2 CHARACTERS

; DATA RECORD IS OR RECORDS ARE data-name-1 , data-name-2….

PROGRAM 6.1: PROGRAM TO SORT THE RECORDS IN FILE USING


SORT VERB.

IDENTIFICATION DIVISION.
PROGRAM-ID. SEQSRT.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO DISK.
SELECT S-FILE ASSIGN TO DISK.
SELECT EMP-OUT-FILE ASSIGN TO DISK.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "EMP.DAT"
DATA RECORD IS EMP-REC.
01 EMP-REC.
02 EMP-NO PIC 9(2).
02 EMP-NAME PIC X(20).
02 EMP-DEPT PIC X(20).
02 EMP-BP PIC 9(10).
FD EMP-OUT-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "EMP-OUT.DAT"

RYMEC ,Bellary . Dept. of MCA


Page 25
COBOL Programming Laboratory
07MCA26

DATA RECORD IS EMP-OUT-REC.


01 EMP-OUT-REC.
02 O-EMP-NO PIC 9(2).
02 O-EMP-NAME PIC X(20).
02 O-EMP-DEPT PIC X(20).
02 O-EMP-BP PIC 9(10).
SD S-FILE.
01 S-REC.
02 S-EMP-NO PIC 9(2).
02 FILLER PIC X(20).
02 FILLER PIC X(20).
02 FILLER PIC X(10).
WORKING-STORAGE SECTION.
77 NUM PIC 9(3) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 FG PIC X(2).
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT EMP-FILE.
READ-PARA.
ADD 1 TO NUM.
MOVE NUM TO EMP-NO.
DISPLAY "EMPLOYEE NO IS: " EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE BASIC PAY".
ACCEPT EMP-BP.
WRITE EMP-REC.
DISPLAY "DO U WANT TO CONTINUE? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE EMP-FILE.
DISPLAY "LIST OF RECORDS BEFORE SORTING".
OPEN INPUT EMP-FILE.
READOUT-PARA.
READ EMP-FILE AT END GO TO END-PARA.
DISPLAY "EMPLOYEE NUMBER :" EMP-NO.
DISPLAY "EMPLOYEE NAME :" EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" EMP-DEPT.
DISPLAY "EMPLOYEE BASIC PAY :" EMP-BP.
DISPLAY " ".

RYMEC ,Bellary . Dept. of MCA


Page 26
COBOL Programming Laboratory
07MCA26

GO TO READOUT-PARA.
END-PARA.
CLOSE EMP-FILE.
ACCEPT FG.
DISPLAY "LIST OF RECORDS AFTER SORTING".
SORT-PARA.
SORT S-FILE ON DESCENDING KEY S-EMP-NO
USING EMP-FILE GIVING EMP-OUT-FILE.
OPEN INPUT EMP-OUT-FILE.
SORTREAD-PARA.
READ EMP-OUT-FILE AT END GO TO FINAL-PARA.
DISPLAY "EMPLOYEE NUMBER :" O-EMP-NO.
DISPLAY "EMPLOYEE NAME :" O-EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" O-EMP-DEPT.
DISPLAY "EMPLOYEE BASIC PAY :" O-EMP-BP.
DISPLAY " ".
GO TO SORTREAD-PARA.
FINAL-PARA.
CLOSE EMP-OUT-FILE.
STOP RUN.

======================SAMPLE
OUTPUT======================

EMPLOYEE NO IS: 01
ENTER EMPLOYEE NAME
MOHAN
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE BASIC PAY
10000
DO U WANT TO CONTINUE ? Y / N
Y
EMPLOYEE NO IS: 02
ENTER EMPLOYEE NAME
VIJAY
ENTER EMPLOYEE DEPARTMENT
ACCOUNTANT
ENTER EMPLOYEE BASIC PAY
12000
DO U WANT TO CONTINUE ? Y / N
Y
EMPLOYEE NO IS: 03
ENTER EMPLOYEE NAME

RYMEC ,Bellary . Dept. of MCA


Page 27
COBOL Programming Laboratory
07MCA26

VINAY
ENTER EMPLOYEE DEPARTMENT
MARKETING
ENTER EMPLOYEE BASIC PAY
13000
DO U WANT TO CONTINUE? Y / N
N

LIST OF RECORDS BEFORE SORTING

EMPLOYEE NUMBER : 01
EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 10000

EMPLOYEE NUMBER : 02
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : ACCOUNTANT
EMPLOYEE BASIC PAY : 12000

EMPLOYEE NUMBER : 03
EMPLOYEE NAME : VINAY
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE BASIC PAY : 13000

LIST OF RECORDS AFTER SORTING

EMPLOYEE NUMBER : 03
EMPLOYEE NAME : VINAY
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE BASIC PAY : 13000

EMPLOYEE NUMBER : 02
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : ACCOUNTANT
EMPLOYEE BASIC PAY : 12000

EMPLOYEE NUMBER : 01
EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 10000

RYMEC ,Bellary . Dept. of MCA


Page 28
COBOL Programming Laboratory
07MCA26

MERGE VERB:

The merging of the files can also be done in COBOL with the help of the
MERGE verb. It is possible to merge two or more files with one MERGE
statement. The format of the simple MERGE verb is as follows:

MERGE file-name-1
ASCENDING
ON KEY data-name-1 [ , data-name-2 ] …
DESCENDING

ON ASCENDING
DESCENDING KEY data-name-2 [, data-name-4] …….

USING file-name-2, file-name-3 [, file-name-4 ]…


GIVING file-name-5.

RYMEC ,Bellary . Dept. of MCA


Page 29
COBOL Programming Laboratory
07MCA26

PROGRAM 6.2 : PROGRAM TO MERGE FILES USING MERGE VERB.

IDENTIFICATION DIVISION.
PROGRAM-ID. SEQMERGE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT A-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT B-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT C-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT S-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD A-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "A.DAT"
BLOCK CONTAINS 2 RECORDS
DATA RECORD IS A-REC.
01 A-REC.
02 A-EMP-NO PIC 9(2).
02 A-EMP-NAME PIC X(20).
02 A-EMP-DEPT PIC X(20).
02 A-EMP-BP PIC 9(10).
FD B-FILE

RYMEC ,Bellary . Dept. of MCA


Page 30
COBOL Programming Laboratory
07MCA26

LABEL RECORDS ARE STANDARD


VALUE OF FILE-ID IS "B.DAT"
BLOCK CONTAINS 2 RECORDS
DATA RECORD IS B-REC.
01 B-REC.
02 B-EMP-NO PIC 9(2).
02 B-EMP-NAME PIC X(20).
02 B-EMP-DEPT PIC X(20).
02 B-EMP-BP PIC 9(10).
FD C-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "C.DAT"
BLOCK CONTAINS 2 RECORDS
DATA RECORD IS C-REC.
01 C-REC.
02 C-EMP-NO PIC 9(2).
02 C-EMP-NAME PIC X(20).
02 C-EMP-DEPT PIC X(20)
02 C-EMP-BP PIC 9(10).
SD S-FILE.
01 S-REC.
02 S-EMP-NO PIC 9(2).
02 FILLER PIC X(20).
02 FILLER PIC X(20).
02 FILLER PIC X(10).
WORKING-STORAGE SECTION.
77 NUM PIC 9(3) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 EBP PIC Z(6)9(4).
77 FG PIC X(2).
77 C PIC XX.
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT A-FILE.
READ1-PARA.
DISPLAY "ENTER RECORDS FOR I FILE".
DISPLAY "ENTER EMPLOYEE NO".
ACCEPT A-EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT A-EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT A-EMP-DEPT.
DISPLAY "ENTER EMPLOYEE BASIC PAY".
ACCEPT A-EMP-BP.

RYMEC ,Bellary . Dept. of MCA


Page 31
COBOL Programming Laboratory
07MCA26

WRITE A-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ1-PARA.
CLOSE1-PARA.
CLOSE A-FILE.
OPEN OUTPUT B-FILE.
READ2-PARA.
DISPLAY "ENTER RECORDS FOR II FILE".
DISPLAY "ENTER EMPLOYEE NO".
ACCEPT B-EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT B-EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT B-EMP-DEPT.
DISPLAY "ENTER EMPLOYEE BASIC PAY".
ACCEPT B-EMP-BP.
WRITE B-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ2-PARA.
CLOSE2-PARA.
CLOSE B-FILE.
OPEN INPUT A-FILE.
PERFORM DISP-PARA1.
CLOSE-A-PARA.
CLOSE A-FILE.
OPEN INPUT B-FILE.
PERFORM DISP-PARA2.
CLOSE-B-PARA.
CLOSE B-FILE.
MERGE S-FILE ON ASCENDING KEY S-EMP-NO
USING A-FILE, B-FILE
GIVING C-FILE.
OPEN INPUT C-FILE.
DISPLAY " ".
DISPLAY "LIST OF RECORDS AFTER MERGING".
PERFORM DISPOUT-PARA.
FINAL-PARA.
CLOSE C-FILE.
STOP RUN.
DISP-PARA1.
READ A-FILE AT END GO TO CLOSE-A-PARA.
DISPLAY " ".

RYMEC ,Bellary . Dept. of MCA


Page 32
COBOL Programming Laboratory
07MCA26

DISPLAY "EMPLOYEE NUMBER :" A-EMP-NO.


DISPLAY "EMPLOYEE NAME :" A-EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" A-EMP-DEPT.
MOVE A-EMP-BP TO EBP.
DISPLAY "EMPLOYEE BASIC PAY :" EBP.
GO TO DISP-PARA1.
DISP-PARA2.
READ B-FILE AT END GO TO CLOSE-B-PARA.
DISPLAY " ".
DISPLAY "EMPLOYEE NUMBER :" B-EMP-NO.
DISPLAY "EMPLOYEE NAME :" B-EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" B-EMP-DEPT.
MOVE B-EMP-BP TO EBP.
DISPLAY "EMPLOYEE BASIC PAY :" EBP.
GO TO DISP-PARA2.
DISPOUT-PARA.
READ C-FILE AT END GO TO FINAL-PARA.
DISPLAY " ".
DISPLAY "EMPLOYEE NUMBER :" C-EMP-NO.
DISPLAY "EMPLOYEE NAME :" C-EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" C-EMP-DEPT.
MOVE C-EMP-BP TO EBP.
DISPLAY "EMPLOYEE BASIC PAY :" EBP.
ACCEPT C.
GO TO DISPOUT-PARA.

RYMEC ,Bellary . Dept. of MCA


Page 33
COBOL Programming Laboratory
07MCA26

=====================SAMPLE
OUTPUT======================

ENTER RECORDS FOR I FILE


ENTER EMPLOYEE NO
1
ENTER EMPLOYEE NAME
VIJAY
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE BASIC PAY
23000
DO U WANT TO CONTINUE ? Y / N
Y
ENTER RECORDS FOR I FILE
ENTER EMPLOYEE NO
3
ENTER EMPLOYEE NAME
MOHAN
ENTER EMPLOYEE DEPARTMENT
ACCOUNTING
ENTER EMPLOYEE BASIC PAY
24000
DO U WANT TO CONTINUE ? Y / N
N

ENTER RECORDS FOR II FILE


ENTER EMPLOYEE NO
2
ENTER EMPLOYEE NAME
HARISH

RYMEC ,Bellary . Dept. of MCA


Page 34
COBOL Programming Laboratory
07MCA26

ENTER EMPLOYEE DEPARTMENT


MARKETING
ENTER EMPLOYEE BASIC PAY
30000
DO U WANT TO CONTINUE ? Y / N
Y
ENTER RECORDS FOR II FILE
ENTER EMPLOYEE NO
4
ENTER EMPLOYEE NAME
PRASHANTH
ENTER EMPLOYEE DEPARTMENT
FINANCE
ENTER EMPLOYEE BASIC PAY
35000
DO U WANT TO CONTINUE ? Y / N
N

LIST OF RECORDS AFTER MERGING

EMPLOYEE NUMBER : 01
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 23000

EMPLOYEE NUMBER : 03
EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : ACCOUNTING
EMPLOYEE BASIC PAY : 24000

EMPLOYEE NUMBER : 02
EMPLOYEE NAME : HARISH
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE BASIC PAY : 30000

EMPLOYEE NUMBER : 04
EMPLOYEE NAME : PRASHANTH
EMPLOYEE DEPARTMENT : FINANCE
EMPLOYEE BASIC PAY : 35000

LIST OF RECORDS AFTER MERGING

EMPLOYEE NUMBER : 01
EMPLOYEE NAME : VIJAY

RYMEC ,Bellary . Dept. of MCA


Page 35
COBOL Programming Laboratory
07MCA26

EMPLOYEE DEPARTMENT : SALES


EMPLOYEE BASIC PAY : 23000

EMPLOYEE NUMBER : 02
EMPLOYEE NAME : HARISH
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE BASIC PAY : 30000

EMPLOYEE NUMBER : 03
EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : ACCOUNTING
EMPLOYEE BASIC PAY : 24000

EMPLOYEE NUMBER : 04
EMPLOYEE NAME : PRASHANTH
EMPLOYEE DEPARTMENT: FINANCE
EMPLOYEE BASIC PAY : 35000

RYMEC ,Bellary . Dept. of MCA


Page 36
COBOL Programming Laboratory
07MCA26

PROGRAM 7 : PROGRAM TO READ EMPLOYEE FILE AS SEQUENTIAL


FILE AND CALULATE GROSS PAY AND NET PAY FOR EMPLOYEES IN
THE ORGANIZATION.

IDENTIFICATION DIVISION.
PROGRAM-ID. SEQFILE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO DISK.
DATA DIVISION.
FILE SECTION.
FD EMP-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "EMP.DAT"
DATA RECORD IS EMP-REC.
01 EMP-REC.
02 EMP-NO PIC 9(2).
02 EMP-NAME PIC X(20).
02 EMP-DEPT PIC X(20).
02 EMP-SAL.
03 BPAY PIC 9(10).
03 DA PIC 9(5).
03 HRA PIC 9(8).
03 DED PIC 9(8).
03 GROSSPAY PIC 9(10).
03 NETPAY PIC 9(10).
WORKING-STORAGE SECTION.
77 NUM PIC 9(3) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 N PIC 9.
77 BP PIC Z(10).
77 GP PIC Z(10).
77 NP PIC Z(10).
77 C PIC XX.

RYMEC ,Bellary . Dept. of MCA


Page 37
COBOL Programming Laboratory
07MCA26

PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT EMP-FILE.
READ-PARA.
DISPLAY "ENTER EMPLOYEE NO".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE BASIC PAY".
ACCEPT BPAY.
DISPLAY "ENTER EMPLOYEE DEARNESS ALLOWANCE".
ACCEPT DA.
DISPLAY "ENTER EMPLOYEE HRA".
ACCEPT HRA.
DISPLAY "ENTER EMPLOYEE DEDUCTIONS".
ACCEPT DED.
COMPUTE GROSSPAY = BPAY + DA + HRA.
COMPUTE NETPAY = GROSSPAY - DED.
WRITE EMP-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE EMP-FILE.
OPEN INPUT EMP-FILE.
READOUT-PARA.
READ EMP-FILE AT END GO TO END-PARA.
DISPLAY "EMPLOYEE NUMBER :" EMP-NO.
DISPLAY "EMPLOYEE NAME :" EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" EMP-DEPT.
MOVE BPAY TO BP.
DISPLAY "EMPLOYEE BASIC PAY :" BP.
MOVE GROSSPAY TO GP.
DISPLAY "EMPLOYEE GROSS PAY :" GP.
MOVE NETPAY TO NP.
DISPLAY "EMPLOYEE NET PAY :" NP.
ACCEPT C.
GO TO READOUT-PARA.
END-PARA.
CLOSE EMP-FILE.
STOP RUN.

RYMEC ,Bellary . Dept. of MCA


Page 38
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER EMPLOYEE NAME


VINAY
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE BASIC PAY
20000
ENTER EMPLOYEE DEARNESS ALLOWANCE
500
ENTER EMPLOYEE HRA
300
ENTER EMPLOYEE DEDUCTIONS
400

DO U WANT TO CONTINUE ? Y / N
Y

ENTER EMPLOYEE NO
2
ENTER EMPLOYEE NAME
SUBASH
ENTER EMPLOYEE DEPARTMENT
ACCOUNTING
ENTER EMPLOYEE BASIC PAY
30000
ENTER EMPLOYEE DEARNESS ALLOWANCE
700
ENTER EMPLOYEE HRA
400
ENTER EMPLOYEE DEDUCTIONS
600

DO U WANT TO CONTINUE ? Y / N

RYMEC ,Bellary . Dept. of MCA


Page 39
COBOL Programming Laboratory
07MCA26

EMPLOYEE NUMBER : 01
EMPLOYEE NAME : VINAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 20000
EMPLOYEE GROSS PAY : 20800
EMPLOYEE NET PAY : 20400

EMPLOYEE NUMBER : 02
EMPLOYEE NAME : SUBASH
EMPLOYEE DEPARTMENT : ACCOUNTING
EMPLOYEE BASIC PAY : 30000
EMPLOYEE GROSS PAY : 31100
EMPLOYEE NET PAY : 30500

RYMEC ,Bellary . Dept. of MCA


Page 40
COBOL Programming Laboratory
07MCA26

PROGRAM 8: PROGRAM TO STORE STUDENTS DETAILS WITH


RESULTS IN A FILE WITH SEQUENTIAL FILE HANDLING TECHNIQUES.

IDENTIFICATION DIVISION.
PROGRAM-ID. STURES.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STU-FILE ASSIGN TO DISK.
DATA DIVISION.
FILE SECTION.
FD STU-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "STURES.DAT"
DATA RECORD IS STU-REC.
01 STU-REC.
02 STU-NO PIC 9(3).
02 STU-NAME PIC X(20).
02 STU-DEPT PIC X(20).
02 MRK1 PIC 9(3).
02 MRK2 PIC 9(3).
02 MRK3 PIC 9(3).
02 MRK4 PIC 9(3).
02 MRK5 PIC 9(3).
02 RES1 PIC X(4).
02 RES2 PIC X(4).
02 RES3 PIC X(4).
02 RES4 PIC X(4).
02 RES5 PIC X(4).
02 TOTAL PIC 9(3).
WORKING-STORAGE SECTION.
77 ANS PIC X(2) VALUE SPACES.
77 C PIC XX.
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT STU-FILE.
READ-PARA.
DISPLAY "ENTER STUDENT NO".

RYMEC ,Bellary . Dept. of MCA


Page 41
COBOL Programming Laboratory
07MCA26

ACCEPT STU-NO.
DISPLAY "ENTER STUDENT NAME".
ACCEPT STU-NAME.
DISPLAY "ENTER STUDENT DEPARTMENT".
ACCEPT STU-DEPT.
DISPLAY "ENTER MARKS IN COBOL".
ACCEPT MRK1.
DISPLAY "ENTER MARKS IN UNIX".
ACCEPT MRK2.
DISPLAY "ENTER MARKS IN DS".
ACCEPT MRK3.
DISPLAY "ENTER MARKS IN MIS".
ACCEPT MRK4.
DISPLAY "ENTER MARKS IN OR".
ACCEPT MRK5.
IF MRK1 IS > 40 OR MRK1 EQUAL TO 40
MOVE "PASS" TO RES1
ELSE MOVE "FAIL" TO RES1.

IF MRK2 IS > 40 OR MRK2 EQUAL TO 40


MOVE "PASS" TO RES2
ELSE MOVE "FAIL" TO RES2.

IF MRK3 IS > 40 OR MRK3 EQUAL TO 40


MOVE "PASS" TO RES3
ELSE
MOVE "FAIL" TO RES3.

IF MRK4 IS > 40 OR MRK4 EQUAL TO 40


MOVE "PASS" TO RES4
ELSE
MOVE "FAIL" TO RES4.
IF MRK5 IS > 40 OR MRK5 EQUAL TO 40
MOVE "PASS" TO RES5
ELSE
MOVE "FAIL" TO RES5.

COMPUTE TOTAL =MRK1 + MRK2 + MRK3 + MRK4 + MRK5.

WRITE STU-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.

RYMEC ,Bellary . Dept. of MCA


Page 42
COBOL Programming Laboratory
07MCA26

CLOSE STU-FILE.
OPEN INPUT STU-FILE.
READOUT-PARA.
READ STU-FILE AT END GO TO END-PARA.
DISPLAY "STUDENT NUMBER :" STU-NO.
DISPLAY "STUDENT NAME :" STU-NAME.
DISPLAY "DEPARTMENT NAME:" STU-DEPT.
DISPLAY " SUBJECT " "MARKS" "RESULT".
DISPLAY " COBOL " MRK1 " " RES1.
DISPLAY " UNIX " MRK2 " " RES2.
DISPLAY " DS " MRK3 " " RES3.
DISPLAY " MIS " MRK4 " " RES4.
DISPLAY " OR " MRK5 " " RES5.
DISPLAY " ".
DISPLAY " TOTAL " TOTAL.
DISPLAY " ".
DISPLAY " ".
ACCEPT C.
GO TO READOUT-PARA.
END-PARA.
CLOSE STU-FILE.
STOP RUN.

RYMEC ,Bellary . Dept. of MCA


Page 43
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================

ENTER STUDENT NO
1
ENTER STUDENT NAME
VENITHA
ENTER STUDENT DEPARTMENT
MCA
ENTER MARKS IN COBOL
66
ENTER MARKS IN UNIX
78
ENTER MARKS IN DS
34
ENTER MARKS IN MIS
56
ENTER MARKS IN OR
70

DO U WANT TO CONTINUE ? Y / N
Y

ENTER STUDENT NO
2
ENTER STUDENT NAME
TANUJA
ENTER STUDENT DEPARTMENT
MCA
ENTER MARKS IN COBOL
89
ENTER MARKS IN UNIX
39
ENTER MARKS IN DS
67
ENTER MARKS IN MIS
89
ENTER MARKS IN OR
70

RYMEC ,Bellary . Dept. of MCA


Page 44
COBOL Programming Laboratory
07MCA26

DO U WANT TO CONTINUE ? Y / N
N

*****************STUDENT DETAILS*******************

STUDENT NUMBER : 01
STUDENT NAME : VENITHA
DEPARTMENT NAME : MCA

SUBJECT MARKS RESULT


COBOL 066 PASS
UNIX 078 PASS
DS 034 FAIL
MIS 056 PASS
OR 070 PASS
TOTAL 304

STUDENT NUMBER : 002


STUDENT NAME : TANUJA
DEPARTMENT NAME : MCA

SUBJECT MARKS RESULT


COBOL 089 PASS
UNIX 039 FAIL
DS 067 PASS
MIS 089 PASS
OR 070 PASS
TOTAL 354

RYMEC ,Bellary . Dept. of MCA


Page 45
COBOL Programming Laboratory
07MCA26

PROGRAM 9: WRITE A PROGRAM TO UPDATE MASTER SEQUENTIAL FILE


USING
SEQUENTIAL TRANSACTION FILE.

IDENTIFICATION DIVISION.
PROGRAM-ID. FILEUP1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OLDMAS ASSIGN TO DISK
SELECT TRANS ASSIGN TO DISK.
SELECT NEWMAS ASSIGN TO DISK.
SELECT SORT-FILE ASSIGN TO DISK.
DATA DIVISION.
FILE SECTION.
FD OLDMAS
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "OLDMAS.DAT"
DATA RECORD IS OLDMAS-REC.
01 OLDMAS-REC.
02 O-SALESMANNO PIC 9(5).
02 O-NAME PIC X(20).
02 O-TOTSALES PIC 9(8).
FD TRANS
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "TRANS.DAT"
DATA RECORD IS TRANS-REC.
01 TRANS-REC.
02 T-SALESMANNO PIC 9(5).
02 T-NAME PIC X(20).
02 T-SALES PIC 9(8).
FD NEWMAS
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "NEWMAS.DAT"
DATA RECORD IS NEWMAS-REC.
01 NEWMAS-REC.
02 N-SALESMANNO PIC 9(5).
02 N-NAME PIC X(20).
02 N-TOTSALES PIC 9(8).

SD SORT-FILE.
01 SORT-REC.
02 S-SALESMANNO PIC 9(5).
02 FILLER PIC X(20).
02 FILLER PIC X(20).
WORKING-STORAGE SECTION.

RYMEC ,Bellary . Dept. of MCA


Page 46
COBOL Programming Laboratory
07MCA26

77 NUM PIC 9(3) VALUE ZERO.


77 ANS PIC X(2) VALUE SPACES.
77 END-OF-PGM PIC 9 VALUE ZERO.
77 ERR PIC 9 VALUE ZERO.
77 C PIC X.
PROCEDURE DIVISION.
OPEN-MPARA.
OPEN OUTPUT OLDMAS.
READ-MPARA.
DISPLAY "ENTER DETAILS OF SALESMAN FOR SALES MASTER FILE".
DISPLAY "ENTER SALES MAN NO ".
ACCEPT O-SALESMANNO.
DISPLAY "ENTER SALES MAN NAME".
ACCEPT O-NAME.
DISPLAY "ENTER TOTAL SALES".
ACCEPT O-TOTSALES.
WRITE OLDMAS-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" OR "y" GO TO READ-MPARA.
CLOSE-MPARA.
CLOSE OLDMAS.
DISPLAY (1, 1) ERASE.
OPEN INPUT OLDMAS.
READOUT-MPARA.
READ OLDMAS AT END GO TO END-PARA.
DISPLAY "SALESMAN NUMBER: " O-SALESMANNO.
DISPLAY "SALESMAN NAME : " O-NAME.
DISPLAY "TOTAL SALES: " O-TOTSALES.
DISPLAY " ".
GO TO READOUT-MPARA.
END-PARA.
CLOSE OLDMAS.
ACCEPT C.
DISPLAY (1, 1) ERASE.
OPEN-TPARA.
OPEN OUTPUT TRANS.
READ-TPARA.
DISPLAY "ENTER DETAILS FOR SALES DETAILS TRANSACTION FILE".
DISPLAY "ENTER SALESMAN NO ".
ACCEPT T-SALESMANNO.
DISPLAY "ENTER SALESMAN NAME".
ACCEPT T-NAME.
DISPLAY "ENTER CURRENT SALES".
ACCEPT T-SALES.
WRITE TRANS-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.

RYMEC ,Bellary . Dept. of MCA


Page 47
COBOL Programming Laboratory
07MCA26

IF ANS = "Y" OR "y" GO TO READ-TPARA.


CLOSE-TPARA.
CLOSE TRANS.
SORT SORT-FILE ON ASCENDING KEY S-SALESMANNO
USING OLDMAS GIVING OLDMAS.
SORT SORT-FILE ON ASCENDING KEY S-SALESMANNO
USING TRANS GIVING TRANS.
PERFORM OPEN-PARA.
PERFORM READ-OLDMAS.
PERFORM READ-TRANS.
PERFORM PROCESSING UNTIL
(O-SALESMANNO = 10 AND T-SALESMANNO = 10).
CLOSE OLDMAS, TRANS, NEWMAS.
OPEN INPUT NEWMAS.
DISPLAY (1, 1) ERASE.
DISP-PARA.
READ NEWMAS AT END GO TO FINAL-PARA.
DISPLAY "SALESMANNO NUMBER: " N-SALESMANNO.
DISPLAY "SALESMAN NAME : " N-NAME.
DISPLAY "TOTAL SALES : " N-TOTSALES.
DISPLAY " ".
GO TO DISP-PARA.
FINAL-PARA.
CLOSE NEWMAS.
ACCEPT C.
STOP RUN.
OPEN-PARA.
OPEN INPUT OLDMAS, TRANS.
OPEN OUTPUT NEWMAS.
READ-OLDMAS.
READ OLDMAS AT END MOVE 10 TO O-SALESMANNO.
READ-TRANS.
READ TRANS AT END MOVE 10 TO T-SALESMANNO.
PROCESSING.
IF O-SALESMANNO = T-SALESMANNO
MOVE OLDMAS-REC TO NEWMAS-REC
COMPUTE N-TOTSALES = O-TOTSALES + T-SALES
WRITE NEWMAS-REC
PERFORM READ-OLDMAS
PERFORM READ-TRANS
ELSE
IF T-SALESMANNO < O-SALESMANNO
MOVE T-SALESMANNO TO N-SALESMANNO
MOVE T-NAME TO N-NAME
MOVE T-SALES TO N-TOTSALES
WRITE NEWMAS-REC
PERFORM READ-TRANS
ELSE

RYMEC ,Bellary . Dept. of MCA


Page 48
COBOL Programming Laboratory
07MCA26

WRITE NEWMAS-REC FROM OLDMAS-REC


PERFORM READ-OLDMAS.

======================SAMPLE
OUTPUT======================

ENTER DETAILS OF SALESMAN FOR SALES MASTER FILE


ENTER SALES MAN NO
102
ENTER SALES MAN NAME
MANJU
ENTER TOTAL SALES
15000

DO U WANT TO CONTINUE ? Y / N
Y

ENTER DETAILS OF SALESMAN FOR SALES MASTER FILE


ENTER SALES MAN NO
103
ENTER SALES MAN NAME
VIJAY
ENTER TOTAL SALES
16000

DO U WANT TO CONTINUE ? Y / N
Y

ENTER DETAILS OF SALESMAN FOR SALES MASTER FILE


ENTER SALES MAN NO
104
ENTER SALES MAN NAME
MOHAN
ENTER TOTAL SALES
17000
DO U WANT TO CONTINUE ? Y / N
N

**************DETAILS OF SALESMAN FOR SALES MASTER


FILE************
SALESMAN NUMBER: 00102
SALESMAN NAME : MANJU
TOTAL SALES: 00015000

SALESMAN NUMBER: 00103


SALESMAN NAME : VIJAY
TOTAL SALES: 00016000

RYMEC ,Bellary . Dept. of MCA


Page 49
COBOL Programming Laboratory
07MCA26

SALESMAN NUMBER: 00104


SALESMAN NAME : MOHAN
TOTAL SALES: 00017000

ENTER DETAILS FOR SALES DETAILS TRANSACTION FILE


ENTER SALESMAN NO
101
ENTER SALESMAN NAME
VINAY
ENTER CURRENT SALES
10000

DO U WANT TO CONTINUE ? Y / N
Y

ENTER DETAILS FOR SALES DETAILS TRANSACTION FILE


ENTER SALESMAN NO
102
ENTER SALESMAN NAME
MANJU
ENTER CURRENT SALES
4000

DO U WANT TO CONTINUE ? Y / N
Y

ENTER DETAILS FOR SALES DETAILS TRANSACTION FILE


ENTER SALESMAN NO
105
ENTER SALESMAN NAME
PRADEEP
ENTER CURRENT SALES
20000
DO U WANT TO CONTINUE ? Y / N
N

********************* DETAILS OF SALES DETAILS TRANSACTION FILE***************

SALESMAN NUMBER: 00101


SALESMAN NAME : VINAY
TOTAL SALES: 00010000

SALESMAN NUMBER: 00102


SALESMAN NAME : MANJU
TOTAL SALES: 0004000

SALESMAN NUMBER: 00105

RYMEC ,Bellary . Dept. of MCA


Page 50
COBOL Programming Laboratory
07MCA26

SALESMAN NAME : PRADEEP


TOTAL SALES: 00020000

**********************DETAILS OF UPDATED NEW MASTER FILE********************

SALESMAN NUMBER: 00101


SALESMAN NAME : VINAY
TOTAL SALES: 00010000

SALESMAN NUMBER: 00102


SALESMAN NAME : MANJU
TOTAL SALES: 00019000

SALESMAN NUMBER: 00103


SALESMAN NAME : VIJAY
TOTAL SALES: 00016000

SALESMAN NUMBER: 00104


SALESMAN NAME : MOHAN
TOTAL SALES: 00017000

SALESMAN NUMBER: 00105


SALESMAN NAME : PRADEEP
TOTAL SALES: 00020000

RYMEC ,Bellary . Dept. of MCA


Page 51
COBOL Programming Laboratory
07MCA26

INDEX FILES

To access the records randomly and to identify them by the values of the key rather
than the relative record numbers, the file may be organized an indexed sequential
file.

In Index files, the records are stored in the key sequence order. In addition some
index tables are also created & maintained with the file. The purpose of the index
table is that they provide a means of identifying the groups of records in the file.
Thus in order to have access to a record first the group to which a record belongs is
identified with the help of the index tables. Then the group is sequentially search to
locate the record.

GENERAL FORMAT FOR SELECT CLAUSE FOR INDEX FILES :

SELECT file-name ASSIGN TO implementer-name

[; RESERVE integer-1 [AREA/AREAS]]

, ORGANIZATION IS INDEXED

; ACCESS MODE IS SEQUENTIAL

RANDOM

DYNAMIC

; RECORD KEY IS data-name-1

[; ALTERNATE RECORD KEY IS data-name-2

[WITH DUPLICATES] ]…

[; FILE STATUS IS data-name-3]

STATEMENTS FOR INDEXED FILES:

READ STATEMENT : When either the RANDOM or DYNAMIC access mode is specified
& the records are to be read in a random manner.

READ file-name RECORD [ INTO identifier ]

[; KEY IS data-name ]

[; INVALID KEY imperative-statement ]

WRITE STATEMENT : The records are written to the logical position as determined
from the value of the record key. When the file is opened in the OUTPUT mode, the

RYMEC ,Bellary . Dept. of MCA


Page 52
COBOL Programming Laboratory
07MCA26

records must be released to the file in the ascending order of the record key values
regardless of the access mode.

DELETE STATEMENT :The DELETE Statement deletes the data contained in the
specified record position of a relative file.

DELETE file-name RECORD [ ; INVALID KEY

Imperative-statement ]

START STATEMENT : The START statement enables the programmer to position the
relative file at some specified point. So that subsequent sequential operations on
the file can start from this point instead of the beginning.

REWRITE STATEMENT : The REWRITE statement is used to replace an existing


record by the contents of the record specified in the record name.

RYMEC ,Bellary . Dept. of MCA


Page 53
COBOL Programming Laboratory
07MCA26

PROGRAM 10 : USING THE INDEX FILE ORGANIZATION, WRITE A PROGRAM


TO
STORE EMPLOYEE DETAILS.

IDENTIFICATION DIVISION.
PROGRAM-ID. EMPIND.
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 "EMPIND.DAT"
DATA RECORD IS EMP-REC.
01 EMP-REC.
02 EMP-NO PIC 9(5).
02 EMP-NAME PIC X(25).
02 EMP-DEPT PIC X(25).
02 EMP-SAL PIC 9(10).
WORKING-STORAGE SECTION.
77 TOTREC PIC 9(3) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 CH PIC 9.
77 C PIC X.
PROCEDURE DIVISION.
PARA-1.
DISPLAY (1, 1) ERASE.
DISPLAY "1. CREATE".
DISPLAY "2. DISPLAY".
DISPLAY "3. INSERT".
DISPLAY "4. DELETE".
DISPLAY "5. MODIFY".
DISPLAY "6. EXIT".
DISPLAY "ENTER YOUR CHOICE".
ACCEPT CH.
IF CH=1 GO TO OPEN-PARA.
IF CH=2 GO TO DIS-PARA.
IF CH=3 GO TO INS-PARA.
IF CH=4 GO TO DEL-PARA.
IF CH=5 GO TO MOD-PARA.
IF CH=6 GO TO END-PARA.

RYMEC ,Bellary . Dept. of MCA


Page 54
COBOL Programming Laboratory
07MCA26

OPEN-PARA.
OPEN OUTPUT EMP-FILE.

READ-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY "ENTER THE EMPLOYEE DETAILS".
DISPLAY "ENTER EMPLOYEE NUMBER: ".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE SALARY".
ACCEPT EMP-SAL.

WRITE EMP-REC INVALID KEY DISPLAY "ERROR"


CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.
DIS-PARA.
OPEN INPUT EMP-FILE.
READOUT-PARA.
READ EMP-FILE NEXT RECORD AT END GO TO DISEND-PARA.
DISPLAY "EMPLOYEE NUMBER : " EMP-NO.
DISPLAY "EMPLOYEE NAME : " EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT : " EMP-DEPT.
DISPLAY "EMPLOYEE SALARY : " EMP-SAL.
ACCEPT C.
GO TO READOUT-PARA.
DISEND-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.

INS-PARA.
OPEN I-O EMP-FILE.
I-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY "ENTER EMPLOYEE DETAILS".
DISPLAY "ENTER EMPLOYEE NO: ".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.

RYMEC ,Bellary . Dept. of MCA


Page 55
COBOL Programming Laboratory
07MCA26

DISPLAY "ENTER EMPLOYEE SALARY".


ACCEPT EMP-SAL.
WRITE EMP-REC INVALID KEY DISPLAY "ERROR "
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO I-PARA.
ENDINS-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.
DEL-PARA.
OPEN I-O EMP-FILE.
DISPLAY "ENTER THE EMPLOYEE NO TO BE DELETED".
ACCEPT EMP-NO.
DELETE EMP-FILE RECORD INVALID KEY
DISPLAY "EMPLOYEE NO DOES NOT EXIST"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "ONE RECORD IS DELETED".
ACCEPT C.
CLOSE EMP-FILE.
GO TO PARA-1.
MOD-PARA.
OPEN I-O EMP-FILE.
DISPLAY "ENTER THE CUSTOMER NO OF THE RECORD TO BE MODIFIED".
ACCEPT EMP-NO.
READ EMP-FILE RECORD INVALID KEY
DISPLAY "RECORD DOES NOT EXIST - MODIFICATION NOT POSSIBLE"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY " "
DISPLAY "OLD INFORMATIONS ARE".
DISPLAY "====================".
DISPLAY " ".
DISPLAY "EMPLOYEE NUMBER : " EMP-NO.
DISPLAY "EMPLOYEE NAME : " EMP-NAME.
DISPLAY "DEPARTMENT : " EMP-DEPT.
DISPLAY "EMPLOYEE SALARY : " EMP-SAL.
DISPLAY " "
DISPLAY "ENTER THE NEW INFORMATION TO BE UPDATED".
DISPLAY " ".
DISPLAY "ENTER EMPLOYEE DETAILS".
DISPLAY "EMPLOYEE NO: " EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE SALARY".
ACCEPT EMP-SAL.
REWRITE EMP-REC INVALID KEY

RYMEC ,Bellary . Dept. of MCA


Page 56
COBOL Programming Laboratory
07MCA26

DISPLAY "ERROR WHILE MODIFYING"


CLOSE EMP-FILE GO TO PARA-1.
M-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.
END-PARA.
STOP RUN.

RYMEC ,Bellary . Dept. of MCA


Page 57
COBOL Programming Laboratory
07MCA26

======================SAMPLE
OUTPUT======================
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
1

ENTER THE EMPLOYEE DETAILS


ENTER EMPLOYEE NUMBER:
101
ENTER EMPLOYEE NAME
KUMAR
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE SALARY
21000
DO U WANT TO CONTINUE ? Y / N
Y

ENTER THE EMPLOYEE DETAILS


ENTER EMPLOYEE NUMBER:
100
ENTER EMPLOYEE NAME
SUNIL
ENTER EMPLOYEE DEPARTMENT
MARKETING
ENTER EMPLOYEE SALARY
25000
DO U WANT TO CONTINUE ? Y / N
Y
ENTER THE EMPLOYEE DETAILS
ENTER EMPLOYEE NUMBER:
103
ENTER EMPLOYEE NAME
SURESH
ENTER EMPLOYEE DEPARTMENT
FINANCE
ENTER EMPLOYEE SALARY
45000
DO U WANT TO CONTINUE ? Y / N
N
1. CREATE
2. DISPLAY
3. INSERT

RYMEC ,Bellary . Dept. of MCA


Page 58
COBOL Programming Laboratory
07MCA26

4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
2
EMPLOYEE NUMBER : 00100
EMPLOYEE NAME : SUNIL
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE SALARY : 0000025000

EMPLOYEE NUMBER : 00101


EMPLOYEE NAME : KUMAR
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 0000021000

EMPLOYEE NUMBER : 00103


EMPLOYEE NAME : SURESH
EMPLOYEE DEPARTMENT : FINANCE
EMPLOYEE SALARY : 0000045000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
3

ENTER EMPLOYEE DETAILS


ENTER EMPLOYEE NO:
102
ENTER EMPLOYEE NAME
MOHAN
ENTER EMPLOYEE DEPARTMENT
ADVERTISING
ENTER EMPLOYEE SALARY
34000
DO U WANT TO CONTINUE ? Y / N
N
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
2

RYMEC ,Bellary . Dept. of MCA


Page 59
COBOL Programming Laboratory
07MCA26

EMPLOYEE NUMBER : 00100


EMPLOYEE NAME : SUNIL
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE SALARY : 0000025000

EMPLOYEE NUMBER : 00101


EMPLOYEE NAME : KUMAR
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 0000021000

EMPLOYEE NUMBER : 00102


EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : ADVERTISING
EMPLOYEE SALARY : 0000034000

EMPLOYEE NUMBER : 00103


EMPLOYEE NAME : SURESH
EMPLOYEE DEPARTMENT : FINANCE
EMPLOYEE SALARY : 0000045000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
4
ENTER THE EMPLOYEE NO TO BE DELETED
103
ONE RECORD IS DELETED

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
2
EMPLOYEE NUMBER : 00100
EMPLOYEE NAME : SUNIL
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE SALARY : 0000025000

EMPLOYEE NUMBER : 00101


EMPLOYEE NAME : KUMAR
EMPLOYEE DEPARTMENT : SALES

RYMEC ,Bellary . Dept. of MCA


Page 60
COBOL Programming Laboratory
07MCA26

EMPLOYEE SALARY : 0000021000

EMPLOYEE NUMBER : 00102


EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : ADVERTISING
EMPLOYEE SALARY : 0000034000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
5
ENTER THE CUSTOMER NO OF THE RECORD TO BE MODIFIED
102

OLD INFORMATIONS ARE


====================

EMPLOYEE NUMBER : 00102


EMPLOYEE NAME : MOHAN
DEPARTMENT : ADVERTISING
EMPLOYEE SALARY : 0000034000

ENTER THE NEW INFORMATION TO BE UPDATED

ENTER EMPLOYEE DETAILS


EMPLOYEE NO: 00102
ENTER EMPLOYEE NAME
VIJAY
ENTER EMPLOYEE DEPARTMENT
ADVERTISING
ENTER EMPLOYEE SALARY
31000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. EXIT
ENTER YOUR CHOICE
6
PROGRAM 11: PROGRAM TO UPDATE THE EMPLOYEE SALARY
(INCREASE OF DA BY 3%) BY USING THE INDEX FILE ORGANIZATION.

RYMEC ,Bellary . Dept. of MCA


Page 61
COBOL Programming Laboratory
07MCA26

IDENTIFICATION DIVISION.
PROGRAM-ID. EMPSALUP.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPUP-FILE ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS EMP-NO.
DATA DIVISION.
FILE SECTION.
FD EMPUP-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "EMPUP.DAT"
DATA RECORD IS EMPUP-REC.
01 EMPUP-REC.
02 EMP-NO PIC 9(2).
02 EMP-NAME PIC X(20).
02 EMP-DEPT PIC X(20).
02 EMP-SAL.
03 BPAY PIC 9(10).
03 DA PIC 9(5).
03 HRA PIC 9(8).
03 DED PIC 9(8).
03 GROSSPAY PIC 9(10).
03 NETPAY PIC 9(10).
WORKING-STORAGE SECTION.
77 NUM PIC 9(3) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 N PIC 9.
77 D1 PIC 9(4).
77 D2 PIC 9(4).
77 C PIC XX.
77 BP PIC Z(10).
77 GP PIC Z(10).
77 NP PIC Z(10).
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT EMPUP-FILE.
READ-PARA.
DISPLAY "ENTER EMPLOYEE NO".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.

RYMEC ,Bellary . Dept. of MCA


Page 62
COBOL Programming Laboratory
07MCA26

DISPLAY "ENTER EMPLOYEE DEPARTMENT".


ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE BASIC PAY".
ACCEPT BPAY.
DISPLAY "ENTER EMPLOYEE DEARNESS ALLOWANCE - IN %".
ACCEPT DA.
DISPLAY "ENTER EMPLOYEE HRA".
ACCEPT HRA.
DISPLAY "ENTER EMPLOYEE DEDUCTIONS".
ACCEPT DED.
COMPUTE GROSSPAY = BPAY + BPAY * DA / 100 + HRA.
COMPUTE NETPAY = GROSSPAY - DED.
WRITE EMPUP-REC.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE EMPUP-FILE.
OPEN-PARA1.
OPEN INPUT EMPUP-FILE.
DISP-PARA.
READ EMPUP-FILE NEXT RECORD AT END GO TO CLOSE-PARA1.
DISPLAY "EMPLOYEE NUMBER :" EMP-NO.
DISPLAY "EMPLOYEE NAME :" EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" EMP-DEPT.
MOVE BPAY TO BP.
DISPLAY "EMPLOYEE BASIC PAY :" BP.
MOVE GROSSPAY TO GP.
DISPLAY "EMPLOYEE GROSS PAY :" GP.
MOVE NETPAY TO NP.
DISPLAY "EMPLOYEE NET PAY :" NP.
ACCEPT C.
GO TO DISP-PARA.
CLOSE-PARA1.
CLOSE EMPUP-FILE.
UPOPEN-PARA.
OPEN I-O EMPUP-FILE.
UP-PARA.
READ EMPUP-FILE NEXT RECORD AT END GO TO END-PARA.
COMPUTE DA = DA + 3.
COMPUTE GROSSPAY = BPAY + BPAY * DA / 100 + HRA.
COMPUTE NETPAY = GROSSPAY - DED.
DISPLAY "DA INCREASED BY 3 PERCENT".
DISPLAY " ".

RYMEC ,Bellary . Dept. of MCA


Page 63
COBOL Programming Laboratory
07MCA26

DISPLAY "EMPLOYEE NUMBER :" EMP-NO.


DISPLAY "EMPLOYEE NAME :" EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT :" EMP-DEPT.
MOVE BPAY TO BP.
DISPLAY "EMPLOYEE BASIC PAY :" BP.
MOVE GROSSPAY TO GP.
DISPLAY "EMPLOYEE GROSS PAY :" GP.
MOVE NETPAY TO NP.
DISPLAY "EMPLOYEE NET PAY :" NP.
REWRITE EMPUP-REC.
GO TO UP-PARA.
END-PARA.
CLOSE EMPUP-FILE.
STOP RUN.

======================SAMPLE
OUTPUT======================

ENTER EMPLOYEE NO
12

RYMEC ,Bellary . Dept. of MCA


Page 64
COBOL Programming Laboratory
07MCA26

ENTER EMPLOYEE NAME


VIJAY
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE BASIC PAY
20000
ENTER EMPLOYEE DEARNESS ALLOWANCE - IN %
3
ENTER EMPLOYEE HRA
400
ENTER EMPLOYEE DEDUCTIONS
500
DO U WANT TO CONTINUE ? Y / N
N
EMPLOYEE NUMBER : 12
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 20000
EMPLOYEE GROSS PAY : 21000
EMPLOYEE NET PAY : 20500

DA INCREASED BY 3 PERCENT
EMPLOYEE NUMBER : 12
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE BASIC PAY : 20000
EMPLOYEE GROSS PAY : 21600
EMPLOYEE NET PAY : 21100

PROGRAM 12: PROGRAM TO DELETE AND SEARCH A RECORD IN THE


INDEX FILE.

IDENTIFICATION DIVISION.
PROGRAM-ID. PG12.
ENVIRONMENT DIVISION.

RYMEC ,Bellary . Dept. of MCA


Page 65
COBOL Programming Laboratory
07MCA26

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 "EMPSRCH.DAT"
DATA RECORD IS EMP-REC.
01 EMP-REC.
02 EMP-NO PIC 9(5).
02 EMP-NAME PIC X(25).
02 EMP-DEPT PIC X(25).
02 EMP-SAL PIC 9(10).
WORKING-STORAGE SECTION.
77 ENO PIC 9(5) VALUE ZERO.
77 ANS PIC X(2) VALUE SPACES.
77 OP PIC 9.
77 C PIC X.
PROCEDURE DIVISION.
PARA-1.
DISPLAY (1, 1) ERASE.
DISPLAY "1. CREATE".
DISPLAY "2. DISPLAY".
DISPLAY "3. INSERT".
DISPLAY "4. DELETE".
DISPLAY "5. MODIFY".
DISPLAY "6. SEARCH".
DISPLAY "7. EXIT".
DISPLAY "ENTER YOUR CHOICE".
ACCEPT OP.
IF OP=1 GO TO OPEN-PARA.
IF OP=2 GO TO DIS-PARA.
IF OP=3 GO TO INS-PARA.
IF OP=4 GO TO DEL-PARA.
IF OP=5 GO TO MOD-PARA.
IF OP=6 GO TO SEARCH-PARA.
IF OP=7 GO TO END-PARA.
OPEN-PARA.
OPEN OUTPUT EMP-FILE.
READ-PARA.

RYMEC ,Bellary . Dept. of MCA


Page 66
COBOL Programming Laboratory
07MCA26

DISPLAY (1, 1) ERASE.


DISPLAY "ENTER THE EMPLOYEE DETAILS".
DISPLAY "ENTER EMPLOYEE NUMBER: ".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE SALARY".
ACCEPT EMP-SAL.
WRITE EMP-REC INVALID KEY DISPLAY "ERROR"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.
DIS-PARA.
OPEN INPUT EMP-FILE.
READOUT-PARA.
READ EMP-FILE NEXT RECORD AT END GO TO DISEND-PARA.
DISPLAY "EMPLOYEE NUMBER : " EMP-NO.
DISPLAY "EMPLOYEE NAME : " EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT : " EMP-DEPT.
DISPLAY "EMPLOYEE SALARY : " EMP-SAL.
ACCEPT C.
GO TO READOUT-PARA.
DISEND-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.

INS-PARA.
OPEN I-O EMP-FILE.
I-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY "ENTER EMPLOYEE DETAILS".
DISPLAY "ENTER CUSTOMER NO: ".
ACCEPT EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.
DISPLAY "ENTER EMPLOYEE DEPARTMENT".
ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE SALARY".

RYMEC ,Bellary . Dept. of MCA


Page 67
COBOL Programming Laboratory
07MCA26

ACCEPT EMP-SAL.
WRITE EMP-REC INVALID KEY DISPLAY "ERROR "
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO I-PARA.
ENDINS-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.

DEL-PARA.
OPEN I-O EMP-FILE.
DISPLAY "ENTER THE EMPLOYEE NO TO BE DELETED".
ACCEPT EMP-NO.
DELETE EMP-FILE RECORD INVALID KEY
DISPLAY "EMPLOYEE NO DOES NOT EXIST"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "ONE RECORD IS DELETED".
ACCEPT C.
CLOSE EMP-FILE.
GO TO PARA-1.
MOD-PARA.
OPEN I-O EMP-FILE.
DISPLAY "ENTER THE CUSTOMER NO OF THE RECORD TO BE
MODIFIED".
ACCEPT EMP-NO.
READ EMP-FILE RECORD INVALID KEY
DISPLAY "RECORD DOES NOT EXIST - MODIFICATION NOT POSSIBLE"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY " "
DISPLAY "OLD INFORMATIONS ARE".
DISPLAY "====================".
DISPLAY " ".
DISPLAY "EMPLOYEE NUMBER : " EMP-NO.
DISPLAY "EMPLOYEE NAME : " EMP-NAME.
DISPLAY "DEPARTMENT : " EMP-DEPT.
DISPLAY "EMPLOYEE SALARY : " EMP-SAL.
DISPLAY " "
DISPLAY "ENTER THE NEW INFORMATION TO BE UPDATED".
DISPLAY " ".
DISPLAY "ENTER EMPLOYEE DETAILS".
DISPLAY "EMPLOYEE NO: " EMP-NO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMP-NAME.

RYMEC ,Bellary . Dept. of MCA


Page 68
COBOL Programming Laboratory
07MCA26

DISPLAY "ENTER EMPLOYEE DEPARTMENT".


ACCEPT EMP-DEPT.
DISPLAY "ENTER EMPLOYEE SALARY".
ACCEPT EMP-SAL.
REWRITE EMP-REC INVALID KEY
DISPLAY "ERROR WHILE MODIFYING"
CLOSE EMP-FILE GO TO PARA-1.
M-PARA.
CLOSE EMP-FILE.
GO TO PARA-1.
SEARCH-PARA.
OPEN INPUT EMP-FILE.
DISPLAY "ENTER EMPLOYEE NO TO BE SEARCHED".
ACCEPT EMP-NO.
READ EMP-FILE RECORD INVALID KEY
DISPLAY "EMPLOYEE NO DOES NOT EXIST"
CLOSE EMP-FILE GO TO PARA-1.
DISPLAY "EMPLOYEE IS FOUND".
DISPLAY "EMPLOYEE NUMBER : " EMP-NO.
DISPLAY "EMPLOYEE NAME : " EMP-NAME.
DISPLAY "EMPLOYEE DEPARTMENT : " EMP-DEPT.
DISPLAY "EMPLOYEE SALARY : " EMP-SAL.
ACCEPT C.
CLOSE EMP-FILE.
GO TO PARA-1.
END-PARA.
STOP RUN.

======================SAMPLE
OUTPUT======================

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY

RYMEC ,Bellary . Dept. of MCA


Page 69
COBOL Programming Laboratory
07MCA26

6. SEARCH
7. EXIT
ENTER YOUR CHOICE
1
ENTER THE EMPLOYEE DETAILS
ENTER EMPLOYEE NUMBER:
10
ENTER EMPLOYEE NAME
VIJAY
ENTER EMPLOYEE DEPARTMENT
SALES
ENTER EMPLOYEE SALARY
30000
DO U WANT TO CONTINUE ? Y / N
Y
ENTER THE EMPLOYEE DETAILS
ENTER EMPLOYEE NUMBER:
20
ENTER EMPLOYEE NAME
MOHAN
ENTER EMPLOYEE DEPARTMENT
MARKETING
ENTER EMPLOYEE SALARY
40000
DO U WANT TO CONTINUE ? Y / N
N
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
2

EMPLOYEE NUMBER : 00010


EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000

EMPLOYEE NUMBER : 00020


EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : MARKETING

RYMEC ,Bellary . Dept. of MCA


Page 70
COBOL Programming Laboratory
07MCA26

EMPLOYEE SALARY : 40000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
3
ENTER EMPLOYEE DETAILS
ENTER CUSTOMER NO:
40
ENTER EMPLOYEE NAME
VINAY
ENTER EMPLOYEE DEPARTMENT
PRODUCTION
ENTER EMPLOYEE SALARY
50000
DO U WANT TO CONTINUE ? Y / N
N
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
2
EMPLOYEE NUMBER : 00010
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000

EMPLOYEE NUMBER : 00020


EMPLOYEE NAME : MOHAN
EMPLOYEE DEPARTMENT : MARKETING
EMPLOYEE SALARY : 40000

EMPLOYEE NUMBER : 00040


EMPLOYEE NAME : VINAY
EMPLOYEE DEPARTMENT : PRODUCTION

RYMEC ,Bellary . Dept. of MCA


Page 71
COBOL Programming Laboratory
07MCA26

EMPLOYEE SALARY : 50000

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
4
ENTER THE EMPLOYEE NO TO BE DELETED
20
ONE RECORD IS DELETED

1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
2
EMPLOYEE NUMBER : 00010
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000

EMPLOYEE NUMBER : 00040


EMPLOYEE NAME : VINAY
EMPLOYEE DEPARTMENT : PRODUCTION
EMPLOYEE SALARY : 50000
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
5
ENTER THE CUSTOMER NO OF THE RECORD TO BE MODIFIED
40

RYMEC ,Bellary . Dept. of MCA


Page 72
COBOL Programming Laboratory
07MCA26

OLD INFORMATIONS ARE


====================

EMPLOYEE NUMBER : 00040


EMPLOYEE NAME : VINAY
DEPARTMENT : PRODUCTION
EMPLOYEE SALARY : 50000

ENTER THE NEW INFORMATION TO BE UPDATED

ENTER EMPLOYEE DETAILS


EMPLOYEE NO : 00040
ENTER EMPLOYEE NAME
PRASANTH
ENTER EMPLOYEE DEPARTMENT
PRODUCTION
ENTER EMPLOYEE SALARY
60000
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
2
EMPLOYEE NUMBER : 00010
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000

EMPLOYEE NUMBER : 00040


EMPLOYEE NAME : PRASANTH
EMPLOYEE DEPARTMENT : PRODUCTION
EMPLOYEE SALARY : 60000
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT

RYMEC ,Bellary . Dept. of MCA


Page 73
COBOL Programming Laboratory
07MCA26

ENTER YOUR CHOICE


6
ENTER EMPLOYEE NO TO BE SEARCHED
10
EMPLOYEE IS FOUND
EMPLOYEE NUMBER : 00010
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
6
ENTER EMPLOYEE NO TO BE SEARCHED
10
EMPLOYEE IS FOUND
EMPLOYEE NUMBER : 00010
EMPLOYEE NAME : VIJAY
EMPLOYEE DEPARTMENT : SALES
EMPLOYEE SALARY : 30000
1. CREATE
2. DISPLAY
3. INSERT
4. DELETE
5. MODIFY
6. SEARCH
7. EXIT
ENTER YOUR CHOICE
7
RELATIVE FILE
A relative file is a magnetic disk file organized in such a way that a relative
record number identifies each record. The relative record number specifies
the position of the record from the beginning of the file. A relative file can be
accessed either sequentially or randomly. When the file is accessed
sequentially the records are accessed in the increasing order of their relative
record number. When a file is accessed randomly, the programmer must
specify the relative record number. In case of relative file organization, the
reading as well as the writing can be done randomly.

RYMEC ,Bellary . Dept. of MCA


Page 74
COBOL Programming Laboratory
07MCA26

GENERAL FORMAT FOR THE SELECT CLAUSE FOR RELATIVE FILES :

SELECT file-name ASSIGN TO implementor-name

; RESERVE integer-1 AREA

AREAS

; ORGANIZATION IS RELATIVE

; ACCESS MODE IS SEQUENTIAL [, RELATIVE KEY IS data-name-1]

RANDOM

DYNAMIC , RELATIVE KEY IS data-name-1

[; FILE STATUS IS data-name-2]

STATEMENTS FOR RELATIVE FILE :

The statements OPEN, CLOSE, WRITE & REWRITE, DELETE & START are all
available for the relative files.

READ STATEMENT : READ statement reads a record of the file. The file must
be open in either the INPUT or I-O mode.

Format -1

READ file-name RECORD [ INTO identifier ]

[ ; AT END imperative-statement ]

Format-2

READ file-name RECORD [ INTO identifier ]

[; INVALID KEY imperative-statement ]

WRITE STATEMENT : At the time of execution of the WRITE statement, the file
must be open either in the OUTPUT or I-O mode.

RYMEC ,Bellary . Dept. of MCA


Page 75
COBOL Programming Laboratory
07MCA26

WRITE record-name [ FROM identifier ]

[; INVALID KEY imperative-statement]

REWRITE STATEMENT : The REWRITE statement is used to replace an


existing record by the contents of the record specified in the record name.

REWRITE record-name [ FROM identifier ]

[ ; INVALID KEY imperative-statement ]

DELETE STATEMENT :The DELETE Statement deletes the data contained in


the specified record position of a relative file.

DELETE file-name RECORD [ ; INVALID KEY

Imperative-statement ]

START STATEMENT : The START statement enables the programmer to


position the relative file at some specified point. So that subsequent
sequential operations on the file can start from this point instead of the
beginning.

START file-name KEY IS EQUAL TO =

GREATER THAN > data-name

NOT LESS THAN

NOT <

[; INVALID KEY imperative statement]

PROGRAM 13: PROGRAM TO CALCULATE NET PAY AND GROSS PAY


BY READING REALATIVE FILE CONTAINING FIELDS EMP-NO, EMP-
NAME, BASIC-PAY. STORE THE OUTPUT IN RELATIVE FILE.

IDENTIFICATION DIVISION.
PROGRAM-ID. RELEMP.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RELEMP-FILE ASSIGN TO DISK

RYMEC ,Bellary . Dept. of MCA


Page 76
COBOL Programming Laboratory
07MCA26

ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC
RELATIVE KEY IS REL-KEY.
DATA DIVISION.
FILE SECTION.
FD RELEMP-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "RELEMP.DAT"
DATA RECORD IS RELEMP-REC.
01 RELEMP-REC.
02 EMPNO PIC 9(2).
02 EMPNAME PIC X(20).
02 EMPDEPT PIC X(20).
02 EMPSAL.
03 BASIC PIC 9(10).
03 DA PIC 9(5).
03 HRA PIC 9(6).
03 PT PIC 9(5).
03 IT PIC 9(5).
03 PFD PIC 9(5).
03 GROSS PIC 9(10).
03 NETPAY PIC 9(10).
WORKING-STORAGE SECTION.
77 REL-KEY PIC 99 VALUE ZERO.
77 C PIC X.
77 ANS PIC X(2) VALUE SPACES.
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT RELEMP-FILE.
READ-PARA.
ADD 1 TO REL-KEY.
DISPLAY "ENTER EMPLOYEE DETAILS".
DISPLAY "ENTER EMPLOYEE NO: ".
ACCEPT EMPNO.
DISPLAY "ENTER EMPLOYEE NAME".
ACCEPT EMPNAME.
DISPLAY "ENTER DEPARTMENT".
ACCEPT EMPDEPT.
DISPLAY "ENTER BASIC PAY".
ACCEPT BASIC.
DISPLAY "ENTER DA".
ACCEPT DA.
DISPLAY "ENTER HRA".
ACCEPT HRA.

RYMEC ,Bellary . Dept. of MCA


Page 77
COBOL Programming Laboratory
07MCA26

DISPLAY "ENTER PROFESSIONAL TAX".


ACCEPT PT.
DISPLAY "ENTER INCOME TAX".
ACCEPT IT.
DISPLAY "ENTER PF".
ACCEPT PFD.
COMPUTE GROSS = BASIC + HRA + DA.
COMPUTE NETPAY = GROSS - (PT + IT + PFD).
WRITE RELEMP-REC INVALID KEY GO TO ERROR-PARA.
DISPLAY "DO U WANT TO CONTINUE ? Y / N".
ACCEPT ANS.
IF ANS = "Y" GO TO READ-PARA.
CLOSE-PARA.
CLOSE RELEMP-FILE.
OPEN INPUT RELEMP-FILE.
READOUT-PARA.
READ RELEMP-FILE NEXT RECORD AT END GO TO END-PARA.
DISPLAY (1 1) ERASE.
DISPLAY "=====================".
DISPLAY "EMPLOYEE NUMBER : " EMPNO.
DISPLAY "EMPLOYEE NAME : " EMPNAME.
DISPLAY "DEPARTMENT : " EMPDEPT.
DISPLAY "=====================".
DISPLAY "SALARY DETAILS".
DISPLAY "==============".
DISPLAY "BASIC PAY : " BASIC.
DISPLAY " ".
DISPLAY "ALLOWANCES".
DISPLAY "==========".
DISPLAY "HRA : " HRA.
DISPLAY "DA : " DA.
DISPLAY " ".
DISPLAY "DEDUCTIONS".
DISPLAY "==========".
DISPLAY "PROFESSIONAL TAX : " PT.
DISPLAY "INCOME TAX : " IT.
DISPLAY "PROVIDENT FUND : " PFD.
DISPLAY " ".
DISPLAY "=====================".
DISPLAY "GROSS PAY : " GROSS.
DISPLAY "NET PAY : " NETPAY.
DISPLAY "=====================".
ACCEPT C.
GO TO READOUT-PARA.

RYMEC ,Bellary . Dept. of MCA


Page 78
COBOL Programming Laboratory
07MCA26

END-PARA.
CLOSE RELEMP-FILE.
STOP RUN.
ERROR-PARA.
DISPLAY "ERROR IN FILE ACCESSION".
GO TO END-PARA.

======================SAMPLE
OUTPUT======================

ENTER EMPLOYEE DETAILS


ENTER EMPLOYEE NO:
10
ENTER EMPLOYEE NAME
VIJAY
ENTER DEPARTMENT
SALES
ENTER BASIC PAY
30000
ENTER DA

RYMEC ,Bellary . Dept. of MCA


Page 79
COBOL Programming Laboratory
07MCA26

500
ENTER HRA
600
ENTER PROFESSIONAL TAX
200
ENTER INCOME TAX
300
ENTER PF
200

DO U WANT TO CONTINUE ? Y / N
Y

ENTER EMPLOYEE DETAILS


ENTER EMPLOYEE NO:
20
ENTER EMPLOYEE NAME
MOHAN
ENTER DEPARTMENT
PRODUCTION
ENTER BASIC PAY
40000
ENTER DA
300
ENTER HRA
500
ENTER PROFESSIONAL TAX
200
ENTER INCOME TAX
100
ENTER PF
250

DO U WANT TO CONTINUE ? Y / N
N

=====================
EMPLOYEE NUMBER : 10
EMPLOYEE NAME : VIJAY
DEPARTMENT : SALES
=====================
SALARY DETAILS
==============
BASIC PAY : 30000

RYMEC ,Bellary . Dept. of MCA


Page 80
COBOL Programming Laboratory
07MCA26

ALLOWANCES
==========
HRA : 000600
DA : 00500

DEDUCTIONS
==========
PROFESSIONAL TAX : 00200
INCOME TAX : 00300
PROVIDENT FUND : 00200

=====================
GROSS PAY : 31100
NET PAY : 30400
=====================

=====================
EMPLOYEE NUMBER : 20
EMPLOYEE NAME : MOHAN
DEPARTMENT : PRODUCTION
=====================
SALARY DETAILS
==============
BASIC PAY : 40000

ALLOWANCES
==========
HRA : 000500
DA : 00300

DEDUCTIONS
==========
PROFESSIONAL TAX : 00200
INCOME TAX : 00100
PROVIDENT FUND : 00250
=====================
GROSS PAY : 40800
NET PAY : 40250
=====================

RYMEC ,Bellary . Dept. of MCA


Page 81
COBOL Programming Laboratory
07MCA26

SUBROUTINES
A basic requirement of modular programming is to divide a large program
into smaller and more manageable parts known as modules. A module in a
COBOL program can be realized in two ways as a PERFORM module or as a
separately compiled subroutine.

The term subroutine is used to mean only those modules that are coded and
compiled separately from the calling modules. A subroutine can be compiled
separately but cannot be executed independently. Before execution, the
object code of the subroutine must be bound with the object code of the
program calling the subroutine to form the run unit.
A RUN UNIT is a set of one or more object programs which functions as a
unit during execution.

RYMEC ,Bellary . Dept. of MCA


Page 82
COBOL Programming Laboratory
07MCA26

STRUCTURE OF A COBOL SUBROUTINE

A COBOL subroutine is different from a main program in the PROCEDURE


DIVISION header. The PROCEDURE DIVISION header must have a USING
phrase.

THE GENERAL FORMAT OF A PROCEDURE DIVISION HEADER IS :

PROCEDURE DIVISION [ USING data-name-1 [ , data-name-2 ] ….]

The operands of the USING phrase must be either 01-level or 77-level data
items. These must be defined in a section of the DATA DIVISION known as
the linkage section.
Structurally, the linkage section is similar to a working-storage section &
appears in the DATA DIVISION immediately after the working-storage section.
The linkage section appears in the called program and describes records or
noncontiguous data items in respect of which connection should be
established with the calling program.

FORMAT OF THE LINKAGE SECTION

LINKAGE SECTION.

01-level-data-description-entry …..
Record-description-entry

In the case of a main program, a STOP RUN statement indicates the logical
end of a program. A STOP RUN statement cannot be used for the purpose in
the case of a subroutine. This is because the STOP RUN statement always
terminates a run unit regardless of whether it is used in a subroutine or in a
main program. Upon the execution of a subroutine it is required that the
control must be returned to the calling program. For this purpose the EXIT
PROGRAM statement is available in COBOL.
The format of this statement is:

EXIT PROGRAM
The statement must be the only statement in the paragraph.

The GOBACK statement is similar to a EXIT PROGRAM statement. The


GOBACK statement need not be the only statement in a paragraph.

Format of GOBACK is : GOBACK

THE CALLING OF A SUBROUTINE:

RYMEC ,Bellary . Dept. of MCA


Page 83
COBOL Programming Laboratory
07MCA26

In order to be able to call a subroutine from the main program or from


another in the run unit, the object code for the subroutine must be given
name. The PROGRAM-ID entry in the subroutine can be used for the purpose.

The calling program can call a subroutine by a CALL statement.

FORMAT OF CALL STATEMENT

CALL identifier-1 [ USING data-name-1 [, dataname-2


] ……]
Literal-1

[ ; ON OVERFLOW imperative-statement ]

The execution of the CALL statement causes the transfer of the control to the
first statement in the PROCEDURE DIVISION of the called subroutine.

The operands of the USING phrase in the CALL statement are called as actual
parameters.
The data names in the USING phrase of the PROCEDURE DIVISION header are
referred to as
formal parameters.

THE STATE OF A SUBROUTINE AND CANCEL STATEMENT :

The values of the various attributes of the local files as well as the values of
all the local data items constitute the state of the subroutine. When the
subroutine is called first time, it is said to be in its initial state. When a
subroutine is called next, it will be in its last-used state.

Getting back the subroutine in its last used state can be gainfully utilized in
certain situations, in other situations this may be undesirable. For this reason
the CANCEL statement is provided in COBOL.
If a subroutine is cancelled through the CANCEL statement & then called
again, its execution will begin with the initial state rather than the last used
state.

THE GENERAL FORMAT OF THE CANCEL STATEMENT :

RYMEC ,Bellary . Dept. of MCA


Page 84
COBOL Programming Laboratory
07MCA26

CANCEL identifier-1 , identifier-2 ……


Literal-1 , literal-2

The programs specified through the values of identifier-1/literal-1, the


CANCEL statement cancels identifier-2/literal-2, etc.
The following rules can be noted in connection with the CANCEL statement.
1. A program that has been called but has not yet executed its EXIT
PROGRAM statement cannot be cancelled.
2. If the CANCEL statement specifies a program that has not yet been
called or that has already been cancelled, no action takes place for
that program.

PROGRAM 14: PROGRAM TO FIND SIMPLE INTEREST AND


COMPOUND INTEREST USING SUBROUTINE CONCEPT.

MAIN PROGRAM:
IDENTIFICATION DIVISION.
PROGRAM-ID. P14.
ENVIRONMENT DIVISION.

RYMEC ,Bellary . Dept. of MCA


Page 85
COBOL Programming Laboratory
07MCA26

DATA DIVISION.
WORKING-STORAGE SECTION.
77 P PIC 99999.
77 N PIC 99.
77 R PIC 99.
77 SI PIC 9(6)V999 VALUE IS ZERO.
77 CI PIC 9(6)V999 VALUE IS ZERO.
77 C PIC 9.
77 SI1 PIC 999999.999.
77 CI1 PIC 999999.999.
PROCEDURE DIVISION.

PARA1.
DISPLAY "-----------------"
DISPLAY "1.SIMPLE INTREST".
DISPLAY "2.COMPOUND INTREST".
DISPLAY "3.EXIT".
DISPLAY " ".
DISPLAY "ENTER UR CHOICE:".
ACCEPT C.
IF C = 1 GO TO S-PARA.
IF C = 2 GO TO C-PARA.
IF C = 3 GO TO E-PARA.
S-PARA.
DISPLAY "ENTER PRINCIPAL AMOUNT,TIME,RATE:".
ACCEPT P.
ACCEPT N.
ACCEPT R.
CALL "SINTSUB" USING P , N , R , SI.
MOVE SI TO SI1.
DISPLAY " ".
DISPLAY (1, 1) ERASE.
DISPLAY "SIMPLE INTREST CALCULATION:".
DISPLAY "PRINCIPAL AMOUNT:" P.
DISPLAY "TIME:" N.
DISPLAY "RATE:" R.
DISPLAY "SIMPLE INTREST IS:" SI1.
GO TO PARA1.
C-PARA.
DISPLAY "ENTER PRINCIPAL AMOUNT,TIME,RATE:".
ACCEPT P.
ACCEPT N.
ACCEPT R.
CALL "CINTSUB" USING P , N , R , CI.

RYMEC ,Bellary . Dept. of MCA


Page 86
COBOL Programming Laboratory
07MCA26

MOVE CI TO CI1.
DISPLAY " ".

DISPLAY "COMPOUND INTREST CALCULATION:".


DISPLAY "PRINCIPAL AMOUNT:" P.
DISPLAY "TIME:" N.
DISPLAY "RATE:" R.
DISPLAY "COMPOUND INTREST IS:" CI1.
GO TO PARA1.
E-PARA.
STOP RUN.

======================SUBROUTINE======
================

PROGRAM FOR SIMPLE INTEREST:

IDENTIFICATION DIVISION.
PROGRAM-ID. SINTSUB
ENVIRONMENT DIVISION.
DATA DIVISION.

RYMEC ,Bellary . Dept. of MCA


Page 87
COBOL Programming Laboratory
07MCA26

WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 P PIC 9(10)V9(4).
01 N PIC 9(5).
01 R PIC 9(3)V9(4).
01 SI PIC 9(10)V9(4).
PROCEDURE DIVISION USING P, N, R, SI.
MAIN-PARA.
COMPUTE SI = ( P * N * R ) / 100.
EXIT-PARA.
EXIT PROGRAM.

PROGRAM FOR COMPOUND INTEREST:

IDENTIFICATION DIVISION.
PROGRAM-ID. CINTSUB.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 V1 PIC 9(10)V9(4).
77 V2 PIC 9(10)V9(4).
77 V3 PIC 9(10)V9(4).
LINKAGE SECTION.
01 P PIC 9(10)V9(4).
01 N PIC 9(5).
01 R PIC 9(3)V9(4).
01 CI PIC 9(10)V9(4).
PROCEDURE DIVISION USING P, N, R, CI.
MAIN-PARA.
COMPUTE V1 = 1 + R / 100.
COMPUTE V2 = V1 ** N.
COMPUTE V3 = P * V2.
MOVE V3 TO CI.
EXIT-PARA.
EXIT PROGRAM.
======================SAMPLE
OUTPUT======================

-----------------
1. SIMPLE INTREST
2. COMPOUND INTREST
3. EXIT

RYMEC ,Bellary . Dept. of MCA


Page 88
COBOL Programming Laboratory
07MCA26

ENTER UR CHOICE:
1
ENTER PRINCIPAL AMOUNT, TIME, RATE:
1000
3
200

SIMPLE INTREST CALCULATION:


PRINCIPAL AMOUNT: 01000
TIME : 03
RATE :20
SIMPLE INTREST IS :204.800
-----------------
1.SIMPLE INTREST
2.COMPOUND INTREST
3.EXIT

ENTER UR CHOICE:
2
ENTER PRINCIPAL AMOUNT,TIME,RATE:
1000
3
200
COMPOUND INTREST CALCULATION:
PRINCIPAL AMOUNT : 01000
TIME : 03
RATE :20
COMPOUND INTREST IS: 490313.489

PROGRAM 15: PROGRAM TO GENERATE A SALES REPORT.

IDENTIFICATION DIVISION.
PROGRAM-ID. PG15.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SALES-FILE ASSIGN TO DISK.
DATA DIVISION.

RYMEC ,Bellary . Dept. of MCA


Page 89
COBOL Programming Laboratory
07MCA26

FILE SECTION.
FD SALES-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "SALES.DAT".
01 SALES-REC.
02 ZONE PIC X(14).
02 DISTRICT PIC X(14).
02 SALESMANNO PIC 999.
02 PRODUCTNO PIC 999.
02 AMOUNT PIC 9(6).
WORKING-STORAGE SECTION.
77 EOF PIC X VALUE "N".
77 CH PIC X VALUE "Y".
SCREEN SECTION.
01 SCR1.
02 BLANK SCREEN.
02 LINE 02 COLUMN 10 VALUE "SALESMANNO".
02 LINE 02 COLUMN 30 PIC 999 TO SALESMANNO.
02 LINE 04 COLUMN 10 VALUE "DISTRICT".
02 LINE 04 COLUMN 30 PIC X(15) TO DISTRICT.
02 LINE 06 COLUMN 10 VALUE "ZONE".
02 LINE 06 COLUMN 30 PIC X(15) TO ZONE.
02 LINE 08 COLUMN 10 VALUE "PRODUCTNO".
02 LINE 08 COLUMN 30 PIC 999 TO PRODUCTNO.
02 LINE 10 COLUMN 10 VALUE "AMOUNT".
02 LINE 10 COLUMN 30 PIC 9(6) TO AMOUNT.
01 SCR2.
02 BLANK SCREEN.
02 LINE 02 COLUMN 20 VALUE "**" HIGHLIGHT BLINK.
02 LINE 02 COLUMN 23 VALUE "SALES-REC" HIGHLIGHT BLINK.
02 LINE 02 COLUMN 38 VALUE "**" HIGHLIGHT BLINK.
02 LINE 04 COLUMN 05 VALUE "SALESMAN-NO".
02 LINE 04 COLUMN 18 VALUE "ZONE".
02 LINE 04 COLUMN 26 VALUE "DISTRICT".
02 LINE 04 COLUMN 38 VALUE "PRODUCTNO".
02 LINE 04 COLUMN 50 VALUE "AMOUNT".
PROCEDURE DIVISION.
MAIN-PARA.
OPEN OUTPUT SALES-FILE.
PERFORM ACCEPT-PARA UNTIL CH = 'N'.
CLOSE SALES-FILE.
OPEN INPUT SALES-FILE.
DISPLAY SCR2.
READ SALES-FILE AT END MOVE 'Y' TO EOF.

RYMEC ,Bellary . Dept. of MCA


Page 90
COBOL Programming Laboratory
07MCA26

MOVE 6 TO LIN.
PERFORM DISP-PARA UNTIL EOF='Y'.
CLOSE SALES-FILE.
STOP RUN.
ACCEPT-PARA.
DISPLAY ( 1 1 ) ERASE.
DISPLAY SCR1.
ACCEPT SCR1.
WRITE SALES-REC.
DISPLAY ( 14 , 10 ) " DO U WANT TO CONTINUE(Y/N) ".
ACCEPT CH.
DISP-PARA.
MOVE 4 TO COL.
DISPLAY( LIN , COL )SALESMANNO.
ADD 11 TO COL.
DISPLAY( LIN , COL )ZONE.
ADD 11 TO COL.
DISPLAY( LIN , COL )DISTRICT.
ADD 11 TO COL.
DISPLAY( LIN , COL )PRODUCTNO.
ADD 11 TO COL.
DISPLAY( LIN , COL )AMOUNT.
ADD 11 TO COL.
ADD 1 TO LIN.
READ SALES-FILE AT END MOVE "Y" TO EOF.

======================SAMPLE
OUTPUT======================

SALESMANNO 111

DISTRICT ANANTTAPUR

ZONE EAST

RYMEC ,Bellary . Dept. of MCA


Page 91
COBOL Programming Laboratory
07MCA26

PRODUCTNO 678

AMOUNT 002000

DO U WANT TO CONTINUE(Y/N) Y

SALESMANNO 222

DISTRICT SHIMOGA

ZONE SOUTH

PRODUCTNO 777

AMOUNT 004000

DO U WANT TO CONTINUE(Y/N) N

** SALES-REC ORD **
**************************************************************
* SALESMAN-NO ZONE DISTRICT PRODUCTNO AMOUNT *
**************************************************************
* 111 EAST ANANTTAPUR 678 002000 *
* 222 SOUTH SHIMOGA 777 004000 *
**************************************************************

RYMEC ,Bellary . Dept. of MCA


Page 92

Das könnte Ihnen auch gefallen