程序结束时的COBOL报告
我正试图完成一个我已经开始的项目,但我对我需要做什么以及如何做最后一步感到困惑。有关指示如下: 报告结束时: A.打印处理的人员记录数量。 B.搜索Dept表失败的记录数。 C.标题表搜索失败的记录数 除了最后一步,我已经完成了所有的程序。有人能帮我完成这个项目吗程序结束时的COBOL报告,cobol,Cobol,我正试图完成一个我已经开始的项目,但我对我需要做什么以及如何做最后一步感到困惑。有关指示如下: 报告结束时: A.打印处理的人员记录数量。 B.搜索Dept表失败的记录数。 C.标题表搜索失败的记录数 除了最后一步,我已经完成了所有的程序。有人能帮我完成这个项目吗 enter code here ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT PERSONNEL-FILE
enter code here ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PERSONNEL-FILE
ASSIGN TO 'CH12PPPF.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT DEPT-TABLE-FILE
ASSIGN TO 'CH12PPDT.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT TITLE-TABLE-FILE
ASSIGN TO 'CH12PPTT.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT PRINT-FILE
ASSIGN TO 'THORNTONCA4.RPT'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD PERSONNEL-FILE.
01 PERSONNEL-REC.
05 SSNO-IN PIC 9(9).
05 NAME-IN PIC X(20).
05 SALARY-IN PIC 9(6).
05 CAMPUS-CODE-IN PIC 9.
05 DEPT-CODE-IN PIC 99.
05 TITLE-CODE-IN PIC 999.
FD DEPT-TABLE-FILE.
01 DEPT-REC.
05 T-DEPT-NO PIC 99.
05 T-DEPT-NAME PIC X(10).
FD TITLE-TABLE-FILE.
01 TITLE-REC.
05 T-TITLE-CODE PIC 999.
05 T-TITLE-NAME PIC X(10).
FD PRINT-FILE.
01 PRINT-REC PIC X(80).
WORKING-STORAGE SECTION.
01 STORED-AREAS.
05 MORE-RECS PIC X(3) VALUE 'YES'.
05 WS-DATE.
10 WS-YEAR PIC 9999.
10 WS-MONTH PIC 99.
10 WS-DAY PIC 99.
05 WS-PAGE-CT PIC 99
VALUE ZERO.
05 WS-LINE-CT PIC 99
VALUE ZERO.
01 HDR1-OUT.
05 PIC X(25)
VALUE SPACES.
05 PIC X(20)
VALUE 'FINAL REPORT'.
05 DATE-OUT.
10 MONTH-OUT PIC 99.
10 PIC X
VALUE '/'.
10 DAY-OUT PIC 99.
10 PIC X
VALUE '/'.
10 YEAR-OUT PIC 9999.
05 PIC X(2)
VALUE SPACES.
05 PIC X(5)
VALUE 'PAGE'.
05 PAGE-OUT PIC Z9.
*****************************************************************
* The Campus Table consists of 5 10-position names and will be *
* accessed as a direct-referenced table. EACH_CAMPUS *
* subscriped by the CAMPUS_CODE_IN will provide the name. *
*****************************************************************
01 CAMPUTS-TABLE
VALUE 'UPSTATE DOWNSTATE CITY MELVILLE HUNTINGTON'.
05 EACH-CAMPUS
OCCURS 5 TIMES PIC X(10).
*****************************************************************
* The Dept Table will be accessed by a SEARCH. Even if the *
* table is entered in Dept No sequence, there would be no *
* real benefit to using a SEARCH ALL since there are only *
* 25 entries. *
*****************************************************************
01 DEPT-TABLE.
05 DEPT-ENTRIES OCCURS 25 TIMES INDEXED BY X1.
10 DEPT-NO PIC 99.
10 DEPT-NAME PIC X(10).
*****************************************************************
* The Title Talbe will be accessed by a SEARCH ALL. To use a *
* binary seach the entries must be in sequence by a key *
* field and the table should be relatively large. *
*****************************************************************
01 TITLE-TABLE.
05 TITLE-ENTRIES OCCURS 50 TIMES
ASCENDING KEY IS TITLE-NO INDEXED BY X2.
10 TITLE-NO PIC 999.
10 TITLE-NAME PIC X(10).
01 DETAIL-REC.
05 PIC X(1) VALUE SPACES.
05 SSNO-OUT PIC 999B99B9999.
05 PIC X(1) VALUE SPACES.
05 NAME-OUT PIC X(20).
05 PIC X(1) VALUE SPACES.
05 SALARY-OUT PIC $ZZZ,ZZZ.
05 PIC X(1) VALUE SPACES.
05 CAMPUS-OUT PIC X(10).
05 PIC X(1) VALUE SPACES.
05 DEPT-OUT PIC X(10).
05 PIC X(1) VALUE SPACES.
05 TITLE-OUT PIC X(10).
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN INPUT PERSONNEL-FILE
DEPT-TABLE-FILE
TITLE-TABLE-FILE
OUTPUT PRINT-FILE
MOVE FUNCTION CURRENT-DATE TO WS-DATE
MOVE WS-MONTH TO MONTH-OUT
MOVE WS-DAY TO DAY-OUT
MOVE WS-YEAR TO YEAR-OUT
PERFORM 500-HDG-RTN.
PERFORM 200-LOAD-DEPT-TABLE
PERFORM 300-LOAD-TITLE-TABLE
PERFORM UNTIL MORE-RECS = 'NO '
READ PERSONNEL-FILE
AT END
MOVE 'NO ' TO MORE-RECS
NOT AT END
PERFORM 400-CALC-RTN
END-READ
END-PERFORM
CLOSE PERSONNEL-FILE
DEPT-TABLE-FILE
TITLE-TABLE-FILE
PRINT-FILE
STOP RUN.
200-LOAD-DEPT-TABLE.
PERFORM VARYING X1 FROM 1 BY 1
UNTIL X1 > 25
READ DEPT-TABLE-FILE
AT END DISPLAY 'NOT ENOUGH DEPT TABLE RECORDS'
STOP RUN
END-READ
MOVE DEPT-REC TO DEPT-ENTRIES (X1)
END-PERFORM.
300-LOAD-TITLE-TABLE.
PERFORM VARYING X2 FROM 1 BY 1
UNTIL X2 > 50
READ TITLE-TABLE-FILE
AT END DISPLAY 'NOT ENOUH TITLE TABLE RECORDS'
STOP RUN
END-READ
MOVE TITLE-REC TO TITLE-ENTRIES (X2)
IF X2 > 1 THEN
IF TITLE-NO (X2) <= TITLE-NO (X2 - 1)
DISPLAY 'TITLE RECORDS ARE NOT IN SEQUENCE'
STOP RUN
END-IF
END-IF
END-PERFORM.
400-CALC-RTN.
MOVE SPACES TO DETAIL-REC
MOVE SSNO-IN TO SSNO-OUT
MOVE NAME-IN TO NAME-OUT
MOVE SALARY-IN TO SALARY-OUT
IF CAMPUS-CODE-IN >= 1 AND <= 5
MOVE EACH-CAMPUS (CAMPUS-CODE-IN) TO CAMPUS-OUT
END-IF
SET X1 TO 1
SEARCH DEPT-ENTRIES
AT END MOVE 'XXXXXXXXXX' TO DEPT-OUT
WHEN DEPT-CODE-IN = DEPT-NO (X1)
MOVE DEPT-NAME (X1) TO DEPT-OUT
END-SEARCH
SEARCH ALL TITLE-ENTRIES
AT END MOVE 'XXXXXXXXXX' TO TITLE-OUT
WHEN TITLE-NO (X2) = TITLE-CODE-IN
MOVE TITLE-NAME (X2) TO TITLE-OUT
END-SEARCH
WRITE PRINT-REC FROM DETAIL-REC
AFTER ADVANCING 2 LINES.
500-HDG-RTN.
ADD 1 TO WS-PAGE-CT
MOVE WS-PAGE-CT TO PAGE-OUT
WRITE PRINT-REC FROM HDR1-OUT
AFTER ADVANCING PAGE
MOVE ZEROS TO WS-LINE-CT.
在此处输入代码环境部门。
输入输出部分。
文件控制。
选择人事档案
分配给“CH12PPPF.DAT”
组织是按行顺序的。
选择DEPT-TABLE-FILE
分配给“CH12PPDT.DAT”
组织是按行顺序的。
选择TITLE-TABLE-FILE
分配给“CH12PPTT.DAT”
组织是按行顺序的。
选择打印文件
分配给“THORNTONCA4.RPT”
组织是按行顺序的。
数据司。
文件部分。
FD人事档案。
01人事记录。
图9(9)中的05 SSNO-1。
05图X(20)中的名称。
图9(6)中的05薪酬。
图9中的05校园代码。
05图99中的部门代码。
05图999中的标题代码。
FD DEPT-TABLE-FILE。
01部门记录。
05 T-DEPT-NO PIC 99。
05 T-部门名称图X(10)。
FD TITLE-TABLE-FILE。
01标题-记录。
05 T-标题代码PIC 999。
05 T-标题-名称图X(10)。
FD打印文件。
01 PRINT-REC PIC X(80)。
工作和储存科。
01存储区。
05 MORE-RECS PIC X(3)值“是”。
05 WS-DATE。
10 WS-YEAR PIC 9999。
10 WS-MONTH PIC 99。
10 WS-DAY PIC 99。
05 WS-PAGE-CT图片99
值为零。
05 WS-LINE-CT PIC 99
值为零。
01 HDR1-OUT。
05图X(25)
值空间。
05图十(20)
重视“最终报告”。
05过时。
10个月的假期图99。
图十
值“/”。
10天外出,图99。
图十
值“/”。
10年后的照片9999。
05图X(2)
值空间。
05图X(5)
值“页面”。
05页,如图Z9所示。
*****************************************************************
*校园表由5个10个职位名称组成,将*
*作为直接引用表访问。每个校区*
*由中的校园代码订阅将提供名称*
*****************************************************************
01 CAMPUTS-TABLE
价值“上州-下州-梅尔维尔-亨廷顿市”。
05每个校区
发生5次picx(10)。
*****************************************************************
*将通过搜索访问Dept表。即使*
*表是按部门编号顺序输入的,不会有*
*使用搜索ALL的真正好处在于*
*25项*
*****************************************************************
01部门表。
05 DEPT-ENTRIES出现25次,由X1索引。
10部门编号PIC 99。
10部门名称图X(10)。
*****************************************************************
*标题Talbe将通过“全部搜索”访问。使用*
*二进制搜索条目必须按键顺序排列*
*字段和表应该相对较大*
*****************************************************************
01标题表。
05标题条目出现50次
升序键是由X2索引的TITLE-NO。
10标题号PIC 999。
10标题名称图X(10)。
01详图-记录。
05 PIC X(1)值空间。
05 SSNO-OUT PIC 999B9999。
05 PIC X(1)值空间。
05点名图片X(20)。
05 PIC X(1)值空间。
05工资支出图片$ZZZ,ZZZ。
05 PIC X(1)值空间。
05校园外图片X(10)。
05 PIC X(1)值空间。
05部门输出图X(10)。
05 PIC X(1)值空间。
05题出图X(10)。
程序司。
100-主模块。
打开输入文件
DEPT-TABLE-FILE
标题表文件
输出打印文件
将函数CURRENT-DATE移动到WS-DATE
将WS-MONTH移动到月外
逐日移动WS
逐年移动WS-YEAR
执行500-HDG-RTN。
执行200-LOAD-DEPT-TABLE
执行300-LOAD-TITLE-TABLE
执行直到MORE-RECS=‘否’
阅读人事档案
最后
将“否”移至“更多记录”
不在最后
执行400-CALC-RTN
端读
末端执行
关闭人事档案
DEPT-TABLE-FILE
标题表文件
打印文件
停,跑。
200-LOAD-DEPT-TABLE。
执行从1到1的变化
直到X1>25
读取DEPT-TABLE-FILE
最后