大型机COBOL实验报告5COBOL商业编程技术.doc

上传人:文库蛋蛋多 文档编号:2388209 上传时间:2023-02-17 格式:DOC 页数:25 大小:237.50KB
返回 下载 相关 举报
大型机COBOL实验报告5COBOL商业编程技术.doc_第1页
第1页 / 共25页
大型机COBOL实验报告5COBOL商业编程技术.doc_第2页
第2页 / 共25页
大型机COBOL实验报告5COBOL商业编程技术.doc_第3页
第3页 / 共25页
大型机COBOL实验报告5COBOL商业编程技术.doc_第4页
第4页 / 共25页
大型机COBOL实验报告5COBOL商业编程技术.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《大型机COBOL实验报告5COBOL商业编程技术.doc》由会员分享,可在线阅读,更多相关《大型机COBOL实验报告5COBOL商业编程技术.doc(25页珍藏版)》请在三一办公上搜索。

1、大连理工大学课程大作业课程名称:COBOL商业编程技术 学院(系): 软件学院 专 业: 大型机方向 班 级: 学 号: 学生姓名: 2011年 4月 25日一、 实验内容(1) 实验背景:假设有一公司要实现系统更新,将从开始至2011年一季度的数据备份到一个文件(数据集RYO.COBOL.RPT3000.FOLD)中,将第二季的数据保存在另一文件(数据集RYO.COBOL.RPT3000.FREC)中,要系统更新完成,要将两数据整合,并且第二季中的数据包括新的分公司的成立,原分公司的倒闭,原分公司数据更新。(2) 实验要求:现要实现判断第二季度中的数据集中内容判断是否合法,将不合法的输出到错

2、误文件(数据集RYO.COBOL.RPT3000.FERR)中,将倒闭(关闭)的分公司数据输出到(数据集RYO.COBOL.RPT3000.FCLO)中,将新的整合后的数据保存到(数据集RYO.COBOL.RPT3000.FNEW),并最终打印成报表输出到(数据集RYO.COBOL.RPT3000Z.OUTPUT01)中。二:实验目的1) 了解COBOL语言格式,数据类型和基本运算,能熟练掌握编写COBOL 程序的技能2) 熟练掌握EVALUATE语句和PERFORM UNTIL语句等COBOL流程控制3) 熟练掌握对数据的排序和合并操作(SORT&MERGE)及对文件的操作4) 掌握表的基本

3、用法和优点5) 熟练掌握子程序调用方法和具体实现原理6) 能正确编写JCL语言运行COBOL程序三:实验核心内容实验代码分类如下: (1) 主程序代码(2) 子程序代码(3) 编译程序代码(4) 运行程序代码(5) 输入数据1:RYO.COBOL.RPT3000.FOLD(6) 输入数据2:RYO.COBOL.RPT3000.FREC(6) 输出数据1:RYO.COBOL.RPT3000.FERR,RYO.COBOL.RPT3000.FCLO(7) 输出数据2:RYO.COBOL.RPT3000.FNEW(8) 最终生成报表:RYO.COBOL.RPT3000Z.OUTPUT01主程序结构图:

4、子程序结构图:000Updata Fold Record100EditFrecRecord300SortValidRecord400UpdataFoldRecord230ReleaseValidRocord210ReadFrecRecord220EditFrecRecord200 Edit Frec Record240WriteErrorRecord500 Process Frec Record510ReturnFrecRecord553UpdatFoldRecord552insertnewrecord520ProcessFrecRecordFrecRecord551writeFcolReco

5、rd554RenameFoldrecordFrecRecord240WriteErrorRecord520WritefnewRecord240WriteErrorRecord(1)主程序代码000100 IDENTIFICATION DIVISION.000200*000300 PROGRAM-ID. RPT3000Z.000400*000500 ENVIRONMENT DIVISION.000600*000700 INPUT-OUTPUT SECTION.000800*000900 FILE-CONTROL.001000*001100 SELECT CUSTMAST ASSIGN TO CU

