IDENTIFICATION DIVISION.
PROGRAM-ID. MP4-5.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SEAT-DESCRIPTION.
03 FILLER PIC X(50) VALUE "01 DRIVER".
03 FILLER PIC X(50) VALUE "02 DRIVER'S ASST".
03 FILLER PIC X(50) VALUE "03".
03 FILLER PIC X(50) VALUE "04".
03 FILLER PIC X(50) VALUE "05".
03 FILLER PIC X(50) VALUE "06".
03 FILLER PIC X(50) VALUE "07".
03 FILLER PIC X(50) VALUE "08".
03 FILLER PIC X(50) VALUE "09".
03 FILLER PIC X(50) VALUE "10".
03 FILLER PIC X(50) VALUE "11".
03 FILLER PIC X(50) VALUE "12".
03 FILLER PIC X(50) VALUE "13".
03 FILLER PIC X(50) VALUE "14".
03 FILLER PIC X(50) VALUE "15".
01 MAIN-MENU PIC X.
88 RESERVATION VALUE "R".
88 VIEW-RESERVATION VALUE "V".
88 CANCEL-RESERVATION VALUE "D".
88 EXIT-PROC VALUE "E".
01 DECISION PIC X.
88 YES VALUE "Y".
88 NAY VALUE "N".
01 SEAT-NUM PIC 9(2).
01 CUST-NAME PIC X(18).
01 CUST-CNTCT PIC 9(11).
01 CHOICE PIC X.
PROCEDURE DIVISION.
MAIN-ROUTINE.
DISPLAY " ABC TRANSPORT COMPANY".
DISPLAY "__________________________________________".
DISPLAY " [R] ADD RESERVATION/S ".
DISPLAY " [V] VIEW RESERVATION/S ".
DISPLAY " [D] CANCEL RESERVATION/S ".
DISPLAY " [E] EXIT".
DISPLAY " ENTER CHOICE: " WITH NO ADVANCING.
ACCEPT MAIN-MENU.
PERFORM I-CHAIN.
I-CHAIN.
IF RESERVATION
GO TO RESERVE-PROC
ELSE IF VIEW-RESERVATION
GO TO VRESERVE-PROC
ELSE IF CANCEL-RESERVATION
GO TO CRESERVE-PROC
ELSE IF EXIT-PROC
GO TO END-PGM
ELSE
DISPLAY "INVALID OPTION"
GO TO MAIN-ROUTINE.
RESERVE-PROC.
DISPLAY "RESERVE SEAT #: "WITH NO ADVANCING.
ACCEPT SEAT-NUM.
IF SEAT-NUM IS NUMERIC
IF SEAT-NUM >2 AND SEAT-NUM <16
GO TO CONT-RES
ELSE
DISPLAY "INVALID OPTION"
PERFORM RESERVE-PROC
ELSE
DISPLAY "ENTER A NUMERIC VALUE"
GO TO RESERVE-PROC.
CONT-RES.
DISPLAY "CUSTOMER NAME : "WITH NO ADVANCING.
ACCEPT CUST-NAME.
MOVE CUST-NAME TO SEAT-NUM.
DISPLAY "CUSTOMER CONTACT #: "WITH NO ADVANCING.
ACCEPT CUST-CNTCT.
MOVE CUST-CNTCT TO SEAT-NUM.
GO TO RESER-CONT.
RESER-CONT.
DISPLAY "RESERVE MORE? [Y/N]? "WITH NO ADVANCING.
ACCEPT DECISION.
IF YES
PERFORM RESERVE-PROC
ELSE IF NAY
PERFORM MAIN-ROUTINE
ELSE
DISPLAY "INVALID OPTION"
PERFORM RESER-CONT.
VRESERVE-PROC.
DISPLAY " ABC TRANSPORT COMPANY".
DISPLAY " RESERVATION LIST".
DISPLAY "__________________________________________".
DISPLAY " "SEAT-DESCRIPTION.
CRESERVE-PROC.
DISPLAY " ABC TRANSPORT COMPANY".
DISPLAY " CANCEL RESERVATION".
DISPLAY "__________________________________________".
END-PGM.
STOP RUN.
를 사용하여 테이블에 문제가 I 내 가변 좌석-NUM에 추가 할 및가 나는 코드가 아직 완료되지 않았습니다 알고 있지만 내가 무엇을 표시하려고 힘든 시간을 보내고 있습니다 때문에 테이블을 사용하는 방법에 대한 몇 가지 도움을받을 수 있습니다 코볼
nano.galvao @ 감사에게 내가 심하게 지금 모든 것에 의미가 있음을 필요로 많은 사람이 내가 보내고있어 무엇 이제 출력물로서 불필요한 줄을 다시 찾는다. –
마고 (Magoo)를'GO TO '의 위험에 대해 +1 할 것이지만, 역시 약간 동의하지는 않을 것이다. +0.999 여기에 나열된 샘플은 실제 점프를 사용하지 않으므로 굵게 표시된 ESCHEW를 사용할 자격이 있습니다. 그러나 COBOL에서 상태 머신이나 단일 문자 프로토콜 인터프리터를 작성할 때 '계속 수행하십시오'는 상당히 실용적 일 수 있습니다. 범위가 제한적이고 깨끗하고 심지어 방어 할 수있는 경우. _ 모든 작업 세그먼트에 필요한 _ 다음 단계 레이블로 이동 _이라는 하위 단락 부담을 포함합니다.그래서, Never, 예, 아마도 1 년에 1 개의 화요일을 제외하고, 스틱, 돌, 그리고 말로 문을 지킬 준비를하십시오. –
@KarllaurenzBagasan, Magoo가 작업을 수행했으며 nano.galvao는 형식을 지정했습니다. –