Wednesday, May 20, 2009

COBOL program that updates the total of fee deposited by the student in Student Master and prints each of the transaction

A University stores following disk files for various transactions relating to fee deposit by its students:

File 1: Student Master
Organisation: Index – Sequential on Student Number
Structure:
01-09 Student Number
10-30 Student Name
31-60 Address
61-66 Programme Code
67-74 Total of fee amount deposited so far
75-80 Unused

File 2: Programme Master
Organisation: Index – Sequential on Programme Code
Structure:
01-06 Programme code
07-51 Programme Name
52-54 Duration
55-57 Level (for example, PG, UG, etc.)
58-66 Total Fees
67-80 Entry Qualification

File 3: Transaction Table (Kept semester wise only)
Unsorted file
Structure:
01-09 Student Number
10-18 Date of Fee deposition
19-26 Amount deposited

Labels are standard. The first field of the records in each file represents the key field.

Write a COBOL program that updates the total of fee deposited by the student in Student Master and prints each of the transaction (Reporting errors if any) in the following output format:

OUTPUT
Structure:
01-10 Transaction Number (A new number is generated for each transaction)
10-18 Date of Transaction
19-20 Amount deposited
21-39 Student name
40-49 Total of fee deposited by student so far
50-55 Programme code of student
56-64 The remaining fee that will be deposited by student later (by subtracting
total of fee deposited by student from Total Programme fee).

The file should be sorted in the Order of Student Number.

Answer PART-1 of Question-1:
*PART-1 OF THE TMP QUESTION-1.
*USED TO CREATE INDEX SEQUENTIAL FILE TO INPUT RECORDS
IDENTIFICATION DIVISION.
PROGRAM-ID. QUESTION-1 PROJECT.
AUTHOR GYAN AND CHANDRA.
ENVIRONMENT DIVISION INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUD-MAST ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS ST-NO.
SELECT PROG-MAST ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS PR-CODE.
DATA DIVISION.
FILE SECTION.
FD STUD-MAST.
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID ”STUDENT.TXT”.
01 STUDENT-RECORDS.
02 ST-NO PIC X(9).
02 SNAME PIC X(21).
02 SADD PIC X(30).
02 P-CODE PIC X(6).
02 D-FEE PIC 9(8).
02 FILLER PIC X(6).
FD PROG-MAST
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID “PROG.TXT”.
01 PROGRAM-RECORDS.
02 PR-CODE PIC X(6).
02 PR-NAME PIC X(45).
02 DURATION PIC X(3).
02 LEVEL PIC X(3).
02 TOT-FEE PIC 9(8).
02 E-QUAL PIC X(14).
PROCEDURE DIVISION.
OPEN-PARA.
OPEN OUTPUT STUD-MAST PROG-MAST.
DISPLAY” STUDENT DETAILS ENTRY”.
DISPLAY”-----------------------------------------”.
PERFORM STUD-PARA 2 TIMES.
DISPLAY”PROGRAMME DETAILS ENTRY”.
DISPLAY”-----------------------------------------”.
PERFORM PROG-PARA 2 TIMES.
CLOSE STUD-MAST PROG-MAST.
STOP RUN.
STUD-PARA.
DISPLAY “STUDENT NUMBER:”ACCEPT ST-NO.
DISPLAY “STUDENT NAME:”ACCEPT SNAME.
DISPLAY “STUDENT ADDRESS:”ACCEPT SADD.
DISPLAY “PROGRAMME CODE:”ACCEPT P-CODE.
WRITE STUDENT-RECORDS.
PROG-PARA.
DISPLAY “PROGRAMME CODE:”ACCEPT PR-CODE.
DISPLAY “PROGRAMME NAME:”ACCEPT PR-NAME.
DISPLAY “PROGRAMME DURATION:”ACCEPT DURATION.
DISPLAY “PROGRAMME LEVEL(e.g.PG,UG):”ACCEPT LEVEL.
DISPLAY “TOTAL FEE:”ACCEPT TOT-FEE.
DISPLAY “ENTRY QUALIFICATION:”ACCEPT E-QUAL.
WRITE PROGRAM-RECORDS.