6、STMAS1.001200 SELECT SALESRPT ASSIGN TO SALESRP1.001300*001400 DATA DIVISION.001500*001600 FILE SECTION.001700*001800 FD CUSTMAST.001900*002000 01 CUSTOMER-MASTER-RECORD.002100 05 CM-BRANCH-NUMBER PIC 9(2).002110 05 CM-BRANCH-NAME PIC X(20).002200 05 CM-SALESREP-NUMBER PIC 9(2).002300 05 CM-CUSTOMER

7、-NUMBER PIC 9(5).002400 05 CM-CUSTOMER-NAME PIC X(20).002500 05 CM-SALES-THIS-YTD PIC S9(5)V9(2).002600 05 CM-SALES-LAST-YTD PIC S9(5)V9(2).002700*002800 FD SALESRPT002900 RECORD CONTAINS 132 CHARACTERS.003000 01 PRINT-AREA PIC X(132).003100*003200 WORKING-STORAGE SECTION.003300*003400 01 SWITCHES.0

8、03500 05 CUSTMAST-EOF-SWITCH PIC X VALUE N.003501 05 FIRST-RECORD-SWITCH PIC X VALUE Y.003502 05 FIRST-SALESREP-SWITCH PIC X VALUE Y.003503*003510 01 CALCULATED-FIELDS.003520 05 CHANGE-AMOUNT PIC S9(5)V99.003600*003601 01 CONTROL-FIELDS.003602 05 OLD-BRANCH-NUMBER PIC 99.003603 05 OLD-SALESREP-NUMBE

9、R PIC 99.003604*003700 01 PRINT-FIELDS.003800 05 PAGE-COUNT PIC S9(3) VALUE ZERO.003900 05 LINES-ON-PAGE PIC S9(3) VALUE +55.004000 05 LINE-COUNT PIC S9(3) VALUE +99.004100 05 SPACE-CONTROL PIC S9.004110 05 SPACE-LINE PIC X(132) VALUE ALL SPACE.004200*004300 01 TOTAL-FIELDS.004400 05 SALESREP-TOTAL-

10、THIS-YTD PIC S9(6)V99 VALUE ZERO.004401 05 SALESREP-TOTAL-LAST-YTD PIC S9(6)V99 VALUE ZERO.004402 05 BRANCH-TOTAL-THIS-YTD PIC S9(6)V99 VALUE ZERO.004403 05 BRANCH-TOTAL-LAST-YTD PIC S9(6)V99 VALUE ZERO.004404 05 GRAND-TOTAL-THIS-YTD PIC S9(7)V99 VALUE ZERO.004500 05 GRAND-TOTAL-LAST-YTD PIC S9(7)V9

11、9 VALUE ZERO.004600*004700 01 CURRENT-DATE-AND-TIME.004800 05 CD-YEAR PIC 9999.004900 05 CD-MONTH PIC 99.005000 05 CD-DAY PIC 99.005100 05 CD-HOURS PIC 99.005200 05 CD-MINUTES PIC 99.005300 05 FILLER PIC X(9).005400*005500 01 HEADING-LINE-1.005600 05 FILLER PIC X(7) VALUE DATE: .005700 05 HL1-MONTH

12、PIC 9(2).005800 05 FILLER PIC X(1) VALUE /.005900 05 HL1-DAY PIC 9(2).006000 05 FILLER PIC X(1) VALUE /.006100 05 HL1-YEAR PIC 9(4).006200 05 FILLER PIC X(11) VALUE SPACE.006300 05 FILLER PIC X(20) VALUE YEAR-TO-DATE SALES R.006400 05 FILLER PIC X(20) VALUE EPORT .006500 05 FILLER PIC X(8) VALUE PAG

13、E: .006600 05 Hl1-PAGE-NUMBER PIC ZZZ9.006700 05 FILLER PIC X(52) VALUE SPACE.006800*006900 01 HEADING-LINE-2.007000 05 FILLER PIC X(7) VALUE TIME: .007100 05 HL2-HOURS PIC 9(2).007200 05 FILLER PIC X(1) VALUE :.007300 05 HL2-MINUTES PIC 9(2).007400 05 FILLER PIC X(58) VALUE SPACE.007500 05 FILLER P

14、IC X(10) VALUE RPT3000.007600 05 FILLER PIC X(52) VALUE SPACE.007700*007800 01 HEADING-LINE-3.007900 05 FILLER PIC X(08) VALUE BRANCH .007901 05 FILLER PIC X(20) VALUE BRANCH .007902 05 FILLER PIC X(08) VALUE SALES .007910 05 FILLER PIC X(20) VALUE CUST .008000 05 FILLER PIC X(20) VALUE SALES .00810

15、0 05 FILLER PIC X(20) VALUE SALES .008110 05 FILLER PIC X(20) VALUE CHANGE CHANGE .008200 05 FILLER PIC X(36) VALUE SPACE.008300*008400 01 HEADING-LINE-4.008500 05 FILLER PIC X(08) VALUE NUM .008501 05 FILLER PIC X(20) VALUE NAME .008502 05 FILLER PIC X(08) VALUE NUM .008510 05 FILLER PIC X(20) VALU

16、E NUM CUSTOMER NAME.008600 05 FILLER PIC X(20) VALUE THIS YTD .008700 05 FILLER PIC X(20) VALUE LAST YTD .008710 05 FILLER PIC X(20) VALUE AMOUNT PERCENT .008800 05 FILLER PIC X(36) VALUE SPACE.008900*009000 01 CUSTOMER-LINE.009100 05 FILLER PIC X(2) VALUE SPACE.009101 05 CL-BRANCH-NUMBER PIC X(2).0

17、09102 05 FILLER PIC X(2) VALUE SPACE.009103 05 CL-BRANCH-NAME PIC X(20).009104 05 FILLER PIC X(4) VALUE SPACE.009105 05 CL-SALESREP-NUMBER PIC X(2).009106 05 FILLER PIC X(4) VALUE SPACE.009107 05 CL-CUSTOMER-NUMBER PIC 9(5).009200 05 FILLER PIC X(2) VALUE SPACE.009300 05 CL-CUSTOMER-NAME PIC X(20).0

18、09400 05 FILLER PIC X(3) VALUE SPACE.009500 05 CL-SALES-THIS-YTD PIC ZZ,ZZ9.99-.009600 05 FILLER PIC X(4) VALUE SPACE.009700 05 CL-SALES-LAST-YTD PIC ZZ,ZZ9.99-.009710 05 FILLER PIC X(4) VALUE SPACE.009720 05 CL-CHANGE-AMOUNT PIC ZZ,ZZ9.99-.009730 05 FILLER PIC X(3) VALUE SPACE.009740 05 CL-CHANGE-P

19、ERCENT PIC -9.9.009750 05 CL-CHANGE-PERCENT-R REDEFINES CL-CHANGE-PERCENT PIC X(6).009800 05 FILLER PIC X(29) VALUE SPACE.009900*010000 01 SALESREP-TOTAL-LINE.010100 05 FILLER PIC X(43) VALUE SPACE.010110 05 FILLER PIC X(22) VALUE SALESRTP TOTAL.010200 05 STL-SALES-THIS-YTD PIC $,$9.99-.010300 05 FI

20、LLER PIC X(1) VALUE SPACE.010400 05 STL-SALES-LAST-YTD PIC $,$,$9.99-.010410 05 FILLER PIC X(3) VALUE SPACE.010420 05 STL-CHANGE-AMOUNT PIC $,$9.99-.010430 05 FILLER PIC X(3) VALUE SPACE.010440 05 STL-CHANGE-PERCENT PIC +9.9.010450 05 STL-CHANGE-PERCENT-R REDEFINES STL-CHANGE-PERCENT010460 PIC X(6).

21、010500 05 FILLER PIC X(19) VALUE *.010600*010601 01 BRANCH-TOTAL-LINE.010602 05 FILLER PIC X(43) VALUE SPACE.010603 05 FILLER PIC X(22) VALUE BRANCH TOTAL.010604 05 BTL-SALES-THIS-YTD PIC $,$9.99-.010605 05 FILLER PIC X(1) VALUE SPACE.010606 05 BTL-SALES-LAST-YTD PIC $,$,$9.99-.010607 05 FILLER PIC

