随笔-64  评论-13  文章-2  trackbacks-0
 

当读者有一定c/c++基础
推荐的阅读顺序:
level 1
从<<essential c++>>开始,短小精悍,可以对c++能进一步了解其特性
以<<c++ primer>>作字典和课外读物,因为太厚不可能一口气看完

level 2
然后从<<effective c++>>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻
接着是<<exceptional c++>>,个人认为Herb Sutter主席大人的语言表达能力不及Scott Meyers总是在教育第一线的好
顺下来就是<<more effective c++>>和<<more exceptional c++>>,请熟读并牢记各条款
当你读到这里,应该会有一股升级的冲动了

level 3
<<insied the c++ object model>>看过后如一缕清风扫去一直以来你对语言的疑惑,你终于能明白compiler到底都背着你做了些什么了,这本书要细细回味,比较难啃,最好反复看几遍,加深印象
看完上一本之后,这本<<The design and evolution of c++>>会重演一次当年C++他爹在设计整个语言过程中的历程

level 4
<<the c++ standard library>>是stl的字典,要什么都可以查得到
学c++不能不学stl,那么首先是<<effective stl>>,它和圣经一样是你日常行为的规范
<<generic programming and the stl>>让你从oo向gp转变
光用不行,我们还有必要了解stl的工作原理,那么<<stl源码剖析>>会解决你所有的困惑

level 5
对于c++无非是oo和gp,想进一步提升oo,<<exeptional c++ style>>是一本主席这么多年的经验之谈,是很长esp的
一位stl高手是不能不去了解template的,<<c++ template>>是一本百科全书,足够你看完后对于gp游刃有余
<<modern c++ design>>是太过聪明的人写给明眼人看的

好书有很多,不能一一列举
以上我的读书经历,供各位参考。接下来的无非就是打怪练级,多听多写多看;boost、stl、loki这些都是利器,斩妖除魔,奉劝各位别再土法练钢了。

at last,无他,唯手熟尔。


posted @ 2010-08-26 15:36 桂湖山 阅读(197) | 评论 (0)编辑 收藏
1 用dos命令:copy /b c:\temp\my.prn prn,
对USB接口的打印机,则不能用此法了。
2 先将*.PRN转成*.PDF文件(* .prn〔可被Acrobat Distiller 自动识别〕,生成的 .ps 或者 .prn 文件在SSReader\History 目录下——>用Acrobat Distiller 打开 .ps 或者 .prn文件,即可转为pdf文件。),然后再将*.PDF转成WORD文件就可以编辑了;
3 另存网页后,再用打印机打印;
另TIFF文件详解
http://www.cnprint.org/bbs/thread/75/7375/
posted @ 2010-06-18 14:16 桂湖山 阅读(408) | 评论 (0)编辑 收藏
按例子:
在JSP中放置java代码, 如<% %>,完成以下工作
  获取流程
  创建开始节点的任务,并设置任务的参数值,再结束该开始节点的任务,以完成流程的启动。

在其他JSP中依法处理,以便完成其他节点的任务。具体为:
  根据jsp的参数传来的taskid参数值,再由taskId获取到该task的变量值及其有关信息,
  展现一个处理页面,供处理本节点任务的进行修改,提交。
  再提交后,保存task的相关数据,并结束该任务,以便流程继续进行。

 
在流程的定义中,为每个任务的描述赋值为的唯一的标识符和处理页面,以便在task-list中获取该值
并链接到指定的处理页面。其描述可以为:description:deal_page,由task_list页面解析即可。并从
task获取所在流程对应节点node的描述信息,可以进行显示。

task中assigment的express不是jpdl,可用Actor方式指定,这里可用jdpl.
task中的Details的due date不知是什么,应该是一个用于定时的类。注意要实现指定的接口,否则会出项
“参数类型不匹配”的错误。

在流程的变量中赋值,有Decision节点来控制流程的条件转移。


posted @ 2010-06-10 16:25 桂湖山 阅读(227) | 评论 (0)编辑 收藏


The parameter right was declared const. That means the object is const inside the operator function. But, const objects can only call const member functions because const objects must have a guarantee that they won't be changed. Since the operator<() function wasn't defined as const.

