IDENTIFICATION DIVISION. PROGRAM-ID. ZONE-SALES. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. DATA DIVISION. WORKING-STORAGE SECTION. 01 SALES. 02 PRODUCT OCCURS 4 TIMES. 03 ZONE PIC 9999 OCCURS 5 TIMES. 77 I PIC 9. 77 J PIC 9. 77 BP PIC 9999. 77 BZ PIC Z. 01 DISP-HEAD PIC X(20) VALUE " Z1 Z2 Z3 Z4 TOT". 01 UL PIC X(20) VALUE ALL "-". 01 DISP-REC. 02 E-Z1 PIC ZZZ9. 02 E-Z2 PIC ZZZ9. 02 E-Z3 PIC ZZZ9. 02 E-Z4 PIC ZZZ9. 02 E-Z5 PIC ZZZ9. PROCEDURE DIVISION. MAIN-PARA. PERFORM READ-DATA VARYING I FROM 1 BY 1 UNTIL I > 3 AFTER J FROM 1 BY 1 UNTIL J > 4. PERFORM SUM-PARA1 VARYING I FROM 1 BY 1 UNTIL I > 4. PERFORM SUM-PARA3 VARYING I FROM 1 BY 1 UNTIL I > 3. DISPLAY DISP-HEAD. DISPLAY UL. PERFORM DISP-PARA VARYING I FROM 1 BY 1 UNTIL I > 4. DISPLAY UL. PERFORM COM-PARA1 VARYING I FROM 1 BY 1 UNTIL I > 3. DISPLAY " ". STOP RUN. READ-DATA. DISPLAY "Enter Quantity of Product : " I " of Zone : " J. ACCEPT ZONE(I, J). SUM-PARA1. MOVE 0 TO ZONE(4, I). PERFORM SUM-PARA2 VARYING J FROM 1 BY 1 UNTIL J > 3. SUM-PARA2. COMPUTE ZONE(4, I) = ZONE(4, I) + ZONE(J, I). SUM-PARA3. MOVE 0 TO ZONE(I, 5). PERFORM SUM-PARA4 VARYING J FROM 1 BY 1 UNTIL J > 4. SUM-PARA4. COMPUTE ZONE(I, 5) = ZONE(I, 5) + ZONE(I, J). DISP-PARA. MOVE ZONE(I, 1) TO E-Z1. MOVE ZONE(I, 2) TO E-Z2. MOVE ZONE(I, 3) TO E-Z3. MOVE ZONE(I, 4) TO E-Z4. MOVE ZONE(I, 5) TO E-Z5. DISPLAY DISP-REC. COM-PARA1. MOVE 0 TO BP. MOVE 0 TO BZ. PERFORM COM-PARA2 VARYING J FROM 1 BY 1 UNTIL J > 4. DISPLAY "Product : " I " Sold More in Zone : " BZ. COM-PARA2. IF ZONE(I, J) > BP MOVE ZONE(I, J) TO BP MOVE J TO BZ.
Zone wise Sale of Products details.
Sorting Sample Program using COBOL
* * A student record have the following structure: * * Register Number, * Name of the Student, * Course and * Year of Admin. * * Write a COBOL program to read details of a set of students * through the keyboard and stored in a sequential file and * generate a list of students joined for various courses in * different year in a suitable order using SORT verb of COBOL. * IDENTIFICATION DIVISION. PROGRAM-ID. SORTING. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WORK-FILE ASSIGN TO DISK. SELECT SORT-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "STU.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 9(3). 02 NAME PIC X(30). 02 COURSE PIC X(10). 02 YOA PIC 9(4). SD WORK-FILE DATA RECORD IS WORK-REC. 01 WORK-REC. 02 W-REGNO PIC 9(3). 02 W-NAME PIC X(30). 02 W-COURSE PIC X(10). 02 W-YOA PIC 9(4). FD SORT-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "SORT.DAT" DATA RECORD IS SORT-REC. 01 SORT-REC. 02 S-REGNO PIC 9(3). 02 S-NAME PIC X(30). 02 S-COURSE PIC X(10). 02 S-YOA PIC 9(4). WORKING-STORAGE SECTION. 01 SHOW-REC. 02 S-REGNO PIC 9(3). 02 FILLER PIC X(3). 02 S-NAME PIC X(30). 02 FILLER PIC X(3). 02 S-COURSE PIC X(10). 02 FILLER PIC X(3). 02 S-YOA PIC 9(4). 77 FLAG PIC X. 77 UL PIC X(56) VALUE ALL "-". 77 DL PIC X(56) VALUE ALL "=". PROCEDURE DIVISION. MAIN-PARA. OPEN OUTPUT STU-FILE. DATA-GET. DISPLAY (01 01) ERASE. DISPLAY "-------------------------------". DISPLAY " DATA INPUT FORM". DISPLAY "-------------------------------". DISPLAY "Enter Reg.No : ". ACCEPT REGNO. DISPLAY " Enter Name : ". ACCEPT NAME. DISPLAY "Enter Course : ". ACCEPT COURSE. DISPLAY " Enter YOA : ". ACCEPT YOA. WRITE STU-REC. DISPLAY "-------------------------------". DISPLAY "Press Y/y to Continue...". ACCEPT FLAG. IF FLAG = "Y" OR FLAG = "y" GO TO DATA-GET. CLOSE-PARA. CLOSE STU-FILE. SORT-PARA. SORT WORK-FILE ON ASCENDING KEY W-YOA, W-COURSE, W-REGNO USING STU-FILE GIVING SORT-FILE. OPEN-UNSORT. OPEN INPUT STU-FILE. DISPLAY (01 01) ERASE. DISPLAY UL. DISPLAY " UNSORTED DATA". DISPLAY DL. READ-UNSORT. READ STU-FILE RECORD AT END GO TO CLOSE-UNSORT. DISPLAY STU-REC. GO TO READ-UNSORT. CLOSE-UNSORT. OPEN INPUT SORT-FILE. DISPLAY UL. DISPLAY " DATA IN SORTED FORM". DISPLAY UL. DISPLAY "REG NAME COURSE - "YEAR". DISPLAY DL. READ-SORT. READ SORT-FILE RECORD AT END GO TO CLOSE-SORT. MOVE CORRESPONDING SORT-REC TO SHOW-REC. DISPLAY SHOW-REC. GO TO READ-SORT. CLOSE-SORT. DISPLAY DL. DISPLAY " ". CLOSE SORT-FILE. STOP RUN.
Write a COBOL program to MULTIPLY TWO MATRICES.
IDENTIFICATION DIVISION. PROGRAM-ID. MATRIX-MULTIPLICATION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. DATA DIVISION. WORKING-STORAGE SECTION. 01 MATRIXA. 02 MATA OCCURS 10 TIMES. 03 A PIC S9(3) OCCURS 10 TIMES. 01 MATRIXB. 02 MATB OCCURS 10 TIMES. 03 B PIC S9(3) OCCURS 10 TIMES. 01 MATRIXC. 02 MATC OCCURS 10 TIMES. 03 C PIC S9(3) OCCURS 10 TIMES. 01 E-VAL PIC -ZZ9. 01 I PIC 99. 01 J PIC 99. 01 K PIC 99. 01 RW PIC 99. 01 RC PIC 99. 01 CL PIC 99. PROCEDURE DIVISION. MAIN-PARA. DISPLAY (01 01) ERASE. DISPLAY (02 10) "Enter the Order of the Matices". DISPLAY (03 10) " I-Matirx : Rows : ". DISPLAY (03 31) "Columns : ". ACCEPT (03 28) RW. ACCEPT (03 41) RC. DISPLAY (04 10) "II-Matirx : Rows : ". DISPLAY (04 31) "Columns : ". DISPLAY (04 28) RC. ACCEPT (04 41) CL. DISPLAY (06 10) "Enter the elements of:". DISPLAY (07 10) "First Matrix ". DISPLAY (07 50) "Second Matrix". MOVE 09 TO LIN. MOVE 10 TO COL. PERFORM READ-A1 VARYING I FROM 1 BY 1 UNTIL I > RW. MOVE 08 TO LIN. MOVE 50 TO COL. PERFORM READ-B1 VARYING I FROM 1 BY 1 UNTIL I > RC. PERFORM COMPUTE-PARA VARYING I FROM 1 BY 1 UNTIL I > RW AFTER J FROM 1 BY 1 UNTIL J > CL. ADD 2 TO LIN. MOVE 10 TO COL. DISPLAY (LIN, 10) "Multiplication of the Matrices". DISPLAY (LIN + 1, 10) "------------------------------". ADD 2 TO LIN. PERFORM DISP-C1 VARYING I FROM 1 BY 1 UNTIL I > RW. DISPLAY (LIN, 10) "==============================". STOP RUN. READ-A1. PERFORM READ-A VARYING J FROM 1 BY 1 UNTIL J > RC. ADD 1 TO LIN. MOVE 10 TO COL. READ-A. ACCEPT (LIN, COL) A(I J). ADD 5 TO COL. READ-B1. PERFORM READ-B VARYING J FROM 1 BY 1 UNTIL J > CL. ADD 1 TO LIN. MOVE 50 TO COL. READ-B. ACCEPT (LIN, COL) B(I J). ADD 5 TO COL. COMPUTE-PARA. MOVE 0 TO C(I J). PERFORM MULTI-PARA VARYING K FROM 1 BY 1 UNTIL K > RC. MULTI-PARA. COMPUTE C(I J) = C(I J) + A(I K) * B(K J). DISP-C1. PERFORM DISP-C VARYING J FROM 1 BY 1 UNTIL J > CL. ADD 1 TO LIN. MOVE 10 TO COL. DISP-C. MOVE C(I J) TO E-VAL. DISPLAY (LIN, COL) E-VAL. ADD 5 TO COL.
Write a COBOL program to ADD TWO MATRICES.
IDENTIFICATION DIVISION. PROGRAM-ID. MATRIX-ADDITION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. DATA DIVISION. WORKING-STORAGE SECTION. 01 MATRIXA. 02 MATA OCCURS 10 TIMES. 03 A PIC S9(3) OCCURS 10 TIMES. 01 MATRIXB. 02 MATB OCCURS 10 TIMES. 03 B PIC S9(3) OCCURS 10 TIMES. 01 MATRIXC. 02 MATC OCCURS 10 TIMES. 03 C PIC S9(3) OCCURS 10 TIMES. 01 E-VAL PIC -ZZ9. 01 I PIC 99. 01 J PIC 99. 01 RW PIC 99. 01 CL PIC 99. PROCEDURE DIVISION. MAIN-PARA. DISPLAY (01 01) ERASE. DISPLAY (02 10) "Enter the Order of the Matices". DISPLAY (03 10) "Rows : ". DISPLAY (03 20) "Columns : ". ACCEPT (03 17) RW. ACCEPT (03 30) CL. DISPLAY (05 10) "Enter the elements of:". DISPLAY (06 10) "First Matrix ". DISPLAY (06 50) "Second Matrix". MOVE 08 TO LIN. MOVE 10 TO COL. PERFORM READ-A1 VARYING I FROM 1 BY 1 UNTIL I > RW. MOVE 08 TO LIN. MOVE 50 TO COL. PERFORM READ-B1 VARYING I FROM 1 BY 1 UNTIL I > RW. PERFORM COMPUTE-PARA VARYING I FROM 1 BY 1 UNTIL I > RW AFTER J FROM 1 BY 1 UNTIL J > CL. ADD 2 TO LIN. MOVE 10 TO COL. DISPLAY (LIN, 10) "Sum of the Matrices". DISPLAY (LIN + 1, 10) "-------------------". ADD 2 TO LIN. PERFORM DISP-C1 VARYING I FROM 1 BY 1 UNTIL I > RW. DISPLAY (LIN, 10) "===================". STOP RUN. READ-A1. PERFORM READ-A VARYING J FROM 1 BY 1 UNTIL J > CL. ADD 1 TO LIN. MOVE 10 TO COL. READ-A. ACCEPT (LIN, COL) A(I J). ADD 5 TO COL. READ-B1. PERFORM READ-B VARYING J FROM 1 BY 1 UNTIL J > CL. ADD 1 TO LIN. MOVE 50 TO COL. READ-B. ACCEPT (LIN, COL) B(I J). ADD 5 TO COL. COMPUTE-PARA. COMPUTE C(I J) = A(I J) + B(I J). DISP-C1. PERFORM DISP-C VARYING J FROM 1 BY 1 UNTIL J > CL. ADD 1 TO LIN. MOVE 10 TO COL. DISP-C. MOVE C(I J) TO E-VAL. DISPLAY (LIN, COL) E-VAL. ADD 5 TO COL.
A sequential file contains records of consumers of a Telecom Services having the following structure: Consumer Number, Consumer Name, Name of Exchange, Previous Meter Reading and Current Meter Reading(Give appropriate picture clauses). Write a COBOL program to print Telephone Bill for each consumer in a neat format
* * A sequential file contains records of consumers of a * Telecom Services having the following structure: * Consumer Number, * Consumer Name, * Name of Exchange, * Previous Meter Reading and * Current Meter Reading (Give appropriate picture clauses). * * Write a COBOL program to print Telephone Bill * for each consumer in a neat format according to the * following slab: * * Slab Consumption Rate/Unit(in Rs.) Telehpone Rent * * I First 250 @ 0.80 Rs. 250 * II Next 600 @ 1.00 Rs. 300 * III Balance @ 1.20 Rs. 500 * IDENTIFICATION DIVISION. PROGRAM-ID. TELE-BILL. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT TELE-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD TELE-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "TELE.DAT" DATA RECORD IS TELE-REC. 01 TELE-REC. 02 CNO PIC 9(4). 02 NAME PIC X(20). 02 EXC PIC X(15). 02 PRE-READ PIC 9(6). 02 CUR-READ PIC 9(6). WORKING-STORAGE SECTION. 01 CONSUM PIC 9(6). 01 E-CONSUM PIC Z(5)9. 01 E-CNO PIC ZZ9. 01 E-PRE-READ PIC Z(5)9. 01 E-CUR-READ PIC Z(5)9. 01 RENT PIC 9(5). 01 E-RENT PIC Z(4)9. 01 CALL-CHARGE PIC 9(5)V99. 01 E-CC PIC Z(4)9.99. 01 BILL-AMT PIC Z(5).99. 01 PAUSE PIC X. PROCEDURE DIVISION. OPEN-PARA. OPEN INPUT TELE-FILE. PROCESS-PARA. DISPLAY (01 01) ERASE. READ TELE-FILE RECORD AT END GO TO CLOSE-PARA. COMPUTE CONSUM = CUR-READ - PRE-READ. IF CONSUM > 850 MOVE 500 TO RENT COMPUTE CALL-CHARGE = 800 + (CONSUM - 850) * 1.20 ELSE IF CONSUM > 250 MOVE 300 TO RENT COMPUTE CALL-CHARGE = 200 + (CONSUM - 250) * 1.00 ELSE MOVE 250 TO RENT COMPUTE CALL-CHARGE = CONSUM * 0.80. MOVE CALL-CHARGE TO E-CC. COMPUTE BILL-AMT = RENT + CALL-CHARGE. PERFORM DISPLAY-PARA. ACCEPT PAUSE. GO TO PROCESS-PARA. CLOSE-PARA. CLOSE TELE-FILE. STOP RUN. DISPLAY-PARA. MOVE CNO TO E-CNO. MOVE PRE-READ TO E-PRE-READ. MOVE CUR-READ TO E-CUR-READ. MOVE CONSUM TO E-CONSUM. MOVE RENT TO E-RENT. DISPLAY "-----------------------------------------------". DISPLAY " Telephone Bill ". DISPLAY "-----------------------------------------------". DISPLAY " Consumer No : " E-CNO. DISPLAY " Name : " NAME. DISPLAY " Exchange Name : " EXC. DISPLAY " ". DISPLAY " ------------------------------------". DISPLAY " Current Reading : " E-CUR-READ. DISPLAY " Previous Reading : " E-PRE-READ. DISPLAY " ------------------------------------". DISPLAY " Consumption : " E-CONSUM. DISPLAY " ". DISPLAY " Rent : Rs. " E-RENT. DISPLAY " Call Charges : Rs. " E-CC. DISPLAY " ------------------------------------". DISPLAY " Bill Amount : Rs. " BILL-AMT. DISPLAY "===============================================".
A student file contain the marks of students scored in various subjects in a class. Each record contain Register Number, Name of Student and Marks scored for Subject1, Subject2 and Subject3(maximum marks 100). Write a COBOL program to prepare a Rank List.
* * A student file contain the marks of students scored * in various subjects in a class. Each record contain * Register Number, Name of Student and Marks scored for * Subject1, Subject2 and Subject3(maximum marks 100). * * Write a COBOL program to prepare a Rank List. * IDENTIFICATION DIVISION. PROGRAM-ID. RANKING. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT TOT-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WORK-FILE ASSIGN TO DISK. SELECT RANK-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "MARK.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 9(3). 02 NAME PIC X(20). 02 M1 PIC 9(3). 02 M2 PIC 9(3). 02 M3 PIC 9(3). FD TOT-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "TOTAL.DAT" DATA RECORD IS TOT-REC. 01 TOT-REC. 02 REGNO PIC 9(3). 02 NAME PIC X(20). 02 M1 PIC 9(3). 02 M2 PIC 9(3). 02 M3 PIC 9(3). 02 TOTAL PIC 9(3). SD WORK-FILE DATA RECORD IS WORK-REC. 01 WORK-REC. 02 REGNO PIC 9(3). 02 NAME PIC X(20). 02 M1 PIC 9(3). 02 M2 PIC 9(3). 02 M3 PIC 9(3). 02 TOTAL PIC 9(3). FD RANK-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "RANK.DAT" DATA RECORD IS RANK-REC. 01 RANK-REC. 02 REGNO PIC 9(3). 02 NAME PIC X(20). 02 M1 PIC 9(3). 02 M2 PIC 9(3). 02 M3 PIC 9(3). 02 TOTAL PIC 9(3). 02 RANK PIC 9(3). WORKING-STORAGE SECTION. 01 PRE-TOTAL PIC 9(3) VALUE 0. 01 T-RANK PIC 9(3) VALUE 0. 01 SHOW-REC. 02 REGNO PIC ZZ9. 02 FILLER PIC X(2). 02 NAME PIC X(20). 02 FILLER PIC X(2). 02 M1 PIC ZZ9. 02 FILLER PIC X(2). 02 M2 PIC ZZ9. 02 FILLER PIC X(2). 02 M3 PIC ZZ9. 02 FILLER PIC X(2). 02 TOTAL PIC ZZ9. 02 FILLER PIC X(2). 02 RANK PIC ZZ9. PROCEDURE DIVISION. TOT-PARA. OPEN INPUT STU-FILE OUTPUT TOT-FILE. READMARK-PARA. READ STU-FILE RECORD INTO TOT-REC AT END GO TO CLOSE-STU-PARA. COMPUTE TOTAL OF TOT-REC = M1 OF TOT-REC + M2 OF TOT-REC + M3 OF TOT-REC. WRITE TOT-REC. GO TO READMARK-PARA. CLOSE-STU-PARA. CLOSE STU-FILE TOT-FILE. SORT-PARA. SORT WORK-FILE ON DESCENDING KEY TOTAL OF WORK-REC USING TOT-FILE GIVING RANK-FILE. OPEN-PARA. OPEN I-O RANK-FILE. READ-PARA. READ RANK-FILE RECORD AT END GO TO CLOSE-PARA. IF PRE-TOTAL NOT = TOTAL OF RANK-REC COMPUTE T-RANK = T-RANK + 1 MOVE TOTAL OF RANK-REC TO PRE-TOTAL. MOVE T-RANK TO RANK OF RANK-REC. REWRITE RANK-REC. GO TO READ-PARA. CLOSE-PARA. CLOSE RANK-FILE. OPEN INPUT RANK-FILE. DISPLAY "--------------------------------------------------". DISPLAY " RANK LIST". DISPLAY "--------------------------------------------------". DISPLAY "REG NAME M1 M2 M3 TOT RANK". DISPLAY "==================================================". READRANK-PARA. READ RANK-FILE RECORD AT END GO TO CLOSE-RANK-PARA. MOVE CORRESPONDING RANK-REC TO SHOW-REC. DISPLAY SHOW-REC. GO TO READRANK-PARA. CLOSE-RANK-PARA. CLOSE RANK-FILE. DISPLAY "==================================================". DISPLAY " ". STOP RUN.
A sequential file contains records of consumers of an electricity board having the following structure: Consumer Number, Name of Consumer, Previous Meter Reading and Current Meter Reading(give appropriate picture clauses). Write a COBOL program to print the Electricity Bill for each consumer in a neat format .
* * A sequential file contains records of consumers of an * electricity board having the following structure: * Consumer Number, * Name of Consumer, * Previous Meter Reading and * Current Meter Reading (give appropriate picture clauses). * * Write a COBOL program to print the Electricity Bill * for each consumer in a neat format according to the * following slab: * * Consumption Rate/Unit(in Rs.) * < 50 @ 1.00 * 50 - 100 @ 1.25 * > 100 @ 1.50 * IDENTIFICATION DIVISION. PROGRAM-ID. ELECTRICITY-BILL. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT ELE-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD ELE-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "ELE.DAT" DATA RECORD IS ELE-REC. 01 ELE-REC. 02 CNO PIC 9(4). 02 NAME PIC X(20). 02 PRE-READ PIC 9(6). 02 CUR-READ PIC 9(6). WORKING-STORAGE SECTION. 01 CONSUM PIC 9(4). 01 E-CONSUM PIC Z(3)9. 01 E-CNO PIC Z(3)9. 01 E-PRE-READ PIC Z(5)9. 01 E-CUR-READ PIC Z(5)9. 01 BILL-AMT PIC Z(5).99. 01 PAUSE PIC X. PROCEDURE DIVISION. OPEN-PARA. OPEN INPUT ELE-FILE. PROCESS-PARA. DISPLAY (01 01) ERASE. READ ELE-FILE RECORD AT END GO TO CLOSE-PARA. COMPUTE CONSUM = CUR-READ - PRE-READ. IF CONSUM > 100 COMPUTE BILL-AMT = CONSUM * 1.50 ELSE IF CONSUM > 50 COMPUTE BILL-AMT = CONSUM * 1.25 ELSE COMPUTE BILL-AMT = CONSUM * 1.00. PERFORM DISPLAY-PARA. ACCEPT PAUSE. GO TO PROCESS-PARA. CLOSE-PARA. CLOSE ELE-FILE. STOP RUN. DISPLAY-PARA. MOVE CNO TO E-CNO. MOVE PRE-READ TO E-PRE-READ. MOVE CUR-READ TO E-CUR-READ. MOVE CONSUM TO E-CONSUM. DISPLAY "-----------------------------------------------". DISPLAY " Electricity Bill ". DISPLAY "-----------------------------------------------". DISPLAY " Consumer No.: " E-CNO. DISPLAY " Name : " NAME. DISPLAY " ". DISPLAY " ----------------------------------". DISPLAY " Current Reading : " E-CUR-READ. DISPLAY " Previous Reading : " E-PRE-READ. DISPLAY " ". DISPLAY " Consumption : " E-CONSUM. DISPLAY " ----------------------------------". DISPLAY " Bill Amount : " BILL-AMT. DISPLAY "===============================================".
An employee record contains Badge Number/Employee Number, Name of Employee, Basic Pay, DA, HRA and Deductions. Write a COBOL program to accept details of a set of employees through keyboard and stored in a sequential file and print the contents of the file in a neat format.
* * An employee record contains Badge Number/Employee Number, * Name of Employee, Basic Pay, DA, HRA and Deductions. * * Write a COBOL program to accept details of a set of * employees through keyboard and stored in a sequential file * and print the contents of the file in a neat format. * IDENTIFICATION DIVISION. PROGRAM-ID. CREATING-EMPLOYEE-SEQ-FILE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. 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" DATA RECORD IS EMP-REC. 01 EMP-REC. 02 BADNO PIC 9(3). 02 NAME PIC X(20). 02 BASIC-PAY PIC 9(5)V99. 02 DA PIC 9(5)V99. 02 HRA PIC 9(5)V99. 02 DEDUCTION PIC 9(5)V99. WORKING-STORAGE SECTION. 01 E-EMP-REC. 02 FILLER PIC XX. 02 BADNO PIC ZZ9. 02 FILLER PIC XXX. 02 NAME PIC X(20). 02 FILLER PIC XX. 02 BASIC-PAY PIC Z(4)9.99. 02 FILLER PIC XXX. 02 DA PIC Z(4)9.99. 02 FILLER PIC XXX. 02 HRA PIC Z(4)9.99. 02 FILLER PIC XXX. 02 DEDUCTION PIC Z(4)9.99. 01 OPTION PIC X VALUE IS "Y". PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA. PERFORM WRITE-PARA UNTIL OPTION NOT = "Y". PERFORM SECOND-OPEN-PARA. PERFORM READ-PARA. OPEN-PARA. OPEN OUTPUT EMP-FILE. WRITE-PARA. DISPLAY (01 01) ERASE. DISPLAY (02 10) "Enter the following details of an Employee". DISPLAY (03 10) "------------------------------------------". DISPLAY (04 10) " Badge/Emp. No.: ". ACCEPT (04 28) BADNO OF EMP-REC. DISPLAY (05 10) "Name of Employee: ". ACCEPT (05 28) NAME OF EMP-REC. DISPLAY (06 10) " Basic Pay : ". ACCEPT (06 28) BASIC-PAY OF EMP-REC. DISPLAY (07 10) " DA : ". ACCEPT (07 28) DA OF EMP-REC. DISPLAY (08 10) " HRA : ". ACCEPT (08 28) HRA OF EMP-REC. DISPLAY (09 10) " Deduction : ". ACCEPT (09 28) DEDUCTION OF EMP-REC. WRITE EMP-REC. DISPLAY (12 10) "Press Y/y to add more Employee : ". ACCEPT (12 44) OPTION. IF OPTION = "y" MOVE "Y" TO OPTION. SECOND-OPEN-PARA. CLOSE EMP-FILE. OPEN INPUT EMP-FILE. DISPLAY (01 01) ERASE. DISPLAY "---------------------------------------------------- - "-------------------". DISPLAY "Emp.No. Name of Employee Basic Pay D.A. - " H.R.A. Deduction". DISPLAY "---------------------------------------------------- - "-------------------". READ-PARA. READ EMP-FILE RECORD AT END GO TO CLOSE-PARA. MOVE CORRESPONDING EMP-REC TO E-EMP-REC. DISPLAY E-EMP-REC. GO TO READ-PARA. CLOSE-PARA. DISPLAY "==================================================== - "===================". CLOSE EMP-FILE. STOP RUN.
Sample MERGE program using COBOL
IDENTIFICATION DIVISION. PROGRAM-ID. MERGING-OF-SEQUENTIAL-FILES. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU1-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT STU2-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WORK-FILE ASSIGN TO DISK. DATA DIVISION. FILE SECTION. FD STU1-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "LIST1.DAT" DATA RECORD IS STU1-REC. 01 STU1-REC. 02 REGNO1 PIC 999. 02 NAME1 PIC X(10). 02 YOA1 PIC 9999. FD STU2-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "LIST2.DAT" DATA RECORD IS STU2-REC. 01 STU2-REC. 02 REGNO2 PIC 999. 02 NAME2 PIC X(10). 02 YOA2 PIC 9999. FD OUT-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "MLIST.DAT" DATA RECORD IS OUT-REC. 01 OUT-REC. 02 OREGNO PIC 999. 02 ONAME PIC X(10). 02 OYOA PIC 9999. SD WORK-FILE DATA RECORD IS WORK-REC. 01 WORK-REC. 02 WREGNO PIC 999. 02 WNAME PIC X(10). 02 WYOA PIC 9999. PROCEDURE DIVISION. MAIN-PARA. MERGE WORK-FILE ON DESCENDING KEY WYOA ON ASCENDING KEY WNAME USING STU1-FILE STU2-FILE GIVING OUT-FILE. OPEN-PARA. OPEN INPUT OUT-FILE. DISPLAY "------------------------------------". DISPLAY " MERGED RECORDS". DISPLAY "------------------------------------". READ-PARA. READ OUT-FILE RECORD AT END GO TO CLOSE-PARA. DISPLAY OUT-REC. GO TO READ-PARA. CLOSE-PARA. DISPLAY "------------------------------------". DISPLAY " ". CLOSE OUT-FILE. STOP RUN.
Sample Sorting program using COBOL
IDENTIFICATION DIVISION. PROGRAM-ID. SORTING-OF-SEQUENTIAL-FILE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT WORK-FILE ASSIGN TO DISK. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "NAMELIST.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 999. 02 NAME PIC X(10). 02 YOA PIC 9999. FD OUT-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "SORTLIST.DAT" DATA RECORD IS OUT-REC. 01 OUT-REC. 02 OREGNO PIC 999. 02 ONAME PIC X(10). 02 OYOA PIC 9999. SD WORK-FILE DATA RECORD IS WORK-REC. 01 WORK-REC. 02 WREGNO PIC 999. 02 WNAME PIC X(10). 02 WYOA PIC 9999. PROCEDURE DIVISION. MAIN-PARA. SORT WORK-FILE ON DESCENDING KEY WYOA ON ASCENDING KEY WNAME USING STU-FILE GIVING OUT-FILE. STOP RUN.
Preparation of Mark List by reading data from a Student File (Line Sequential)
IDENTIFICATION DIVISION. PROGRAM-ID. STUDENT-FILE-MARKLIST-PREPARATION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "STU.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 999. 02 NAME PIC X(30). 02 M1 PIC 999. 02 M2 PIC 999. 02 M3 PIC 999. WORKING-STORAGE SECTION. 01 TM PIC 999. 01 EDT-REC. 02 EREGNO PIC ZZ9. 02 ENAME PIC X(30). 02 EM1 PIC ZZ9. 02 EM2 PIC ZZ9. 02 EM3 PIC ZZ9. 02 ETM PIC ZZ9. 02 RESULT PIC X(20). 01 SL PIC X(40) VALUE ALL "-". 01 DL PIC X(40) VALUE ALL "=". 01 PAUSE PIC X. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA. READ-PARA. READ STU-FILE RECORD AT END GO TO CLOSE-PARA. COMPUTE TM = M1 + M2 + M3. IF TM NOT < 240 MOVE "Distinction" TO RESULT ELSE IF TM NOT < 180 MOVE "First Class" TO RESULT ELSE IF TM NOT < 150 MOVE "Second Class" TO RESULT ELSE MOVE "Failed" TO RESULT. MOVE REGNO TO EREGNO. MOVE NAME TO ENAME. MOVE M1 TO EM1. MOVE M2 TO EM2. MOVE M3 TO EM3. MOVE TM TO ETM. DISPLAY (01 01) SPACES. DISPLAY (02 01) SL. DISPLAY (03 12) "M A R K L I S T". DISPLAY (04 01) DL. DISPLAY (05 01) " Register No : " EREGNO. DISPLAY (06 01) " Name : " ENAME. DISPLAY (07 01) " Marks in ". DISPLAY (08 01) " Subject-1 : " EM1. DISPLAY (09 01) " Subject-2 : " EM2. DISPLAY (10 01) " Subject-3 : " EM3. DISPLAY (12 01) " Total Marks : " ETM. DISPLAY (14 01) " Result : " RESULT. DISPLAY (16 01) DL. ACCEPT PAUSE. GO TO READ-PARA. OPEN-PARA. OPEN INPUT STU-FILE. CLOSE-PARA. DISPLAY " ". CLOSE STU-FILE. STOP RUN.
Reading a Line Sequential File and displaying the content in a neat format
IDENTIFICATION DIVISION. PROGRAM-ID. READING-LINE-SEQUENTIAL-FILE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "STU.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 999. 02 NAME PIC X(30). 02 M1 PIC 999. 02 M2 PIC 999. 02 M3 PIC 999. WORKING-STORAGE SECTION. 01 TM PIC 999. 01 EDT-REC. 02 EREGNO PIC ZZ9. 02 FILLER PIC XX VALUE SPACES. 02 ENAME PIC X(30). 02 EM1 PIC ZZ9. 02 FILLER PIC XX VALUE SPACES. 02 EM2 PIC ZZ9. 02 FILLER PIC XX VALUE SPACES. 02 EM3 PIC ZZ9. 02 FILLER PIC XX VALUE SPACES. 02 ETM PIC ZZ9. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA. DISPLAY "---------------------------------------------------- - "----". DISPLAY " MARK LIST". DISPLAY "---------------------------------------------------- - "----". DISPLAY "RNO NAME M1 M2 M3 TO - "TAL". DISPLAY "==================================================== - "====". READ-PARA. READ STU-FILE RECORD AT END GO TO CLOSE-PARA. COMPUTE TM = M1 + M2 + M3. MOVE REGNO TO EREGNO. MOVE NAME TO ENAME. MOVE M1 TO EM1. MOVE M2 TO EM2. MOVE M3 TO EM3. MOVE TM TO ETM. DISPLAY EDT-REC. GO TO READ-PARA. OPEN-PARA. OPEN INPUT STU-FILE. CLOSE-PARA. DISPLAY "==================================================== - "====". DISPLAY " ". CLOSE STU-FILE. STOP RUN.
Creation of Line Sequential - Student File with records having REGNO, NAME and MARKS OF THREE SUBJECTS.
IDENTIFICATION DIVISION. PROGRAM-ID. STUDENT-FILE-SEQUENTIAL-FILE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STU-FILE ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STU-FILE LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "STU.DAT" DATA RECORD IS STU-REC. 01 STU-REC. 02 REGNO PIC 999. 02 NAME PIC X(30). 02 M1 PIC 999. 02 M2 PIC 999. 02 M3 PIC 999. WORKING-STORAGE SECTION. 77 NOS PIC 99. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA. DISPLAY "Enter the Number of Students : ". ACCEPT NOS. PERFORM GET-DATA NOS TIMES. PERFORM CLOSE-PARA. STOP RUN. OPEN-PARA. OPEN OUTPUT STU-FILE. GET-DATA. DISPLAY "Enter the Register No : ". ACCEPT REGNO. DISPLAY "Enter the Name : ". ACCEPT NAME. DISPLAY "Three Marks : ". ACCEPT M1. ACCEPT M2. ACCEPT M3. WRITE STU-REC. CLOSE-PARA. CLOSE STU-FILE.
Subscribe to:
Posts (Atom)