File Structure and Programming in COBOL,MCA(2)-3/Project
Question 1: Three indexed file stored in the disk, contain the following table records:
Table File 1 Table File 2
1-9 Student number 1-6 Programme code
10-30 Student name 7-25 Programme name
31-40 Student Address 29-35 Yearly fee
(Assume that minimum
duration of a program is one
year),
Table File 3
1 Level Number
2-16 Level description(level can be under-graduate, Masters,
UG Diploma, PG Diploma, Doctorate ect.
Labels are standard. The first field of the records in each file
Represents the key field.
Write a COBOL program to create an indexed mater file from the
Transaction records with the following format:-
1-9 Student number
10-15 Programme code
16 Level number
The format for the output master records is as follows:
1-9 Student number
10-30 Student name
31-40 Student address
41-46 Programme code
47-53 Total fee to be paid
54 Level number
55-69 Level description
Student name, Programme Code and Level number are obtained
Form the three tables.
(Hint: Define three input indexed files. Use student number in the transaction file to look up student name from Table File 1, programeecode form Table File 2(calculate total fee using table file 2 only) and level number & level description from Table File 3).
ANS.
IDENTIFICATION DIVISION.
PROGRAM-ID. SEQ-IBM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SIN-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT SIN1-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT SIN2-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD SIN-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "SIN.DAT"
DATA RECORD IS IN-REC.
01 IN-REC.
02 S-NUM PIC 9(9).
02 S-NAME PIC A(21).
02 S-ADD PIC A(10).
FD SIN1-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "SIN1.DAT"
DATA RECORD IS IN1-REC.
01 IN1-REC.
02 C-NUM PIC 9(6).
02 C-NAME PIC A(19).
02 C-DUR PIC 9(3).
02 C-FEE PIC 9(7).
FD SIN2-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "SIN2.DAT"
DATA RECORD IS IN2-REC.
01 IN2-REC.
02 L-NUM PIC 9.
02 L-NAME PIC A(15).
FD OUT-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "OUT.DAT"
DATA RECORD IS OUT-REC.
01 OUT-REC.
02 S1-NUM PIC 9(9).
02 S1-NAME PIC A(21).
02 S1-ADD PIC A(10).
02 C1-NUM PIC 9(6).
02 C1-NAME PIC A(20).
02 C1-DUR PIC 9(3).
02 C1-FEE PIC 9(7).
02 L1-NUM PIC 9.
02 L1-NAME PIC A(15).
TOP
WORKING-STORAGE SECTION.
77 ST-NUM PIC 9(10).
77 CT-NUM PIC 9(10).
77 LT-NUM PIC 9(10).
77 I PIC 9 VALUE 2.
77 J PIC 9 VALUE 2.
77 K PIC 9 VALUE 2.
77 CH PIC 9.
77 CH1 PIC A.
77 D PIC X.
77 A1 PIC X(35) VALUE ALL "~".
77 A2 PIC X(45) VALUE ALL "~".
PROCEDURE DIVISION.
MAIN.
DISPLAY (1 1) ERASE.
DISPLAY (10, 30) "MENU".
DISPLAY (11, 30) "----".
DISPLAY (13, 28) "1.INPUT".
DISPLAY (14, 28) "2.PROCESS".
DISPLAY (15, 28) "3.DISPLAY".
DISPLAY (16, 28) "4.END".
DISPLAY (18, 28) "ENTER YOUR CHOICE (1-4) : ".
ACCEPT (18, 55) CH WITH PROMPT.
IF CH = 1
GO TO INP-PARA.
IF CH = 2
GO TO PRO-PARA.
IF CH = 3
GO TO DIS-PARA.
IF CH = 4
STOP RUN.
INP-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (10, 30) "MENU".
DISPLAY (11, 30) "----".
DISPLAY (13, 28) "1.STUDENT DETAILS".
DISPLAY (14, 28) "2.COURSE DETAILS".
DISPLAY (15, 28) "3.LEVEL DETAILS".
DISPLAY (16, 28) "4.BACK".
DISPLAY (17, 28) "ENTER YOUR CHOICE (1-4) : ".
ACCEPT (17, 55) CH WITH PROMPT.
IF CH = 1
GO TO SINP-PARA.
IF CH = 2
GO TO CINP-PARA.
IF CH = 3
GO TO LINP-PARA.
IF CH = 4
GO TO MAIN.
SINP-PARA.
OPEN OUTPUT SIN-FILE.
SINP1-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (10, 5) "ENTER THE STUDENT NUMBER :".
ACCEPT (10, 50) S-NUM WITH PROMPT.
DISPLAY (11, 5) "ENTER THE STUDENT NAME :".
ACCEPT (11, 50) S-NAME WITH PROMPT.
DISPLAY (12, 5) "ENTER THE STUDENT ADDRES :".
ACCEPT (12, 50) S-ADD WITH PROMPT.
WRITE IN-REC.
DISPLAY (14, 5) "DO YOU WANT TO CONTINUE (Y/N) :".
ACCEPT (14, 50) CH1 WITH PROMPT.
IF CH1 = 'Y'
GO TO SINP1-PARA.
CLOSE SIN-FILE.
GO TO INP-PARA.
CINP-PARA.
OPEN OUTPUT SIN1-FILE.
CINP1-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (10, 5) "ENTER THE COURSE NUMBER :".
ACCEPT (10, 50) C-NUM WITH PROMPT.
DISPLAY (11, 5) "ENTER THE COURSE NAME :".
ACCEPT (11, 50) C-NAME WITH PROMPT.
DISPLAY (12, 5) "ENTER THE DURATION OF COURSE :".
ACCEPT (12, 50) C-DUR WITH PROMPT.
DISPLAY (13, 5) "ENTER THE YEARLY FEES :".
ACCEPT (13, 50) C-FEE WITH PROMPT.
WRITE IN1-REC.
DISPLAY (15, 5) "DO YOU WANT TO CONTINUE (Y/N) :".
ACCEPT (15, 50) CH1 WITH PROMPT.
IF CH1 = 'Y'
GO TO CINP1-PARA.
CLOSE SIN1-FILE.
GO TO INP-PARA.
LINP-PARA.
OPEN OUTPUT SIN2-FILE.
LINP1-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (10, 5) "ENTER THE LEVEL NUMBER :".
ACCEPT (10, 50) L-NUM WITH PROMPT.
DISPLAY (11, 5) "ENTER THE LEVEL NAME :".
ACCEPT (11, 50) L-NAME WITH PROMPT.
WRITE IN2-REC.
DISPLAY (14, 5) "DO YOU WANT TO CONTINUE (Y/N) :".
ACCEPT (14, 50) CH1 WITH PROMPT.
IF CH1 = 'Y'
GO TO LINP1-PARA.
CLOSE SIN2-FILE.
GO TO INP-PARA.
PRO-PARA.
OPEN INPUT SIN-FILE, INPUT SIN1-FILE, INPUT SIN2-FILE.
OPEN OUTPUT OUT-FILE.
DISPLAY (1 1) ERASE.
DISPLAY I, J, K.
DISPLAY (10, 5) "ENTER STUDENT NUMBER :".
ACCEPT (10, 50) ST-NUM WITH PROMPT.
DISPLAY (11, 5) "ENTER COURSE NUMBER :".
ACCEPT (11, 50) CT-NUM WITH PROMPT.
DISPLAY (12, 5) "ENTER LEVEL NUMBER :".
ACCEPT (12, 50) LT-NUM WITH PROMPT.
PRO1-PARA.
READ SIN-FILE AT END GO TO PRO2-PARA.
IF ST-NUM = S-NUM
MOVE 5 TO I
MOVE S-NUM TO S1-NUM
MOVE S-NAME TO S1-NAME
MOVE S-ADD TO S1-ADD.
GO TO PRO1-PARA.
PRO2-PARA.
READ SIN1-FILE AT END GO TO PRO3-PARA.
IF CT-NUM = C-NUM
MOVE 5 TO J
MOVE C-NUM TO C1-NUM
MOVE C-NAME TO C1-NAME
MOVE C-DUR TO C1-DUR
MOVE C-FEE TO C1-FEE.
GO TO PRO2-PARA.
PRO3-PARA.
READ SIN2-FILE AT END GO TO PRO4-PARA.
IF LT-NUM = L-NUM
MOVE 5 TO K
MOVE L-NUM TO L1-NUM
MOVE L-NAME TO L1-NAME
GO TO PRO3-PARA.
PRO4-PARA.
IF I = 2 OR J = 2 OR K = 2
DISPLAY (1 1) ERASE
DISPLAY (15, 30) "INVALID DATA"
DISPLAY (16, 30) "DO YOU WANT TO TRY AGAIN (Y/N) :"
ACCEPT (16, 65) CH1 WITH PROMPT
MOVE 2 TO I
MOVE 2 TO J
MOVE 2 TO K.
GO TO PRO5-PARA.
PRO5-PARA.
IF CH1 = 'Y'
CLOSE SIN-FILE, SIN1-FILE, SIN2-FILE, OUT-FILE
GO TO PRO-PARA.
IF CH1 = 'N'
CLOSE SIN-FILE, SIN1-FILE, SIN2-FILE, OUT-FILE
GO TO MAIN.
WRITE OUT-REC.
CLOSE SIN-FILE, SIN1-FILE, SIN2-FILE, OUT-FILE.
GO TO MAIN.
TOP
DIS-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (10, 30) "MENU".
DISPLAY (11, 30) "----".
DISPLAY (13, 28) "1.STUDENT DETAILS".
DISPLAY (14, 28) "2.PROGRAM DETAILS".
DISPLAY (15, 28) "3.LEVEL DETAILS".
DISPLAY (16, 28) "4.TRANSACTION RECORD".
DISPLAY (17, 28) "5.MASTER RECORD".
DISPLAY (18, 28) "6.BACK".
DISPLAY (20, 28) "ENTER YOUR CHOICE (1-6) : ".
ACCEPT (20, 55) CH WITH PROMPT.
IF CH = 1
GO TO SDIS-PARA.
IF CH = 2
GO TO CDIS-PARA.
IF CH = 3
GO TO LDIS-PARA.
IF CH = 6
GO TO MAIN.
SDIS-PARA.
OPEN INPUT SIN-FILE.
MOVE 10 TO LIN.
SDIS1-PARA.
READ SIN-FILE AT END GO TO SDIS2-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (5, 30) "STUDENT DETAILS".
DISPLAY (6, 30) "------- -------".
DISPLAY (7, 20) A1.
DISPLAY (8, 20) "NUMBER".
DISPLAY (8, 35) "NAME".
DISPLAY (8, 45) "ADDRESS".
DISPLAY (9, 20) A1.
DISPLAY (LIN, 19) S-NUM.
DISPLAY (LIN, 34) S-NAME.
DISPLAY (LIN, 44) S-ADD.
COMPUTE LIN = LIN + 1.
GO TO SDIS1-PARA.
SDIS2-PARA.
ACCEPT D.
CLOSE SIN-FILE.
GO TO DIS-PARA.
CDIS-PARA.
OPEN INPUT SIN1-FILE.
MOVE 10 TO LIN.
CDIS1-PARA.
READ SIN1-FILE AT END GO TO CDIS2-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (5, 30) "PROGRAME DETAILS".
DISPLAY (6, 30) "-------- -------".
DISPLAY (7, 20) A2.
DISPLAY (8, 20) "CODE".
DISPLAY (8, 35) "NAME".
DISPLAY (8, 45) "DURATION".
DISPLAY (8, 55) "FEES(YEARLY)"
DISPLAY (9, 20) A2.
DISPLAY (LIN, 19) C-NUM.
DISPLAY (LIN, 35) C-NAME.
DISPLAY (LIN, 47) C-DUR.
DISPLAY (LIN, 57) C-FEE.
COMPUTE LIN = LIN + 1.
GO TO CDIS1-PARA.
CDIS2-PARA.
ACCEPT D.
CLOSE SIN1-FILE.
GO TO DIS-PARA.
LDIS-PARA.
OPEN INPUT SIN2-FILE.
MOVE 10 TO LIN.
LDIS1-PARA.
READ SIN2-FILE AT END GO TO LDIS2-PARA.
DISPLAY (1 1) ERASE.
DISPLAY (5, 30) "LEVEL DETAILS".
DISPLAY (6, 30) "----- -------".
DISPLAY (7, 20) A1.
DISPLAY (8, 25) "NUMBER".
DISPLAY (8, 40) "DESCRIPTION".
DISPLAY (9, 20) A1.
DISPLAY (LIN, 28) L-NUM.
DISPLAY (LIN, 44) L-NAME.
COMPUTE LIN = LIN + 1.
GO TO LDIS1-PARA.
LDIS2-PARA.
ACCEPT D.
CLOSE SIN2-FILE.
GO TO DIS-PARA.
Output:
Fist Screen Display
MENU
----------
1.INPUT
2.PROCESS
3.DISPLAY
4.END
ENTER YOUR CHOICE (1-4) : _
Second Screen Display
MENU
---------
1.STUDENT DETAILS
2.COURSE DETAILS
3.LEVEL DETAILS
4.BACK
ENTER YOUR CHOICE (1-4) : _
Sub Screen
ENTER THE STUDENT NUMBER : ________1
ENTER THE STUDENT NAME : SURESH
ENTER THE STUDENT ADDRES : 21.KILPAUK
DO YOU WANT TO CONTINUE (Y/N) : .
Sub Screen
ENTER THE COURSE NUMBER : _____1
ENTER THE COURSE NAME : MCA
ENTER THE DURATION OF COURSE : _03
ENTER THE YEARLY FEES : ___5000
TOP
DO YOU WANT TO CONTINUE (Y/N) : Y
Sub Screen
ENTER THE LEVEL NUMBER : 1
ENTER THE LEVEL NAME : MASTER
DO YOU WANT TO CONTINUE (Y/N) : Y
Sub Screen
ENTER STUDENT NUMBER : _____1
ENTER COURSE NUMBER : _____1
ENTER LEVEL NUMBER : 1
DO YOU WANT TO CONTINUE (Y/N) : Y
Output Screen Display
STUDENT DETAILS
------- -------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NUMBER NAME ADDRESS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 MR.A 21.KILPAUK
2 MR.X 22.KILPAUK
3 MR.Y 23.KILPAUK
4 MR.Z 24.KILPAUK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Output Screen Display
PROGRAME DETAILS
-------- -------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CODE NAME DURATION FEES(YEARLY)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 MCA 3 10000
2 MBA 3 6000
3 BCA 3 4000
4 CIC 1 3000
Output Screen
LEVEL DETAILS
----- -------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NUMBER DESCRIPTION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 XXXXXXXXX
2 XXXXXXXXX
3 XXXXXXXXX
4 XXXXXXXX
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Output Screen
TRANSACTION DETAILS
----------- ---------------------- ~~~~~~~~~~~~~~~~~~
STU-NUMBER COURSE CODE LEVEL NUMBER
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 MCA 1
2 MBA 3
3 BBA 5
4 CIC 4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Output Screen
MASTER DETAILS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
STU-NUMBER NAME ADDRESS CCODE FEES LNUMBER DESCRIPTION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 MR.X 21 KILPAUK 321 5000 1 XXXXXXXX
2 MR.Y 21 KILPAUK 321 5000 1 XXXXXXXX
3 MR.Z 21 KILPAUK 321 5000 1 XXXXXXXX
4 MR.A
5 21 KILPAUK 321 5000 1 XXXXXXXX |