a const object can't call the function. The reason is that every class method has an invisible parameter: the this pointer. The this pointer can implicity or explicity be used inside the function to change the object, e.g.:

setPrivateVar(10);

or

this->setPrivateVar(10);

When you declare a member function const, the compiler will ensure that no changes can be made to the calling object.
posted @ 2010-05-22 13:53 桂湖山 阅读(375) | 评论 (0)编辑 收藏

转自:http://hi.baidu.com/bleach007/blog/item/4a9013d141e362309a502729.html

1、缺少libc.lib
解决这个问题的方法是去掉链接到libc.lib,具体地点:项目-〉属性-〉配置属性-〉链接器-〉忽略特定库。

2、unresolved external symbol __iob
这个__iob找不到的问题费 了我大部分的时间。跟踪到stdio.h文件,发现那里有个关于iob的宏,终于搞定。加入一句话到.cpp文件中:extern "C" { FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; }

3、NULL iterator
STL已经不能有NULL迭代器这么一说了,想想也对,在NULL迭代器上进行++或--之类的是不成立的。

4、结构体默认函数
在VC6中,结构体的默认运算符==或者<之类的如果不实现也可以作为STL元素放入list等容器中。但VC8不行了,因为它已经不再为结构体生 成缺省的操作符函数。

posted @ 2010-05-20 15:41 桂湖山 阅读(421) | 评论 (0)编辑 收藏

选择特定的input: $("input[type='checkbox']").click(function(){...});
这里特选择checkbox输入框,并定制其click方法。

对选定的内容可以增加:如
   $("div").css("border","2px solid green").add("p").css("background","yellow");
 就向设置了css的div的选择子增加了p选择子,再对他们的并集设置background.

posted @ 2010-05-11 09:55 桂湖山 阅读(190) | 评论 (0)编辑 收藏
在查。
posted @ 2010-05-11 08:25 桂湖山 阅读(171) | 评论 (0)编辑 收藏

转自http://w.mie168.com/42/31A5B84E94A216B40E305D0711EE4E19.doc

销售技巧培训

我挑其中跟软件销售有关的产品介绍技巧讲一讲:产品介绍最重要的就是使客户看完介绍后产生一种vision(憧憬,使用该功能时的情景).如果产生的vision曾经在客户脑海里出现过或是使他觉得很爽,那么恭喜你,等订单吧.不要怀疑,vision的威力相当大,他能使客户不知不觉掉入你的圈套里:).那么如何使你的介绍产生vision.这里有个公式:

特点-->功能--->带来的利益 --->例子(比如...)--->产生vision

举一个例子:便携的介绍

1.3公斤---轻巧---便于携带---比如你在沙漠里时可以多带两瓶水,可以多活两天:).这时产生vision刺激客户购买欲.

下面介绍一种介绍软件的模式:

第一步.可以用发问的方式使客户产生vision.:你是不是还是.....,你是不是还在为....所困恼等等.

第二步.使用上面的公式介绍软件的key functions.注意突出与同类软件的差异性使客户产生vision,这非常重要.

第三步.详细功能介绍

再强调一下过程:  介绍-->vision-->下载使用-->buy


posted @ 2009-12-10 09:05 桂湖山 阅读(447) | 评论 (1)编辑 收藏
bcb 中用ado + mysql 中使用select  sum(*) 时出错,未知原因。
 

posted @ 2009-11-21 23:13 桂湖山 阅读(203) | 评论 (0)编辑 收藏
oracle 行转列一例

