Anda di halaman 1dari 5

IDENTIFICATION DIVISION.

PROGRAM-ID. MAEST002.
AUTHOR. NELLIUD D. TORRES.
DATE-WRITTEN. 4 DE FEBRERO DE 1992.
DATE-COMPILED.
*INSTALLATION. UPR.
SECURITY.
*
***************************************************************************
*
ESTE PROGRAMA TOMA UN ARCHIVO DE ESTUDIANTES ORGANIZADO EN FORMA
*
*
INDICE SECUENCIAL Y PRODUCE UN INFORME HACIENDO ACCESO SECUENCIAL. *
*
*
*
POR: NELLIUD D. TORRES
*
*
CLASE: MIS-520
*
*
PROF: SEVERINO RAMOS
*
***************************************************************************
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. VAX-8530.
OBJECT-COMPUTER. VAX-8530.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUDENT-FILE-IDX ASSIGN TO "ARCH_EST.IDX"
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS STD-NUMBER-IDX.
*
SELECT PRINT-FILE

ASSIGN TO "PRINTER-FILE2.PRT".

*
DATA DIVISION.
FILE SECTION.
FD

STUDENT-FILE-IDX
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 80 CHARACTERS
DATA RECORD IS STUDENT-RECORD-IDX.

01

STUDENT-RECORD-IDX.
02 STD-NUMBER-IDX
02 STD-NAME-IDX
02 STD-FACULTY-IDX
02 STD-PROMEDIO-IDX
02 STD-DIRECCION1-IDX
02 STD-DIRECCION2-IDX
02 STD-PUEBLO-IDX
02 STD-ZIP-CODE-IDX

FD

PRINT-FILE
LABEL RECORDS ARE OMITTED
RECORD CONTAINS 133 CHARACTERS
DATA RECORD IS PRINT-RECORD.

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(9).
X(15).
X(4).
9V99.
X(15).
X(15).
X(14).
X(5).

01 PRINT-RECORD
*
WORKING-STORAGE SECTION.
*
01 WORK-AREAS.
02 EOF
02 TOTAL-READ
02 TOTAL-PRINTED
02 LINE-CTR
02 PAGE-CTR

PIC X(133).

PIC
PIC
PIC
PIC
PIC

***************************
01

HEADING-1.
02 FILLER
02 FILLER
"UNIVERSIDAD ABC".

HEADING-2.
02 FILLER
02 FILLER
"SISTEMA ESTUDIANTIL".

PIC X(68)
PIC X(15)

HEADING-3.
02 FILLER
02 FILLER
"LISTADO DE ESTUDIANTES".

PIC X(66)
PIC X(19)

HEADING-4.
02 FILLER
02 FECHA-OUT
02 FILLER
02 PAGE-CTR-OUT

***************************
01

VALUE SPACES.
VALUE

VALUE SPACES.
VALUE

****************************
PIC X(65)
PIC X(22)

***************************
01

ZERO.
ZEROES.
ZEROES.
99.
ZEROES.

****************************

***************************
01

VALUE
VALUE
VALUE
VALUE
VALUE

****************************

***************************
01

9
9999
9999
99
99

VALUE SPACES.
VALUE

****************************
PIC
PIC
PIC
PIC

X(62)
X(8).
X(55)
ZZ9.

VALUE SPACES.
VALUE SPACES.

****************************

TITULO-1.
02
02
02
02
02
02
02

FILLER
FILLER
"NUMERO EST.".
FILLER
FILLER
"NOMBRE".
FILLER
FILLER
"FACULTAD".
FILLER

PIC X(5)
PIC X(11)

VALUE SPACES.
VALUE

PIC X(9)
PIC X(6)

VALUE SPACES.
VALUE

PIC X(8)
PIC X(8)

VALUE SPACES.
VALUE

PIC X(5)

VALUE SPACES.

02
02
02
02
02
02
02
02
02
02

FILLER
"PROMEDIO".
FILLER
FILLER
"DIR. - CALLE".
FILLER
FILLER
"DIR. - URB.".
FILLER
FILLER
"PUEBLO".
FILLER
FILLER
"ZIP CODE".
FILLER

PIC X(8)

VALUE

PIC X(5)
PIC X(13)

VALUE SPACES.
VALUE

PIC X(8)
PIC X(11)

VALUE SPACES.
VALUE

PIC X(12)
PIC X(6)

VALUE SPACES.
VALUE

PIC X(9)
PIC X(8)

VALUE SPACES.
VALUE

PIC X(4)

VALUE SPACES.

***************************
01

