COBOL编程实践1
来源:互联网 发布:关系数据库设计范式 编辑:程序博客网 时间:2024/06/06 02:53
问题描述:
读入一组产品销售记录,每读入一个记录,计算出销售总额(数量X单价).然后输出该产品的全部数据.数据形式如下:
DATE PRODCODE CUST QUANTITY PRICE
19921231 000001 AAAA 0100 500019931231 100001 BBBB 0200 6000
使得输出的数据形式如下:
DATE PROD-CODE CUSTOMER-CODE QUANTITY UNIT-PRICE SALES-VALUE
1992 12 31 000001 AAAA 0100 $5000 $5000001993 12 31 100001 BBBB 0200 $6000 $1200000
编程要点:
1.数据部中数值型数据描述采用 B 控制空格而不是FILLER。
2.工作单元节中定义一个初始化静态数据项WS-INPUT-FILE-END 来控制程序结束。
3.PERFORM...THRU...需配套使用。
4.FILE1和FILE2需要自己新建。
新建一个COBOL程序,代码如下:
1 000000 IDENTIFICATION DIVISION. 2 000000 PROGRAM-ID. Z00000. 3 000000 4 000000 ENVIRONMENT DIVISION. 5 000000 CONFIGURATION SECTION. 6 000000 INPUT-OUTPUT SECTION. 7 000000 FILE-CONTROL. 8 SELECT INPUT-FILE ASSIGN TO "FILE1" 9 000000 ORGANIZATION IS LINE SEQUENTIAL 10 ACCESS MODE IS SEQUENTIAL 11 FILE STATUS IS WS-INPUT-FILE-STATUS. 12 SELECT OUTPUT-FILE ASSIGN TO "FILE2" 13 ORGANIZATION IS LINE SEQUENTIAL 14 ACCESS MODE IS SEQUENTIAL 15 FILE STATUS IS WS-OUTPUT-FILE-STATUS. 16 17 000000 DATA DIVISION. 18 000000 FILE SECTION. 19 FD INPUT-FILE. 20 01 IN-REC. 21 05 IN-DATE PIC 9(8). 22 05 IN-PROD-CODE PIC 9(6). 23 05 IN-CUSTOMER-CODE PIC X(4). 24 05 IN-QUANTITY PIC 9(4). 25 05 IN-UNIT-PRICE PIC 9(4). 26 FD OUTPUT-FILE. 27 01 OUT-REC. 28 05 OUT-DATE PIC 9(4)B99B99B. 29 05 OUT-PROD-CODE PIC 9(6)B. 30 05 OUT-CUSTOMER-CODE PIC X(4)B. 31 05 OUT-QUANTITY PIC 9(4)B. 32 05 OUT-UNIT-PRICE PIC $9(4)B. 33 05 OUT-SALES-VALUE PIC $9(7). 34 000000 WORKING-STORAGE SECTION. 35 01 WS-VARIBLES. 36 05 WS-INPUT-FILE-STATUS PIC 9(2). 37 05 WS-OUTPUT-FILE-STATUS PIC 9(2). 38 01 WS-INPUT-FILE-END PIC X VALUE "N". 39 000000 40 000000 PROCEDURE DIVISION. 41 42 000000 A000-MIAN SECTION. 43 PERFORM A100-OPEN-FILE THRU A100-OPEN-FILE-EXIT. 44 PERFORM R000-READ-FILE THRU R000-READ-FILE-EXIT. 45 PERFORM A200-PROCESS-RECORD THRU A200-PROCESS-RECORD-EXIT
46 UNTIL WS-INPUT-FILE-END = "Y". 47 PERFORM A300-CLOSE-FILE THRU A300-CLOSE-FILE-EXIT. 48 A000-MAIN-EXIT. 49 STOP RUN. 50 000000 51 000000 A100-OPEN-FILE. 52 OPEN INPUT INPUT-FILE. 53 OPEN OUTPUT OUTPUT-FILE. 54 INITIALIZE WS-VARIBLES. 55 DISPLAY WS-INPUT-FILE-STATUS. 56 57 IF WS-INPUT-FILE-STATUS NOT = 0 58 DISPLAY "INPUT-FILE OPEN IS NOT SUCCESSFUL" 59 PERFORM Z000-ABEND THRU Z000-ABEND-EXIT 60 000001 END-IF. 61 IF WS-OUTPUT-FILE-STATUS NOT = 0 62 DISPLAY "OUTPUT-FILE OPEN IS NOT SUCCESSFUL" 63 PERFORM Z000-ABEND THRU Z000-ABEND-EXIT 64 000002 END-IF. 65 A100-OPEN-FILE-EXIT. 66 EXIT. 67 000000 68 000000 A200-PROCESS-RECORD. 69 MOVE IN-DATE TO OUT-DATE. 70 MOVE IN-PROD-CODE TO OUT-PROD-CODE. 71 MOVE IN-CUSTOMER-CODE TO OUT-CUSTOMER-CODE. 72 MOVE IN-QUANTITY TO OUT-QUANTITY. 73 MOVE IN-UNIT-PRICE TO OUT-UNIT-PRICE. 74 COMPUTE OUT-SALES-VALUE = IN-QUANTITY * IN-UNIT-PRICE. 75 PERFORM W000-WRITE-FILE THRU W000-WRITE-FILE-EXIT. 76 PERFORM R000-READ-FILE THRU R000-READ-FILE-EXIT. 77 A200-PROCESS-RECORD-EXIT. 78 EXIT. 79 00000 80 000000 A300-CLOSE-FILE. 81 CLOSE INPUT-FILE. 82 CLOSE OUTPUT-FILE. 83 A300-CLOSE-FILE-EXIT. 84 EXIT. 85 000000 86 000000 R000-READ-FILE. 87 READ INPUT-FILE AT END 88 MOVE "Y" TO WS-INPUT-FILE-END.
89 DISPLAY "READ:" , WS-INPUT-FILE-STATUS. 90 IF (WS-INPUT-FILE-STATUS NOT = 0 AND 91 WS-INPUT-FILE-STATUS NOT = 10) 92 DISPLAY "IPUT-FILE READ IS NOT SUCCESSFUL" 93 PERFORM Z000-ABEND THRU Z000-ABEND-EXIT 94 000003 END-IF. 95 R000-READ-FILE-EXIT. 96 EXIT. 97 000000 98 000000 W000-WRITE-FILE. 99 WRITE OUT-REC.100 DISPLAY "WRITE:" , WS-INPUT-FILE-STATUS.101 IF (WS-OUTPUT-FILE-STATUS NOT = 0 AND102 WS-OUTPUT-FILE-STATUS NOT = 10)103 DISPLAY "OUTPUT-FILE WRITE IS NOT SUCCESSFUL"104 PERFORM Z000-ABEND THRU Z000-ABEND-EXIT105 000004 END-IF.106 W000-WRITE-FILE-EXIT.107 EXIT.108 000000109 000000 Z000-ABEND.110 DISPLAY "PROGRAM ABEND".111 PERFORM A300-CLOSE-FILE THRU A300-CLOSE-FILE-EXIT.112 Z000-ABEND-EXIT.113 EXIT.
运行程序,运行成功后
将问题所给数据传入FILE1,同时编辑脚本文件
1 19921213000001AAAA01005000
2 19931213100001BBBB02006000
最后运行脚本文件,查看FILE2得到结果
1 1992 12 13 000001 AAAA 0100 $5000 $0500000
2 1993 12 13 100001 BBBB 0200 $6000 $1200000
编译成功的第一个COBOL程序,中途还是遇到了很多问题,光是查错就查了很久很久。继续努力吧。
- COBOL编程实践1
- COBOL语言初级教程(1)--COBOL简介
- COBOL语言初级教程(1)--COBOL简介(续)
- COBOL语言初级教程(1)--COBOL简介
- cobol 学习1
- cobol 生涯1
- COBOL学习(1)-程序结构
- cobol 学习1
- cobol
- cobol
- COBOL
- COBOL
- cobol `
- Cobol
- Socket编程实践(1)
- shell编程实践1
- soekct实践编程1
- COBOL语法和文法(1)
- Spring MVC 学习笔记 六 Handler Method的可用参数
- Go环境安装
- C++实现根据类名动态生成类对象
- Nginx配置负载均衡
- 最小二乘法
- COBOL编程实践1
- HDU2181 哈密顿绕行世界问题 dfs
- 基于pearson(皮尔逊)相似度的用户推荐算法
- Spring MVC 学习笔记 七 controller中其他可用的annotation
- fedora安装vim可用
- 关于使用startActivityForResult() back 返回报空指针异常
- 解HTTP session原理及应用
- java静态代码块static {}的用法
- 滚动图片缩放