自顶而下,逐步求精——面向过程的程序设计方法

对于程序设计初学者来说,设计一个多重循环,多重作用的程序是一件很困难的事情。其实,一个对于程序员的一个重要技能就是——分解任务,将大的任务分解为小任务,然后每个小任务再分为更小的任务,然后将诸多小任务解决。掌握了“自顶而下,逐步求精”的方法后,不仅程序能编的很好,其他事情也能做得很好。
自顶而下,逐步求精

设计洗衣机程序的“自顶而下,逐步求精”的方法

洗衣机可大概分为三大选择功能:标准,快洗,脱水
另外我们还可以选择:水位

标准程序包含了:浸泡,洗涤,漂洗,脱水小块程序。
快洗程序包含了:洗涤,漂洗,快洗小块程序。
脱水则包含了:脱水程序

因而,我们可以先写:浸泡,洗涤,漂洗,脱水的程序,供三大选择程序调用。
水位选择在浸泡,洗涤,漂洗中起作用,因而我们可以写一个水位设置程序,供浸
泡,洗涤,漂洗的小块程序调用。

大体程序框架已经定好,再来处理小块程序的细节

在水位设置框架中,可以设置智能水位,进水超时警报,进水指令以及关闭进水指令。在智能水位小块中,如果用户没输入水位,则根据衣物重量自动选择,如果用户选择了水位,如果选择水位远少于机器判断的正常水位,则执行根据衣物重量自动选择水位。进水超时警报,就是进水时间到达一个较长时间,未达到正常水位,则报警并停止工作。

下面伪代码实现:
mian()主要程序块:{

用户输入洗衣程序:(case 1 or case 2 or case 3)
用户输入水位:
switch( case input){
case 1(标准): {浸泡程序块;}

case 2(快洗):{洗涤程序块;漂洗程序块;}

case 3(脱水):{脱水程序块;}

break;
}
}
浸泡程序块(){水位程序块;其他浸泡程序主体;}

洗涤程序块(){水位程序块;其他洗涤程序主体;}

漂洗程序块(){水位程序块;其他漂洗程序主体;}

脱水程序块(){脱水程序块;}

水位程序块:(){
scan (input);
Machine judge(suitable_input);

if (input < suitable_input - suitable_constant)
{execute_input = suitable_input;}

else{execute_input = input;}

execute execute_input;
……..
……
}
篇幅关系就只写主要的程序框架。

相关文章:

  • 2021-04-11
猜你喜欢
  • 2021-04-14
  • 2021-10-09
  • 2021-09-13
相关资源
相似解决方案