首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对简单的Cobol程序提出改进建议

对简单的Cobol程序提出改进建议
EN

Stack Overflow用户
提问于 2021-01-03 01:42:31
回答 1查看 77关注 0票数 0

我是一个“有抱负”的程序员,目前正在尝试学习Cobol。下面的代码显然是一个带有硬编码值的非常简单的Cobol程序。然而,我很想知道一个更有经验的Cobol程序员会如何改进这样简单的程序。也许我错过了很多东西?

请随时建议您将如何完成它。

代码语言:javascript
复制
   IDENTIFICATION DIVISION.
   
   ENVIRONMENT DIVISION.
   
   DATA DIVISION.
   
   WORKING-STORAGE SECTION.
   
   01  WORK-FIELDS.
       05  EMPTY-LINE      PIC X(132)  VALUE SPACES.
       
   01  HEADLINE.
       05      VALUE "Invoice Specification".
       
   01  FOOTER.

       05      VALUE "Invoice End".
    
   01  CALC-FIELDS.

           10  SPOILER           PIC 9(4).
           10  WINDSHIELD        PIC 9(3).
           10  PARTSUM           PIC 9(4).
           10  DISCOUNT          PIC 9(4).
           10  TO-PAY-EXKL       PIC 9(6).
           10  VAT               PIC 9(3).
           10  TOTAL-TO-PAY      PIC 9(4).

   
   01  PRINT-FIELDS.
           
       05  GROUP-1.
           10                  PIC X(36)
           VALUE  "01 SPOILER left-front, 1250:-".
           10  SPOILER-EDITED PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
 
       05  GROUP-2.
           10                  PIC X(36)
           VALUE  "02 Windshield, 390:-".
           10  WINDSHIELD-EDITED PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".

       05  GROUP-3.
           10                  PIC X(36)
           VALUE  "Part Sum".
           10  PARTSUM-EDITED PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
           
       05  GROUP-4.
           10                  PIC X(36)
           VALUE  "Discount 15%".
           10  DISCOUNT-EDITED   PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
           
       05  GROUP-5.
           10                  PIC X(36)
           VALUE  "To Pay exkl VAT".
           10  TO-PAY-EDITED   PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
           
       05  GROUP-6.
           10                  PIC X(36)
           VALUE  "Added VAT 25%".
           10 VAT-EDITED      PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
       
       05  GROUP-7.
           10                  PIC X(36)
           VALUE  "Total Amount to Pay".
           10                  PIC X(4)    VALUE "SEK ".
           10  TOTAL-EDITED   PIC Z,ZZZ.99.
           10                  PIC X(2)    VALUE ":-".
           

   PROCEDURE DIVISION.
   
   100-GENERATE-INVOICE.
       
       PERFORM 200-CALCULATE.
       PERFORM 300-PRINT-VALUES.
       
       STOP RUN.
       
   200-CALCULATE.
       
       MOVE 1250 TO SPOILER
       MOVE SPOILER TO SPOILER-EDITED
       MOVE 390  TO WINDSHIELD
       MOVE WINDSHIELD TO WINDSHIELD-EDITED
       
       ADD SPOILER WINDSHIELD TO PARTSUM
       MOVE PARTSUM TO PARTSUM-EDITED

       MULTIPLY PARTSUM BY 0.15 GIVING DISCOUNT
       MOVE DISCOUNT TO DISCOUNT-EDITED
       
       SUBTRACT DISCOUNT FROM PARTSUM GIVING TO-PAY-EXKL
       MOVE TO-PAY-EXKL TO TO-PAY-EDITED
       
       MULTIPLY TO-PAY-EXKL BY 0.25 GIVING VAT
       MOVE VAT TO VAT-EDITED
       
       MULTIPLY TO-PAY-EXKL BY 1.25 GIVING TOTAL-TO-PAY
       MOVE TOTAL-TO-PAY TO TOTAL-EDITED
       .
   
   300-PRINT-VALUES.
           
       DISPLAY HEADLINE
       DISPLAY EMPTY-LINE
       DISPLAY EMPTY-LINE
       DISPLAY GROUP-1
       DISPLAY GROUP-2
       DISPLAY GROUP-3
       DISPLAY GROUP-4
       DISPLAY GROUP-5
       DISPLAY GROUP-6
       DISPLAY EMPTY-LINE
       DISPLAY GROUP-7
       DISPLAY EMPTY-LINE
       DISPLAY EMPTY-LINE
       DISPLAY FOOTER
       .
EN

回答 1

Stack Overflow用户

发布于 2021-04-03 03:10:23

我们不知道这段代码的目的。要考虑的事项:

  1. 确定业务规则的输入和输出
  2. 设计输入文件/db访问模式(顺序/随机/从业务规则开始。
  3. 设计输出(是否仅通过显示生成结果,是否要更新数据库?)你会打印一个流expected.
  4. Code加工所需的零件的report?)
  5. Design吗?请注意,上面的代码没有过程划分。

也许这里的一些代码可以在已经发布的大量代码中有所帮助:Sample Code

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65542177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档