Cobol代码通过工具自动生成java代码 展示版()

  本篇文章为你整理了Cobol代码通过工具自动生成java代码 展示版()的详细内容,包含有 Cobol代码通过工具自动生成java代码 展示版,希望能帮助你了解 Cobol代码通过工具自动生成java代码 展示版。

  本例是通过工具将cobol代码自动生成java代码。生成后的java代码是按照java编程风格生成的,完全屏蔽了cobol的特性。

  一个cobol代码生成了4个java代码,分别说文件定义,变量定义,语句代码。

  生成的代码有可执行程序,本例只展示生成的代码。

  cobol代码

  

 ******************************************************************

 

   * Author:

   * Date:

   * Purpose:

   * Tectonics: cobc

   ******************************************************************

   IDENTIFICATION DIVISION.

   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

   PROGRAM-ID. YOUR-PROGRAM-NAME.

   ENVIRONMENT DIVISION.

   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

   CONFIGURATION SECTION.

   *-----------------------

   INPUT-OUTPUT SECTION.

   FILE-CONTROL.

   SELECT INPUTFILE1 ASSIGN TO

   "E:\source\cobol\testdata\src\testfile\input.txt"

   status fs.

   SELECT OUTPUT1 ASSIGN TO

   "E:\source\cobol\testdata\src\testfile\out.txt".

   *-----------------------

   DATA DIVISION.

   FILE SECTION.

   FD INPUTFILE1.

   01 INRECORD.

   02 ID1 PIC 9999.

   02 NAME1 PIC XXXXXXXX.

   02 KEMU1 PIC 9999.

   02 CHENGJI1 PIC 99V9.

   FD OUTPUT1.

   01 OUTRECORD.

   02 ID2 PIC 9999.

   02 NAME2 PIC XXXXXXXX.

   02 SUM2 PIC 999V9.

   02 HEGE PIC X.

   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

   *-----------------------

   WORKING-STORAGE SECTION.

   01 test1.

   02 aa comp-2.

   77 EOFMOD PIC 9.

   77 FS PIC XX.

   01 testred pic xxxx.

   01 testred2 REDEFINES testred.

   02 testred21 pic 9999.

   *-----------------------

   PROCEDURE DIVISION.

   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

   DISPLAY "start exec ".

   MAIN-PROCEDURE.

   * The main procedure of the program

   move all a to test1.

   display test1 "b".

   DISPLAY "Hello world"

   PERFORM CREATFILEDATA.

   *合计学生di为1的成绩综合并输入到出力文件中

   perform SUMCHEGNJI.

   STOP RUN.

   CREATFILEDATA.

   OPEN OUTPUT INPUTFILE1.

   MOVE 1 TO ID1.

   ADD 1 TO 1 GIVING ID1.

   MOVE 张三 to NAME1.

   MOVE 1 TO KEMU1.

   MOVE 80.5 TO CHENGJI1.

   WRITE INRECORD.

   DISPLAY TEST1.

   MOVE 1 TO ID1.

   MOVE 张三 to NAME1.

   MOVE 2 TO KEMU1.

   MOVE 90 TO CHENGJI1.

   DISPLAY TEST21 ..

   IF CHENGJI1 = 0 THEN

   DISPLAY ERROR END

   STOP RUN

   END-IF.

   WRITE INRECORD.

   DISPLAY WRITE OK.

   CLOSE INPUTFILE1.

   exit.

   SUMCHEGNJI.

   * MOVE 1 TO ID2.

   * MOVE 张三 to NAME2.

   MOVE INRECORD TO OUTRECORD.

   move 0 to SUM2.

   move to HEGE.

   MOVE 0 TO EOFMOD.

   MOVE 00 TO FS.

   OPEN INPUT INPUTFILE1.

   perform until FS NOT = 00

   READ INPUTFILE1

   DISPLAY FS

   IF FS = 00 THEN

   IF ID1 = 1 THEN

   ADD CHENGJI1 TO SUM2

   END-IF

   END-IF

   END-PERFORM.

   CLOSE INPUTFILE1.

   DISPLAY SUM2 .

   PERFORM OUTDATA.

   OUTDATA SECTION.

   OPEN OUTPUT OUTPUT1.

   IF SUM2 = 120 THEN

   MOVE A TO HEGE

   ELSE

   MOVE D TO HEGE

   END-IF.

   WRITE OUTRECORD.

   CLOSE OUTPUT1.

   text2.

   exit.

   ** add other procedures here

   END PROGRAM YOUR-PROGRAM-NAME.

  

 

   工具转换生成的java代码

  1:文件结构

  