Answer PART-2 of Question-1:
*USED TO UPDATE RECORDS AND PRINT TRANSACTIONS
IDENTIFICATION DIVISION.
PROGRAM-ID. QUESTION-1 PART-2 PROJECT.
AUTHOR GYAN AND CHANDRA.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUD-MAST ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS ST-NO.
SELECT PROG-MAST ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS PR-CODE.
SELECT STUD-TRAN ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD STUD-MAST.
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID ”STUDENT.TXT”.
01 STUDENT-RECORDS.
02 ST-NO PIC X(9).
02 SNAME PIC X(21).
02 SADD PIC X(30).
02 P-CODE PIC X(6).
02 D-FEE PIC 9(8).
02 FILLER PIC X(6).
FD PROG-MAST
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID “PROG.TXT”.
01 PROGRAM-RECORDS.
02 PR-CODE PIC X(6).
02 PR-NAME PIC X(45).
02 DURATION PIC X(3).
02 LEVEL PIC X(3).
02 TOT-FEE PIC 9(8).
02 E-QUAL PIC X(14).
FD STUD-TRAN
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID “STUD.TXT”.
01 TRANS-RECORDS.
02 S-NO PIC X(9).
02 DATE-FEE PIC X(8).
02 DEP-FEE PIC 9(8).
02 FILLER PIC X(55).
WORKING-STORAGE SECTION.
77T-NO PIC 9(10).
77CH PIC X VALUE’N’.
01 TRAN-DETAILS.
02 TR-NO PIC 9(10).
02 FILLER PIC X(2)VALUE SPACES.
02 TR-DATE PIC X(8).
02 FILLER PIC X(2)VALUE SPACES.
02 AM-DEP PIC 9(8).
02 FILLER PIC X(2)VALUE SPACES.
02 S-NAME PIC X(21).
02 FILLER PIC X(2)VALUE SPACES.
02 T-FEE-DEP PIC 9(8).
02 FILLER PIC X(2)VALUE SPACES.
02 PRO-CODE PIC X(6).
02 FILLER PIC X(2)VALUE SPACES.
02 REM-FEE PIC 9(8).
02 FILLER PIC X(2)VALUE SPACES.
01 TABLE-HEADING.
02 FILLER PIC X(10) VALUE ”TRANS.NO.”.
02 FILLER PIC X(2) VALUE SPACES.

02 FILLER PIC X(8) VALUE ”TR.DATE.”.
02 FILLER PIC X(2) VALUE SPACES.
02 FILLER PIC X(8) VALUE ”AMO.DATE.”.
02 FILLER PIC X(2) VALUE SPACES.
02 FILLER PIC X(21) VALUE ”STUDENT NAME”.
02 FILLER PIC X(2) VALUE SPACES.
02 FILLER PIC X(9) VALUE ”T-FEE DEP”.
02 FILLER PIC X(2) VALUE SPACES.
02 FILLER PIC X(6) VALUE ”P-CODE”.
02 FILLER PIC X(2) VALUE SPACES.
02 FILLER PIC X(9) VALUE ”REM FEE”.
02 FILLER PIC X(2) VALUE SPACES.
01 LINING PIC X(80) VALUE ALL “-”.
PROCEDURE DIVISION.
OPEN PARA.
MOVE 10001 TO T-NO.
OPEN INPUT PROG-MAST OUTPUT STUD-TRAN.
OPEN I-O STUD-MAST.
DISPLAY”*********SEMESTER FEE DEPOSIT*********”.
DISPLAY LINING.
PERFORM TRAN-PARA 2 TIMES.
TRAN-PARA.
DISPLAY “STUDENT NUMBER”.
ACCEPT S-NO.
DISPLAY “DATE OF FEE DEPOSITION”.
ACCEPT DATE-FEE.
DISPLAY “AMOUNT DEPOSITED”.
ACCEPT DEP-FEE.
WRITE TRANS-RECORDS.
DIS-PARA.
DISPLAY TABLE-HEADING.
DISPLAY LINING.
CLOSE STUD-TRAN.
OPEN INPUT STUD-TRAN.
PERFORM READ-PARA UNTIL CH=’Y’.
CLOSE STUD-TRAN STUD-MAST PROG-MAST.
STOP RUN.

READ-PARA.
READ STUD-MAST AT END MOVE ’Y’ TO CH.
READ PROG-MAST AT END MOVE ’Y’ TO CH.
READ STUD-TRAN AT END MOVE ’Y’ TO CH.
MOVE T-NO TO TR-NO.
MOVE 1 TO T-NO.
ADD DEP-FEE TO D-FEE.
SUBTRACT D-FEE FROM TOT-FEE GIVING REM-FEE.
MOVE D-FEE TO T-FEE-DEP.
MOVE DATE-FEE TO TR-DATE.
MOVE DEP-FEE TO AM-DEP.
MOVE SNAME TO S-NAME.
MOVE PR-CODE TO PRO-CODE.
DISPLAY TR-NO.
DISPLAY TR-DATE.
DISPLAY AM-DEP.
DISPLAY S-NAME.
DISPLAY T-FEE-DEP.
DISPLAY PRO-CODE.
DISPLAY REM-FEE.

No comments:

Post a Comment