首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 教育频道
学院论坛 | 推荐专题 | 专家答疑 | Flash剧场 | Photoshop | 名词解释 | 梦幻桌面 | PS高手进阶 | QQ区 | 壁纸 | 黑客教材
Flash教程| 动画制作 | AutoCAD  | 3DMax专区 | PS视频教程| 网页制作 | CorelDRAW| Firework | 滤镜与实例 | 全部视频教程
学院热点专题
|21互联专区| 照片处理 | QQ 动画 | 系统优化 | 会声会影 | 制作游戏 | Win2003 | 大话成语 | MSN专题 | 头条
| 天音听听 | QQ 技巧  | ASP教程 | 菜鸟入门 | 实用工具 | ADSL宽带 | 硬盘世界| BT  下载 | Vista  | 问吧
 欢迎各出版社以及作者与我们联系发布电子版书籍.电子邮件:
book@mail.enet.com.cn
 
书名:捉 虫 历 险 记
作者:(美) Steve Oualline
来源:清华大学出版社
ISBN:ISBN 7-302-07679-0/TP·5624
页数:805
开本:185×260
出版时间:2003
定价:36.00
  本书采用幽默通俗的语言帮助读者从其他程序员的失误中吸取教训,从而减少自己程序中的错误。全书共分为三大部分:第Ⅰ部分列举了114个不同类型、含有bug的程序代码,;第Ⅱ部分给出了第Ⅰ部分114个bug程序代码所涉及的问题的提示;第Ⅲ部分给出114个bug程序代码所涉及问题的答案。

花絮

一个客户呼叫服务中心的对话如下:

客户:我的计算机发出古怪的气味。

服务人员:请您检查计算机的后面,好吗?

从电话中,服务人员可以听到,客户走到它的计算机旁,然后就发出剧烈的尖叫声。

客户(愤怒地):计算机“咬”我!

服务人员不得不亲自去看个究竟,于是他安排了一次出访。当抵达客户家后,他发现计算机机箱和调制解调器之间的扁平电缆已经熔化了。所有的绝缘层都没有了,除了裸露的电缆外没有任何保护层。

服务人员拿出自己可靠的伏特欧姆表测试电缆。天啊!电缆的电压居然有110伏(5伏是正常的)。几分钟后,他跟踪问题到墙壁的电源插座上。插入电源插座的电工颠倒了一组电源插座的地线和电源线。这样不适当的配线致使调制解调器地线的电压达到110伏。当调制解调器与计算机进行连接时,就有大量的电流通过它们之间的细窄的线路,从而导致电缆的绝缘层熔化。而当客户触到这个电缆时,110伏的电流就会引起计算机“咬”他。

3.8 程序24:过于简单的除法
下面的程序对两个整数进行相除。尽管它很简单,但还是失败了。

1 /************************************************

2 * Simple divide program. ?? *

3 ************************************************/

4 #include <iostream>

5

6 int main()

7 {

8 int n1, n2; // Two integers

9

10 std::cout << "Enter two integers: ";

11 std::cin >> n1 >> n2;

12

13 if (n2 =! 0)

14 std::cout << "Result is: " <<

15 (n1/n2) << '\n';

16 else

17 std::cout << "Can not divide by zero\n";

18

19 return (0);

20 }

(请参见“提示70”和“答案25”)

花絮

真正的用户总是担心他们的计算机会被中断—— 却从来都不介意给那些导致计算机问题的编程人员一点颜色看看。

真正的用户会发现一组奇异的输入值经常关闭自己的计算机。

真正的用户痛恨真正的程序员

真正的程序员并不讨厌真正的用户,他们只是将真正的用户看作是完全不相干的因素。

真正的用户知道所使用程序的开发人员家的电话号码。

真正的用户从不知道自己想干什么,但是他们始终知道您的程序何时何处没有实现他们的想法。

真正的用户从不使用帮助键。

3.9 程序25:最大值的惊奇
下文程序中的循环设计用于打印一个问候语10次。但是,该程序却得到另外一个结果,究竟发生了什么事情呢?

注:

这个程序不能在GNU编译器和没有将预处理器指令作为标准调用来实现的其他系统上编译(它们执行更多的工作,但遗憾地是却破坏了这个程序的运行)

1 /************************************************

2 * Print a bunch of greetings. ?? *

3 ************************************************/

4 #include <iostream>

5

6 #define MAX =10

7

8 int main()

9 {

10 int counter; // Current greeting

11

12 for (counter =MAX; counter > 0; --counter)

13 std::cout <<"Hi there\n";

14

15 return (0);

16 }

(请参见“提示194”和“答案112”)

花絮

一所大学的计算机中心位于一幢较为陈旧的建筑内,工作人员们有一个非常恼火的问题。某天晚上,当操作员离开房间时,计算机重新启动了。

计算机服务技术支持人员被叫来后,很快就发现,系统只在那个操作员走进盥洗室时才重新启动。当他离开机房去喝水时,计算机并没有重新启动。

多个技术支持人员被叫来查找问题,并在出现问题计算机上设置了一大堆诊断设备,以查找问题。

最后,他们发现了引起问题的原因。那幢建筑的地板与水管相连。而那个操作员重达300磅,当他站在盥洗室中时,使地板向下弯曲几英寸,刚好致使水管分离出来,中断了与地板的连接,从而引起重新启动计算机的小故障。

3.10 程序26:问题区域
下面这个程序的目的是确保长方形的长和宽都不会太小。该程序在长度方面可正常运行,但是在处理宽度时却出现了问题。

1 /************************************************

2 * Test the logic to limit the width and height ? *

3 * of a rectangle. ?*

4 ************************************************/

5 #include <iostream>

6

7 int main()

8 {

9 // The smallest legal value

10 // of width and height

11 const int MIN = 10;

12

13 int width = 5; // Current width

14 int height = 50; // Current height

15

16 if (width < MIN) {

17 std::cout << "Width is too small\n";

18 width = MIN;

19

20 if (height < MIN)

21 std::cout << "Height is too small\n";

22 height = MIN;

23 }

24

25 std::cout << "area(" << width << ", " <<

26 height << ")=" <<

27 (width * height) << '\n';

28 return (0);

29 }

(请参见“提示290”和“答案13”)

 


本书目录
常见C++ Bug大围剿
程序2:老师的问题
清晨的惊奇
典型的初始化问题
错误的平方
蹩脚的除法运算
问题程序
Hello World程序
计算字符个数
过于简单的除法
关于零的错误
关于位的小故障
未考虑分制
程序的故障点
幼儿园算术修订版
关于位的另一个故障
Microsoft的缺陷
容易中断的链接
最大值混乱
无法读取文件
慢吞吞的字典
姓名游戏
误算
不能同步
求和问题
不是指针类型
平方错误
总计错误
快速退出
数组消失的情形
超长队列
另类异常
文件输出错误
堆栈错误
文件名游戏
速度杀手
发送错误消息
控制调试器
幻影文件
再现Hello
每周龙虎榜
★★★★★
  本书从软硬件方面着手,介绍网络基础和原理。
★★★★
  本书用诙谐幽默的语言介绍了搜索引擎的使用。
★★★
  本书通过实例讲解,让您在复杂的职场中轻松应对。

热门关键字:手机 | 笔记本 | MP3 | 移动存储 | 数码相机 | 数码摄像机 | 显示器 | 学院 | 软件下载 | 游戏 | IT女性 | 方案库

关于eNet | 广告服务 | 我们的产品 | 使用版权 | 投稿指南 | 诚邀加盟 | 联系我们

网站合作、内容监督、商务咨询:010-65245588
对本站有任何建议、意见或投诉,请点这里在线提交
Copyright © 1998--2007 硅谷动力公司版权所有

未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
【声明】本网站部分内容属论坛网友发布,本网站仅提供网友交流平台,但有权在本网站
范围内引用、发布、转载来自论坛网友发布的内容。网友发布内容纯属个人行为,与本网
站立场无关。本网站对于论坛网友发布的内容所引发的版权、署名权的异议及纠纷,不承
担任何责任。其他媒体转载须事先与原作者和本网站联系。
京ICP证000044