22、X(3) VALUE SPACE.010608 05 BTL-CHANGE-AMOUNT PIC $,$9.99-.010609 05 FILLER PIC X(3) VALUE SPACE.010610 05 BTL-CHANGE-PERCENT PIC +9.9.010611 05 BTL-CHANGE-PERCENT-R REDEFINES BTL-CHANGE-PERCENT010612 PIC X(6).010613 05 FILLER PIC X(19) VALUE *.010614*010615 01 GRAND-TOTAL-LINE.010616 05 FILLER PIC X

23、(43) VALUE SPACE.010617 05 FILLER PIC X(20) VALUE GRAND TOTAL.010618 05 GTL-SALES-THIS-YTD PIC $,$,$9.99-.010619 05 FILLER PIC X(1) VALUE SPACE.010620 05 GTL-SALES-LAST-YTD PIC $,$,$9.99-.010621 05 FILLER PIC X(1) VALUE SPACE.010622 05 GTL-CHANGE-AMOUNT PIC $,$,$9.99-.010623 05 FILLER PIC X(3) VALUE

24、 SPACE.010624 05 GTL-CHANGE-PERCENT PIC +9.9.010625 05 GTL-CHANGE-PERCENT-R REDEFINES GTL-CHANGE-PERCENT010626 PIC X(6).010627 05 FILLER PIC X(24) VALUE *.010628*010700 PROCEDURE DIVISION.010800*010810 CALL SORTRPT.010900 000-PREPARE-SALES-REPORT.011000*011100 OPEN INPUT CUSTMAST011200 OUTPUT SALESR

25、PT.011300 PERFORM 100-FORMAT-REPORT-HEADING.011400 PERFORM 300-PREPARE-SALES-LINES011500 UNTIL CUSTMAST-EOF-SWITCH = Y.011600 PERFORM 500-PRINT-GRAND-TOTALS.011700 CLOSE CUSTMAST011800 SALESRPT.011900 STOP RUN.012000*012100 100-FORMAT-REPORT-HEADING.012200*012300 MOVE FUNCTION CURRENT-DATE TO CURREN

26、T-DATE-AND-TIME.012400 MOVE CD-MONTH TO HL1-MONTH.012500 MOVE CD-DAY TO HL1-DAY.012600 MOVE CD-YEAR TO HL1-YEAR.012700 MOVE CD-HOURS TO HL2-HOURS.012800 MOVE CD-MINUTES TO HL2-MINUTES.012900*013000 300-PREPARE-SALES-LINES.013100*013200 PERFORM 310-READ-CUSTOMER-RECORD.013300 IF CUSTMAST-EOF-SWITCH =

27、 N013310 EVALUATE TRUE013320 WHEN FIRST-RECORD-SWITCH = Y AND013330 FIRST-SALESREP-SWITCH = Y013400 PERFORM 320-PRINT-CUSTOMER-LINE013500 MOVE N TO FIRST-SALESREP-SWITCH013510 MOVE N TO FIRST-RECORD-SWITCH013600 MOVE CM-SALESREP-NUMBER TO OLD-SALESREP-NUMBER013700 MOVE CM-BRANCH-NUMBER TO OLD-BRANCH

28、-NUMBER013710 WHEN FIRST-RECORD-SWITCH = N AND014303 CM-BRANCH-NUMBER OLD-BRANCH-NUMBER014304 PERFORM 355-PRINT-SALESREP-LINE014305 PERFORM 360-PRINT-BRANCH-LINE014306 MOVE Y TO FIRST-RECORD-SWITCH014307 MOVE Y TO FIRST-SALESREP-SWITCH014308 PERFORM 320-PRINT-CUSTOMER-LINE014309 MOVE N TO FIRST-RECO

29、RD-SWITCH014310 MOVE N TO FIRST-RECORD-SWITCH014311 MOVE CM-BRANCH-NUMBER TO OLD-BRANCH-NUMBER014312 WHEN FIRST-RECORD-SWITCH = N AND014313 CM-BRANCH-NUMBER NOT OLD-BRANCH-NUMBER AND014314 FIRST-SALESREP-SWITCH = Y014315 PERFORM 355-PRINT-SALESREP-LINE014316 PERFORM 320-PRINT-CUSTOMER-LINE014317 MOV

