Cobol Tutorial

 
 
 

Basic Programming

Relative file - insertion,deletion,updation, print Divides one or more operands by another IF-ELSE Clause Group wise stock summary Attendence Report of Employees SORTING Operation Add 2 or more operands and stores result Describe Functionality of table by using File Fahrenheit into temperature - C = (5/9) * (f - 32) Use of Control Break clause Print employee detail Draws an ellipse or a circle Binary search using files Generating date and time Generate arithmetic operation - evaluate clause

General Programs

Evaluate gender from user and print Display input number is prime or not Display on printer message entered by user Displays message entered by user on printer Merging two files in a single file Read data from input file and move to output file Print account report Use of Sign clause Create attendence sheet Displays on printer - divide operation quotient Binary search on student name, print roll number job appl checking candidate is eligible or not Display the pattern of square School management system

Mathematical Program

Print bill report Purchase and rebate amount payslip Example of string and unstring Describe Functionality of two dimension table Insert, delete, update, view in index file Student details using relative file Converting integer to its number of words Use of move clause for numeric values Use multiple array Inventory transactions Sort records of file Displays alphanumeric char on screen graphic mode Multiplication table Generate sales register

Sorting Programs

Store content in file,record of field - other file Calculate Total percentage Classfor each student Edit character Display pattern of numbers in reverse pattern User input data and stores it in to the file Input record into file using extend mode Draw a line Use of Tables with INPUT clause Check student is pass or fail i/p result from user Calculate monthly sales amount -sequential access Sescribes how to use Sort technique Declares data to the compiler Generating julian date

Clause

Describe Functionality of Relative File Print addition of two nos and sum is third or not Use of perform verbs Bank Report depending upon user choice Create result statement for given semester Search name from file display roll no of student Evaluates arithmetic expression - stores result Use of evaluate clause Describe use of IF CONDITION and PRINT Calculate Total percentage Class for each student Displays alphanumeric character in graphics mode Reads in states until end of data Read student details from file - read operation Merge 2 files with students records Print presence report based on provided data Use of Inspect clause Check entered date is valid birth date or not Draws rectangle filled with one color Search perticular record Find age from accepted date from user Check if a number is a fibonacci or not

File Programs

Check two same condition name is allow or not Arithmetic operations add,sub,div and mul Display on Console a message entered by user Display message entered by user on console Generate student mark sheet using file r/w op Student detail management using indexed file Print mark sheet of a student with grades Use of Redefine clause Create marksheet of student Use of leading and trailing Sequential search Class condition Sum of series 1 + 1/4 + 1/9 Using sign test for numeric value

Search Programs

Enter value is alphabetic,numeric,alphanumeric Find yearly depreciation Unstring word Find smallest quotation for given item Write records reside in i/p file- show on screen Create the index file Draw polygon Use of EVALUATE clause Count number of char Date manipulation Bubble sort DOS standard o/p device Add two numbers Generate sales report item wise

String Programs

