2010-12-08 5 views
0

이번 학기 COBOL에 대한 마지막 숙제를 위해 노력 중이며 구문 오류로 인해 진행이 차가워집니다. 여기에 내가 가진 무엇 :구문 오류 (COBOL)에 대한 도움이 필요합니다.

ENVIRONMENT DIVISION. 
    INPUT-OUTPUT SECTION. 
    FILE-CONTROL. 

     SELECT USED-CAR-FILE-OUT 
      ASSIGN TO 'USED-CAR.RPT' 
      ORGANIZATION IS LINE SEQUENTIAL. 

    DATA DIVISION. 
    FILE SECTION. 

    FD USED-CAR-FILE-OUT. 
    01 USED-CAR-RECORD-OUT   PIC X(80). 

    WORKING-STORAGE SECTION. 
    01 ID-CODE      PIC X(3). 
    01 TOTAL-CASH-PAYMENT   PIC 9(5). 
    01 MONTHLY-PAYMENT    PIC 9(4). 
    01 NUMBER-OF-MONTHS   PIC 9(3). 

    01 BALANCE-TOTAL    PIC S9(6)V99 VALUE ZEROS. 

    01 INTEREST-EARNED    PIC S99V99 VALUE ZEROS. 

    01 COMPARE-MONTH    PIC 99  VALUE ZEROS. 

    01 YEAR-NUMBER     PIC 99  VALUE ZEROS. 

    01 MONTH-NUMBER    PIC 99  VALUE ZEROS. 

    01 DETAIL-LINE. 
     05 ID-CODE-DL    PIC X(3). 
     05       PIC X(3) VALUE SPACES. 
     05       PIC X(4) VALUE 'Yr='. 
     05 YEAR-NUMBER-DL   PIC Z9  VALUE ZEROS. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(4) VALUE 'Mo='. 
     05 MONTH-NUMBER-DL   PIC Z9. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(5) VALUE 'Pmt='. 
     05 PAYMENT-DL    PIC $$$,$$$. 
     05       PIC X(4) VALUE SPACES. 
     05       PIC X(5) VALUE 'Int='. 
     05 INTEREST-EARNED-DL  PIC $$$$.99. 
     05       PIC X(3) VALUE SPACES. 
     05       PIC X(5) VALUE 'Bal='. 
     05 BALANCE-DL    PIC $$$,$$$.99. 

    PROCEDURE DIVISION. 
    100-MAIN. 
     OPEN OUTPUT USED-CAR-FILE-OUT 

     PERFORM 200-INPUT THRU 299-EXIT 

     CLOSE USED-CAR-FILE-OUT 
     STOP RUN. 

    200-INPUT. 
     DISPLAY 'Used Car Sales Report' 
     DISPLAY 'Enter the ID Code (or END) - maximum three char.' 
     ACCEPT ID-CODE 
     IF ID-CODE = 'END' 
      GO TO 299-EXIT 
     END-IF 
     DISPLAY 'Enter the Total Cash Payment - maximum five digits' 
     ACCEPT TOTAL-CASH-PAYMENT 
     DISPLAY 'Enter the Monthly Payment - maximum four digits' 
     ACCEPT MONTHLY-PAYMENT 
     DISPLAY 'Enter the Number of Months - maximum three digits' 
     ACCEPT NUMBER-OF-MONTHS 
     PERFORM 300-PROCESS. 

    299-EXIT. 
     EXIT. 

    300-PROCESS. 
     IF TOTAL-CASH-PAYMENT > 0 
      MOVE TOTAL-CASH-PAYMENT TO PAYMENT-DL 
     END-IF 
     IF MONTHLY-PAYMENT > 0 
      MOVE MONTHLY-PAYMENT TO PAYMENT-DL 
     END-IF 
     ADD PAYMENT-DL TO BALANCE-TOTAL 
     COMPUTE INTEREST-EARNED ROUNDED = .0175/BALANCE-TOTAL 
     ADD INTEREST-EARNED TO BALANCE-TOTAL 
     MOVE BALANCE-TOTAL TO BALANCE-DL 
     ADD 1 TO COMPARE-MONTH 
     IF MONTH-NUMBER-DL > 13 
      ADD 1 TO MONTH-NUMBER 
      MOVE MONTH-NUMBER TO MONTH-NUMBER-DL 
     END-IF 
     IF MONTH-NUMBER-DL = 13 
      MOVE 1 TO MONTH-NUMBER 
      MOVE MONTH-NUMBER TO MONTH-NUMBER-DL 
     END-IF 
     IF MONTH-NUMBER = 1 
      ADD 1 TO YEAR-NUMBER 
      MOVE YEAR-NUMBER TO YEAR-NUMBER-DL 
     END-IF 
     MOVE DETAIL-LINE TO USED-CAR-RECORD-OUT 
     WRITE USED-CAR-RECORD-OUT 
      AFTER ADVANCING 1 LINE 
     IF TOTAL-CASH-PAYMENT > 0 
      MOVE 0 TO TOTAL-CASH-PAYMENT 
      MOVE 0 TO PAYMENT-DL 
     END-IF 
     IF COMPARE-MONTH > NUMBER-OF-MONTHS 
      PERFORM 300-PROCESS 
     END-IF 

문제는 지불-DL 관심 얻은-DL 및 BALANCE-DL와 함께입니다. 불법적 인 성격을 지니고 있지만, 제 책의 그림 절을 보여주고 선생님이 제가 작성해야하는 불완전한 프로그램 버전을 나눠 주었기 때문에 그것이 효과가 있다는 것을 압니다. 이러한 오류를 제거하기 위해해야 ​​할 일은 무엇입니까?

+0

아무도이 문제가 무엇인지 전혀 알지 못합니다. – Kimmy1235

답변

2

유효하지 않은 문자는 "$"기호입니다.

이 작업은 정상적으로 수행되어야하지만 컴파일러가 현지 통화 기호를 기본값으로 사용하도록 사용자 정의되었을 수 있습니다.

현지 통화 기호 (알고 계신 경우!)로 전환하거나 '$'로 다시 변경할 수 있습니다. 다시 "$"로 변경하는 것은 사용중인 컴파일러와 기본값 설정 방법에 달려 있습니다.이 컴파일러의 사용법을 찾으려면 특정 컴파일러의 설명서를 읽어야합니다.

+0

그게 다야! 나는 많은 일본 게임을하며 유니 코드를 일본어로 설정해야만 플레이 할 수 있습니다. 고맙습니다! – Kimmy1235

관련 문제