我遇到了一个我无法解决的问题。我的输出显示错误。比如我有一个猜想出现这样一行:在我的COBOL中遇到麻烦
123-45-6789 JS Doe的第二年编程88 266 3.02
,而是被显示出来是这样的:
123- 45-6789 JS Doe第二年编程88 266
3.02
任何人都知道如何解决这个问题。我以前从未遇到过这个问题。
下面是对于线
01 DETAIL-LINE.
05 DL-FIRST-NUM PIC X(3).
05 DL-DASH-1 PIC X VALUE '-'.
05 DL-SECOND-NUM PIC XX.
05 DL-DASH-2 PIC X VALUE '-'.
05 DL-THIRD-NUM PIC X(4).
05 BLANK-A-OUT PIC X(3) VALUE SPACES.
05 DL-FIRST-LETTER PIC X.
05 BLANK-B-OUT PIC X VALUE SPACES.
05 DL-SECOND-LETTER PIC X.
05 BLANK-C-OUT PIC X VALUE SPACES.
05 DL-LAST-NAME PIC X(9).
05 BLANK-D-OUT PIC X(2) VALUE SPACES.
05 DL-CLASS-STANDING PIC X(9).
05 BLANK-E-OUT PIC X(3) VALUE SPACES.
05 DL-MAJOR PIC X(13).
05 BLANK-F-OUT PIC X(3) VALUE SPACES.
05 DL-HOURS PIC ZZ9.
05 BLANK-G-OUT PIC X(5) VALUE SPACES.
05 DL-POINTS PIC ZZ9.
05 BLANK-H-OUT PIC X(4) VALUE SPACES.
05 DL-GPA PIC 9.99.
这里的存储区域代码写出来
400-PROCESS-ONE-RECORD.
IF LINE-COUNT >= 52
PERFORM 600-NEXT-PAGE
END-IF
ADD 2 TO LINE-COUNT
MOVE SSN-IN TO SSN-BREAK
MOVE FIRST-NUM TO DL-FIRST-NUM
MOVE SECOND-NUM TO DL-SECOND-NUM
MOVE THIRD-NUM TO DL-THIRD-NUM
MOVE STUDENT-NAME-IN TO NAME-BREAK
MOVE FIRST-LETTER TO DL-FIRST-LETTER
MOVE SECOND-LETTER TO DL-SECOND-LETTER
MOVE LAST-NAME TO DL-LAST-NAME
IF CLASS-STANDING-IN = 0
MOVE 'HIGH SCHOOL' TO DL-CLASS-STANDING
END-IF
IF CLASS-STANDING-IN = 1
MOVE 'First Yr' TO DL-CLASS-STANDING
END-IF
IF CLASS-STANDING-IN = 2
MOVE 'Second Yr' TO DL-CLASS-STANDING
END-IF
IF CLASS-STANDING-IN = 3
MOVE 'PROGRAM 60' TO DL-CLASS-STANDING
END-IF
IF CLASS-STANDING-IN = ' ' OR 4
MOVE ' ' TO DL-CLASS-STANDING
END-IF
IF MAJOR-IN = 'NES'
MOVE 'Net Security' TO DL-MAJOR
END-IF
IF MAJOR-IN = 'NET'
MOVE 'Networking' TO DL-MAJOR
END-IF
IF MAJOR-IN = 'PGM'
MOVE 'Programming' TO DL-MAJOR
END-IF
IF MAJOR-IN = 'DIG'
MOVE 'Digital Media' TO DL-MAJOR
END-IF
IF MAJOR-IN = 'COR'
MOVE ' ' TO DL-MAJOR
END-IF
MOVE CREDIT-HOURS-IN TO DL-HOURS
IF MAJOR-IN = 'NES'
ADD 1 TO NES-TOTAL
END-IF
IF MAJOR-IN = 'NET'
ADD 1 TO NET-TOTAL
END-IF
IF MAJOR-IN = 'PGM'
ADD 1 TO PGM-TOTAL
END-IF
IF MAJOR-IN = 'DIG'
ADD 1 TO DIG-TOTAL
END-IF
MOVE CREDIT-POINTS-IN TO DL-POINTS
COMPUTE TOTAL-GPA ROUNDED
= CREDIT-POINTS-IN/CREDIT-HOURS-IN
IF MAJOR-IN = 'NES' AND TOTAL-GPA > '3.O'
ADD 1 TO NES-GPA
END-IF
IF MAJOR-IN = 'NET' AND TOTAL-GPA > '3.O'
ADD 1 TO NET-GPA
END-IF
IF MAJOR-IN = 'PGM' AND TOTAL-GPA > '3.O'
ADD 1 TO PGM-GPA
END-IF
IF MAJOR-IN = 'DIG' AND TOTAL-GPA > '3.O'
ADD 1 TO DIG-GPA
END-IF
MOVE TOTAL-GPA TO DL-GPA
MOVE DETAIL-LINE TO STUDENTS-RECORD-OUT
IF DL-CLASS-STANDING = 'First Yr' OR 'Second Yr' AND
GRAD-STAT-IN = ' ' OR 'X'
ADD CREDIT-POINTS-IN TO TOTAL-POINTS
ADD CREDIT-HOURS-IN TO TOTAL-HOURS
WRITE STUDENTS-RECORD-OUT
AFTER ADVANCING 1 LINES
END-IF.
这将有助于列出创建该输出的行 – 2010-12-03 02:33:49