AS400快速入门作业HT011——RPGLE程序

创建满足以下要的PF文件

HOMEWORK

Please refer below statement and complete the Credit/Debit RPGLE program.

Input: There are four paramieters as input entry.

  • Credit(10character)
  • Debit(10character)
  • Transaction amount(11, numericno decimal)
  • Transactiontype(1 character, value '1' means Debit, value '2' means credit)

Output: Input random entries when calling program.

  • When transaction type is '1' display 'xxx debit xxx n yuan!' in the screen.
  • When transaction type is '2', display 'xxx credit xxx n yuan!' in the screen.
  • When the transaction type is neither '1' nor '2', display 'Wrong transaction type! '.
  • When the transaction amount is negative,display 'Invalid transaction amount!'.

Hint:

  • Cannot use numeric as a input parameter entry, so suggest define the transaction amount as character.
  • How to decide the transaction amount is negative or positive.

作业

请参阅以下声明并完成贷记/借记 RPGLE 程序。

输入:有四个参数作为输入入口。

  • 贷方(10 字符)
  • 借方(10 字符)
  • 交易金额(11 无小数数字型)
  • 交易类型(1 个字符,值 “1”表示借方,值 “2”表示贷方)

输出:调用程序时输入随机条目。

  • 当交易类型为 “1”时,显示“xxx debit xxx n yuan !” 在屏幕中。
  • 当交易类型为 “2”时,显示“xxx credit xxx n yuan !” 在屏幕中。
  • 当交易类型既不是“1”也不是“2”时,显示“Wrong transaction type!”在屏幕中。
  • 交易金额为负数时,显示“'Invalid transaction amount!”在屏幕中。

提示:

  • 不能使用数字作为输入参数条目,因此建议将交易金额定义为字符。
  • 如何决定交易金额是负数还是正数。

变量及数据类型:

变量类型
CREDIT

10A 

DEBIT

10A 

TAMOUNT11A
TTYPE1A             

程序流程图:

完整程序:

