大型机COBOL大作业.doc_第1页
大型机COBOL大作业.doc_第2页
大型机COBOL大作业.doc_第3页
大型机COBOL大作业.doc_第4页
大型机COBOL大作业.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

COBOL程序设计大作业 学院(系): 专 业: 班 级: 学 号: 姓 名: 大连理工大学Dalian University of Technology1 程序功能描述(1) 程序分为3个部分,分别是IBMUSER.COBOL.RPTCH、IBMUSER.RPT.DEAL、IBMUSER.RPT.SORT。其中IBMUSER.COBOL.RPTCH是主程序,调用IBMUSER.RPT.DEAL子程序,IBMUSER.RPT.DEAL又调用IBMUSER.RPT.SORT子程序。(2) 存在一个新的交易数据表,其中有添加交易操作、更新交易操作、删除交易操作、增开一个分公司及其交易操作信息。对其进行合法性验证,错误的信息输入到错误文件中,正确的信息和原来老的交易信息合并并且排序后生成新的交易信息。(3) 分公司信息表中记录分公司编号和分公司名字的对应情况,销售代表信息表中记录销售代表编号和姓名的对应情况,另外还有新生成的交易信息表,将3个表的信息同时按分公司和销售代表统计信息,生成统计报表。2 程序流程图 IBMUSER.RPT.SORT程序流程图 开始 读入更改操作文件文件结束是Goback输入合法否否是写入错误信息排序并写入记录 IBMUSER.RPT.DEAL程序流程图(调用子程序IBMUSER.RPT.SORT)开始 调用RPT.SORT读入更改操作文件读入交易信息表文件结束是Goback否操作位是1或2或3或4否是将老的交易写入新的交易文件将对应操作写入新的交易文件 IBMUSER.COBOL.RPTCH程序流程图(调用子程序IBMUSER.RPT.DEAL)开始调用RPT.DEAl读入交易信息表文件结束查找对应分公司名字结束查找对应销售代表姓名按分公司销售代表统计信息将统计信息输出到报表3 数据流程图更新文件错误文件错误正确老的交易信息新的更新文件 更新新的交易信息销售代表名字信息分公司名字信息统计报表4 程序代码分析实验代码区(1)IBMUSER.RPT.SORT主要负责对更新信息的差错以及排序000100 IDENTIFICATION DIVISION.000200000300 PROGRAM-ID. SORT1.000400000500 ENVIRONMENT DIVISION.000600000700 INPUT-OUTPUT SECTION.000800000900 FILE-CONTROL.001000001100 SELECT SORTWORK ASSIGN TO SORKWORK.001200 SELECT CHANG2 ASSIGN TO CHANG2.001300 SELECT CHANG ASSIGN TO CHANG.001301 SELECT ERREPT ASSIGN TO ERREPT.001310001400 DATA DIVISION.001500001600 FILE SECTION.001700001800 SD SORTWORK.001900 01 S-MESSAGE.002000 05 S-S-NUMBER PIC X(1).002103 05 S-BRANCH-NUMBER PIC 9(2).002104 05 S-BRANCH-NAME PIC X(3).002105 05 S-SALESR-NUMBER PIC 9(2).002106 05 S-SALESR-NAME PIC X(3).002107 05 S-CUSTOMER-NUMBER PIC 9(5).002108 05 S-CUSTOMER-NAME PIC X(20).002109 05 S-SALES-THIS-YTD PIC S9(5)V9(2).002110 05 S-SALES-LAST-YTD PIC S9(5)V9(2).002120 05 FILLER PIC X(30).002130002200 FD CHANG2.002300002400 01 CC-MESSAGE.002500 05 CC-NUMBER PIC X(1).002600 05 CC-BRANCH-NUMBER PIC 9(2).002610 05 CC-BRANCH-NAME PIC X(3).002620 05 CC-SALESR-NUMBER PIC 9(2).002630 05 CC-SALESR-NAME PIC X(3).002640 05 CC-CUSTOMER-NUMBER PIC 9(5).002650 05 CC-CUSTOMER-NAME PIC X(20).002660 05 CC-SALES-THIS-YTD PIC S9(5)V9(2).002670 05 CC-SALES-LAST-YTD PIC S9(5)V9(2).002680 05 FILLER PIC X(30).002700002710 FD CHANG.002720002730 01 C-MESSAGE.002740 05 C-NUMBER PIC X(1).002750 05 C-BRANCH-NUMBER PIC 9(2).002760 05 C-BRANCH-NAME PIC X(3).002770 05 C-SALESR-NUMBER PIC 9(2).002780 05 C-SALESR-NAME PIC X(3).002790 05 C-CUSTOMER-NUMBER PIC 9(5).002791 05 C-CUSTOMER-NAME PIC X(20).002792 05 C-SALES-THIS-YTD PIC S9(5)V9(2).002793 05 C-SALES-LAST-YTD PIC S9(5)V9(2).002794 05 FILLER PIC X(30).002795002800 FD ERREPT.002900003000 01 ERREPT-MESSAGE.003010 05 ERROR-CHANG PIC X(80).003020003100003200 WORKING-STORAGE SECTION.003300003400 01 SWITCHES.003500 05 TRANSACTION-EOF-SWITCH PIC X VALUE N.003600 88 TRANSACTION-EOF VALUE Y.003800 05 VALID-TRANSACTION-SWITCH PIC X VALUE N.003801 88 VALID-TRANSACTION VALUE Y.003810 05 RETURN-EOF PIC X VALUE N.003820003900 PROCEDURE DIVISION.004000004100 000-PREPARE-SALES-REPORT.004200004300 OPEN INPUT CHANG004510 OUTPUT ERREPT004520 CHANG2.004521 SORT SORTWORK004522 ON ASCENDING KEY S-BRANCH-NUMBER004523 S-SALESR-NUMBER004524 ON DESCENDING KEY S-S-NUMBER004525 INPUT PROCEDURE IS 100-EDIT-RECEIPT-TRANSACTIONS004527 OUTPUT PROCEDURE IS 400-UPDATE-INVENTORY-RECORDS.004528 CLOSE CHANG004529 ERREPT004530 CHANG2.004531 GOBACK.004532004540 100-EDIT-RECEIPT-TRANSACTIONS.004560 PERFORM 200-EDIT-RECEIPT-TRAN004570 UNTIL TRANSACTION-EOF.004580004600 200-EDIT-RECEIPT-TRAN.004700 PERFORM 210-READ-RECEIPT-TRANSACTIOM.004800 IF NOT TRANSACTION-EOF004900 PERFORM 220-EDIT-TRANSACTION-FIELDS005000 IF VALID-TRANSACTION005100 PERFORM 230-RELEASE-VALID-TRANSACTION005200 ELSE005300 PERFORM 240-WRITE-ERROR-TRANSACTION.005400005500 210-READ-RECEIPT-TRANSACTIOM.005600 READ CHANG005700 AT END005800 SET TRANSACTION-EOF TO TRUE.005900006000 220-EDIT-TRANSACTION-FIELDS.006100 SET VALID-TRANSACTION TO TRUE.006200 IF C-NUMBER NOT NUMERIC006300 MOVE N TO VALID-TRANSACTION-SWITCH.006400006500 230-RELEASE-VALID-TRANSACTION.006600 RELEASE S-MESSAGE FROM C-MESSAGE.006610006700 240-WRITE-ERROR-TRANSACTION.007010 WRITE ERREPT-MESSAGE FROM C-MESSAGE.007020007100 400-UPDATE-INVENTORY-RECORDS.007110 PERFORM 500-RETURN UNTIL RETURN-EOF = Y.007120 500-RETURN.007200 RETURN SORTWORK007300 AT END MOVE Y TO RETURN-EOF007400 NOT AT END WRITE CC-MESSAGE FROM S-MESSAGE.(2) IBMUSER.RPT.DEAL主要负责将更新信息和老的交易信息合成新的交易信息000100 IDENTIFICATION DIVISION.000200000300 PROGRAM-ID. DEAL.000400000500 ENVIRONMENT DIVISION.000600000700 INPUT-OUTPUT SECTION.000800000900 FILE-CONTROL.001000001110 SELECT CHANG2 ASSIGN TO CHANG2.001200 SELECT INPUT2 ASSIGN TO INPUT2.001400 SELECT INPUT1 ASSIGN TO INPUT1.001500001600 DATA DIVISION.001700001800 FILE SECTION.001900003110003200 FD INPUT2.003300003400 01 II-MESSAGE.003600 05 II-BRANCH-NUMBER PIC 9(2).003800 05 II-SALESR-NUMBER PIC 9(2).004000 05 II-CUSTOMER-NUMBER PIC 9(5).004100 05 II-CUSTOMER-NAME PIC X(20).004200 05 II-SALES-THIS-YTD PIC 9(5)V9(2).004300 05 II-SALES-LAST-YTD PIC 9(5)V9(2).004400 05 II-SPACE PIC X(37).004500004501 FD INPUT1.004502004503 01 I-MESSAGE.004505 05 I-BRANCH-NUMBER PIC 9(2).004507 05 I-SALESR-NUMBER PIC 9(2).004509 05 I-CUSTOMER-NUMBER PIC 9(5).004510 05 I-CUSTOMER-NAME PIC X(20).004511 05 I-SALES-THIS-YTD PIC S9(5)V9(2).004512 05 I-SALES-LAST-YTD PIC S9(5)V9(2).004520004600 FD CHANG2.004700004800 01 CC-MESSAGE.004900 05 CC-NUMBER PIC X(1).005000 05 CC-BRANCH-NUMBER PIC 9(2).005010 05 CC-BRANCH-NAME PIC X(3).005100 05 CC-SALESR-NUMBER PIC 9(2).005200 05 CC-SALESR-NAME PIC X(3).005300 05 CC-CUSTOMER-NUMBER PIC 9(5).005400 05 CC-CUSTOMER-NAME PIC X(20).005500 05 CC-SALES-THIS-YTD PIC S9(5)V9(2).005600 05 CC-SALES-LAST-YTD PIC S9(5)V9(2).005700 05 FILLER PIC X(30).005800006500 WORKING-STORAGE SECTION.006600006700 01 SWITCHES.006800 05 INPUT-EOF PIC X VALUE N.007210 05 READ-SWITCH PIC X VALUE Y.007220 05 WRITE-SWITCH PIC X VALUE Y.007300 PROCEDURE DIVISION.007400 CALL SORT1.007500 000-PREPARE-SALES-REPORT.007600007700 OPEN INPUT CHANG2007710 INPUT1007800 OUTPUT INPUT2.007810 READ CHANG2.007900 PERFORM 100-PREPARE-LINES008000 UNTIL INPUT-EOF = Y.008500 CLOSE CHANG2008600 INPUT1008700 INPUT2.008800 GOBACK.008900009000 100-PREPARE-LINES.009010 IF READ-SWITCH = Y OR CC-BRANCH-NUMBER = 88009100 PERFORM 200-READ-INPUT-RECORD.009110 IF INPUT-EOF = N009111 IF CC-BRANCH-NUMBER = I-BRANCH-NUMBER AND009112 CC-SALESR-NUMBER = I-SALESR-NUMBER009113 MOVE N TO READ-SWITCH009114 EVALUATE TRUE009120 WHEN CC-NUMBER = 1009121 DISPLAY WHEN 1 009130 PERFORM 300-ADD-NEW-MESSAGE009131 IF WRITE-SWITCH = Y009140 PERFORM 400-ADD-MESSAGE009141 END-IF009150 PERFORM 500-READ-CHANG2009160 WHEN CC-NUMBER = 2009161 DISPLAY WHEN 2 009170 PERFORM 300-ADD-NEW-MESSAGE009171 PERFORM 500-READ-CHANG2009180 WHEN OTHER009181 DISPLAY WHEN OTHER009182 MOVE N TO WRITE-SWITCH009190 PERFORM 500-READ-CHANG2009192 ELSE009193009194 MOVE Y TO READ-SWITCH WRITE-SWITCH009195 IF CC-NUMBER = 4009196 PERFORM 300-ADD-NEW-MESSAGE009197 PERFORM 500-READ-CHANG2009198 END-IF009199 IF CC-BRANCH-NUMBER = 88009200 PERFORM 400-ADD-MESSAGE009201 END-IF009202 END-IF009203 END-IF.009210009300 200-READ-INPUT-RECORD.009400 READ INPUT1009500 AT END009600 MOVE Y TO INPUT-EOF.009700009800 300-ADD-NEW-MESSAGE.009900 MOVE CC-BRANCH-NUMBER TO II-BRANCH-NUMBER.010000 MOVE CC-SALESR-NUMBER TO II-SALESR-NUMBER.010100 MOVE CC-CUSTOMER-NUMBER TO II-CUSTOMER-NUMBER.010200 MOVE CC-CUSTOMER-NAME TO II-CUSTOMER-NAME.010300 MOVE CC-SALES-THIS-YTD TO II-SALES-THIS-YTD.010310 MOVE CC-SALES-LAST-YTD TO II-SALES-LAST-YTD.010400 WRITE II-MESSAGE.010500010600 400-ADD-MESSAGE.010700 MOVE I-MESSAGE TO II-MESSAGE.010800 WRITE II-MESSAGE.010900 500-READ-CHANG2.011000 READ CHANG2011100 AT END MOVE 88 TO CC-BRANCH-NUMBER.011200(3) IBMUSER.COBOL.RPTCH主要负责将交易信息、分公司名字和销售代表姓名进行统计生成报表000100 IDENTIFICATION DIVISION.000200000300 PROGRAM-ID. DEAL.000400000500 ENVIRONMENT DIVISION.000600000700 INPUT-OUTPUT SECTION.000800000900 FILE-CONTROL.001000001110 SELECT CHANG2 ASSIGN TO CHANG2.001200 SELECT INPUT2 ASSIGN TO INPUT2.001400 SELECT INPUT1 ASSIGN TO INPUT1.001500001600 DATA DIVISION.001700001800 FILE SECTION.001900003110003200 FD INPUT2.003300003400 01 II-MESSAGE.003600 05 II-BRANCH-NUMBER PIC 9(2).003800 05 II-SALESR-NUMBER PIC 9(2).004000 05 II-CUSTOMER-NUMBER PIC 9(5).004100 05 II-CUSTOMER-NAME PIC X(20).004200 05 II-SALES-THIS-YTD PIC 9(5)V9(2).004300 05 II-SALES-LAST-YTD PIC 9(5)V9(2).004400 05 II-SPACE PIC X(37).004500004501 FD INPUT1.004502004503 01 I-MESSAGE.004505 05 I-BRANCH-NUMBER PIC 9(2).004507 05 I-SALESR-NUMBER PIC 9(2).004509 05 I-CUSTOMER-NUMBER PIC 9(5).004510 05 I-CUSTOMER-NAME PIC X(20).004511 05 I-SALES-THIS-YTD PIC S9(5)V9(2).004512 05 I-SALES-LAST-YTD PIC S9(5)V9(2).004520004600 FD CHANG2.004700004800 01 CC-MESSAGE.004900 05 CC-NUMBER PIC X(1).005000 05 CC-BRANCH-NUMBER PIC 9(2).005010 05 CC-BRANCH-NAME PIC X(3).005100 05 CC-SALESR-NUMBER PIC 9(2).005200 05 CC-SALESR-NAME PIC X(3).005300 05 CC-CUSTOMER-NUMBER PIC 9(5).005400 05 CC-CUSTOMER-NAME PIC X(20).005500 05 CC-SALES-THIS-YTD PIC S9(5)V9(2).005600 05 CC-SALES-LAST-YTD PIC S9(5)V9(2).005700 05 FILLER PIC X(30).005800006500 WORKING-STORAGE SECTION.006600006700 01 SWITCHES.006800 05 INPUT-EOF PIC X VALUE N.007210 05 READ-SWITCH PIC X VALUE Y.007220 05 WRITE-SWITCH PIC X VALUE Y.007300 PROCEDURE DIVISION.007400 CALL SORT1.007500 000-PREPARE-SALES-REPORT.007600007700 OPEN INPUT CHANG2007710 INPUT1007800 OUTPUT INPUT2.007810 READ CHANG2.007900 PERFORM 100-PREPARE-LINES008000 UNTIL INPUT-EOF = Y.008500 CLOSE CHANG2008600 INPUT1008700 INPUT2.008800 GOBACK.008900009000 100-PREPARE-LINES.009010 IF READ-SWITCH = Y OR CC-BRANCH-NUMBER = 88009100 PERFORM 200-READ-INPUT-RECORD.009110 IF INPUT-EOF = N009111 IF CC-BRANCH-NUMBER = I-BRANCH-NUMBER AND009112 CC-SALESR-NUMBER = I-SALESR-NUMBER009113 MOVE N TO READ-SWITCH009114 EVALUATE TRUE009120 WHEN CC-NUMBER = 1009121 DISPLAY WHEN 1 009130 PERFORM 300-ADD-NEW-MESSAGE009131 IF WRITE-SWITCH = Y009140 PERFORM 400-ADD-MESSAGE009141 END-IF009150 PERFORM 500-READ-CHANG2009160 WHEN CC-NUMBER = 2009161 DISPLAY WHEN 2 009170 PERFORM 300-ADD-NEW-MESSAGE009171 PERFORM 500-READ-CHANG2009180 WHEN OTHER009181 DISPLAY WHEN OTHER009182 MOVE N TO WRITE-SWITCH009190 PERFORM 500-READ-CHANG2009192 ELSE009193009194 MOVE Y TO READ-SWITCH WRITE-SWITCH009195 IF CC-NUMBER = 4009196 PERFORM 300-ADD-NEW-MESSAGE009197 PERFORM 500-READ-CHANG2009198 END-IF009199 IF CC-BRANCH-NUMBER = 88009200 PERFORM 400-ADD-MESSAGE009201 END-IF009202 END-IF009203 END-IF.009210009300 200-READ-INPUT-RECORD.009400 READ INPUT1009500 AT END009600 MOVE Y TO INPUT-EOF.009700009800 300-ADD-NEW-MESSAGE.009900 MOVE CC-BRANCH-NUMBER TO II-BRANCH-NUMBER.010000 MOVE CC-SALESR-NUMBER TO II-SALESR-NUMBER.010100 MOVE CC-CUSTOMER-NUMBER TO II-CUSTOMER-NUMBER.010200 MOVE CC-CUSTOMER-NAME TO II-CUSTOMER-NAME.010300 MOVE CC-SALES-THIS-YTD TO II-SALES-THIS-YTD.010310 MOVE CC-SALES-LAST-YTD TO II-SALES-LAST-YTD.010400 WRITE II-MESSAGE.010500010600 400-ADD-MESSAGE.010700 MOVE I-MESSAGE TO II-MESSAGE.010800 WRITE II-MESSAGE.010900 500-READ-CHANG2.011000 READ CHANG2011100 AT END MOVE 88 TO CC-BRANCH-NUMBER.011200实验数据区(1) IBMUSER.RPT.CHANG主要记录老的更新信息,其中包含错误的信息212B1212N1255555CAREER TRAINING CTR 12345672222222 00000500122B2210N1066666CAREER TRAINING CTR 12345672222222 00000510A22B2210N1066666CAREER TRAINING CTR 12345672222222 00000520112B1212N1266666CAREER TRAINING CTR 12345672222222 00000600$12B1212N1266666CAREER TRAINING CTR 12345672222222 00000601312B1212N1212345CAREER TRAINING CTR 12345672222222 00000610418B1818N1877777CAREER TRAINING CTR 12345672222222 00000700(2) IBMUSER.RPT.ERREPT 主要记录错误信息 A22B2210N1066666CAREER TRAINING CTR 12345672222222 00000520$12B1212N1266666CAREER TRAINING CTR 12345672222222 00000601(3) IBMUSER.RPT.CHANG2主要记录新的更新信息312B1212N1212345CAREER TRAINING CTR 12345672222222 00000610212B1212N1255555CAREER TRAINING CTR 12345672222222 00000500112B1212N1266666CAREER TRAINING CTR 12345672222222 00000600418B1818N1877777CAREER TRAINING CTR 12345672222222 00000700122B2210N1066666CAREER TRAINING CTR 12345672222222 00000510(4) IBMUSER.RPT1000.INPUT1 主要记录老的交易信息121211111INFORMATION BUILDERS01234560111111121212345CAREER TRAINING CTR 12345672222222221022222HOMELITE TEXTRON CO 34545000000000221434567NEAS MEMBER BENEFITS00111110000000221455555PILOT LIFE INS. CO. 10000000100000341000111DAUPHIN DEPOSIT BANK14099001993000341054321AIRCRAFT OWNERS ASSC05426124042000341733333NORFOLK CORP 06396350446288471112121GENERAL SERVICES CO.11444001105956471124680INFO MANAGEMENT CO. 17481451189247472199999DOLLAR SAVINGS BANK 05059000462195472176543NATL MUSIC CORP. 02383460443526(5) IBMUSER.RPT1000.INPUT2主要记录更新了的交易信息121255555CAREER TRAINING CTR 12345672222222 121266666CAREER TRAINING CTR 12345672222222 181877777CAREER TRAINING CTR 12345672222222 221066666CAREER TRAINING CTR 12345672222222 221022222HOMELITE TEXTRON CO 34545000000000221434567NEAS MEMBER BENEFITS00111110000000221455555PILOT LIFE INS. CO. 10000000100000341000111DAUPHIN DEPOSIT BANK14099001993000341054321AIRCRAFT OWNERS ASSC05426124042000341733333NORFOLK CORP 06396350446288471112121GENERAL SERVICES CO.11444001105956471124680INFO MANAGEMENT CO. 17481451189247472199999D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论