现在的位置: 首页 > 综合 > 正文

cobol(第三天)

2012年05月20日 ⁄ 综合 ⁄ 共 2965字 ⁄ 字号 评论关闭

 IDENTIFICATION DIVISION.
 PROGRAM-ID.  PROG03.

 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-PC.
 OBJECT-COMPUTER. IBM-PC.

 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
     SELECT IN-FILE ASSIGN TO "INPUT.TXT"
      ORGANIZATION IS LINE SEQUENTIAL.
     SELECT OUT-FILE ASSIGN TO "OUT3.TXT"
          ORGANIZATION IS LINE SEQUENTIAL.
 
 DATA DIVISION.
 FILE SECTION.
 FD  IN-FILE.
 01  IN-RECORD   PIC X(80).
 FD  OUT-FILE.
 01  OUT-RECORD  PIC X(100).

 WORKING-STORAGE SECTION.
 01  WS-IN-FILE.
     05 WS-IN-NAME PIC X(20).
     05 WS-IN-POSITION PIC X(05).
     05 WS-IN-START-DATE.
        10 WS-IN-START-MONTH PIC X(02).
        10 WS-IN-START-DAY PIC X(02).
        10 WS-IN-START-YEAR PIC X(04).
    05 WS-IN-ADDRESS  PIC X(20).
    05 WS-IN-CITY  PIC X(12).
    05 WS-IN-STATE  PIC X(02).
    05 FILLER   PIC X(13). 
 
 01  WS-OUT-FILE.
    05 WS-OUT-NAME  PIC X(20).
    05 WS-OUT-START-DATE.
      10 WS-OUT-START-MONTH     PIC X(02).
      10 FILLER   PIC X(01) VALUE '/'.
      10 WS-OUT-START-DAY PIC X(02).
      10 FILLER   PIC X(01) VALUE '/'.
      10 WS-OUT-START-YEAR PIC X(04).
    05 WS-OUT-POSITION PIC X(05).
    05 WS-OUT-ADDRESS  PIC X(20).
    05 WS-OUT-CITY  PIC X(12).
    05 WS-OUT-STATE  PIC X(02).
    05 WS-OUT-HR-SALARY PIC 9(02)V99 VALUE 0.
    05 FILLER   PIC X(01).
    05 WS-OUT-WK-SALARY PIC 9(03)V99 VALUE 0.
    05 FILLER   PIC X(01).
    05 WS-OUT-MTH-SALARY PIC 9(04)V99 VALUE 0.
    05 FILLER   PIC X(01).
    05 WS-OUT-ANN-SALARY PIC 9(06)V99 VALUE 0.
    05 FILLER   PIC X(05).

 01  WS-IN-CTR  PIC 9(03) VALUE 0.
 01  WS-OUT-CTR  PIC 9(03) VALUE 0.
 01  WS-INSTR-CTR  PIC 9(03)  VALUE 0.
 01  WS-STUDE-CTR  PIC 9(03) VALUE 0.
 01  WS-DEAN-CTR  PIC 9(03) VALUE 0.
 01  WS-CLERI-CTR  PIC 9(03) VALUE 0.

 PROCEDURE DIVISION.
     OPEN INPUT IN-FILE
   OUTPUT OUT-FILE.

     READ IN-FILE
  INTO WS-IN-FILE.
    ADD 1 TO WS-IN-CTR.

     MOVE WS-IN-NAME TO WS-OUT-NAME.
     MOVE WS-IN-POSITION TO WS-OUT-POSITION.
     MOVE WS-IN-START-MONTH TO WS-OUT-START-MONTH.
     MOVE WS-IN-START-DAY TO WS-OUT-START-DAY.
     MOVE WS-IN-START-YEAR TO WS-OUT-START-YEAR.
     MOVE WS-IN-ADDRESS TO WS-OUT-ADDRESS.
     MOVE WS-IN-CITY TO WS-OUT-CITY.
     MOVE WS-IN-STATE TO WS-OUT-STATE.
    
    EVALUATE WS-OUT-POSITION
  WHEN 'Instr'
   MOVE 5.50 TO WS-OUT-HR-SALARY
  WHEN 'Dean '
   MOVE 7.25 TO WS-OUT-HR-SALARY
  WHEN 'Stude'
   MOVE 1 TO WS-OUT-HR-SALARY
  WHEN 'Cleri'
   MOVE 3.75 TO WS-OUT-HR-SALARY
  WHEN OTHER
   MOVE 0 TO WS-OUT-HR-SALARY
     END-EVALUATE

    MULTIPLY WS-OUT-HR-SALARY BY 40 GIVING WS-OUT-WK-SALARY.
    MULTIPLY WS-OUT-WK-SALARY BY 4 GIVING WS-OUT-MTH-SALARY.
      COMPUTE WS-OUT-ANN-SALARY =
  WS-OUT-MTH-SALARY * 12.

     IF WS-OUT-POSITION = 'Instr'
  ADD 1 TO WS-INSTR-CTR
    ELSE
        IF WS-OUT-POSITION = 'Dean '
    ADD 1 TO WS-DEAN-CTR
        ELSE
    IF WS-OUT-POSITION = 'Stude'
       ADD 1 TO WS-STUDE-CTR
    ELSE
        IF WS-OUT-POSITION = 'Cleri'
    ADD 1 TO WS-CLERI-CTR
         END-IF
           END-IF
        END-IF
    END-IF.

    WRITE OUT-RECORD
  FROM WS-OUT-FILE.
     ADD 1 TO WS-OUT-CTR.

    DISPLAY "INPUT RECORDS " WS-IN-CTR.
    DISPLAY "OUT RECORDS " WS-OUT-CTR.
     DISPLAY "INSRUCTORS " WS-INSTR-CTR.
     DISPLAY "DEANS " WS-DEAN-CTR.
     DISPLAY "STUDENTS " WS-STUDE-CTR.
     DISPLAY "CLERICAL " WS-CLERI-CTR.

     CLOSE IN-FILE
      OUT-FILE.
  
     GOBACK.   

【上篇】
【下篇】

抱歉!评论已关闭.