我没有得到什么是控制中断以及它的使用方式和位置?下面是控制中断的程序,但我不明白控制中断在这个程序中是如何工作的?
IDENTIFICATION DIVISION.
PROGRAM-ID. ASS13.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN12 ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT12 ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FD IN12
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "IN12.TXT".
01 IN12-REC.
05 DAY-IN PIC X.
05 SP-NO-IN PIC X(3).
05 AMT-IN PIC 9(5)V99.
FD OUT12
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "OUT12.TXT".
01 OUTREC PIC X(80).
WORKING-STORAGE SECTION.
01 H1.
05 STAR PIC X(80) VALUE ALL '*'.
01 H2.
05 DEPT PIC X(4) VALUE "DAY".
05 FILLER PIC X(1).
05 AMT PIC X(12) VALUE "TOTAL SALES".
01 H3.
05 SP1 PIC X(80) VALUE ALL SPACES.
01 TOTAL-REC.
05 DAY-OUT PIC X(3).
05 FILLER PIC X(3).
05 TOTAL-OUT PIC $Z(7).99.
77 A-T-M-REC PIC XXX VALUE 'YES'.
77 FIRST-REC PIC XXX VALUE 'YES'.
77 WS-DAY-HOLD PIC X.
77 WS-TOTAL PIC 9(7)V99 VALUE 0.
PROCEDURE DIVISION.
MAIN-PARA.
OPEN INPUT IN12
OUTPUT OUT12
WRITE OUTREC FROM H1
WRITE OUTREC FROM H2
WRITE OUTREC FROM H1
WRITE OUTREC FROM H3
PERFORM UNTIL A-T-M-REC = 'NO'
READ IN12
AT END
MOVE 'NO' TO A-T-M-REC
NOT AT END
PERFORM PARA-1
END-READ
END-PERFORM
PERFORM PARA-CTRBREAK
CLOSE IN12
OUT12
STOP RUN.
MAIN-PARA.
PARA-1.
IF FIRST-REC = 'YES'
MOVE DAY-IN TO WS-DAY-HOLD
MOVE 'NO' TO FIRST-REC
END-IF.
IF DAY-IN NOT = WS-DAY-HOLD
PERFORM PARA-CTRBREAK
END-IF.
EVALUATE DAY-IN
WHEN 1
MOVE "MON" TO DAY-OUT
WHEN 2
MOVE "TUE" TO DAY-OUT
WHEN 3
MOVE "WED" TO DAY-OUT
WHEN 4
MOVE "THU" TO DAY-OUT
WHEN 5
MOVE "FRI" TO DAY-OUT
END-EVALUATE.
COMPUTE WS-TOTAL = WS-TOTAL + AMT-IN.
PARA-CTRBREAK.
MOVE WS-TOTAL TO TOTAL-OUT
WRITE OUTREC FROM TOTAL-REC
MOVE 0 TO WS-TOTAL
MOVE 'YES' TO FIRST-REC
WRITE OUTREC FROM H3.'