实验五COBOL程序的编译与运行
大型机COBOL程序之简易报表打印
COBOL实验报告2一,实验目的1,能够利用cobol程序实现一个报表的编辑和制作。
2,能够对文件进行操作,比如说:打开,关闭,读和写 3,了解COBOL的常用语句和一些常用的数据类型,能够利用编辑型数据实现数据的友好输出。
4,能够运用sdsf修改程序中的错误5,学会编写稍微复杂的COBOL程序。
二,实验原理和内容1,修改UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常运行。
2,在RPT1000原有基础上改进成增强的报表打印程序。
3,利用给定的数据和格式独立的制作一个报表三,实验环境PC机和TSO下的ISPF环境四,实验步骤1,步骤1和步骤2:修改UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常运行,并在此基础上改进成增强型的报表打印程序。
1.1 代码:000100 IDENTIFICATION DIVISION.000200000300 PROGRAM-ID. RPT1000.000400000500 ENVIRONMENT DIVISION.000600000700 INPUT-OUTPUT SECTION.000800000900 FILE-CONTROL.001000001100 SELECT CUSTMAST ASSIGN TO CUSTMAST.001200 SELECT SALESRPT ASSIGN TO SALESRPT.001300001400 DATA DIVISION.001500001600 FILE SECTION.001700001800 FD CUSTMAST.001900002000 01 CUSTOMER-MASTER-RECORD.002100 05 CM-BRANCH-NUMBER PIC 9(2).002200 05 CM-SALESREP-NUMBER PIC 9(2).002300 05 CM-CUSTOMER-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).002700002800 FD SALESRPT.002900003000 01 PRINT-AREA PIC X(132).003100003200 WORKING-STORAGE SECTION.003300003400 01 SWITCHES.003500 05 CUSTMAST-EOF-SWITCH PIC X VALUE "N".003600003700 01 PRINT-FIELDS.003800 05 PAGE-COUNT PIC S9(3) V ALUE ZERO.003900 05 LINES-ON-PAGE PIC S9(3) V ALUE +55.004000 05 LINE-COUNT PIC S9(3) V ALUE +99.004100 05 SPACE-CONTROL PIC S9.004200004300 01 TOTAL-FIELDS.004400 05 GRAND-TOTAL-THIS-YTD PIC S9(7)V99 VALUE ZERO.004500 05 GRAND-TOTAL-LAST-YTD PIC S9(7)V99 VALUE ZERO.00460001 CALCULATED-FILEDS.05 CHANGE-AMOUNT PIC S9(5)V99.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).005400005500 01 HEADING-LINE-1.005600 05 FILLER PIC X(7) VALUE "DA TE: ".005700 05 HL1-MONTH 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) V ALUE "YEAR-TO-DATE SALES R".006400 05 FILLER PIC X(20) VALUE "EPORT ". 006500 05 FILLER PIC X(8) VALUE " PAGE: ".006600 05 Hl1-PAGE-NUMBER PIC ZZZ9.006700 05 FILLER PIC X(52) VALUE SPACE.006800006900 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 PIC X(10) VALUE "RPT1000".007600 05 FILLER PIC X(52) VALUE SPACE.007700007800 01 HEADING-LINE-3.007900 05 FILLER PIC X(20) VALUE "CUST ". 008000 05 FILLER PIC X(20) VALUE " SALES ". 008100 05 FILLER PIC X(20) VALUE " SALES ".05 FILLER PIC X(20) VALUE "CHANGE CHANGE ". 008200 05 FILLER PIC X(52) VALUE SPACE.008300008400 01 HEADING-LINE-4.008500 05 FILLER PIC X(20) VALUE "NUM CUSTOMER NAME". 008600 05 FILLER PIC X(20) VALUE " THIS YTD ". 008700 05 FILLER PIC X(20) VALUE " LAST YTD ".05 FILLER PIC X(20) VALUE "AMOUNT PERCENT ". 008800 05 FILLER PIC X(52) VALUE SPACE.008900009000 01 CUSTOMER-LINE.009100 05 CL-CUSTOMER-NUMBER PIC 9(5).009200 05 FILLER PIC X(2) VALUE SPACE. 009300 05 CL-CUSTOMER-NAME PIC X(20).009400 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-.05 FILLER PIC X(4) VALUE SPACE.05 CL-CHANGE-AMOUNT PIC ZZ,ZZ9.99-.05 FILLER PIC X(3) VALUE SPACE.05 CL-CHANGE-PERCENT PIC ZZ9.9-.009800 05 FILLER PIC X(55) VALUE SPACE. 009900010000 01 GRAND-TOTAL-LINE.010100 05 FILLER PIC X(27) VALUE SPACE. 010200 05 GTL-SALES-THIS-YTD PIC Z,ZZZ,ZZ9.99-.010300 05 FILLER PIC X(1) VALUE SPACE. 010400 05 GTL-SALES-LAST-YTD PIC Z,ZZZ,ZZ9.99-.05 FILLER PIC X(1) VALUE SPACE.05 GTL-CHANGE-AMOUNT PIC Z,ZZZ,ZZ9.99-.05 FILLER PIC X(3) VALUE SPACE.05 GTL-CHANGE-PERCENT PIC ZZ9.9-.010500 05 FILLER PIC X(55) VALUE SPACE. 010600010700 PROCEDURE DIVISION.010800010900 000-PREPARE-SALES-REPORT.011000011100 OPEN INPUT CUSTMAST011200 OUTPUT SALESRPT.011300 PERFORM 100-FORMA T-REPORT-HEADING.011400 PERFORM 200-PREPARE-SALES-LINES011500 UNTIL CUSTMAST-EOF-SWITCH = "Y".011600 PERFORM 300-PRINT-GRAND-TOTALS.011700 CLOSE CUSTMAST011800 SALESRPT.011900 STOP RUN.012000012100 100-FORMA T-REPORT-HEADING.012200012300 MOVE FUNCTION CURRENT-DATE TOCURRENT-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.012900013000 200-PREPARE-SALES-LINES.013100013200 PERFORM 210-READ-CUSTOMER-RECORD.013300 IF CUSTMAST-EOF-SWITCH = "N"IF CM-SALES-THIS-YTD >= 10000013400 PERFORM 220-PRINT-CUSTOMER-LINE.013500013600 210-READ-CUSTOMER-RECORD.013700013800 READ CUSTMAST013900 A T END014000 MOVE "Y" TO CUSTMAST-EOF-SWITCH.014100014200 220-PRINT-CUSTOMER-LINE.014300014400 IF LINE-COUNT >= LINES-ON-PAGE014500 PERFORM 230-PRINT-HEADING-LINES.014600 MOVE CM-CUSTOMER-NUMBER TO CL-CUSTOMER-NUMBER. 014700 MOVE CM-CUSTOMER-NAME TO CL-CUSTOMER-NAME. 014800 MOVE CM-SALES-THIS-YTD TO CL-SALES-THIS-YTD. 014900 MOVE CM-SALES-LAST-YTD TO CL-SALES-LAST-YTD.COMPUTE CHANGE-AMOUNT =CM-SALES-THIS-YTD - CM-SALES-LAST-YTD.MOVE CHANGE-AMOUNT TO CL-CHANGE-AMOUNT.IF CM-SALES-LAST-YTD = ZEROMOVE 999.9 TO CL-CHANGE-PERCENTELSECOMPUTE CL-CHANGE-PERCENT ROUNDED =CHANGE-AMOUNT * 100 / CM-SALES-LAST-YTDON SIZE ERRORMOVE 999.9 TO CL-CHANGE-PERCENT.015000 MOVE CUSTOMER-LINE TO PRINT-AREA.015100 WRITE PRINT-AREA AFTER ADVANCING SPACE-CONTROL LINES.015200 ADD 1 TO LINE-COUNT.015300 ADD CM-SALES-THIS-YTD TO GRAND-TOTAL-THIS-YTD. 015400 ADD CM-SALES-LAST-YTD TO GRAND-TOTAL-LAST-YTD. 015500 MOVE 1 TO SPACE-CONTROL.015600015700 230-PRINT-HEADING-LINES.015800015900 ADD 1 TO PAGE-COUNT.016000 MOVE PAGE-COUNT TO HL1-PAGE-NUMBER.016100 MOVE HEADING-LINE-1 TO PRINT-AREA.016200 WRITE PRINT-AREA AFTER ADVANCING PAGE.016300 MOVE HEADING-LINE-2 TO PRINT-AREA.016400 WRITE PRINT-AREA AFTER ADVANCING 1 LINES.016500 MOVE HEADING-LINE-3 TO PRINT-AREA.016600 WRITE PRINT-AREA AFTER ADVANCING 2 LINES.016700 MOVE HEADING-LINE-4 TO PRINT-AREA.016800 WRITE PRINT-AREA AFTER ADVANCING 1 LINES.016900 MOVE ZERO TO LINE-COUNT.017000 MOVE 2 TO SPACE-CONTROL.017100017200 300-PRINT-GRAND-TOTALS.017300017400 MOVE GRAND-TOTAL-THIS-YTD TO GTL-SALES-THIS-YTD. 017500 MOVE GRAND-TOTAL-LAST-YTD TO GTL-SALES-LAST-YTD.COMPUTE CHANGE-AMOUNT =GRAND-TOTAL-THIS-YTD - GRAND-TOTAL-LAST-YTD.MOVE CHANGE-AMOUNT TO GTL-CHANGE-AMOUNT.IF GRAND-TOTAL-LAST-YTD = ZEROMOVE 999.9 TO GTL-CHANGE-PERCENTELSECOMPUTE GTL-CHANGE-PERCENT ROUNDED =CHANGE-AMOUNT * 100 / GRAND-TOTAL-LAST-YTDON SIZE ERRORMOVE 999.9 TO GTL-CHANGE-PERCENT 017600 MOVE GRAND-TOTAL-LINE TO PRINT-AREA. 017700 WRITE PRINT-AREA AFTER ADVANCING 2 LINES.1.2 输入与输出。
cobol教程
cobol教程COBOL教程COBOL(Common Business-Oriented Language)是一种面向商业应用的编程语言,它主要用于处理大型企业的数据处理和事务处理。
本教程旨在帮助初学者了解和学习COBOL的基本概念和语法规则,从而能够编写简单的COBOL程序。
1. 基本语法COBOL程序由一系列的“句子”组成,每个句子以句点(.)结束。
句子由一系列的“词”组成,每个词由一个或多个字符组成。
COBOL对大小写敏感,因此要注意单词的大小写。
2. 数据定义在COBOL中,需要先定义要处理的数据。
可以使用“DATA DIVISION”来定义数据项及其属性。
数据项可以是数字、字符或日期等类型。
例如,可以定义一个名为“EMPLOYEE-ID”的变量来存储员工的唯一标识。
3. 过程部分过程部分是COBOL程序的核心,用于执行实际的业务逻辑。
可以使用各种控制结构(如IF语句和PERFORM循环)来实现条件判断和循环操作。
通过使用一系列的“句子”来描述要执行的操作。
4. 文件处理COBOL可以处理各种类型的文件,如顺序文件和索引文件。
可以使用“FILE SECTION”来定义文件及其属性,然后使用相关的文件处理语句来读取和写入文件。
5. 运行和调试COBOL程序可以通过COBOL编译器进行编译,并通过COBOL运行时系统来执行。
可以在运行过程中进行调试,以便找出程序中的错误并进行修复。
总结本教程提供了COBOL的基本概念和语法规则的介绍,以及一些常用的编程技巧和注意事项。
希望通过学习本教程,您能够对COBOL有一个初步的了解,并能够编写简单的COBOL程序。
实验五COBOL程序的编译与运行
实验五 COBOL程序的编译与运行实验所属系列:操作系统高级试验实验对象:本科相关课程及专业:大型机系统管理,计算机专业实验类型:课程设计实验时数: 2●实验目的熟悉PCOM及ISPF环境;熟悉在大机系统编译连接与运行基本COBOL 程序的方法。
●实验内容与要求1.首先使用由老师分配的IBM的主机用户名和密码登陆大型机2.建立相应数据集:1)建立分区数据集<用户名>.COBOL.SOURCE,根据下图初始化数据集的参数,该参数只是参考,需要根据系统实际或者指导老师要求进行调整。
2)用同样方法建立分区数据集<用户名>.COBOL.JCL3)建立名为<用户名>.COBOL.LOAD的数据集,参数Record format改为U。
3.在数据集<用户名>.COBOL.SOURCE中建立一个member,并输入一下COBOL程序:4.输入编译JCL程序,并编译源程序为目标文件1)在<用户名>.COBOL.JCL中建立名为CTEST1的MEMBER,然后在其中输入如下JCL程序:注意,程序中的斜体部分应该换成实验者的用户名。
2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程序是否有错。
若有错,修改后重新提交。
输出结果可以在SDSF的H里面看见。
5.输入运行的JCL程序,并运行编译结果1)在<用户名>.COBOL.JCL中建立名为CTEST1的MEMBER,然后在其中输入如下JCL程序:注意,程序中的斜体部分应该换成实验者的用户名。
2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程序是否有错。
若有错,修改后重新提交。
输出结果可以在SDSF的H里面看见。
如果输出不是想要的结果,请检查COBOL源程序。
6.控制台方式运行编译程序1)在ISPF首页选6,输入如下命令:allocate fi(sysout) fi(sysin) da('*')并运行。
JCLb编译、执行COBOL程序
第一步:在SYSPRG1.COBOL.SRC里创建一个member(做为COBOL程序),member名尽量和COBOL程序名相同。
如:我的member名为TEST1,里面写如下代码:IDENTIFICATION DIVISION.PROGRAM-ID. TEST1.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.S.DISPLAY "HELLO WORLD" .STOP RUN.第二步:写编译程序的JCL。
在SYSPRG1.COBOL.JCL里创建一个member,当然也可以不必自己写。
一般的在这个PDS里有一个名为COB2LINK的member,我们只要敲 E 进去,修改两个地方就可以编译自己的COBOL程序了。
//COB2LNK JOB (PLS,81038),'PETER SOPER',CLASS=A,REGION=4096K,// MSGLEVEL=(1,1),MSGCLASS=A,NOTIFY=&SYSUID//*************************************************************//* JOB TO COMPILE AND LINK A COBOL PROGRAM//*************************************************************//COMP EXEC PGM=IGYCRCTL//STEPLIB DD DSN=COBOL.V2R1M0.SIGYCOMP,DISP=SHR//SYSIN DD DSN=SYSPRG1.COBOL.SRC(TEST1),DISP=SHR//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR//SYSLIN DD DSN=&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO,// DISP=(MOD,PASS),// DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1)//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT2 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT3 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT4 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT5 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT6 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT7 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*/*//***************************************************//LKED EXEC PGM=IEWL,COND=(4,LT,COMP),// PARM='LIST,LET,XREF,MAP'//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR//SYSLIN DD DSN=&OBJ,DISP=(OLD,DELETE)// DD DDNAME=SYSIN//SYSLMOD DD DSN=SYSPRG1.COBOL.LOADLIB,DISP=SHR//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSPRINT DD SYSOUT=*NAME TEST1(R)/*红色标出的两部分,是我的修改的。
cobol的编程实例
01MEISAI-1。
02 FILLER PIC X(2)VALUE SAPCE。
02 SYOU-CODE PIC X(6)。
02 FILLER PIC X(2)VALUE SAPCE。
02 URI-KIN PIC X(7)
02 FILLER PIC X(2)VALUE SAPCE。
02 URI-SU PIC X(6)
02 MISE -SU-GOKEI PIC 9(9)VALUE 0。店数量合计
01KEY-AREA。
02 K-MISE-CODE PIC X(2)。店代码保存区域
02 K-SYOU-CODE PIC X(6)。商品代码保存区域
01 KIN-TABLE VALUE ALL ZERO。定义保存
02 KIN-ELT PIC 9(9)OCCURS 10 INDEXED BY I L。店合计的
【解答例】
根据解说过的流程图,编写处理步骤1的程序(过程部)。
[程序说明]
使用下面已定义好的数据部。
使用SEARCH ALL语句对表进行检索
使用COMPUTE语句进行运算处理
使用=,< , > ,NOT进行数据项间的比较处理
[数据部定义]
DATA DIVISION。
FILE SECTION。
FD IN-F
一个
通常一个程序分为几个处理过程,然后有序地组合起来使用,以实现我们所希望的处理结果。
这里,给出一个销售公司对销售数据处理的范例,通过实际的编程,掌握COBOL编程的技巧和步骤。
销售数据处理系统简介
用户需求
(1)某销售公司有若干个销售商店,公司想获得每个商品的销售去向和每个商店的销售额等信息。
编译连接生成运行模块并且运行cobol程序
//IBMUSERC JOB 'COMP BA TCH',CLASS=A,MSGCLASS=H,// NOTIFY=IBMUSER,MSGLEVEL=(1,1)//******************************************************************** // SET SRC=HELLO//******************************************************************** //* JOB TO COMPILE AND LINK-EDIT COBOL PROGRAM//******************************************************************** //COBOL EXEC PGM=IGYCRCTL,REGION=2048K,// PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF,OFFSET' //STEPLIB DD DSNAME=IGY410.SIGYCOMP,// DISP=SHR//SYSPRINT DD SYSOUT=*//SYSLIN DD DSNAME=&&LOADSET,UNIT=SYSDA,// DISP=(MOD,PASS),SPACE=(TRK,(3,3)),// DCB=(BLKSIZE=3200)//SYSIN DD DSN=IBMUSER.TEST.COBOL(&SRC),DISP=SHR//SYSLIB DD DSN=IBMUSER.TEST.COPY,DISP=SHR//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1))//LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K,// PARM='LIST,XREF'//SYSLIB DD DSNAME=CEE.SCEELKED,DISP=SHR// DD DSN=IBMUSER.TEST.LOAD,DISP=SHR//SYSPRINT DD SYSOUT=*//SYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)//SYSLMOD DD DSNAME=IBMUSER.TEST.LOAD(&SRC),DISP=SHR//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))//********************************************************//* RUN THE COMBOL PROGRAM//********************************************************//STEP020 EXEC PGM=HELLO//STEPLIB DD DSN=IBMUSER.TEST.LOAD(HELLO),DISP=SHR//SYSOUT DD SYSOUT=*//。
COBOL上机指南
任意输一个作业名,小于3 个字符
MAXCC=0,表示编译成功, 4的话表示有警告,8以上 就是错误,数越大错误越 严重。如果不是0的话,请 回去修改你的COBOL和 JCL程序,再进入下一步
跟PC机不一样,大型机上 面的显示不会直接蹦到你 屏幕上,要自己去作业中 心查看刚才的作业结果
多按几次F3,退回到主界 面
如果没问题,就显示创建 成功了
刚刚创建的是用来存放COBOL文件 的数据集,现在做一个可以存放JCL 步骤不变
创建成功
再建一个存放编译过的文 件的数据集,我们马上就 要有3个数据集,一个放 COBOL源代码,一个放 JCL源代码,一个放编译后 的文件
如图所示,再创建一个数 据集,回车
属性跟上面两个有点不同, 如图所示输入,回车
现在数据集已经全部创建好了, 按两下F3(后退),回到主界 面,接下来开始写代码
输入2,回车,进入编辑面 板
输入图示命令,表示在ST002.batch.cobol 数据集下建立一个名叫”hello”的成员,你 可以理解成Windows中在一个文件夹底下 建立一个文本文件
编辑界面
如图输入COLS,回车,把 标尺调出来
COBOL程序设计 上机指南
{
戴云行 0743111045 Nov503@
1.已安装IBM个人通信软件 2.准备好发给你的大型机账号,密码 3.IP:202.115.7.252,端口23
实验准备
1.第一个界面
对应于PC键盘,通常所指的“回车”在该仿真 程序下只能改变光标位置,而确认输入命令则是 右“Ctrl”键或小键盘“Enter”键。下面所提到 的“回车”如无特别说明,都指的是这两个键。
注意
这才是”回车”
07_第十课_COBOL编程入门
e.g compute A = a * (b + c) – d
一、标识部
北京德派克公司
作用:标识COBOL源程序名及一些备忘信 息,以供系统管理和调用。 格式:
IDENTIFICATION DIVISION. PROGRAM-ID. 程序名. [AUTHOR. 作者姓名] [……]
二、环境部
商业数据处理:银行、证券系统 数据管理领域:人事管理、库存管理、财 会工作、报表统计、情报检索等。
数据处理的特点:算术计算量少而逻辑处理 多;输入输出量大;数据间存在着一定的 逻辑关系;大量的分类排序。主要功能是 描述数据结构和分析处理大批量的数据。
COBOL语言特点
北京德派克公司
常量
北京德派克公司
数值常量 100,30,29.2,-123 非数值常量 ‘abc’‘123’ 表意常量 ZERO/ZEROS/ZEROES,SPACE/SPACES, HIGH-VALUE,LOW-VALUE,ALL
编码方式
北京德派克公司
COBOL的源程序书写格式
区间 关 键点
北京德派克公司
北京德派克公司
·每个字符占一格 ·主机系统一般都用大写字母。 ·相邻的两个字(如COBOL的保留字或用户自定义)之间 必须留一个以上的空格。 ·运算符(如加、减、乘、除、乘方)和等号左右两边必 须各留一个空格。在过程部中左括号的左侧和右括号 的右侧要留一空格,而内侧不必留空格。 ·逗号、句号、分号的左边不能留空格,而右边应有空 格。 ·一个空格和多个空格作用相同
HOST LANGUAGE SOURCE
COMPILE OBJECT MODULE
COBOL上机-HELLO_文件拷贝
《COBOL商业编程技术》实验报告1学号姓名时间2015年月日成绩上机练习1实验要求:1.编写简单的COBOL程序:HELLO WORLD,通过JCL编译连接并运行,输出“HelloWorld”。
2.将给定的COBOL程序CLAC1000成功编译并运行,输入用SYSIN定义InstreamData或者通过和用户交互来实现数据的输入。
3.编写COBOL程序实现文件的简单复制。
实验步骤及结果:LAB11.编写COBOL源程序,保存在IBMUSER.COBOL.SOURCE(HELLO)中2.创建数据集IBMUSER.COBOL.LOAD,用于保存编译好的的程序3.编写JCL实现COBOL源程序的编译连接。
4.编写JCL以运行编译好的程序5.成功运行,结果输出如下LAB21.COBOL源程序如下IDENTIFICATION DIVISION.PROGRAM-ID. CALC1000.*ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.*DA TA DIVISION.FILE SECTION.WORKING-STORAGE SECTION.77 END-OF-SESSION-SWITCH PIC X V ALUE "N".77 SALES-AMOUNT PIC 9(5)V99.77 SALES-TAX PIC Z,ZZZ.99.*PROCEDURE DIVISION.000-CALCULATE-SALES-TAX.PERFORM 100-CALCULA TE-ONE-SALES-TAXUNTIL END-OF-SESSION-SWITCH = "Y".DISPLAY "END OF SESSION.".STOP RUN.*100-CALCULATE-ONE-SALES-TAX.DISPLAY "-----------------------------------------------".DISPLAY "TO END PROGRAM, ENTER 0.".DISPLAY "TO CALCULA TE SALES TAX, ENTER THE SALES AMOUNT.".ACCEPT SALES-AMOUNT.IF SALES-AMOUNT = ZEROMOVE "Y" TO END-OF-SESSION-SWITCHELSECOMPUTE SALES-TAX ROUNDED =SALES-AMOUNT * .0785DISPLAY "SALES TAX = " SALES-TAX.2.编译连接3.运行及结果(1)编写JCL运行程序,通过SYSIN定义Instream Data来输入数据。
COBOL基础操作
AHEADETP MF4组1班COBOL上机实验报告姓名:编号:CN0001日期: 2011.02.XXListCOBOL Exercise (3)1. HELLO (3)2. ACCEPT1 (5)3. READ1 (12)4. WRITE (14)5. SIGN1 (21)6. STRING (25)7. DATE1 (29)8. PARM1 (32)9. COPY1 (36)10. SUBPROGRAM (38)11. TABLE1 (45)12. SEARCH1 (52)13. SORT1 (54)14. SEQ1000 (57)15. SEQ2000 (60)16. RPT1000 (63)COBOL Exercise1.HELLO这是一个入门程序,功能是显示:“HELLO WORLD”创建CN0001.COBLE.LOADLIB 的PDS数据集文件:COBOL语言编译的HELLO源程序代码,源代码如图:文件名为COMPILE的JCL文件源代码如图:文件名为GOHELLO的JCL文件源代码如图:2.ACCEPT1这个程序主要是学习ACCEPT语句,该语句主要用于接收数据,当用户从终端上输入数据时,这些数据将通过ACCEPT语句保存到相应变量中。
文件名为ACCEPT1的COBOL文件源代码如图:运行后结果如图:运行文件名为GACCEPT1的JCL文件源代码如图:运行结果如图:COMPUTE1和COMPUTE2利用ACCEPT语句接受数据,然后进行简单的运算。
COMPUTE1:COBOL代码如图:把文件名为COMPILE 的JCL文件SUB,使相应的COBOL变为可执行文件,运行后如图:编写Gcompute1的JCL源程序代码文件,它可调用上步生成的可执行文件,源代码如图:运行后结果如下图:COBOL代码如图:把文件名为COMPILE 的JCL文件SUB,使相应的COBOL变为可执行文件,运行后如图:编写文件名为Gcompute2的JCL源程序代码文件,它可调用上步生成的可执行文件,源代码如图:对接收的值N.的一系列运算过程参照相应的COBOL程序,如下图:运行后值=【(12+3)/5 – 2 】* 8=08,下图为运行结果:3.READ1这个程序主要是学习READ语句,该语句用于从文件中读取数据。
COBOL语言实验手册
三、 编写、编译和运行COBOL程序
在ISPF的Option输入3.4,进入Data Set List Utility。再在Dsname Level输入HZXXX (自己的账号),即可进入自己的数据集,此时应该创建好第二节所述的三个数据集合,如 下图:
首先,在源文件的数据集中创建源代码文件,可以考虑从老师相应数据集拷贝示例程序, 然后修改。
14
按下回车,进入数据集界面,并在HZXXX.COBOL.SRCLIB前输入e,按下回车进入源程序 数据集。
进入数据集后,在需要修改的代码左边输入e,然后按下回车即可编辑代码。
修改完代码后在Command处输入save后保存代码。
然后按F3退出到用户自己想要进入的画面。
15
当源代码编写完毕,需要进入到编译和运行步骤! COBOL的编译和运行分别由两个JCL来完成,可以自己编写,也可以从老师账号拷贝。 拷贝操作与之前讲的操作相同。 编译的JCL和运行用的JCL都存在于数据集HZTE02.COBOL.JCL中,COMPCOB为编译用JCL, RUNPGM为运行用的JCL。 拷贝完成之后(记住将这两个JCL都拷到自己账号的数据集HZXXX.COBOL.JCL),需要根 据自己程序和账号对两个JCL做一些修改。具体步骤修改BOL所在行,在NP列输入S,即可查看相关编译信息,如 果编译错误,也可在里面看到!
输入回车后,可以通过F8往下翻页来查看源代码,以及编译情况。
最后查看运行情况。 通过F3退出到JOB队列界面,找到运行JCL的JOB,如法炮制上述步骤。
20
进入JOB日志后,在SYSOUT所在行的NP列输入S,即可查看结果。 按下回车后即可看到字符串HELLO!,这也是HELLO程序的输出结果。
cobol子程序的调用编译运行
子程序1、在数据集SYSPRG1.COBOL.SOURCE中编辑子程序MAINPR2、编辑JCL文件用于编译、连接//COMPBATS JOB (PLS,81038),'VICTOR',CLASS=A,REGION=4096K,// MSGLEVEL=(1,1),MSGCLASS=A,NOTIFY=&SYSUID//*************************************************************//* JOB TO COMPILE AND LINK A COBOL PROGRAM//*****************COMPILE PROGRAM***************************** //COMP EXEC PGM=IGYCRCTL//STEPLIB DD DSN=COBOL.V2R1M0.SIGYCOMP,DISP=SHR//SYSIN DD DSN=SYSPRG1.COBOL.MYSUB(MY A VG),DISP=SHR//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR//SYSLIN DD DSN=&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO,// DISP=(MOD,PASS),// DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1)//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT2 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT3 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT4 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT5 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT6 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSUT7 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSPRINT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*/*//*************LINKED PROGRAM*********************************** //LKED EXEC PGM=IEWL,COND=(4,LT,COMP),// PARM='LIST,LET,XREF,MAP'//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR//SYSLIN DD DSN=&OBJ,DISP=(OLD,DELETE)// DD DDNAME=SYSIN//SYSLMOD DD DSN=SYSPRG1.COBOL.LOAD,DISP=SHR//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)//SYSPRINT DD SYSOUT=*NAME MYA VG(R)/*//3、编译连接完成之后提交JOB提交后在数据集SYSPRG1.COBOL.LOAD就会生成子程序的可执行程序MY A VG.4、编辑主程序MAINPR:5、编辑主程序的JCL文件用于编译、连接。
第九章_编译和运行COBOL程序--CICS 技术文档09
COBOL与CICS
CICS简介 CICSCOBOL
CICS简介
CICS是IBM的客户信息控制系统,是运行终端(联 机)系统的环境; CICS特别适合事务性系统,如处理机票购买和银行 存取款等; 40多年来,CICS一直活跃在全球一流公司的商业系 统中: 当今全球一共有大约50000个CICS站点; 在500个最大的IBM客户中,490个都是用CICS; 大约有100万编程人员编写和维护CICS程序,主 要是COBOL程序。
下述内容将在IMS相关课程中 介绍
IMS数据库的结构和存取原理 PCB掩模(PCB-mask) DL/I函数(DL/I-function) SEGMENT-IO-AREA(段记录布局) SSA(段查找变元)
样本IMS程序
详见EMPLOYEE。
SEND CONTROL命令
语法格式 EXEC CICS SEND CONTROL CURSOR(data-value) ERASE|ERASEUP FREEKB END-EXEC.
SEND MAP命令
语法格式 EXEC CICS SEND MAP (name) [MAPSET(name)] [FROM(data-area)] [LENGTH(data-value)] [DATAONLY|MAPONLY] [ALARM] [CURSOR(data-value)] [ERASE|ERASEUP] [FREEKB] END-EXEC.
物理Map
在CICS里用CEDA定义 CEDA DEF MAPSET
RECEIVE MAP命令
语法格式 EXEC CICS RECEIVE MAP(name) [MAPSET(name)] LENGTH(data-area) INTO(data-area) END-EXEC.
COBOL商业编程技术 大作业
AT END MOVE HIGH-VALUES TO TRANSACTION-KEY READ OLD-MASTER-FILE
AT END MOVE HIGH-VALUES TO OLD-MASTER-KEY CHOOSE FIRSTACTIVE-KEY DO WHILE ACTIVE-KEY NOT = HIGH-VALUES
// MSGCLASS=V,NOTIFY=&SYSUID,
000200 // CLASS=6
000400 //STEP010 EXEC PGM=IDCAMS
000420 //GDGMODEL DD DSN=UR509.VSAM.KSDS.BK,DISP=SHR
000500 //SYSPRINT DD SYSOUT=*
000200 //
NOTIFY=&SYSUID,CLASS=1,REGION=0M
000400 //STEP010 EXEC PGM=IEFBR14
000500 //SYSOUT DD SYSOUT=*
000900 //BKTRAN DD DSN=UR509.TRAINING.FILE.BKTRAN(+1),
IF KEY-ALLOCATE-SWITCH = 'YES'
MOVE 'NO' TO KEY-ALLOCATED-SWITCH PROCESS WITHDRAW
ELSE (ACTIVE-KEY IS NOT IN OLD-MASTER-FILE) WRITE 'ERROR-NOT EXIST'
END-IF WHEN OTHER
000600 //SYSIN DD *
000610 DEF GDG(NAME('UR509.VSAM.KSDS.BKINPUT) -
COBOL软件开发技术
需改进问题点管理注:重要度最高为10,最低为1。
进度管理更新履历成果物一览不制作光盘,以WEB提供资料、补丁、交互服务。
网址:资料下载内容:EDITPLUS试用版及语法完成、语法高亮、语法剪辑文件及用户工具配置UESTUDIO试用版及语法高亮文件及用户工具配置文件及文件比较工具虚拟机软件使用指南部分案例的源代码录像(是否制作待定,编译器环境配置,编译及调试演示)主机软件开发系列丛书COBOL软件开发技术孙树斌阮利编著目录(自动生成)第1章COBOL85程序设计概述 (10)§1.1COBOL语言简介 (10)1.1.1什么是COBOL (10)1.1.2COBOL语言的特点 (10)1.1.3COBOL语言的历史与发展 (11)§1.2第一个COBOL程序——H ELLO COBOL! (12)1.2.1程序代码 (12)1.2.2部(DIVISION) (12)1.2.3节(SECTION) (13)1.2.4句子、语句和子句 (13)1.2.5COBOL85程序结构及书写格式 (13)1.2.6COBOL程序的数据分层 (15)1.2.7COBOL字符集 (15)1.2.8COBOL字 (16)1.2.8.1保留字 (16)1.2.8.2表意常量 (16)1.2.8.3用户字 (17)1.2.9COBOL所处理的数据的特点 (18)§1.3本章小结 (18)思考与练习 (18)思考与练习解答 (18)第2章实例操练一:HELLO COBOL (18)§2.1用E DITPLUS+RMC OBOL编译运行 (19)§2.2用UES TUDIO+RMC OBOL编译运行 (19)§2.3用NET COBOL7编译运行 (19)§2.4本章小结 (19)思考与练习 (19)思考与练习解答 (19)第3章COBOL编程轻松上手 (20)§3.1认识数据部 (20)3.1.1了解数据部 (20)3.1.3COBOL数据 (21)3.1.4数据组成层次结构 (21)§3.2工作单元节(WORKING-STORAGE SECTION) (21)§3.3字型语句(PICTURE子句) (22)3.3.1数值型数据描述 (22)3.3.1.1“9”描述符 (22)3.3.1.2“S”描述符 (23)3.3.1.3“V”描述符 (23)3.3.1.4“P”描述符 (23)3.3.1.5数值型变量小结 (24)3.3.2文字型数据描述 (24)3.3.2.1“A”描述符 (24)3.3.2.2"X"描述符 (24)§3.4赋初值子句(VALUE子句) (25)§3.5认识过程部 (25)3.5.1了解过程部 (25)3.5.2接收语句(ACCEPT语句) (26)3.5.3显示语句(DISPLAY语句) (29)3.5.4数据项初始化(INITIALIZE) (30)3.5.5传送语句(MOVE语句) (31)3.5.6停止语句(STOP语句) (32)3.5.7算术运算语句 (32)3.5.7.1加法语句(ADD语句) (32)3.5.7.2减法语句(SUBTRACT语句) (34)3.5.7.3乘法语句(MULTIPLY语句) (34)3.5.7.4除法语句(DIVIDE语句) (35)3.5.7.5计算语句(COMPUTE语句) (35)3.5.8逻辑与控制语句 (36)3.5.8.1条件表达式 (36)3.5.8.2条件语句(IF语句) (36)3.5.8.3IF嵌套与分析 (38)3.5.8.4转移语句(GOTO语句) (39)3.5.9执行语句(PERFORM 语句) (40)3.5.9.1概述 (40)3.5.9.2基本形 (41)3.5.9.3PERFORM 语句与其他语句的区别 (41)3.5.9.4执行语句(PERFORM 语句)的嵌套 (41)3.5.9.5执行语句(PERFORM 语句)语句序列中的转移 (41)3.5.9.6执行语句(PERFORM 语句)语句计数循环 (42)3.5.9.7执行语句(PERFORM 语句)UNTIL循环 (42)3.5.10出口语句(EXIT) (43)§3.6复写语句 (43)思考与练习 (44)第4章实例操练二:九九乘法表 (48)思考与练习 (51)思考与练习解答 (51)第5章数据处理及显示 (51)§5.1数据在计算机内的表示形式 (51)5.1.1计算机内存的组织形式 (51)5.1.2数值型数据在内存中的存储数据 (52)5.1.3数据描述与存储形式的关系 (52)§5.2用法子句(USAGE子句) (52)§5.3重定义子句(REDEFINES子句) (53)§5.4重命名子句(RENAMES子句) (54)§5.5遇零置空子句(BLANK WHEN ZERO) (55)§5.6对齐子句(JUSTIFIED子句) (55)§5.7同步安置子句(SYNCHRONIZED) (56)§5.8编辑型数据描述 (56)5.8.1“.”描述符 (57)5.8.2“+”描述符 (57)5.8.3“-”描述符 (57)5.8.4“,”描述符 (58)5.8.5“$”描述符 (58)5.8.6“*”描述符 (59)5.8.7插入空格、“0” (59)5.8.8“DB”、“CR” (59)§5.9描述符知识点整理 (60)§5.10算术运算精度处理 (61)5.10.1四舍五入处理子句(ROUNDED子句) (61)5.10.2长度溢出处理子句(ON SIZE ERROR) (62)5.10.3除法语句的余数子句(REMAINDER) (62)§5.11对应传送子句(或称作同名传送CORR) (63)§5.12对应项间的运算(CORR) (64)§5.13本章小结 (65)思考与练习 (65)思考与练习解答 (65)第6章字符串处理 (66)§6.1字符串连接(STRING) (66)§6.2字符串分解语句(UNSTRING) (67)§6.3检测语句(INSPECT语句) (68)第7章COBOL85逻辑控制 (70)§7.1逻辑控制语句 (70)§7.2条件表达式 (70)§7.4EVALUATE语句 (71)§7.5CONTINUE语句 (71)§7.6GO TO (71)§7.7条件关系 (72)§7.8复合条件 (72)§7.9符号条件 (73)§7.10类型条件 (73)§7.11条件名条件 (73)§7.12循环处理 (74)§7.13带有循环控制变量的PERFORM语句 (76)7.13.1一重循环 (76)7.13.2三重循环的PERFORM 语句 (77)§7.14本章小结 (78)思考与练习 (79)思考与练习解答 (79)第8章COBOL85表与检索 (79)§8.1表的基本概念 (79)§8.2表的建立 (81)§8.3表元素的引用 (82)§8.4表元素赋初值 (83)§8.5表的应用 (84)§8.6位标法 (84)8.6.1位标名 (84)8.6.2位标法引用表元素规则 (85)8.6.3设置语句 (85)§8.7表的顺序检索 (86)§8.8表的对分检索 (87)§8.9用PERFORM语句对表进行检索 (88)§8.10本章小结 (88)思考与练习 (88)思考与练习解答 (89)第9章COBOL85子程序 (89)§9.1子程序概述 (89)§9.2主程序与子程序连接 (89)一、子程序结构 (89)二、调用语句语法: (90)三、联接节 (91)§9.3子程序返回语句 (91)§9.4公用区数据 (91)§9.5子程序举例 (91)§9.6本章小结 (93)思考与练习 (93)思考与练习解答 (93)第10章实例操练--习题答案演示系统 (93)§10.1需求分析 (93)§10.2系统设计 (93)第11章COBOL85程序部 (93)§11.1标识部 (93)§11.2环境部 (95)11.2.1环境部概述 (95)11.2.2配置节 (96)11.2.3文件组织方式 (100)11.2.4输入输出节 (102)11.2.4.1输入输出节概述 (102)11.2.4.2文件控制段 (103)11.2.4.3输入输出控制段 (109)§11.3数据部 (110)11.3.1数据部概述 (110)11.3.2文件节 (115)11.3.3工作单元节(WORKING-STORAGE SECTION) (118)§11.4过程部 (126)§11.5本章小结 (127)思考与练习 (128)思考与练习解答 (128)第12章COBOL85文件处理 (128)§12.1文件处理常用语句概述 (128)12.1.1打开语句(OPEN语句) (128)12.1.2读语句(READ语句) (129)12.1.3写语句(WRITE语句) (130)12.1.4重写语句REWRITE (131)12.1.5删除语句DELETE (131)12.1.6关闭语句(CLOSE语句) (131)12.1.7开始语句START (131)12.1.8文件操作汇总 (132)§12.2磁带文件 (132)§12.3磁盘顺序文件 (134)§12.4磁盘索引文件 (139)12.4.1索引文件的概念 (139)12.4.2COBOL中与索引文件有关的部分 (139)12.4.3写索引文件记录 (140)12.4.4检索索引文件记录 (141)12.4.5新增索引文件记录 (143)12.4.6修改索引文件记录 (144)12.4.7删除索引文件记录 (145)12.4.8综合实例 (145)§12.5磁盘相对文件 (147)§12.6动态存取 (148)§12.7综合应用举例 .................................................................................. 错误!未定义书签。
cobol考前知识点 (1)
U11.COBOL是Common Business Oriented Language (通用商业语言)2. COBOL的组成部分:(1)标识部(IDENTIFICATION DIVISION):用于标识程序名(一般不超过8位)。
在标识部下面不设节.直接设段(2)环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。
(3)数据部(DATA DIVISION):用于说明程序中涉及的所有数据。
数据部下设节,节下面是描述体(4)过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。
过程部可以设节,下面再设段,也可以直接设段(部-节-段-句子-语句-子句)3.COBOL 源程序的书写格式:第1 至6 列为―标号区‖。
第7列为―续行标志区‖。
第8至此11列,称为―A区‖。
程序中有些内容如部头,节头,段头,层号01,层号77 及文件描述符FD等应从A区开始写。
第12至此72列,称为―B区‖。
写程序中的正文部分。
如过程部中的句子只能从B 区开始写。
第73至80列,称为―注释区‖。
书写注意事项:运算符(如加、减、乘、除、乘方)和等号左右两边必须各留一个空格。
在过程部中左括号的左侧和右括号的右侧要留一空格,而内侧不必留空格。
逗号、句号、分号的左边不能留空格,而右边应有空格。
4.COBOL语言的元素―#‖―!‖―?‖―%‖只能在COBOL程序中的字符串中出现。
每一个COBOL字不能超过30个字符。
5.数据名的定名规则(1)每个数据名的长度为1-30个字符之间。
(2)只能由字母数字和连接符―-‖组成,而且其中至少应有一个字母。
连接符只能出现在数据名的中间。
(3)数据名中不能出现空格。
(4)不应选择COBOL的保留字作为数据名。
(5)并不要求数据名是有意义的英文字。
6.COBOL程序的运行JCLU21.标识部(1)必写部分IDENTIFICATION DIVISION. (标识部)PROGRAM-ID. 程序名. (程序标识段)程序名不超过30个字符。
IBM 主机COBOL实验简明教程
目录第一部分在TSO 中进行COBOL编程 (3)1、连接主机 (3)2、登录 TSO (3)3、创建数据集 (4)4、查找数据集 (6)5、拷贝compile成员 (7)6、创建COBOL 源代码成员 (9)7、编译、运行cobol 程序。
(11)8、查看程序编译运行的结果 (13)9、退出系统 (16)IBM 主机COBOL 实验简明教程华中科技大学IBM中心版权所有2010 年第一部分在TSO 中进行COBOL编程1、连接主机以qws3720软件为例,单击Connect菜单即可进入如图1-1 的界面,配置后回车即可。
图1-1 qws3720 连接配置2、登录 TSOCOBOL实验将在主机的TSO 环境中进行,在上一步连接后会看到一个乱屏,点击左下角的清除按钮,即可得到干净的屏幕,输入“tso”并回车,接着会出现如图1-2 所示的屏幕,输入自己的用户名。
图1-2在接下来的屏幕中按提示输入自己的口令,如图1-4。
如果是第一次登陆,还要求输入自己的新口令2 次。
图1-3成功登录后应该会看到TSO 的主屏。
3、创建数据集在tso主屏(图1-4),在红色方框处输入p.3.2(也可以依次输入p、3、2 并回车)。
图1-4接下来会进入数据集工具屏(图1-5),要求输入数据集名称和所在卷标。
图1-5在数据集名称中,可以直接输入cobol,不要加单引号,这样系统会自动在生成的数据集名称的高级限定名部分使用你的用户名,比如stu300.cobol。
也可以在数据集名称中加上单引号,以便完全确定自己想要的数据集全限定名称。
需要注意的是,我们规定你们的数据集名称前一定要有自己的用户名。
而卷标请一定用任课教师给定的卷标或者不填(用默认卷标)。
然后进入图1-6画面,为你的数据集配置参数,space units以后的参数项请大家一定按照以下画面中的值配置,除非你确定知道应该如何填写。
回车即可创建好自己的数据集。
4、查找数据集创建好自己的数据集后,你可能很想看到它,那么连续F3 即可回到tso 主菜单,再在otpion中输入p.3.4 即可在自己指定的卷标上查找自己指定的数据集,如图1-7。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 COBOL程序的编译与运行
实验所属系列:操作系统高级试验
实验对象:本科
相关课程及专业:大型机系统管理,计算机专业
实验类型:课程设计
实验时数: 2
●实验目的
熟悉PCOM及ISPF环境;熟悉在大机系统编译连接与运行基本COBOL 程序的方法。
●实验内容与要求
1.首先使用由老师分配的IBM的主机用户名和密码登陆大型机
2.建立相应数据集:
1)建立分区数据集<用户名>.E,根据下图初始化数据集的参数,该参
数只是参考,需要根据系统实际或者指导老师要求进行调整。
2)用同样方法建立分区数据集<用户名>.
3)建立名为<用户名>.的数据集,参数Record format改为U。
3.在数据集<用户名>.E中建立一个member,并输入一下COBOL程序:
4.输入编译JCL程序,并编译源程序为目标文件
1)在<用户名>.中建立名为CTEST1的MEMBER,然后在其中输入如
下JCL程序:
注意,程序中的斜体部分应该换成实验者的用户名。
2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程
序是否有错。
若有错,修改后重新提交。
输出结果可以在SDSF的H
里面看见。
5.输入运行的JCL程序,并运行编译结果
1)在<用户名>.中建立名为CTEST1的MEMBER,然后在其中输入如
下JCL程序:
注意,程序中的斜体部分应该换成实验者的用户名。
2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程
序是否有错。
若有错,修改后重新提交。
输出结果可以在SDSF的H
里面看见。
如果输出不是想要的结果,请检查COBOL源程序。
6.控制台方式运行编译程序
1)在ISPF首页选6,输入如下命令:
allocate fi(sysout) fi(sysin) da('*')
并运行。
该命令的目的是定义标准输出和输入。
2)进入<用户名>.数据集,在名为TEST1的MEMBER前输入CALL后
回车。
即可以在屏幕上看见运行结果。
实验思考
1.为什么数据集<用户名>.的参数Record format要设为U?。