puffy310 commited on
Commit
9248d35
·
verified ·
1 Parent(s): 910e4b3

Update cobol/account.cbl

Browse files
Files changed (1) hide show
  1. cobol/account.cbl +35 -21
cobol/account.cbl CHANGED
@@ -4,7 +4,7 @@
4
  ENVIRONMENT DIVISION.
5
  INPUT-OUTPUT SECTION.
6
  FILE-CONTROL.
7
- SELECT ACCOUNT-FILE ASSIGN TO "data/accounts.dat"
8
  ORGANIZATION IS LINE SEQUENTIAL.
9
 
10
  DATA DIVISION.
@@ -12,37 +12,51 @@
12
  FD ACCOUNT-FILE
13
  RECORDING MODE F
14
  LABEL RECORDS ARE STANDARD.
15
- 01 ACCOUNT-RECORD.
16
- 02 ACCT-NUM PIC 9(4).
17
- 02 FILLER PIC X(4).
18
- 02 NAME PIC X(20).
19
- 02 FILLER PIC X(6).
20
- 02 AMOUNT PIC 9(6)V99.
21
 
22
  WORKING-STORAGE SECTION.
23
  01 EOF PIC X VALUE 'N'.
24
- 01 ACCOUNT-NUMBER PIC 9(4).
25
- 01 CUSTOMER-NAME PIC X(20) VALUE SPACES.
26
- 01 BALANCE PIC 9(6)V99 VALUE ZERO.
27
 
28
- PROCEDURE DIVISION.
 
 
 
 
29
  MAIN-LOGIC.
30
- OPEN INPUT ACCOUNT-FILE
31
- DISPLAY "Enter Account Number:"
32
- ACCEPT ACCOUNT-NUMBER
 
 
 
 
33
 
 
 
34
  PERFORM UNTIL EOF = 'Y'
35
  READ ACCOUNT-FILE INTO ACCOUNT-RECORD
36
  AT END MOVE 'Y' TO EOF
37
  NOT AT END
38
- IF ACCT-NUM = ACCOUNT-NUMBER
39
- MOVE NAME TO CUSTOMER-NAME
40
- MOVE AMOUNT TO BALANCE
41
- DISPLAY "Customer: ", CUSTOMER-NAME
42
- DISPLAY "Balance: $", BALANCE
43
- END-IF
44
  END-READ
45
  END-PERFORM
 
46
 
 
 
 
47
  CLOSE ACCOUNT-FILE
48
- STOP RUN.
 
 
 
 
 
 
 
 
 
 
 
4
  ENVIRONMENT DIVISION.
5
  INPUT-OUTPUT SECTION.
6
  FILE-CONTROL.
7
+ SELECT ACCOUNT-FILE ASSIGN TO "data/accounts.csv"
8
  ORGANIZATION IS LINE SEQUENTIAL.
9
 
10
  DATA DIVISION.
 
12
  FD ACCOUNT-FILE
13
  RECORDING MODE F
14
  LABEL RECORDS ARE STANDARD.
15
+ 01 ACCOUNT-RECORD PIC X(1024).
 
 
 
 
 
16
 
17
  WORKING-STORAGE SECTION.
18
  01 EOF PIC X VALUE 'N'.
19
+ 01 WS-ACCOUNT-NUMBER PIC 9(4).
20
+ 01 WS-NAME PIC X(30).
21
+ 01 WS-BALANCE PIC 9(6)V99.
22
 
23
+ LINKAGE SECTION.
24
+ 01 LS-ACTION PIC X(10).
25
+ 01 LS-DATA PIC X(1024).
26
+
27
+ PROCEDURE DIVISION USING LS-ACTION LS-DATA.
28
  MAIN-LOGIC.
29
+ EVALUATE LS-ACTION
30
+ WHEN "READ"
31
+ PERFORM READ-ACCOUNT
32
+ WHEN "CREATE"
33
+ PERFORM CREATE-ACCOUNT
34
+ END-EVALUATE
35
+ GOBACK.
36
 
37
+ READ-ACCOUNT.
38
+ OPEN INPUT ACCOUNT-FILE
39
  PERFORM UNTIL EOF = 'Y'
40
  READ ACCOUNT-FILE INTO ACCOUNT-RECORD
41
  AT END MOVE 'Y' TO EOF
42
  NOT AT END
43
+ DISPLAY ACCOUNT-RECORD
 
 
 
 
 
44
  END-READ
45
  END-PERFORM
46
+ CLOSE ACCOUNT-FILE.
47
 
48
+ CREATE-ACCOUNT.
49
+ OPEN EXTEND ACCOUNT-FILE
50
+ WRITE ACCOUNT-RECORD FROM LS-DATA
51
  CLOSE ACCOUNT-FILE
52
+
53
+ UNSTRING LS-DATA DELIMITED BY "," INTO
54
+ WS-ACCOUNT-NUMBER,
55
+ WS-NAME,
56
+ WS-BALANCE
57
+ END-UNSTRING
58
+
59
+ CALL "LOG-TRANSACTION" USING
60
+ FUNCTION TRIM("Account created: " &
61
+ WS-ACCOUNT-NUMBER &
62
+ " - " & WS-NAME)