基本的自下而上算法作业

时间:2012-01-12 00:46:05

标签: java

所以这是我教授给我的问题:

开发一个自下而上的算法来教别人如何向教授发送讨人喜欢的电子邮件。

这是基于烹饪的例子,他给我们的基础是:

  1. Chef.Mix(鸡蛋,面粉,糖,牛奶,搅拌碗)
  2. Chef.Preheat(烘箱)
  3. Chef.insert(面糊,烤箱)
  4. Oven.bake(面糊)
  5. Chef.remove(面糊,烤箱)
  6. 这就是我得到的,任何问题,或者我添加了“路径”,我想你可以在每一步结束时调用它。

    1. Sender.Press(PcPowerButton)
    2. Sender.Open(浏览器,PC)
    3. Sender.LogOn(EmailClient,浏览器,PC)
    4. Sender.Click(ComposeButton,EmailClient,浏览器,PC)
    5. Sender.Click(AddressBox,EmailClient,浏览器,PC)
    6. Sender.Type(RecieverAddress,AddressBox,EmailClient,浏览器,PC)
    7. Sender.Click(SubjectBox,EmailClient,浏览器,PC)
    8. Sender.Type(FlatteringText,SubjectBox,EmailClient,浏览器,PC)
    9. Sender.Click(SendButton,EmailClient,浏览器,PC)
    10. 非常感谢你的帮助:)

      到目前为止,我已将此更改为

      1. Sender.Press(PcPowerButton)
      2. Sender.Open(浏览器,PC)
      3. Sender.LogOn(EmailClient,因特网)
      4. Sender.Click(ComposeButton,EmailClient,因特网)
      5. Sender.Click(AddressBox,NewMessage作为)
      6. Sender.Type(RecieverAddress,AddressBox,NewMessage作为)
      7. Sender.Click(SubjectBox,NewMessage作为)
      8. Sender.Type(FlatteringText,SubjectBox,NewMessage作为)
      9. Sender.Click(SendButton,NewMessage作为)

1 个答案:

答案 0 :(得分:0)

一些要点。

  1. 请注意,该示例不包含“Oven.TurnOn()”和“Oven.SetTemprature()”等步骤。相反,它只是说“Oven.Preheat()”和后来的“Oven.Bake(batter)”。所以,这是一个抽象问题。编程原语可以是低级或高级的。高级原语封装了更大的行为/功能。你可能会发明并使用更高级别的原语。
  2. 您似乎正在使用面向对象的范例。基元/方法应该属于适当的对象。
  3. 所以,可以想象,你可以拥有以下原语。

    1. PC.PowerOn()
    2. OS.Login(SenderUserID,SenderPassword)
    3. OS.Start(浏览器)
    4. Browser.Navigate(EmailWebsiteURL)
    5. EmailWebsite.Login(SenderUserID,SenderPassword)
    6. EmailWebsite.Compose(ProfessorEmail,FlatteringSubject,FlatteringBody)
    7. EmailWebsite.Send()
    8. 如果你想让它变得有趣,你也可以尝试编写一个发现教授讨价还价的过程。

      1. FlatteringAttributes = Professor.SelectAttributes(Flattering)
      2. EmailBody = Sender.Write(Theme,FlatteringAttributes)