|
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).
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.
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
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

|