0
              FD  STUDENTS-FILE-IN.
   01  STUDENTS-RECORD-IN.
       05  SSN-IN                  PIC X(9).
       05  STUDENT-NAME-IN         PIC X(11).
       05                          PIC X(5).
       05  GRAD-STATUS-IN          PIC X.
       05  CLASS-STANDING-IN       PIC X.
       05  MAJOR-IN                PIC X(3).
       05  CREDIT-HOURS-IN         PIC 9(3).
       05  CREDIT-POINTS-IN        PIC 9(3).

   FD  STUDENTS-FILE-OUT.
   01  STUDENTS-RECORD-OUT         PIC X(80).

   WORKING-STORAGE SECTION.
   01  ARE-THERE-MORE-RECORDS      PIC X(3)  VALUE 'YES'.
   01  PAGE-NUMBER                 PIC 99    VALUE ZERO.
   01  LINE-COUNT                  PIC 99    VALUE ZERO.
   01  SSID-BREAK.
       03 FIRST-PART               PIC X(3).
       03 SECOND-PART              PIC X(2).
       03 THIRD-PART               PIC X(4).
   01  NAME-BREAK.
       03 FIRST-LETTER             PIC X(1).
       03 MIDDLE-LETTER            PIC X(1).
       03 LAST-LETTER              PIC X(10).
   01  GRAD-CHECK                  PIC X.
   01  WS-DATE.
       05 RUN-YEAR                 PIC XX.
       05 RUN-MONTH                PIC XX.
       05 RUN-DAY                  PIC XX.

   01  HEADING-LINE-ONE.
       05                          PIC X(21) VALUE SPACES.
       05                          PIC X(33)
               VALUE 'RHODES STATE COLLEGE GRADE REPORT'.
       05                          PIC X(6) VALUE SPACES.
       05      HEADING-LINE-DATE.
               10  MONTH-NOW       PIC XX.
               10                  PIC X     VALUE '/'.
               10  DAY-NOW         PIC XX.
               10                  PIC X     VALUE '/'.
               10  YEAR-NOW        PIC XX.

       05                          PIC X(3)  VALUE SPACES.
       05                          PIC X(4)  VALUE 'PAGE'.
       05  HL-1-PAGE-NUMBER        PIC Z9    VALUE ZEROS.

   01  HEADING-LINE-TWO.
       05                          PIC X(10) VALUE 'SOC SEC NO'.
       05                          PIC X(4)  VALUE SPACES.
       05                          PIC X(12) VALUE 'STUDENT NAME'.
       05                          PIC X(3)  VALUE SPACES.
       05                          PIC X(8)  VALUE 'STANDING'.
       05                          PIC X(4)  VALUE SPACES.
       05                          PIC X(5)  VALUE 'MAJOR'.
       05                          PIC X(10) VALUE SPACES.
       05                          PIC X(5)  VALUE 'HOURS'.
       05                          PIC X(2)  VALUE SPACES.
       05                          PIC X(6)  VALUE 'POINTS'.
       05                          PIC X(5)  VALUE SPACES.
       05                          PIC X(3)  VALUE 'GPA'.

   01  DETAIL-LINE.

       05  DL-SSID.
           10 SSID-1               PIC X(3).
           10                      PIC X     VALUE "-".
           10 SSID-2               PIC X(2).
           10                      PIC X     VALUE "-".
           10 SSID-3               PIC X(4).
       05  BLANK-B                 PIC X(3)  VALUE SPACES.
       05  DL-NAME .
           10 FIRST-INI            PIC X.
           10                      PIC X     VALUE SPACES.
           10 MID-INI              PIC X.
           10                      PIC X     VALUE SPACES.
           10 LAST-NAME            PIC X(10).

       05  BLANK-C                 PIC X(3)  VALUE SPACES.
       05  YEAR-STATUS             PIC X(9).
       05  BLANK-D                 PIC X(3)  VALUE SPACES.
       05  STUDENT-MAJOR           PIC X(13).
       05  BLANK-E                 PIC X(5)  VALUE SPACES.
       05  STUDNET-HOURS           PIC ZZ9.
       05  BLANK-F                 PIC X(5)  VALUE SPACES.
       05  STUDENT-POINTS          PIC ZZ9.
       05  BLANK-G                 PIC X(4)  VALUE SPACES.
       05  STUDENT-GPA             PIC 9V99.

   01  TOTALS-LINE.

       05 TOTALS                   PIC X(6)  VALUE 'TOTALS'.
       05                          PIC X(34) VALUE  SPACES.
       05 HITS-TOTAL               PIC ZZZ,ZZZ.
       05                          PIC X(9) VALUE SPACES.
       05 BATS-TOTAL               PIC ZZZ,ZZZ.
       05                          PIC X(10) VALUE  SPACES.
       05 AVG-TOTAL                PIC .999.

   PROCEDURE DIVISION.
   100-MAIN.
       OPEN INPUT STUDENTS-FILE-IN
       OPEN OUTPUT STUDENTS-FILE-OUT

       ACCEPT WS-DATE FROM DATE
       MOVE RUN-MONTH TO MONTH-NOW
       MOVE RUN-DAY TO DAY-NOW
       MOVE RUN-YEAR TO YEAR-NOW

       PERFORM 300-WRITE-HEADINGS

       PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
           READ STUDENTS-FILE-IN
               AT END
                    MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
                NOT AT END
                    PERFORM 200-PROCESS-ONE-RECORD
            END-READ
        END-PERFORM

       CLOSE STUDENTS-FILE-IN
       CLOSE STUDENTS-FILE-OUT
       STOP RUN.

   200-PROCESS-ONE-RECORD.

       IF  LINE-COUNT >= 53
          PERFORM 300-WRITE-HEADINGS
       END-IF


  *    IF  GRAD-STATUS-IN NOT = '1' AND NOT = '2'
  *        PERFORM 400-WRITE-TOTALS.
  *    END-IF

       MOVE SSN-IN TO SSID-BREAK
       MOVE FIRST-PART TO SSID-1
       MOVE SECOND-PART TO SSID-2
       MOVE THIRD-PART TO SSID-3
       MOVE STUDENT-NAME-IN TO NAME-BREAK
       MOVE FIRST-LETTER TO FIRST-INI
       MOVE MIDDLE-LETTER TO MID-INI
       MOVE LAST-LETTER TO LAST-NAME
       MOVE GRAD-STATUS-IN TO GRAD-CHECK
       IF  GRAD-CHECK = 'Y'

       END-IF



       MOVE DETAIL-LINE TO STUDENTS-RECORD-OUT

       WRITE STUDENTS-RECORD-OUT
           AFTER ADVANCING 1 LINES
       ADD 1 TO LINE-COUNT.

入力ファイルは次のようになります

307662099KRAlexander     Y2NES005017    

基本的に、特定のファイルは要件を満たしていないため、スキップすることを想定しています。これは、出力ファイルに書き込んでスキップしたくないファイルの例です。説明が下手で申し訳ありませんが、私はCOBOLで本当に苦労しています。

4

1 に答える 1