COBOL

Ejercicio: Programa para calcular la nota de un grupo de estudiantes. Se utiliza el archivo de datos estudiantes.txt, que se debe encontrar en el disco que se especifique en el Environment Division.

 

123456*89012

       IDENTIFICATION DIVISION.

       PROGRAM-ID. ARCHIVOS-NOTAS.

       AUTHOR. SU NOMBRE.

 

       ENVIRONMENT DIVISION.

       INPUT-OUTPUT SECTION.

       FILE-CONTROL.

     

           SELECT ESTUDIANTES-IN

                ASSIGN TO "E:\UMET\COSC 350\ESTUDIANTES.TXT"

                ORGANIZATION IS LINE SEQUENTIAL.

           SELECT FILE-NOTAS-OUT

                ASSIGN TO "E:\UMET\COSC 350\FILE-NOTAS.TXT"

                ORGANIZATION IS LINE SEQUENTIAL.

 

       DATA DIVISION.

       FILE SECTION.

       FD ESTUDIANTES-IN

            LABEL RECORDS ARE STANDARD

            RECORD CONTAINS 41 CHARACTERS.

       01 ESTUDIANTES-REC.

             05 NOMBRE-IN PIC X(20).

             05 SEGURO-SOCIAL-IN PIC X(9).

             05 EX1 PIC 9(3).

             05 EX2 PIC 9(3).

             05 EX3 PIC 9(3).

             05 EX4 PIC 9(3).

       FD FILE-NOTAS-OUT

            LABEL RECORDS ARE STANDARD

            RECORD CONTAINS 34 CHARACTERS.

       01 NOTAS-OUT-REC.

             05 NOMBRE-OUT PIC X(20).

             05 SEGURO-SOCIAL-OUT PIC X(9).

             05 PROMEDIO-OUT PIC 9(3)V9.

             05 NOTA-OUT PIC X(1).

       WORKING-STORAGE SECTION.

       01 HAY-MAS-RECORDS PIC X VALUE 'Y'.

 

       PROCEDURE DIVISION.

       100-PARRAFO-PRINCIPAL.

           OPEN INPUT ESTUDIANTES-IN

               OUTPUT FILE-NOTAS-OUT

           PERFORM UNTIL HAY-MAS-RECORDS = "N"

            READ ESTUDIANTES-IN

             AT END MOVE 'N' TO HAY-MAS-RECORDS

             NOT AT END PERFORM 200-PROCESO

            END-READ

           END-PERFORM

           CLOSE ESTUDIANTES-IN

                FILE-NOTAS-OUT

           STOP RUN.

       200-PROCESO.

           COMPUTE PROMEDIO-OUT = (EX1 + EX2 + EX3 + EX4) / 4

           MOVE NOMBRE-IN TO NOMBRE-OUT

           MOVE SEGURO-SOCIAL-IN TO SEGURO-SOCIAL-OUT

 

           IF PROMEDIO-OUT >= 89.5

             MOVE "A" TO NOTA-OUT

           ELSE

            IF PROMEDIO-OUT >= 79.5

              MOVE "B" TO NOTA-OUT

            ELSE

              IF PROMEDIO-OUT >= 69.5

                MOVE "C" TO NOTA-OUT

              ELSE

                IF PROMEDIO-OUT >= 59.5

                 MOVE "D" TO NOTA-OUT

                ELSE

                 MOVE "F" TO NOTA-OUT

                END-IF

              END-IF

            END-IF

           END-IF

           WRITE NOTAS-OUT-REC.

 


Datos del archivo de entrada estudiantes.txt

Eddie Hernandez     555697718100085078100

Marinelva Roman     546852312095080078080

Armando Gonzalez    225587723099100089085

Javier Ortiz        478967730085079088065

Juan Valenzuela     578252316075085091079

Dalila Ramos        476362242078080099100

Nancy Martinez      556527717072068065067

Pedro Perez         556789004065055066050