0

我有以下问题,我最困惑的是如何确定支票是否迟到一个月的逻辑。

问题是:

“为一个程序编写伪代码,该程序计算客户因开出空头支票而应支付的服务费。该程序接受客户的姓名、开出支票的日期(年、月和日)、当前日期(年、月和日)天),以及以美元和美分为单位的支票金额。程序继续执行,直到遇到 eof 值。服务费为 20 美元加上支票金额的 2%,加上自支票以来经过的每个月的 5 美元“新的一个月一开始,一张支票就迟到了一个月——所以,9 月 30 日开出的空头支票,在 10 月 1 日已逾期一个月。”

到目前为止,我现在写的是:

Start
  string Name
  num AmountOwed
  num DateCheckWritten
  num CurrentDate
  num CheckAmount
  get Name, DateCheckWritten, CurrentDate, CheckAmount
  while eof
4

4 回答 4

1

由于您不必处理天数,因此该算法非常简单:

MonthsLate = (CurrentDate.Year - DateCheckWritten.Year) * 12 
                  + (CurrentDate.Month - DateCheckWritten.Month)

祝你好运!

于 2010-06-23T22:39:11.583 回答
0

我不确定你的问题出在哪里,但我认为你有两个问题需要处理:

  1. 迟到的定义是什么?
  2. 这张支票晚了几个月?

所以在我的伪代码中,我将有一个步骤来确定支票的延迟时间,然后再有一个步骤来计算费用。在第一步中,您可以减去天数并除以。但是方向上说,新的一个月一到,就晚了一个月。所以你真正需要做的就是减去几个月。

不知道你还问什么,但看起来你是在寻求指导,而不是代码。希望这可以帮助。

于 2010-06-23T22:31:02.433 回答
0

我将假设这是家庭作业,因此我会尝试为您指出正确的方向。

如果您为每个月分配数字(1 月 = 1、2 月 = 2 等),那么两个日期之间的月数很容易确定 - 9 月(= 9)和 5 月(= 5)之间有多少个月?

另一件要考虑的事情是年份 - 对于支票迟到的每一年,您还必须再增加十二个月。这与几个月的工作方式相同。

需要任何额外的细节,请随时告诉我。

于 2010-06-23T22:33:13.467 回答
0

简化,抓住要点,然后越来越多地分解,写下你会如何告诉你奶奶它有效。

你可能会从类似的东西开始

Start
While there are more bad checks
  get the service charge 
  add the service charge to the account
record the updates

get the service charge
  charge starts at $20
  add to the charge $5 multiplied by number of months
于 2010-06-23T22:35:48.000 回答