在统计报表中经常需要进行行列信息的转换,如:
 对三张表:t0(dw),t1(dw,jb,v),t2(dw,jb,v)【t0,t1,t2可以是中间查询表】
   t0为所有要统计的单位的表格;
   t1为所有要统计的某个口径统计结果;
   t2为所有要统计的另一个口径统计结果;
   t1,t2中的dw相同时,其jb值有不同的值;v为需要统计的数字字段。
 最终要得到一张统计表
  (dw, t1jb1,t1jb2,...,t2jb1,t2jb2);

  这里提醒注意的是:
   1 应该首先对结果表的行记录给出一个明确的定义,即明确需求;
   2 按行定义确定结果表中行的KEY值,应根据结果集的内容,增加KEY字段;
   3 生成结果的语句可以参考以下例子。
   这里重新定义行的KEY为(dw+yjjb),所以最终的关联条件为
 where trim(allswjg.zrswjg_dm)=trim(t1.zrswjg_dm(+))
      and trim(allswjg.zrswjg_dm)=trim(t2.zrswjg_dm(+))
      and trim(allswjg.yjjb)=trim(t1.yjjb(+))
      and trim(allswjg.yjjb)=trim(t2.yjjb(+))
 即由
allswjg的zrswjg_dm和yjjb字段作为连接的初始条件,进行向右连接

-----------------------------例子-------------------------------
 select zrswjg_dm,
      sum(t1_cnt_jb1) as t1_cnt_jb1
     ,sum(t1_cnt_jb2) as t1_cnt_jb2
     ,sum(t1_cnt_jb3) as t1_cnt_jb3
     ,sum(t2_cnt_jb1) as t2_cnt_jb1
     ,sum(t2_cnt_jb2) as t2_cnt_jb2
     ,sum(t2_cnt_jb3) as t2_cnt_jb3 
----原来的结果表字段
    from (
    select substr(allswjg.zrswjg_dm,1,ljc) zrswjg_dm,
           case when (t1.yjjb=1) then t1.cnt else 0  end  as t1_cnt_jb1,
           case when (t1.yjjb=2) then t1.cnt else 0  end  as t1_cnt_jb2,
           case when (t1.yjjb=3) then t1.cnt else 0  end  as t1_cnt_jb3,
           case when (t2.yjjb=1) then t2.cnt else 0  end  as t2_cnt_jb1,
           case when (t2.yjjb=2) then t2.cnt else 0  end  as t2_cnt_jb2,
           case when (t2.yjjb=3) then t2.cnt else 0  end  as t2_cnt_jb3
----中间的结果表字段,这里加入了yjjb作为key的一部分,并通过case语句将t0,t1,t2三表按t0的key定义实现了行转列查询
    from
    (select distinct substr(swjg_dm,1,ljc) zrswjg_dm
               ,jc.yjjb from dm_swjg@glcx,t_jc_dm_yjjc jc---机构代码          
                where decode(ljc,9,'J',trim(swjg_bz))='J' --trim(swjg_bz)='J'
                      and swjg_dm like dw2 ||'%'
                      and substr(swjg_dm,1,ljc)!=dw2||'00' --排除本级数据
    )allswjg,           
    (
      select substr(zrswjg_dm,1,ljc) zrswjg_dm,yjjb,count(*) cnt from t_jc_sjdj dj
      where YJSJXWFSSJ>=sj1 and YJSJXWFSSJ<=sj2 and zrswjg_dm like dw2 ||'%'
            and dj.isstart='Y'
            and dj.isstop='Y'
      group by substr(zrswjg_dm,1,ljc),yjjb
    ) t1, --已解除的预警,           
    (
      select substr(zrswjg_dm,1,ljc) zrswjg_dm,yjjb,count(*) cnt from t_jc_sjdj dj
      where YJSJXWFSSJ>=sj1 and YJSJXWFSSJ<=sj2 and zrswjg_dm like dw2 ||'%'
            and dj.isstart='Y'
            and dj.isstop='Y'
            and dj.SJJCFS_DM=1 --人工解除
      group by substr(zrswjg_dm,1,ljc),yjjb
    ) t2 --已人工解除的预警
    where trim(allswjg.zrswjg_dm)=trim(t1.zrswjg_dm(+))
      and trim(allswjg.zrswjg_dm)=trim(t2.zrswjg_dm(+))
      and trim(allswjg.yjjb)=trim(t1.yjjb(+))
      and trim(allswjg.yjjb)=trim(t2.yjjb(+))
   )
   group by zrswjg_dm

  




 



posted @ 2009-11-12 15:34 桂湖山 阅读(417) | 评论 (0)编辑 收藏
仅列出标题
共7页: 1 2 3 4 5 6 7