Includes external source file in current file Gross salary, deduction, net salary of employee Count character for no of times in input string Display triangle of numbers FILE Read Operation
 
 
        IDENTIFICATION DIVISION.
        PROGRAM-ID. BANK.

        ENVIRONMENT DIVISION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
                SELECT BANK-IN-FILE ASSIGN TO DISK
                  ORGANIZATION IS LINE SEQUENTIAL.

        DATA DIVISION.
        FILE SECTION.
        FD BANK-IN-FILE VALUE OF FILE-ID IS \'IDBIBANK.DAT\'
                     LABEL RECORDS ARE STANDARD.
        01 BANK-REC.
                05 ACCNO        PIC 9(5).
                05 HOLDER       PIC X(25).
                05 DOO.
                        10 DD   PIC 99.
                        10 MM   PIC 99.
                        10 YY   PIC 9999.
                05 BALANCE      PIC 9(8)V99.
                05 ACCTYPE      PIC A.
                05 GENDER       PIC A.

        WORKING-STORAGE SECTION.
      *   Heading on the top of the screen.  
        01 HEADING.
                05 FILLER       PIC X(30) VALUE SPACES.
                05 TEXT         PIC X(40).

      *   Column Titles for first option.  
        01 COL-TITLE.
                05 FILLER       PIC X(1) VALUE SPACES.
                05 COL1         PIC X(5).
                05 FILLER       PIC X(3) VALUE SPACES.
                05 COL2         PIC X(5).
                05 FILLER       PIC X(10) VALUE SPACES.
                05 COL3         PIC X(5).
                05 COL4         PIC X(10).
                05 FILLER       PIC X(4) VALUE SPACES.
                05 COL5         PIC X(5).
                05 COL6         PIC X(10).
                05 FILLER       PIC X(4) VALUE SPACES.
                05 COL7         PIC X(5).
                05 COL8         PIC X(10).

      *   Column Titles for other options.  
        01 COL-TITLE1.
                05 FILLER       PIC X(3) VALUE SPACES.
                05 COL21        PIC X(5).
                05 FILLER       PIC X(1) VALUE SPACES.
                05 COL22        PIC X(20).
                05 FILLER       PIC X(4) VALUE SPACES.
                05 COL23        PIC X(5).
                05 FILLER       PIC X(2) VALUE SPACES.
                05 COL24        PIC X(10).
                05 FILLER       PIC X(4) VALUE SPACES.
                05 COL25        PIC X(5).
                05 FILLER       PIC X(8) VALUE SPACES.
                05 COL26        PIC X(10).

      *   Data Records for the first option.  
        01 REC-OUT.
                05 FILLER       PIC X(2) VALUE SPACES.
                05 DATA1        PIC X(5).
                05 DATA2        PIC X(12).
                05 FILLER       PIC X(3) VALUE SPACES.
                05 DATA3        PIC ZZZ.
                05 FILLER       PIC XX VALUE SPACES.
                05 DATA4        PIC Z(8).99.
                05 FILLER       PIC X(3) VALUE SPACES.
                05 DATA5        PIC ZZZ.
                05 FILLER       PIC XX VALUE SPACES.
                05 DATA6        PIC Z(8).99.
                05 FILLER       PIC X(3) VALUE SPACES.
                05 DATA7        PIC ZZZ.
                05 FILLER       PIC XX VALUE SPACES.
                05 DATA8        PIC Z(8).99.

      *   Data Records for other options.  
        01 REC-OUT1.
                05 DATA21       PIC Z(5).
                05 FILLER       PIC X(3) VALUE SPACES.
                05 DATA22       PIC X(25).
                05 FILLER       PIC X(2) VALUE SPACES.
                05 DATA23       PIC X(3).
                05 FILLER       PIC X(1) VALUE SPACES.
                05 DATA24.
                        10 DD1          PIC 99.
                        10 FILLER       PIC X VALUE \'/\'.
                        10 MM1          PIC 99.
                        10 FILLER       PIC X VALUE \'/\'.
                        10 YY1          PIC 9999.
                05 FILLER       PIC X(3) VALUE SPACES.
                05 DATA25       PIC Z(8).99 BLANK WHEN ZERO.
                05 FILLER       PIC X(2) VALUE SPACES.
                05 DATA26       PIC Z(8).99 BLANK WHEN ZERO.


      *   Totals for the account type S.  
        01 S.
                05 M-ACC        PIC 999 VALUE ZERO.
                05 M-AMT        PIC 9(8)V99 VALUE ZERO.
                05 F-ACC        PIC 999 VALUE ZERO.
                05 F-AMT        PIC 9(8)V99 VALUE ZERO.
                05 T-ACC        PIC 999 VALUE ZERO.
                05 T-AMT        PIC 9(8)V99 VALUE ZERO.

      *   Totals for the account type C.
        01 C.
                05 M-ACC        PIC 999 VALUE ZERO.
                05 M-AMT        PIC 9(8)V99 VALUE ZERO.
                05 F-ACC        PIC 999 VALUE ZERO.
                05 F-AMT        PIC 9(8)V99 VALUE ZERO.
                05 T-ACC        PIC 999 VALUE ZERO.
                05 T-AMT        PIC 9(8)V99 VALUE ZERO.

      *   Totals for the account type O.
        01 O.
                05 M-ACC        PIC 999 VALUE ZERO.
                05 M-AMT        PIC 9(8)V99 VALUE ZERO.
                05 F-ACC        PIC 999 VALUE ZERO.
                05 F-AMT        PIC 9(8)V99 VALUE ZERO.
                05 T-ACC        PIC 999 VALUE ZERO.
                05 T-AMT        PIC 9(8)V99 VALUE ZERO.

      *   Other process variables.
        77 START-AMT    PIC 9(8)V99 VALUE ZERO. 
        77 STOP-AMT     PIC 9(8)V99 VALUE ZERO.     
        77 D-LINE       PIC X(79) VALUE ALL \'-\'.
        77 B-LINE       PIC X(79) VALUE ALL \' \'.
        77 TYPE         PIC A.
        77 CHOICE       PIC 9 VALUE ZERO.
        77 EOF          PIC A VALUE \'N\'.

        PROCEDURE DIVISION.

      *   Main Para.  
        MAIN-PARA.
                OPEN INPUT BANK-IN-FILE.
                PERFORM ASK-USER.
                STOP RUN.

      *   Para to ask user for a choice.
        ASK-USER.
                DISPLAY (1, 1) ERASE.
                DISPLAY \" \".
                DISPLAY \" \".
                DISPLAY \"  1.  A/C. SUMMARY\".
                DISPLAY \"  2.  LIST OF GIVEN TYPE OF ACCOUNT\".
                DISPLAY \"  3.  LIST WITHN GIVEN RANGE OF AMOUNT\".
                DISPLAY \"  4.  LIST A/C. OPENED DURING GIVEN YEAR\".
                DISPLAY \"  5.  EXIT\".
                DISPLAY \" \".
                DISPLAY \"  ENTER YOUR CHOICE :=> \".
                ACCEPT CHOICE.
                PERFORM CHOICE-PARA.

      *   Check the user given choice.
        CHOICE-PARA.
                IF CHOICE = 1
                        PERFORM CHOICE-1
                ELSE IF CHOICE = 2
                        PERFORM CHOICE-2
                ELSE IF CHOICE = 3
                        PERFORM CHOICE-3
                ELSE IF CHOICE = 4
                        PERFORM CHOICE-4
                ELSE IF CHOICE = 5
                        PERFORM CLOSE-PARA.

      *   Para for the user choice 1.
        CHOICE-1.
                 DISPLAY (1, 1) ERASE.
                 MOVE \'IDBI BANK LTD\' TO TEXT.
                 DISPLAY \" \" HEADING.
                 MOVE \'ACCONT SUMMARY\' TO TEXT.
                 DISPLAY \" \" HEADING.

                 DISPLAY D-LINE.
                 MOVE \'A/C\' TO COL1 COL2.
                 MOVE  \' \' TO COL3, COL5, COL7.
                 MOVE \'MALES\' TO COL4.
                 MOVE \'FEMALES\' TO COL6.
                 MOVE \'TOTAL\' TO COL8.
                 DISPLAY COL-TITLE.

                 MOVE \'TYPE\' TO COL1.
                 MOVE \'NAME\' TO COL2.
                 MOVE  \'NO\' TO COL3, COL5, COL7.
                 MOVE \'BAL. AMT.\' TO COL4 COL6 COL8.
                 DISPLAY COL-TITLE.
                 DISPLAY D-LINE.
                 READ BANK-IN-FILE.
                 PERFORM CALC-PARA UNTIL EOF = \'Y\'.

      *   Depending upon the Account type generate totals.
        CALC-PARA.

                 IF ACCTYPE = \'S\'
                         PERFORM SAV-PARA
                 ELSE IF ACCTYPE = \'C\'
                        PERFORM CUR-PARA          
                 ELSE
                        PERFORM OVER-PARA.

                 READ BANK-IN-FILE AT END PERFORM REC-PARA.

        SAV-PARA.
                 IF GENDER = \'M\'
                        ADD 1 TO M-ACC OF S
                        ADD BALANCE TO M-AMT OF S
                 ELSE
                        ADD 1 TO F-ACC OF S
                        ADD BALANCE TO F-AMT OF S.
        CUR-PARA.
                 IF GENDER = \'M\'
                        ADD 1 TO M-ACC OF C
                        ADD BALANCE TO M-AMT OF C
                 ELSE
                        ADD 1 TO F-ACC OF C
                        ADD BALANCE TO F-AMT OF C.
        OVER-PARA.        
                 IF GENDER = \'M\'
                        ADD 1 TO M-ACC OF O
                        ADD BALANCE TO M-AMT OF O
                 ELSE
                        ADD 1 TO F-ACC OF O
                        ADD BALANCE TO F-AMT OF O.

      *   Displaying the Records  .
        REC-PARA.
                MOVE \'S\' TO DATA1.
                MOVE \'SAVING\' TO DATA2.
                MOVE M-ACC OF S TO DATA3.
                MOVE M-AMT OF S TO DATA4.
                MOVE F-ACC OF S TO DATA5.
                MOVE F-AMT OF S TO DATA6.
                ADD M-ACC OF S  F-ACC OF S GIVING T-ACC OF S.
                MOVE T-ACC OF S TO DATA7.
                ADD M-AMT OF S  F-AMT OF S GIVING T-AMT OF S.
                MOVE T-AMT OF S TO DATA8.
                DISPLAY REC-OUT.

                MOVE \'C\' TO DATA1.
                MOVE \'CURRENT\' TO DATA2.
                MOVE M-ACC OF C TO DATA3.
                MOVE M-AMT OF C TO DATA4.
                MOVE F-ACC OF C TO DATA5.
                MOVE F-AMT OF C TO DATA6.
                ADD M-ACC OF C  F-ACC OF C GIVING T-ACC OF C.
                MOVE T-ACC OF C TO DATA7.
                ADD M-AMT OF C  F-AMT OF C GIVING T-AMT OF C.
                MOVE T-AMT OF C TO DATA8.
                DISPLAY REC-OUT.

                MOVE \'O\' TO DATA1.
                MOVE \'OVER DRAFT\' TO DATA2.
                MOVE M-ACC OF O TO DATA3.
                MOVE M-AMT OF O TO DATA4.
                MOVE F-ACC OF O TO DATA5.
                MOVE F-AMT OF O TO DATA6.
                ADD M-ACC OF O  F-ACC OF O GIVING T-ACC OF O.
                MOVE T-ACC OF O TO DATA7.
                ADD M-AMT OF O  F-AMT OF O GIVING T-AMT OF O.
                MOVE T-AMT OF O TO DATA8.
                DISPLAY REC-OUT.

                DISPLAY D-LINE.
                MOVE \' \'  TO DATA1.
                MOVE \'TOTALS\' TO DATA2.
                ADD M-ACC OF S M-ACC OF C M-ACC OF O
                   GIVING DATA3.
                ADD M-AMT OF S M-AMT OF C M-AMT OF O
                   GIVING DATA4.

                ADD F-ACC OF S F-ACC OF C F-ACC OF O
                   GIVING DATA5.
                ADD F-AMT OF S F-AMT OF C F-AMT OF O
                   GIVING DATA6.

                ADD T-ACC OF S T-ACC OF C T-ACC OF O
                   GIVING DATA7.
                ADD T-AMT OF S T-AMT OF C T-AMT OF O
                   GIVING DATA8.

                DISPLAY REC-OUT.
                DISPLAY D-LINE.
                DISPLAY B-LINE.
                DISPLAY B-LINE.
                MOVE \'Y\' TO EOF.

      *   Para for the user choice 2.
        CHOICE-2.
                 DISPLAY (1, 1) ERASE.
                 DISPLAY \"SELECT THE ACCOUNT TYPE [S/C/O] :- \".
                 ACCEPT TYPE.
                 MOVE \'IDBI BANK LTD\' TO TEXT.
                 DISPLAY \" \" HEADING.
                 MOVE \'REPORT FOR GIVEN ACC. TYPE\' TO TEXT.
                 DISPLAY \" \" HEADING.

                 PERFORM COL-2.


                 READ BANK-IN-FILE.
                 PERFORM DISP-REC2 UNTIL EOF = \'Y\'.

                 PERFORM FOOT-RPT.

      *   To print the footer report for choice other than 1.  
        FOOT-RPT.
                 DISPLAY D-LINE.
                 MOVE SPACES TO REC-OUT1.
                 MOVE \'TOTAL\' TO DATA22.
                 MOVE M-AMT OF S TO DATA25.
                 MOVE F-AMT OF S TO DATA26.
                 DISPLAY REC-OUT1.
                 DISPLAY D-LINE.
                 MOVE \'GRAND TOTAL\' TO DATA22.

                 ADD M-AMT OF S, F-AMT OF S GIVING DATA26.
                 MOVE ZEROS TO DATA25.
                 DISPLAY REC-OUT1.
                 DISPLAY D-LINE.
                 DISPLAY B-LINE.

      *   Printing the columns for choice other than 1.
        COL-2.
                 DISPLAY D-LINE.
                 MOVE \'A/C\' TO COL21.
                 MOVE \'HOLDER\' TO COL22.
                 MOVE \'A/C\' TO COL23.
                 MOVE \'OPENING\' TO COL24.
                 MOVE \'MALE\' TO COL25.
                 MOVE \'FEMALE\' TO COL26.
                 DISPLAY COL-TITLE1.

                 MOVE \'NO\' TO COL21.
                 MOVE \'NAME\' TO COL22.
                 MOVE \'TYPE\' TO COL23.
                 MOVE \'DATE\' TO COL24.
                 MOVE \'BALANCE\' TO COL25, COL26.
                 DISPLAY COL-TITLE1.
                 DISPLAY D-LINE.
                 MOVE ZEROS TO M-AMT OF S.
                 MOVE ZEROS TO F-AMT OF S.

      *   Records printing for choice other than 1.
        DISP-REC2.
                 IF ACCTYPE = TYPE
                        MOVE ACCNO TO DATA21
                        MOVE HOLDER TO DATA22
                        MOVE ACCTYPE TO DATA23
                        MOVE DD TO DD1 
                        MOVE MM TO MM1
                        MOVE YY TO YY1               
                        IF GENDER = \'M\'
                                MOVE ZEROS TO DATA26
                                MOVE BALANCE TO DATA25
                                ADD BALANCE TO M-AMT OF S
                        ELSE                          
                                MOVE ZEROS TO DATA25
                                MOVE BALANCE TO DATA26
                                ADD BALANCE TO F-AMT OF S.

                 IF ACCTYPE = TYPE
                        DISPLAY REC-OUT1.

                 READ BANK-IN-FILE AT END MOVE \'Y\' TO EOF.

      *   Para for user choice 3.
        CHOICE-3.
                 DISPLAY (1, 1) ERASE.
                 DISPLAY \"GIVE THE STARTING RANGE :- \".
                 ACCEPT START-AMT.
                 DISPLAY \"GIVE THE STOPING RANGE :- \".
                 ACCEPT STOP-AMT.

                 MOVE \'IDBI BANK LTD\' TO TEXT.
                 DISPLAY \" \" HEADING.
                 MOVE \'REPORT FOR GIVEN RANGE\' TO TEXT.
                 DISPLAY \" \" HEADING.

                 PERFORM COL-2.

                 READ BANK-IN-FILE.
                 PERFORM DISP-REC3 UNTIL EOF = \'Y\'.

                 PERFORM FOOT-RPT.

      *   Displaying records for choice = 3.           
        DISP-REC3.
                 IF (BALANCE > START-AMT OR
                        BALANCE = START-AMT) AND
                    (BALANCE < STOP-AMT OR
                        BALANCE = STOP-AMT)

                        MOVE ACCNO TO DATA21
                        MOVE HOLDER TO DATA22
                        MOVE ACCTYPE TO DATA23
                        MOVE DD TO DD1 
                        MOVE MM TO MM1
                        MOVE YY TO YY1               
                        IF GENDER = \'M\'
                                MOVE ZEROS TO DATA26
                                MOVE BALANCE TO DATA25
                                ADD BALANCE TO M-AMT OF S
                        ELSE                          
                                MOVE ZEROS TO DATA25
                                MOVE BALANCE TO DATA26
                                ADD BALANCE TO F-AMT OF S.

                 IF (BALANCE > START-AMT OR
                        BALANCE = START-AMT) AND
                    (BALANCE < STOP-AMT OR
                        BALANCE = STOP-AMT)

                        DISPLAY REC-OUT1.

                 READ BANK-IN-FILE AT END MOVE \'Y\' TO EOF.

      *   Para for user choice = 4.  
        CHOICE-4.
                 DISPLAY (1, 1) ERASE.
                 DISPLAY \"GIVE THE YEAR :- \".
                 ACCEPT START-AMT.

                 MOVE \'IDBI BANK LTD\' TO TEXT.
                 DISPLAY \" \" HEADING.
                 MOVE \'A/C. OPENED IN ASKED YEAR\' TO TEXT.
                 DISPLAY \" \" HEADING.

                 PERFORM COL-2.

                 READ BANK-IN-FILE.
                 PERFORM DISP-REC4 UNTIL EOF = \'Y\'.

                 PERFORM FOOT-RPT.

      *   Display records for user choice = 4.           
        DISP-REC4.
                 IF YY = START-AMT

                        MOVE ACCNO TO DATA21
                        MOVE HOLDER TO DATA22
                        MOVE ACCTYPE TO DATA23
                        MOVE DD TO DD1 
                        MOVE MM TO MM1
                        MOVE YY TO YY1               
                        IF GENDER = \'M\'
                                MOVE ZEROS TO DATA26
                                MOVE BALANCE TO DATA25
                                ADD BALANCE TO M-AMT OF S
                        ELSE                          
                                MOVE ZEROS TO DATA25
                                MOVE BALANCE TO DATA26
                                ADD BALANCE TO F-AMT OF S.

                 IF YY = START-AMT
                        DISPLAY REC-OUT1.

                 READ BANK-IN-FILE AT END MOVE \'Y\' TO EOF.

        CLOSE-PARA.
                CLOSE BANK-IN-FILE.
                STOP RUN.

 
 
Didn't find what you were looking for? Find more on Program to Display Bank Report depending upon user choice