程序结束时的COBOL报告

程序结束时的COBOL报告,cobol,Cobol,我正试图完成一个我已经开始的项目,但我对我需要做什么以及如何做最后一步感到困惑。有关指示如下: 报告结束时: A.打印处理的人员记录数量。 B.搜索Dept表失败的记录数。 C.标题表搜索失败的记录数 除了最后一步,我已经完成了所有的程序。有人能帮我完成这个项目吗 enter code here ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT PERSONNEL-FILE

我正试图完成一个我已经开始的项目,但我对我需要做什么以及如何做最后一步感到困惑。有关指示如下:

报告结束时: A.打印处理的人员记录数量。 B.搜索Dept表失败的记录数。 C.标题表搜索失败的记录数

除了最后一步,我已经完成了所有的程序。有人能帮我完成这个项目吗

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
最后