国王和电烤箱

原创 2004年09月16日 16:46:00

 国王和电烤箱

 
有一次,在离这儿不远的一个王国里,国王把他的两个顾问叫来,让他们看一个闪闪发光的
金属盒子。盒子顶上有两个开口,旁边有一个旋钮和一个手柄。

“你们知道这是什么吗?”国王问。

一个顾问——他是一名工程师——抢先回答说:“是电烤箱。”

国王接着问道:“要为它设计一台嵌入式计算机的话,你会怎么设计呢?”

工程师回答说:“使用4位的微处理器。我编一个简单的程序,读取火候调节旋钮的当前位
置,把位置信息量化,变成从雪白到漆黑的16个焦度级别之一。程序以焦度级别为索引,从
一张16行的小数据表中,读取预置的烧烤时间。然后,程序启动加热器,在计时器中设定烧
烤时间,计时结束后,就关闭加热器,弹出面包片。给我一周时间,我就可以拿出这个程序
的原型。”

第二个顾问是一个计算机科学家,他马上意识到工程师的想法是缺乏远见的。他说:“电烤
箱不只是用来烤面包片的,它还可以用来热鸡蛋饼。桌上摆的实际是一台早餐加工机。我们
的国民有丰富的生活经验,他们需要多功能的机器,比如说,一台能烤香肠、煎培根、炒鸡
蛋的早餐加工机。只能烤面包片的电烤箱不久就会过时,如果我们不为将来着想,就必须在
两、三年后重新设计电烤箱了。

“有鉴于此,我们可以这样定义我们的电烤箱。首先,创建一个名为早餐的类。然后,从这
个类派生出一组子类:面食类、肉类、禽蛋类等等。面食类进一步派生出面包类、松糕类、
煎饼类、蛋饼类;肉类派生出香肠类、肉串类、培根类;禽蛋类派生出炒鸡蛋类、水煮蛋类、
荷包蛋类、煎蛋类以及各式各样的蛋卷类。

“对于干酪火腿煎蛋卷类,需要特殊处理,它必须同时继承肉类、乳制品类和禽蛋类的特
性。因此,没有多重继承是没办法解决这个问题的。运行时,程序必须正确地创建对象实例,
然后向对象发送‘加工你自己’的消息。消息会引发何种操作要取决于对象的类型,这样,
同一条消息就可以激活从烤面包片到炒鸡蛋的各种不同操作了。

“综上所述,在分析阶段,我们将核心需求界定为加工不同种类的早餐食品。在设计阶段,
我们还要进一步明确由此衍生的附加需求。比如,我们必须使用一种拥有多重继承功能的面
向对象语言。另外,鸡蛋已经晾凉了,培根还没有烤好的情况是不能接受的,所以,多任务
并发处理的功能也是必需的。

“别忘了用户界面。手柄是不适于加工多种食品的,火候调节旋钮也容易让人摸不着头脑。
用户只会去买那些有友好的图形界面的产品。当早餐加工机插上电以后,用户会在屏幕上看
到一只发令枪。点击发令枪,一声枪响过后,屏幕上就会出现‘启动UNIX v.88.33’的字样
(UNIX v.88.33版将在早餐加工机上市前发布)。用户可以打开下拉菜单,在菜单里点击他
们想要加工的食品名称。

“在前面的设计阶段,我们详细定义了软件的功能特性,接下来的事情就是要为实现阶段选
择一种合适的硬件平台了。推荐的硬件配置是Pentium 4 2.6G CPU,2G内存,160G硬盘,21
寸液晶显示器。在软件方面,如果你选择了一种多任务、支持多重继承、有内置GUI开发包的
面向对象语言,那你编写程序时就轻松多了。——相比之下,那种先确定硬件环境,再把自
己禁锢在4位微处理器上的做法是多么的愚蠢啊!”

国王明智地砍掉了计算机科学家的脑袋。从那以后,国王和他们的国民们一直生活得很快乐

国王和电烤箱

  有一次,在离这儿不远的一个王国里,国王把他的两个顾问叫来,让他们看一个闪闪发光的金属盒子。盒子顶上有两个开口,旁边有一个旋钮和一个手柄。  “你们知道这是什么吗?”国王问。  一个顾问——他是一名...
  • titilima
  • titilima
  • 2004年07月29日 18:19
  • 1281

《国王与小鸟》MKV 网盘发布!

http://www.megaupload.com/?d=V8HZI4AV&setlang=cn我自认为这是我的字幕组的巅峰的作品。视频采用的是2001年1月到2003年7月经过化学和数码技术修复的亮...
  • xfsnow
  • xfsnow
  • 2009年08月15日 15:55
  • 1308

动态规划的01背包问题---关于国王开矿的故事

此为引用的一篇文章,很棒,地址如下: http://blog.renren.com/share/228709498/2675290555 ----第一节----初识动态规划-------- ...
  • a304672343
  • a304672343
  • 2013年11月27日 20:13
  • 2774

【NOIP 2012】 国王游戏

Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国...
  • u012274244
  • u012274244
  • 2013年09月28日 15:02
  • 6219

动态规划入门之国王的金矿

最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.ne...
  • hhhzua
  • hhhzua
  • 2016年03月19日 10:16
  • 2504

国王游戏[NOIP2012]解题报告

在做这道题之前已经预先知道这道题是贪心了,但是贪心的思路却一直没想到,所以看了题解,发现做法还是很神奇的。 Step 1 一个定理:        对于一个序列,通过交换其相邻的两个元素,一定可以变成...
  • TA201314
  • TA201314
  • 2014年11月05日 16:37
  • 1731

【NOIP2012】国王游戏

【codevs 1198】 1198 国王游戏 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题...
  • Loi_Shirley
  • Loi_Shirley
  • 2016年11月15日 17:17
  • 506

历届试题 国王的遗产

X国是个小国。国王K有6个儿子。在临终前,K国王立下遗嘱:国王的一批牛作为遗产要分给他的6个儿子。     其中,大儿子分1/4,二儿子1/5,三儿子1/6,....     直到小儿子分...
  • qq_36238595
  • qq_36238595
  • 2017年03月09日 12:18
  • 169

noip2009初赛-国王放置

2009C-4-2(国王放置)在n*m的棋盘上放置k个国王,要求k个国王互相不攻击,有多少种不同的放置方法。假设国王放置在第(x,y)格,国王的攻击的区域是:(x-1,y-1),(x-1,y),(x-...
  • sjtu081200
  • sjtu081200
  • 2015年08月23日 17:21
  • 964

14-蓝桥杯决赛-国王的遗产

X国是个小国。国王K有6个儿子。在临终前,K国王立下遗嘱:国王的一批牛作为遗产要分给他的6个儿子。     其中,大儿子分1/4,二儿子1/5,三儿子1/6,....     直到小儿子分1/9。...
  • u012814441
  • u012814441
  • 2014年11月02日 12:35
  • 1211
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 国王和电烤箱
举报原因:
原因补充:

(最多只允许输入30个字)