首页 > 解决方案 > 你如何使用python维护一个简单的贷记借记单

问题描述

我在python(oops)中使用以下代码来维护贷记借记声明。Classdef_Cash.py 文件具有程序的主要结构,Cash_001.py 文件具有贷记和借记代码。一切正常,除了贷记和借方价值没有定期更新。有人可以帮我吗?请参考这两个文件并运行 Cash_001.py 文件。"""

Classdef_Cash_001.py是第一个文件,Cash_001.py是第二个文件

class Cash:

       def __init__(self, DATE, VOUCHER, SPECIFICATION, INITIAL_AMOUNT, CREDIT,DEBIT, REMARKS, BALANCE):
            self.DATE = DATE
            self.VOUCHER = VOUCHER
            self.SPECIFICATION = SPECIFICATION
            self.CREDIT = CREDIT
            self.DEBIT = DEBIT
            self.REMARKS = REMARKS
            self.BALANCE = INITIAL_AMOUNT

       def Spending(self,DATE,VOUCHER,SPECIFICATION,DEBIT,REMARKS):
            self.DATE = DATE
            self.VOUCHER = VOUCHER
            self.SPECIFICATION = SPECIFICATION
            self.REMARKS = REMARKS
            self.BALANCE -= DEBIT

       def CashInflow(self,DATE,VOUCHER,SPECIFICATION,CREDIT,REMARKS):
            self.DATE = DATE
            self.VOUCHER = VOUCHER
            self.SPECIFICATION = SPECIFICATION
            self.REMARKS = REMARKS
            self.BALANCE += CREDIT

       def dump(self):
            s = 'DATE: %s, VOUCHER: %s, SPECIFICATION: %s , CREDIT: %s ,DEBIT: %s ,REMARKS :%s ,BALANCE :%s ' % \
                (self.DATE,self.VOUCHER, self.SPECIFICATION, self.CREDIT, self.DEBIT, self.REMARKS,self.BALANCE)
            print s

Cash_001.py是第二个文件

from Classdef_Cash_001 import Cash

p1=Cash('01/10/2018','000','CARRY FORWARD',2000,0,0,'REMAINDER','0')
p1.dump()
p1.Spending('01/10/2018','001','OIL',200,'JOHN')
p1.dump()
p1.CashInflow('02/10/2018','002','SALES',10000,'REF179800')
p1.dump()
p1.Spending('03/10/2018','003','GAS',200,'GEORGE')
p1.dump()
p1.CashInflow('03/10/2018','004','SALES',50000,'REF179801')
p1.dump()

标签: pythonoop

解决方案


请参考下面的代码。这正是我在寻找一个统一的贷方借方余额表。每当有资金流入时,借方就被强制为零,每当有支出时,贷方就被强制为零。贷方和借方仅在从上个月结转的输出的第一行中保持为零。这类似于每当有输入时禁用输出的概念,并且每当有输出时禁用输入。请运行 Cash_001.py 文件。

   #Classdef_Cash_001.py 
   class Cash:

   def __init__(self, DATE, VOUCHER, SPECIFICATION, INITIAL_AMOUNT, CREDIT,DEBIT,
   REMARKS, BALANCE):
        self.DATE = DATE
        self.VOUCHER = VOUCHER
        self.SPECIFICATION = SPECIFICATION
        self.CREDIT = CREDIT
        self.DEBIT = DEBIT
        self.REMARKS = REMARKS
        self.BALANCE = INITIAL_AMOUNT

   def Spending(self,DATE,VOUCHER,SPECIFICATION,DEBIT,CREDIT,REMARKS):
        self.DATE = DATE
        self.VOUCHER = VOUCHER
        self.SPECIFICATION = SPECIFICATION
        self.REMARKS = REMARKS
        self.DEBIT = DEBIT
        self.CREDIT = 0
        self.BALANCE -= DEBIT

   def CashInflow(self,DATE,VOUCHER,SPECIFICATION,CREDIT,DEBIT,REMARKS):
        self.DATE = DATE
        self.VOUCHER = VOUCHER
        self.SPECIFICATION = SPECIFICATION
        self.REMARKS = REMARKS
        self.CREDIT = CREDIT
        self.DEBIT = 0
        self.BALANCE += CREDIT

   def dump(self):
        s = 'DATE: %s, VOUCHER: %s, SPECIFICATION: %s , CREDIT: %s ,DEBIT: %s 
            ,REMARKS :%s ,BALANCE :%s ' % \
            (self.DATE,self.VOUCHER, self.SPECIFICATION, self.CREDIT, self.DEBIT,
            self.REMARKS, self.BALANCE)
        print s

  #Cash_001.py
  from Classdef_Cash_001 import Cash

  p1=Cash('01/10/2018','000','CARRY FORWARD',2000,0,0,'REMAINDER',0)
  p1.dump()
  p1.Spending('01/10/2018','001','OIL',200,0,'JOHN')
  p1.dump()
  p1.CashInflow('02/10/2018','002','SALES',1000,0,'REF179800')
  p1.dump()
  p1.Spending('03/10/2018','003','GAS',200,0,'GEORGE')
  p1.dump()
  p1.CashInflow('03/10/2018','004','SALES',5000,0,'REF179801')
  p1.dump()

推荐阅读