0000.01 H******************************************************** 
0000.02 H* WRITER   :  BANNY                                      
0000.03 H* HOMEWORK :  HT011                                      
0000.04 H* DATE     :  2022-01-01                                 
0000.05 H******************************************************** 
0000.06 H******************************************************** 
0000.07 H* DEBUG                                                  
0000.08 H******************************************************** 
0000.09 H*                                                        
0001.00 HDEBUG(*YES)                                              
0002.00 HDATFMT(*MDY)                                             
0003.00 HTIMFMT(*HMS)                                             
0004.00 H*                                                        
0005.00 D******************************************************** 
0006.00 D* DEFIND VARIATE                                         
0007.00 D******************************************************** 
0008.00 D*                                                        
0009.00 DCREDIT           S             10A                       
0010.00 DDEBIT            S             10A                       
0011.00 DW1               S             52A                                
0012.00 DTAMOUNT          S             11A                                
0013.00 DTTYPE            S              1A                                
0014.00 D*                                                                 
0015.00 C********************************************************          
0016.00 C*  MAIN FUNCTION                                                  
0017.00 C********************************************************          
0018.00 C*                                                                 
0019.00 C                   EXSR      SR999                                
0020.00 C                   EXSR      SR100                                
0021.00 C                   MOVE      *ON           *INLR                  
0022.00 C                   RETURN                                         
0023.00 C*                                                                 
0024.00 C********************************************************          
0025.00 C*    SR100 FUNCTION                                               
0026.00 C********************************************************          
0027.00 C     SR100         BEGSR                                          
0028.00 C*                                                                 
0029.00 C                   IF        (%SUBST(TAMOUNT:1:1) = '-')          
0030.00 C                   EXSR      SR404                                
0031.00 C*                                                                               
0032.00 C                   ELSE                                                         
0033.00 C                   SELECT                                                       
0034.00 C                   WHEN      TTYPE = '1'                                        
0035.00 C                   EXSR      SR200                                              
0036.00 C                   WHEN      TTYPE = '2'                                        
0037.00 C                   EXSR      SR300                                              
0038.00 C                   OTHER                                                        
0039.00 C                   EXSR      SR900                                              
0040.00 C                   ENDSL                                                        
0041.00 C                   ENDIF                                                        
0042.00 C*                                                                               
0043.00 C     SR100E        ENDSR                                                        
0044.00 C********************************************************                        
0045.00 C*    SR200 FUNCTION TTYPE = '1'                                                 
0046.00 C********************************************************                        
0047.00 C     SR200         BEGSR                                                        
0048.00 C*                                                                               
0049.00 C                   EVAL      W1 = CREDIT+'DEBIT'+DEBIT+TAMOUNT+'yuan!'          
0050.00 C     W1            DSPLY                                                        
0051.00 C*                                                                                    
0052.00 C     SR200E        ENDSR                                                             
0053.00 C********************************************************                             
0054.00 C*    SR300 FUNCTION TTYPE = '2'                                                      
0055.00 C********************************************************                             
0056.00 C     SR300         BEGSR                                                             
0057.00 C*                                                                                    
0058.00 C                   EVAL      W1 = CREDIT+'CREDIT'+DEBIT+TAMOUNT+'yuan!'              
0059.00 C     W1            DSPLY                                                             
0060.00 C*                                                                                    
0061.00 C     SR300E        ENDSR                                                             
0062.00 C********************************************************                             
0063.00 C*    SR404 FUNCTION TAMOUNT < 0                                                      
0064.00 C********************************************************                             
0065.00 C     SR404         BEGSR                                                             
0066.00 C*                                                                                    
0067.00 C                   EVAL      W1 = 'Invali transaction amount!'                       
0068.00 C     W1            DSPLY                                                             
0069.00 C*                                                                                    
0070.00 C     SR404E        ENDSR                                                             
0071.00 C********************************************************      
0072.00 C*    SR900 FUNCTION TTYPE IS OTHER                            
0073.00 C********************************************************      
0074.00 C     SR900         BEGSR                                      
0075.00 C*                                                             
0076.00 C                   EVAL      W1 = 'Wrong transaction type!'   
0077.00 C     W1            DSPLY                                      
0078.00 C*                                                             
0079.00 C     SR900E        ENDSR                                      
0080.00 C********************************************************      
0081.00 C*    SR999 FUNCTION INIT                                      
0082.00 C********************************************************     
0083.00 C     SR999         BEGSR                                     
0084.00 C*                                                            
0085.00 C     *ENTRY        PLIST                                     
0086.00 C                   PARM                    CREDIT            
0087.00 C                   PARM                    DEBIT             
0088.00 C                   PARM                    TAMOUNT           
0089.00 C                   PARM                    TTYPE             
0090.00 C*                                                            
0091.00 C     SR999E        ENDSR                                     

变量定义:

  

变量名说明
CREATE 贷方名字
DEBIT借方名字
TAMOUNT交易金额
TTYPE交易类型
W1打工仔,用于显示
0005.00 D********************************************************         
0006.00 D* DEFIND VARIATE                                                 
0007.00 D********************************************************         
0008.00 D*                                                                
0009.00 DCREDIT           S             10A                               
0010.00 DDEBIT            S             10A                               
0011.00 DW1               S             52A                               
0012.00 DTAMOUNT          S             11A                               
0013.00 DTTYPE            S              1A                               
0014.00 D*                                                                

变量初始化:

0080.00 C********************************************************    
0081.00 C*    SR999 FUNCTION INIT                                    
0082.00 C********************************************************    
0083.00 C     SR999         BEGSR                                    
0084.00 C*                                                           
0085.00 C     *ENTRY        PLIST                                    
0086.00 C                   PARM                    CREDIT           
0087.00 C                   PARM                    DEBIT            
0088.00 C                   PARM                    TAMOUNT          
0089.00 C                   PARM                    TTYPE            
0090.00 C*                                               
0091.00 C     SR999E        ENDSR                         

