社員ファイル作成プログラムです。社員番号、社員名を入力すると登録します。
元のソースコード
******************************************************************
* Author:
* Date:
* Purpose:
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. TESTCOBOL4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPF ASSIGN TO 'EMPFILE'
ORGANIZATION INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS EMPKEY.
DATA DIVISION.
FILE SECTION.
FD EMPF.
01 EMPF-REC.
03 EMPKEY PIC X(3).
03 EMPNO REDEFINES EMPKEY
PIC 9(3).
03 EMPNAME PIC X(10).
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN SECTION.
MAIN-PROCEDURE.
DISPLAY "社員ファイル作成".
PERFORM INIT-RTN.
PERFORM MAIN-RTN UNTIL EMPNO = 999.
PERFORM END-RTN.
STOP RUN.
MAIN-END.
EXIT.
INIT-RTN SECTION.
INIT-S.
OPEN OUTPUT EMPF.
INIT-E.
EXIT.
MAIN-RTN SECTION.
MAIN-S.
DISPLAY "社員番号を入れてください".
ACCEPT EMPNO.
IF EMPNO = 999
GO TO MAIN-E.
DISPLAY "社員名をいれてください".
ACCEPT EMPNAME.
WRITE EMPF-REC.
MAIN-E.
EXIT.
END-RTN SECTION.
END-S.
CLOSE EMPF.
END-E.
EXIT.
END PROGRAM TESTCOBOL4.
フローチャート図で表現したもの
%%{init: {'theme':'base','themeVariables':{
'primaryColor':'white',
'primaryTextColor':'#000000',
'primaryBorderColor':'#000000',
'lineColor':'#000000',
'textColor':'#6A7FABCC',
'fontSize':'15px'}}}%%
%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%
graph TD;
classDef default fill:#FFFFE0,stroke:#333,stroke-width:2px;
classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px;
classDef clrPattern2 fill:#FFA500,stroke:#333,stroke-width:2px;
classDef clrPattern3 fill:#ADFF2F,stroke:#333,stroke-width:2px;
classDef clrPattern4 fill:#FFC0CB,stroke:#333,stroke-width:2px;
classDef clrPattern5 fill:#ADD8E6,stroke:#333,stroke-width:2px;
linkStyle default stroke:#000000,stroke-width:2px;
%%データ定義
6("処理 開始")
7[/" 【出力】
28: DISPLAY ゛社員ファイル作成゛"/]:::clrPattern3
8[[" 【呼出】
29: PERFORM INIT-RTN"]]:::clrPattern5
9[/" 【繰返し文開始】
30: PERFORM MAIN-RTN
UNTIL EMPNO = 999
"\]:::clrPattern2
12[[" 【呼出】
30: PERFORM MAIN-RTN
UNTIL EMPNO = 999
"]]:::clrPattern5
13[\"30:繰返文終了"/]:::clrPattern2
14[[" 【呼出】
31: PERFORM END-RTN"]]:::clrPattern5
15[/"【STOP RUN】
32: STOP RUN"/]:::clrPattern3
16("処理 終了")
%%ルート
6-->7
7-->8
8-->9
9-->|ループ開始|12
12-->13
13-->|ループ終了|9
13-->|ループ継続|14
14-->15
15-->16
%%{init: {'theme':'base','themeVariables':{
'primaryColor':'white',
'primaryTextColor':'#000000',
'primaryBorderColor':'#000000',
'lineColor':'#000000',
'textColor':'#6A7FABCC',
'fontSize':'15px'}}}%%
%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%
graph TD;
classDef default fill:#FFFFE0,stroke:#333,stroke-width:2px;
classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px;
classDef clrPattern2 fill:#FFA500,stroke:#333,stroke-width:2px;
classDef clrPattern3 fill:#ADFF2F,stroke:#333,stroke-width:2px;
classDef clrPattern4 fill:#FFC0CB,stroke:#333,stroke-width:2px;
classDef clrPattern5 fill:#ADD8E6,stroke:#333,stroke-width:2px;
linkStyle default stroke:#000000,stroke-width:2px;
%%データ定義
17("処理 開始")
18[/" 【入力】
37: OPEN OUTPUT EMPF"/]:::clrPattern4
19("処理 終了")
%%ルート
17-->18
18-->19
%%{init: {'theme':'base','themeVariables':{
'primaryColor':'white',
'primaryTextColor':'#000000',
'primaryBorderColor':'#000000',
'lineColor':'#000000',
'textColor':'#6A7FABCC',
'fontSize':'15px'}}}%%
%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%
graph TD;
classDef default fill:#FFFFE0,stroke:#333,stroke-width:2px;
classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px;
classDef clrPattern2 fill:#FFA500,stroke:#333,stroke-width:2px;
classDef clrPattern3 fill:#ADFF2F,stroke:#333,stroke-width:2px;
classDef clrPattern4 fill:#FFC0CB,stroke:#333,stroke-width:2px;
classDef clrPattern5 fill:#ADD8E6,stroke:#333,stroke-width:2px;
linkStyle default stroke:#000000,stroke-width:2px;
%%データ定義
20("処理 開始")
21[/" 【出力】
42: DISPLAY ゛社員番号を入れ
てください゛
"/]:::clrPattern3
22[/" 【入力】
43: ACCEPT EMPNO"/]:::clrPattern4
23{"44:条件文"}:::clrPattern1
26[/"【GOTO文】
45: GO TO MAIN-E"/]:::clrPattern3
27(("45:
ENDIF"))
28[/" 【出力】
46: DISPLAY ゛社員名をいれてください゛"/]:::clrPattern3
29[/" 【入力】
47: ACCEPT EMPNAME"/]:::clrPattern4
30[/" 【出力】
48: WRITE EMPF-REC"/]:::clrPattern3
31[/" 【制御入力(GOTO先)】
49: MAIN-E"/]:::clrPattern4
32("処理 終了")
%%ルート
20-->21
21-->22
22-->23
23-->|真(TRUE)|26
23-->|偽(FALSE)|27
26-->31
27-->28
28-->29
29-->30
30-->31
31-->32
style sg1 color:red,fill-opacity:0, stroke-opacity:0;
subgraph sg1["IF EMPNO = 999"]
23
end
%%{init: {'theme':'base','themeVariables':{
'primaryColor':'white',
'primaryTextColor':'#000000',
'primaryBorderColor':'#000000',
'lineColor':'#000000',
'textColor':'#6A7FABCC',
'fontSize':'15px'}}}%%
%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%
graph TD;
classDef default fill:#FFFFE0,stroke:#333,stroke-width:2px;
classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px;
classDef clrPattern2 fill:#FFA500,stroke:#333,stroke-width:2px;
classDef clrPattern3 fill:#ADFF2F,stroke:#333,stroke-width:2px;
classDef clrPattern4 fill:#FFC0CB,stroke:#333,stroke-width:2px;
classDef clrPattern5 fill:#ADD8E6,stroke:#333,stroke-width:2px;
linkStyle default stroke:#000000,stroke-width:2px;
%%データ定義
33("処理 開始")
34[/" 【CLOSE文】
53: CLOSE EMPF"/]:::clrPattern3
35("処理 終了")
%%ルート
33-->34
34-->35