《高质量程序设计指南C++/C语言》一书作者—上海贝尔的林锐博士在华东师范大学软件学院举办了“高质量软件开发之道”专题技术讲座,该讲座旨在将“高质量软件开发之道,以及内建高质量,而非修补质量”这一理念带给中国未来的软件精英们。9月24日和9月26日,还将在西安电子科技大学和北京信息工程学院举办此系列的讲座。

解决方案 »

  1.   

    林锐水平好像也很一般,不过炒作水平比较好而已,他的那个东东后面附了一份试题,我看了一下,第一和第二题的答案都有问题,我在很多BBS上指正了,不知道他本人有没有看到,其它的题目我估计也有问题,但我已经没有耐心看了,给我的印象是:质量低劣,所以那本书我也没有看。下面是我当时的评论原文,言辞比较激烈,请各位指正
    ===================================================================
    我粗略看了一下介绍和前面几页,再翻看了一下习题,令我吃惊的是最开始的两题的答案根本就不对,我的解析如下:一、第一题
    题目:请写出 BOOL  flag 与“零值”比较的 if 语句。
    标准答案:
        if ( flag ) 
        if ( !flag )
    如下写法均属不良风格,不得分。    if (flag == TRUE)       if (flag == 1 )         if (flag == FALSE)       if (flag == 0)     
    上面的答案是对的吗?否
    BOOL 和 0的比较,他说不能写 if(b == FALSE),这是不正确的,事实上if(!b)和if(b==FALSE)是完全等价的,因为FALSE 为0。
    这个问题的考察点就在于TRUE是1,但BOO真指非零,而不一定是TRUE(1),所以if(flag == TRUE)这样的表达式错误的。但若返回假,则一定是返回0(即FALSE),就这一点而已,if(flag == FALSE)显然是可写的,同理if(flag == 0)也是正确的。二、float类型和0的比较。
    作者给的答案是这样的:
    const float EPSINON = 0.00001;
    if((x >=-EPSINON) && (x<=EPSINON));这样的答案显然是错的,之所以if(x==0.0)是不正确的是因为因为存储误差可能导致这样的比较不正确,上面定义EPSINON所导致的误差就比if(x==0.0)这个表达的误差小吗?愚昧,照这种理论,那么0.000001应该和0.0是相等的,这个EPSINON随便定义一个就对吗,错!MSDN中定义了一个这样的值:
    FLT_EPSILON    1.192092896e-07F
    这个值是最小浮点精度,所以,正确的表达式应该是:
    if(fabs(x) < FLT_EPSILON)
    对double型,这个比较参照是DBL_EPSILON,具体值请查MSDN
        最前面的两道题目都有问题,再看下面的问题就显得多余了,估计问题也不少。听说有人将这种质量当做培训教材,也有当面试试题的,真是瞎了眼。有此举动的人也跟林锐一样,无知!上海贝尔的人就这水平,让人贻笑大方,居然听说这个家伙主管技术面试,好恐怖,在他手里考不及格的人有两类,一类是太烂,一类是太聪明:)
        愚昧的人们,不要再喝彩了,你喝彩的声音越大,说明你越无知。这种烂书只能将它请下书架,付之一炬,省得坑人。
      

  2.   

    第二题同意oldworm的说法
    第一题有些异议
        if (flag == TRUE)   
        if (flag == FALSE)  
        没错,可是 
        if (flag == 1 ) 
        if (flag == 0)   
      不敢苟同,因为不同平台宏定义不一样,
    TRUE不一定等于1,FALSE也不一定等于0,
    这么写不利于代码的移植.
      

  3.   

    我来说第二题.
      显然同理,宏FLT_EPSILON只在VC下有用.而且各系统的精度也不同.
    自定定义可以控制精度. 多数情况下, 我们也没有必要精确到小数点后7位(float),或着小数点后16位(double).
      一点个人看法,不当之出请指正.
      

  4.   


    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  5.   


    learn and attention and up