主函数:

0015.00 C********************************************************    
0016.00 C*  MAIN FUNCTION                                            
0017.00 C********************************************************    
0018.00 C*                                                           
0019.00 C                   EXSR      SR999                          
0020.00 C                   EXSR      SR100                          
0021.00 C                   MOVE      *ON           *INLR            
0022.00 C                   RETURN                                   
0023.00 C*                                                           

SR100函数:判断交易金额是否为正

交易金额为负数进入SR404
交易金额为正数,交易类型为 ‘1’进入SR200
交易金额为正数,交易类型为 ‘2’进入SR300
交易金额为正数,交易类型为其他进入SR900
0024.00 C********************************************************          
0025.00 C*    SR100 FUNCTION                                               
0026.00 C********************************************************          
0027.00 C     SR100         BEGSR                                          
0028.00 C*                                                                 
0029.00 C                   IF        (%SUBST(TAMOUNT:1:1) = '-')          
0030.00 C                   EXSR      SR404                                
0031.00 C*                                                                 
0032.00 C                   ELSE                                           
0033.00 C                   SELECT                                         
0034.00 C                   WHEN      TTYPE = '1'                          
0035.00 C                   EXSR      SR200                                
0036.00 C                   WHEN      TTYPE = '2'                          
0037.00 C                   EXSR      SR300                                
0038.00 C                   OTHER                                          
0039.00 C                   EXSR      SR900                                
0040.00 C                   ENDSL                                          
0041.00 C                   ENDIF                                
0042.00 C*                                                       
0043.00 C     SR100E        ENDSR                                

SR200函数:

交易类型为 '1'显示“xxx debit xxx n 元!” 在屏幕中。
0044.00 C********************************************************                         
0045.00 C*    SR200 FUNCTION TTYPE = '1'                                                  
0046.00 C********************************************************                         
0047.00 C     SR200         BEGSR                                                         
0048.00 C*                                                                                
0049.00 C                   EVAL      W1 = CREDIT+'DEBIT'+DEBIT+TAMOUNT+'yuan!'           
0050.00 C     W1            DSPLY                                                         
0051.00 C*                                                                                
0052.00 C     SR200E        ENDSR                                                         

SR300函数:

交易类型为 '2'显示“xxx credit xxx n 元!” 在屏幕中。
0053.00 C********************************************************                          
0054.00 C*    SR300 FUNCTION TTYPE = '2'                                                   
0055.00 C********************************************************                          
0056.00 C     SR300         BEGSR                                                          
0057.00 C*                                                                                 
0058.00 C                   EVAL      W1 = CREDIT+'CREDIT'+DEBIT+TAMOUNT+'yuan!'           
0059.00 C     W1            DSPLY                                                          
0060.00 C*                                                                                 
0061.00 C     SR300E        ENDSR                                                          

SR900函数:

交易类型为其他显示“Wrong transaction type!”在屏幕中。
0071.00 C********************************************************       
0072.00 C*    SR900 FUNCTION TTYPE IS OTHER                             
0073.00 C********************************************************       
0074.00 C     SR900         BEGSR                                       
0075.00 C*                                                              
0076.00 C                   EVAL      W1 = 'Wrong transaction type!'    
0077.00 C     W1            DSPLY                                       
0078.00 C*                                                              
0079.00 C     SR900E        ENDSR                                       

SR404函数:

交易金额为负数显示“'Invalid transaction amount!”在屏幕中。
0062.00 C********************************************************                   
0063.00 C*    SR404 FUNCTION TAMOUNT < 0                                            
0064.00 C********************************************************                   
0065.00 C     SR404         BEGSR                                                   
0066.00 C*                                                                          
0067.00 C                   EVAL      W1 = 'Invali transaction amount!'             
0068.00 C     W1            DSPLY                                                   
0069.00 C*                                                                          
0070.00 C     SR404E        ENDSR                                                   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值