package cobol.filevar;

 

  import java.math.BigDecimal;

  import comm.BaseFile;

  import comm.StringDataUtils;

   * a 工具转换生成类

   * a 数据文件使用的数据结构定义

   * @author lihaibo

  public class Inputfile1 extends BaseFile{

   public int id1 = 0;

   public String name1 = "";

   public int kemu1 = 0;

   public BigDecimal chengji1 = new BigDecimal(0);

   public Inputfile1(String fileName) {

   super(fileName);

   public String getData() {

   String rowData = "";

   rowData += StringDataUtils.getData(id1, true);

   rowData += StringDataUtils.getData(name1, false);

   rowData += StringDataUtils.getData(kemu1, false);

   rowData += StringDataUtils.getData(chengji1, false);

   return rowData;

   public void setData(String rowData) {

   String[] arr = StringDataUtils.split(rowData);

   id1 = StringDataUtils.getInt(arr, 0);

   name1 = StringDataUtils.getStr(arr, 1);

   kemu1 = StringDataUtils.getInt(arr, 2);

   chengji1 = StringDataUtils.getBigDecimal(arr, 3);

  

 

   文件的定义2

  

package cobol.filevar;

 

  import java.math.BigDecimal;

  import comm.BaseFile;

  import comm.StringDataUtils;

   * a 工具转换生成类

   * a 数据文件使用的数据结构定义

   * @author lihaibo

  public class Output1 extends BaseFile{

   public int id2 = 0;

   public String name2 = "";

   public BigDecimal sum2 = new BigDecimal(0);

   public String hege = "";

   public Output1(String fileName) {

   super(fileName);

   public String getData() {

   String rowData = "";

   rowData += StringDataUtils.getData(id2, true);

   rowData += StringDataUtils.getData(name2, false);

   rowData += StringDataUtils.getData(sum2, false);

   rowData += StringDataUtils.getData(hege, false);

   return rowData;

   public void setData(String rowData) {

   String[] arr = StringDataUtils.split(rowData);

   id2 = StringDataUtils.getInt(arr, 0);

   name2 = StringDataUtils.getStr(arr, 1);

   sum2 = StringDataUtils.getBigDecimal(arr, 2);

   hege = StringDataUtils.getStr(arr, 3);

  

 

  变量定义

  

package cobol.src;

 

  import cobol.filevar.Inputfile1;

  import cobol.filevar.Output1;

   * a 工具转换生成类

   * a 程序用变量定义

   * @author lihaibo

  public class YourProgramNameVar{

   // 文件对象变量

   public Inputfile1 inputfile1 = new Inputfile1("E:\\source\\cobol\\testdata\\src\\testfile\\input.txt");

   public Output1 output1 = new Output1("E:\\source\\cobol\\testdata\\src\\testfile\\out.txt");

   // work内部对象变量

   public int aa = 0;

   public int eofmod = 0;

   public String fs = "";

   public int testred = 0;

   // Param参数对象变量

  

 

  执行代码

  

package cobol.src;

 

  import java.math.BigDecimal;

  import cobol.filevar.Inputfile1;

  import cobol.filevar.Output1;

  import comm.FileOpenEnum;

   * a 工具转换生成类

   * a 程序转换后代码

   * @author lihaibo

  public class YourProgramNameSrc{

   // 程序使用的变量对象

   public YourProgramNameVar yourProgramNameVar = new YourProgramNameVar();

   // 外部接口方法

   public void mainExec(){

   System.out.println("start exec ");

   mainProcedure();

  
yourProgramNameVar.aa = 0;

   System.out.println(String.valueOf(yourProgramNameVar.aa) + "b");

   System.out.println("Hello world");

   if(creatfiledata() == 1){

   return 1;

   sumchegnji();

   return 1;

   private int creatfiledata(){

   yourProgramNameVar.inputfile1.open(FileOpenEnum.OUTPUT);

   yourProgramNameVar.inputfile1.id1 = 1;

   yourProgramNameVar.inputfile1.id1 = 1 + 1;

   yourProgramNameVar.inputfile1.name1 = "张三";

   yourProgramNameVar.inputfile1.kemu1 = 1;

   yourProgramNameVar.inputfile1.chengji1 = new BigDecimal(80.5);

   yourProgramNameVar.inputfile1.writeLine(yourProgramNameVar.inputfile1.getData());

   System.out.println("TEST1");

   yourProgramNameVar.inputfile1.id1 = 1;

   yourProgramNameVar.inputfile1.name1 = "张三";

   yourProgramNameVar.inputfile1.kemu1 = 2;

   yourProgramNameVar.inputfile1.chengji1 = new BigDecimal(90);

   System.out.println("TEST21" + ".");

   if( yourProgramNameVar.inputfile1.chengji1.compareTo(new BigDecimal(0)) = 0){

   System.out.println("ERROR" + " END");

   return 1;

   yourProgramNameVar.inputfile1.writeLine(yourProgramNameVar.inputfile1.getData());

   System.out.println("WRITE OK");

   yourProgramNameVar.inputfile1.close();

   return 0;

   private void sumchegnji(){

   yourProgramNameVar.output1.id2 = yourProgramNameVar.inputfile1.id1;

   yourProgramNameVar.output1.name2 = yourProgramNameVar.inputfile1.name1;

   yourProgramNameVar.output1.sum2 = new BigDecimal(0);

   yourProgramNameVar.output1.hege = " ";

   yourProgramNameVar.eofmod = 0;

   yourProgramNameVar.fs = "00";

   yourProgramNameVar.inputfile1.open(FileOpenEnum.INPUT);

   while(!( yourProgramNameVar.fs.compareTo("00") != 0)) {

   yourProgramNameVar.inputfile1.readLine();

   yourProgramNameVar.fs = yourProgramNameVar.inputfile1.statu1;

   System.out.println(yourProgramNameVar.fs);

   if( yourProgramNameVar.fs.compareTo("00") == 0){

   if( yourProgramNameVar.inputfile1.id1 == 1){

   yourProgramNameVar.output1.sum2 = yourProgramNameVar.output1.sum2.add(yourProgramNameVar.inputfile1.chengji1);

   yourProgramNameVar.inputfile1.close();

   System.out.println(String.valueOf(yourProgramNameVar.output1.sum2));

   outdata();

   private void outdata(){

   yourProgramNameVar.output1.open(FileOpenEnum.OUTPUT);

   if( yourProgramNameVar.output1.sum2.compareTo(new BigDecimal(120)) = 0){

   yourProgramNameVar.output1.hege = "A";

   }else{

   yourProgramNameVar.output1.hege = "D";

   yourProgramNameVar.output1.writeLine(yourProgramNameVar.output1.getData());

   yourProgramNameVar.output1.close();

   outdataText2();

   private void outdataText2(){

  

 

  

  以上就是Cobol代码通过工具自动生成java代码 展示版()的详细内容,想要了解更多 Cobol代码通过工具自动生成java代码 展示版的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: