首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 教育频道
学院论坛 | 推荐专题 | 专家答疑 | 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程序代码所涉及问题的答案。

第3章 字符的奇迹
本章中的程序基本上都能够正常工作,完成预定的目的,但总有一、两个字符会出现问题。如果有字符会出现问题,它们将导致令人惊奇的结果并使整个程序失败。

3.1 程序17:又一个Hello World程序
我们又编写了一个Hello World程序,并故意在其中安排了一个小错误。该错误在哪里呢?

1 #include <iostream>

2

3 int main()

4 {

5 std::cout << "Hello World!/n";

6 return (0);

7 }

(请参见“提示172”和“答案69”)

花絮

真正的程序员是不会使用COBOL来编写程序的。COBOL只适用于那些水平低下的编程人员。

真正程序员的程序在首次使用时,通常都无法正确地工作。但是,如果您在自己的计算机中安装它们,它们会在少于30小时的调试会话中逐步调整到正确的运行状态。

真正的程序员从不编写文档。文档都是为那些不能读懂程序清单或对象组的笨人准备的。

真正的程序员不会使用Pascal、BLISS、Ada或者其他任何一种偏激的计算机学科语言。强大的输入功能只是为那些记忆力较差的人准备的。

3.2 程序18:典型错误
如果您是一个程序员,肯定犯过下文程序中包含的错误。如果您正在学习编程,也将会犯这样的错误。而且,如果您不找出问题之所在,它会令您焦头烂额。

下面这个程序究竟会完成什么事情呢?

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

2 * Test the logic for a simple accounting ?*

3 * program. ?*

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

5 #include <iostream>

6

7 int main()

8 {

9 // Amount owed (if any) by the user

10 int amount;

11

12 std::cout << "Enter current balance: ";

13 std::cin >> amount;

14

15 if (amount = 0)

16 std::cout << "You owe nothing\n";

17 else

18 std::cout << "You owe " << amount << "\n";

19

20 return (0);

21 }

(请参见“提示155”和“答案47”)

花絮

我曾为一家重要的软件厂商工作,开发我们的字处理软件的国际版本。该版本的启动页面包含版本发布日期,日期格式为mm/dd/yy,例如09/20/83。但是,欧洲使用dd/mm/yy格式作为其标准。在无法确定时,我问老板该使用哪种格式。老板记录下这个问题,并花费了大约一个月的时间与他的经理们讨论此事。直到我发布这个软件之后的一周,他才将决定告诉我。而这期间,我已经解决了这个问题,其方法是将软件的发布日期放在11月11号,显示的发布日期就是11/11/83。

3.3 程序19:检查质数
下面这个简单程序设计用于检查2至9之间的质数(也叫素数)。该程序所使用的算法很简单,且使用了暴力比较(brute force)方法,但看上去一切应当可以正常运行。可是,实际会发生什么情况呢?

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

2 * prime -- A very dump program to check to see ?? ? *

3 * if the numbers 2-9 are prime. ?? *

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

5 #include <iostream>

6

7 int main()

8 {

9 int i; // Number we are checking

10

11 for (i = 2; i < 10; ++i) {

12 switch(i) {

13 case 2:

14 case 3:

15 case 5:

16 case 7:

17 std::cout << i << " is prime\n";

18 break;

19 defualt:

20 std::cout << i <<

21 " is not prime\n";

22 break;

23 }

24 }

25 return (0);

26 }

(请参见“提示354”和“答案67”)

花絮

华盛顿州的Social Welfare计算机常常用两位数来保存个人年龄。然而,一位女士的年龄对于这个系统来说实在是太大了。当她100岁时,这个计算机将她的年龄记录为00;101岁时,记录为01。这并没有引起任何问题,直到她的年龄达到107岁时,联邦政府派遣一名调查旷课或逃学的督学人员去她家,看看她为什么还没有去接受初级教育。

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

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

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

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

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