30、E N TO FIRST-SALESREP-SWITCH014318 MOVE CM-SALESREP-NUMBER TO OLD-SALESREP-NUMBER014319 WHEN FIRST-RECORD-SWITCH = N AND014320 CM-BRANCH-NUMBER NOT OLD-BRANCH-NUMBER AND014321 FIRST-SALESREP-SWITCH = N AND014322 CM-SALESREP-NUMBER OLD-SALESREP-NUMBER014323 PERFORM 355-PRINT-SALESREP-LINE014324 MOVE

31、Y TO FIRST-SALESREP-SWITCH014325 PERFORM 320-PRINT-CUSTOMER-LINE014326 MOVE N TO FIRST-SALESREP-SWITCH014327 MOVE CM-SALESREP-NUMBER TO OLD-SALESREP-NUMBER014328 WHEN FIRST-RECORD-SWITCH = N AND014329 CM-BRANCH-NUMBER NOT OLD-BRANCH-NUMBER AND014330 FIRST-SALESREP-SWITCH = N AND014340 CM-SALESREP-NU

32、MBER NOT OLD-SALESREP-NUMBER014350 PERFORM 320-PRINT-CUSTOMER-LINE014400 ELSE014401 PERFORM 355-PRINT-SALESREP-LINE014402 PERFORM 360-PRINT-BRANCH-LINE.014403 310-READ-CUSTOMER-RECORD.014404014405 READ CUSTMAST014406 AT END014407 MOVE Y TO CUSTMAST-EOF-SWITCH.014408*014409 320-PRINT-CUSTOMER-LINE.01

33、4410014420 IF LINE-COUNT = LINES-ON-PAGE014500 PERFORM 330-PRINT-HEADING-LINES.014600 IF FIRST-RECORD-SWITCH = Y014700 MOVE CM-BRANCH-NUMBER TO CL-BRANCH-NUMBER014710 MOVE CM-BRANCH-NAME TO CL-BRANCH-NAME014800 IF FIRST-SALESREP-SWITCH = Y014900 MOVE CM-SALESREP-NUMBER TO CL-SALESREP-NUMBER015000 EN

34、D-IF015002 ELSE015003 MOVE SPACE TO CL-BRANCH-NUMBER015004 MOVE SPACE TO CL-BRANCH-NAME.015005 IF FIRST-SALESREP-SWITCH = Y015006 MOVE CM-SALESREP-NUMBER TO CL-SALESREP-NUMBER015007 ELSE015008 MOVE SPACE TO CL-SALESREP-NUMBER.015010 MOVE CM-CUSTOMER-NUMBER TO CL-CUSTOMER-NUMBER.015011 MOVE CM-CUSTOM

35、ER-NAME TO CL-CUSTOMER-NAME.015012 MOVE CM-SALES-THIS-YTD TO CL-SALES-THIS-YTD.015013 MOVE CM-SALES-LAST-YTD TO CL-SALES-LAST-YTD.015014 COMPUTE CHANGE-AMOUNT =015015 CM-SALES-THIS-YTD - CM-SALES-LAST-YTD.015016 MOVE CHANGE-AMOUNT TO CL-CHANGE-AMOUNT.015017 IF CM-SALES-LAST-YTD = ZERO015018 MOVE N/A

36、 TO CL-CHANGE-PERCENT-R015019 ELSE015020 COMPUTE CL-CHANGE-PERCENT ROUNDED =015021 CHANGE-AMOUNT * 100 / CM-SALES-LAST-YTD015022 ON SIZE ERROR015023 MOVE OVRFLW TO CL-CHANGE-PERCENT-R.015030 MOVE CUSTOMER-LINE TO PRINT-AREA.015100 PERFORM 350-WRITE-REPORT-LINE.015200 MOVE 1 TO SPACE-CONTROL.015300 ADD CM-SALES-THIS-YTD TO SALESREP-TOTAL-THIS-YTD.015400 ADD CM-SALES-LAST-YTD TO SALESREP-TOTAL-LAST-YTD.015600*015700 330-PRINT-HEADING-LINES.015800015900 ADD 1 TO PAGE-COUNT.016000 MOVE PAGE-COUNT

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号