DETAIL-LINE.
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02

FILLER
STD-NUMBER-OUT
FILLER
STD-NAME-OUT
FILLER
STD-FACULTY-OUT
FILLER
STD-PROMEDIO-OUT
FILLER
STD-DIRECCION1-OUT
FILLER
STD-DIRECCION2-OUT
FILLER
STD-PUEBLO-OUT
FILLER
STD-ZIP-CODE-OUT
FILLER

***************************
01

****************************

TOTAL-LINE.
02 FILLER
02 FILLER
"TOTAL RECORDS LEIDOS = ".
02 TOTAL-READ-OUT
02 FILLER
" TOTAL RECORDS IMPRESOS = ".
02 TOTAL-PRINTED-OUT

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(6).
X(9).
X(5).
X(15).
X(6).
X(4).
X(9).
9.99.
X(6).
X(15).
X(6).
X(15).
X(6).
X(14).
X(6).
X(5).
X(2).
****************************

PIC X(5) VALUE SPACES.


PIC X(23) VALUE
PIC Z,ZZ9.
PIC X(27) VALUE

PIC Z,ZZ9.
*
PROCEDURE DIVISION.
*
***************************************************************************
**
MODULO PRINCIPAL DEL PROGRAMA.
*
***************************************************************************

*
0100-BEGIN.
OPEN INPUT STUDENT-FILE-IDX, OUTPUT PRINT-FILE.
READ STUDENT-FILE-IDX NEXT AT END MOVE 1 TO EOF.
PERFORM 0200-CALC-RTN UNTIL EOF = 1.
PERFORM 0400-TOTAL-RTN.
CLOSE STUDENT-FILE-IDX, PRINT-FILE.
STOP RUN.
*
***************************************************************************
** ESTA RUTINA MUEVE LOS CAMPOS NECESAREOS PARA CREAR EL RECORD EN EL
*
** REPORTE. ADEMAS CALCULA LA CANTIDAD DE RECORDS LEIDOS E IMPRESOS.
*
***************************************************************************
*
0200-CALC-RTN.
ADD 1 TO TOTAL-READ.
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE

STD-NUMBER-IDX
STD-NAME-IDX
STD-FACULTY-IDX
STD-PROMEDIO-IDX
STD-DIRECCION1-IDX
STD-DIRECCION2-IDX
STD-PUEBLO-IDX
STD-ZIP-CODE-IDX

TO
TO
TO
TO
TO
TO
TO
TO

STD-NUMBER-OUT.
STD-NAME-OUT.
STD-FACULTY-OUT.
STD-PROMEDIO-OUT.
STD-DIRECCION1-OUT.
STD-DIRECCION2-OUT.
STD-PUEBLO-OUT.
STD-ZIP-CODE-OUT.

IF LINE-CTR > 35
PERFORM 0300-HEADING-RTN.
WRITE PRINT-RECORD FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
ADD
ADD

2
1

TO
TO

LINE-CTR.
TOTAL-PRINTED.

READ STUDENT-FILE-IDX NEXT AT END MOVE 1 TO EOF.


*
***************************************************************************
** ESTA RUTINA SE UTILIZA PARA GENERAR LOS TITULOS EN EL REPORTE......
*
***************************************************************************
*
0300-HEADING-RTN.
ADD 1
MOVE
WRITE
WRITE
WRITE
WRITE
WRITE
MOVE

TO PAGE-CTR.
PAGE-CTR
TO PAGE-CTR-OUT.
PRINT-RECORD FROM HEADING-1 AFTER
PRINT-RECORD FROM HEADING-2 AFTER
PRINT-RECORD FROM HEADING-3 AFTER
PRINT-RECORD FROM HEADING-4 AFTER
PRINT-RECORD FROM TITULO-1
AFTER
7
TO LINE-CTR.

ADVANCING
ADVANCING
ADVANCING
ADVANCING
ADVANCING

PAGE.
1 LINE.
1 LINE.
1 LINE.
3 LINES.

*
***************************************************************************

** AQUI SE ESCRIBE EN EL REPORTE LOS TOTALES QUE SE CALCULARON EN EL PRO- *


** GRAMA.
*
***************************************************************************
*
0400-TOTAL-RTN.
PERFORM 0300-HEADING-RTN.
MOVE TOTAL-READ
TO TOTAL-READ-OUT.
MOVE TOTAL-PRINTED
TO TOTAL-PRINTED-OUT.
WRITE PRINT-RECORD FROM TOTAL-LINE AFTER ADVANCING 2 LINES.

Anda mungkin juga menyukai