博文
VC编程小经验(1)(2006-10-22 00:51:00)
摘要:更新中:
1.对classview中的类进行整理
经常做大项目的时候会设计很多的类,很容易弄混,查找也很麻烦。可以在classview中右击新建文件夹,
把性质类似的类拖到文件夹中
应用指数:★★★
成功率:100%
2.快速删除DEBUG文件夹中的临时文件
在fileview中选中标题(..files),右击,“清除(仅选定的)”
应用指数:★★★★
成功率:100%
3.如何干净的删除一个类
首先在fileview下删除对应的头文件和源文件(此时并不是物理删除)
然后从实际的文件夹中物理删除对应的头文件和源文件
删除.clw,重新打开即可
应用指数:★★★★
成功率:100%
4.明明添加了一个类,却找不到了
直接删除.clw,重新编译即可
应用指数:★★★
成功率:100%
5.再次打开一个项目时,编译一次报错,错误是不能打开stdafx.h
此时可以删除debug下的所有obj文件
应用指数:★★★★
成功率:90%
6.在编写代码时,发现成员函数和变量的智能提示不能自动弹出来
关掉项目,删除.clw和 .ncb文件
应用指数:★★★★★
成功率:100%
7.如果把所要包含的头文件写在 include "stdafx.h"前面不起作用
把所要包含的头文件语句写在 include "stdafx.h"的后面或者直接写在stdafx.h中
应用指数:★★★
成功率:100%
8.如果你要和别人共享源代码,没有必要把文件夹下的所有文件拷贝。你可以删除一下文件:
.dsw,.ncb,.opt,.clw,.aps,.clw,.plg以及debug、release下的所有文件
应用指数:★★★★
成功率:100%
......
人工智能的应用---四色定理(2006-10-21 14:04:00)
摘要:四色定理
地图四色定理(Four color theorem)最先是由一位叫古德里(Francis Guthrie)的英国大学生提出来的。德·摩尔根(Augustus De Morgan,1806~1871)1852年10月23日致哈密顿的一封信提供了有关四色定理来源的最原始的记载。他在信中简述了自己证明四色定理的设想与感受。一个多世纪以来,数学家们为证明这条定理绞尽脑汁,所引进的概念与方法刺激了拓扑学与图论的生长、发展。1976年美国数学家阿佩尔(K.Appel)与哈肯(W.Haken)宣告借助电子计算机获得了四色定理的证明,又为用计算机证明数学定理开拓了前景。
四色问题又称四色猜想,是世界近代三大数学难题之一。
四色问题的内容是:“任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。”用数学语言表示,即“将平面任意地细分为不相重迭的区域,每一个区域总可以用1,2,3,4这四个数字之一来标记,而不会使相邻的两个区域得到相同的数字。”
这里所指的相邻区域,是指有一整段边界是公共的。如果两个区域只相遇于一点或有限多点,就不叫相邻的。因为用相同的颜色给它们着色不会引起混淆。
四色猜想的提出来自英国。1852年,毕业于伦敦大学的弗南西斯·格思里来到一家科研单位搞地图着色工作时,发现了一种有趣的现象:“看来,每幅地图都可以用四种颜色着色,使得有共同边界的国家都被着上不同的颜色。”这个现象能不能从数学上加以严格证明呢?他和在大学读书的弟弟格里斯决心试一试。兄弟二人为证明这一问题而使用的稿纸已经堆了一大叠,可是研究工作没有进展。
1852年10月23日,他的弟弟就这个问题的证明请教了他的老师、著名数学家德·摩尔根,摩尔根也没有能找到解决这个问题的途径,于是写信向自己的好友、著名数学家汉密尔顿爵士请教。汉密尔顿接到摩尔根的信后,对四色问题进行论证。但直到1865年汉密尔顿逝世为止,问题也没有能够解决。
1872年,英国当时最著名的数学家凯利正式向伦敦数学学会提出了这个问题,于是四色猜想成了世界数学界关注的问题。世界上许多一流的数学家都纷纷参加了四色猜想的大会战。1878~1880年两年间,著名的律师兼数学家肯普(Alfred Kempe)和泰勒(Peter Guth......
哪位对智能交通感兴趣啊(2006-10-14 21:02:00)
摘要:最近我们申请了大学生创新项目,是做一个ITS。有谁对模糊数学,神经网络或者相关方面比较了解的?留个言啊......
使用vc的设计工具进行编程的建议(2006-11-29 20:35:00)
摘要:转载:<<矢量图形系统开发与编程>>---陈建春著
1.必须在真正掌握程序的框架构造基础上使用工具
使用这些工具必须首先深刻理解程序的框架构造和这些工具的真正作用.初学者应该花费大量的精力弄懂MFC程序框架的组成结构,这样才能够游刃有余的控制程序.最不可取的是盲目使用它.具体的说,程序设计者只有在用手工能够熟练的完成工具所能自动完成的任务的前提下,再使用这些辅助编程工具(比如CLASSWIZARD,resourceview,classview).使用这些工具的目的是提高书写代码的效率,提高编程程序的速度,而不是用来代替程序设计
2.正确把握程序设计的要点
程序设计的能力体现在对数据的组织和控制.流程的控制上面,不同的计算机语言虽然各有特点,但是几乎所有的计算机语言其设计思想都是内在相通的.程序设计的能力的高低与采用哪中计算机语言没有必然的联系.现在计算机语言书籍多数集中在介绍各种语言的操作功能,缺少对读者进行程序设计实际能力的培养,给初学者造成一些错误的导向,比如盲目的追求语言版本.似乎只要用的语言版本越新,自己进行程序设计的能力就越强.结果是,一些学习程序设计的人,计算机语言的基础知识不牢固,对程序设计的基本思想和方法不明晰,对新出现的一些编程工具本质不了解,所以在进行具体任务的设计时盲目性很大,往往事倍功半,越搞越糊涂.所以用计算机语言进行程序设计,期望具有很高的程序设计能力,并不在于学了多少语句,函数,对象和方法,关键是要有明确的设计思路,把具体任务与程序的创建,编码,使用辅助编程工具等联系起来,对数据和流程进行组织和控制......
元数据小悟(2006-11-29 20:35:00)
摘要:
所谓元数据,就是数据的数据.什么意思呢?元数据就是关于数据的描述信息.它的目的经科学界讨论,主要是:促进数据集的高效利用,并为计算机辅助工程服务:
内容包括:
1.对数据集的描述,对数据集中个数据项,数据来源,数据所有者,以及数据序代的说明.
2.对数据质量的描述,如数据精度,数据的逻辑一致性,数据完整性,分辨率,元数据的比例尺;
3.对数据处理信息的说明
4.对数据转换方法的描述
5.对数据库的更新,集成等的说明
看到这里,大家是不是感到概念很抽象,呵呵,没有关系,这是我们专业GIS中的关于元数据的描述(你知道GIS把,地理信息系统).学过VC的人应该知道在VC中也有元数据的概念,它是以元文件设备上下文类形式CMetaFileDC出现的.下面我就谈谈这个.
首先,CMetaFileDC派生于CDC,当用户用元文件DC绘制时,在元文件中就会包含图形所有的绘制命令,注意不是绘制的图形,而是绘制的命令.下次再"播放"这个元文件的时候,它就会将命令重新操作一遍,得到的图形和上次一模一样.那么这样元文件和元数据概念就差不多了.它记录的只是关于这个图形的"数据",什么数据呢?绘制命令.这就是对上面的最好阐释.
具体步骤:
1.构造一个CMetaFileDC类对象,就和CClientDC一样
2.用Create函数创建一个设备上下文
3.绘制
4.调用Close函数来关闭设备上下文,这个不同于自动析构,用Close函数会返回一个元文件句柄(HMETAFILE)
5.调用播放函数 PlayMetaFile
6.删除元文件句柄 DeleteMetaFile
那么看到这里你可能会问了,这个元文件有什么作用呢?要绘制图形直接用CDC的其他派生类就完事了啊?比如CClientDC,CPaintDC.其实不然.你可能以前做过这样的程序:用鼠标左键进行连续绘制功能,为了提高效率,我们直接在响应WM_MOUSEMOVE消息的函数中进行,而不是等到WM_PAINT消息.但是这样的话,如果绘制了一些图形以后,然后最小化,再打开,图形就不见了,因为执行了刷新,而我们又没有处理WM_PAINT,所以就看不见了.
如果我们用元文件的......
易中天语录节选(2006-10-04 01:07:00)
摘要:
转载:单击此处
易中天语录节选
1.诺,相当于现在的OK。
2.清朝入关前将领们都学三国,把《三国演义》印了一千本,发给各个将领作内部文件……
3.如果别人惹你一下,你马上扑上去,一口咬住,死死不放,这是什么,螃蟹!韩信肯定不是螃蟹。
4.我被你雇用了,我是忠心耿耿给你谋划,如果我的主意你不听,bye-bye,我换一个老板。
5.桓帝和灵帝都是不适合当皇帝的……灵帝的爱好是文学艺术和建筑艺术。他对于建筑还是颇有研究的。他成天搞研究,结果在皇宫里搞成了一个自来水系统!而且他还要在全城推广自己的科研成果,宣布:要让全城的老百姓都喝上自来水——你是当皇帝的,不是搞上下水的嘛!
6. 朝廷派人去查吴王,也没有发现什么大规模杀伤性武器嘛。
7.曹操第一个官职是洛阳县北部尉,相当于副县级公安局长。
8.曹操身材短小,估计也就和我差不多吧。跟1米84的诸葛亮比起来,只能算是不合格的残次品。
9.曹操是喜欢美女的,他不管走到哪里都喜欢“搂草打兔子”,收编一些美女什么的!
10.宝贝,你回来吧,好不好?别闹了,跟我回去吧……(曹操劝老婆回家)
11.曹操对各路诸侯说:“现在是灭董卓的最好时机——董卓已经把洛阳烧掉了,还劫持了皇帝,基本可以把他定位为恐怖组织了。”
12.吕布想:曹操这个贼,狡猾狡猾地!
13.袁绍整天在家里面大会宾客,用现在的话说就是办沙龙,开Party,车水马龙,门庭若市。这个事情当时就引起了当局的注意。
14.袁术以为皇帝的称号就像现在我们市场经济条件下的商标一样,要抢先注册,他以为他抢先注册了皇帝的商标别人就不能把他怎么的了,没想到他反而成了“众矢之的”。
15.袁尚、袁熙哥俩一合计:“咱们请公孙康那小子喝酒,在酒席上就把他给做了!”这边公孙康也合计:“不如我请他们哥俩来喝酒,在酒席上就把他俩给做了……”结果是公孙康把那俩给做了!
16.这就使我们觉得袁绍这个人好像有一种天才,凡是对他有利的正确的意见他一定是不听的,凡是对他不利的错误的意见他一定是要听的,那才是怪了。
17.刘备干逃跑这事还是很在行的。他就像海轮上的老鼠,好像总是能第一个察觉到哪一艘船会翻掉……先是跟着公孙瓒打袁绍,然后又跟着曹操打吕布,又跟着袁绍打曹操……
18.那时候江东的老百姓都称孙策为“孙郎”,称周瑜为“周郎......
经典之句(1)(2006-09-29 00:23:00)
摘要:--2006 .9原创
1.假如生命是偶然的邂逅,那么灭亡是必然的分手.
2.没有值得不值得,只有愿意不愿意.(以人为本的思想,源自<<仙剑>>)
3.世界上最遥远的距离不是生与死,而是明明我站在你面前,你却不知道我爱你.(不知道是哪个诗人说的,我在<<红色的石头>>上听到的,知道作者的告诉一声)
4.既不回头,何必不忘;
若是五缘,何需誓言;
今日种种,似水无痕;
明夕何夕,君已末路.(<<仙剑>>中的经典)
5.人因有耻,才能有所不为,不会为所欲为.
6.教育心理学名言:播下一种思想,收获一种行为;播下一种行为,收获一种习惯;播下一种习惯,收获一种性格;播下一种性格,收获一种命运!
7.说一次谎话就要说更多的谎话来圆谎.
8.----进攻是最好的防守.
-----不懂防守,如何进攻?(广告词)
9.以前你听说他们有高智商,从而对他们有了信心;现在既然你对他们有了信心,又何必在意他们真的有高智商呢?(<<红色的石头>>此句极为经典!)
10.如果木桶的木板与木板之间的缝隙很大,则无法装满水!(你知道这句话的意思吗?)
......
不知道用哪种语言?(2006-09-27 14:56:00)
摘要:现在程序设计的语言真是多,好多人都不清楚自己该学习哪种.所以我也是跟者别人后面看学哪个就学哪个.先学C过2级,然后跟着老师学了面向对象和VB,做出点小有成就感的东西,就不了了之了.后来听人说我们出去找工作很多公司要会VC的,于是又赶紧去猛啃VC.啃了半天不知道从哪下嘴,干脆再学学C++.结果是一门都不精通.郁闷!
最悲惨的就是这个十一了.老班希望我们每个人做个小系统给他,并且还要求是vb+纯文件,也就是最底层那种.本来想好好玩的,这下叫他给八的.太垃圾了!
我最近刚学VC,于是想用它来做. 但是好难啊.不过那天在网上看到一句话又给了我继续学习的动力."偷懒的人学VB,聪明的人学DELPHI,真正的程序员学VC,高手学JAVA",哈哈,有点意思,那么,我要做程序员?
那估计就得过非人的生活.听说他们 整日对着屏幕发呆,键盘换了N个,还没有女朋友,没见过阳光,就砖头样!
好悲惨啊......
我还是想点别的了..........
有电脑真好(2006-09-26 19:21:00)
摘要:前几天我的爱机不知道怎么出了点问题,很是郁闷.报修以后,才知道是电源出了问题,店主说换个新的电源(免费,呵呵,没过质保期),不过要等2天.那几天真是度日如年.来灵感想编程了也干不了,只好记下.想上网看看帖子也没办法.用同学的机子又不好意思,真是忒不爽.这是我才发现电脑对于我是多么的重要.不过现在好了,又可以继续编程之旅了.这几天没来又出来好多新人和新文章,真是好气象!我要去找找有没有我想要的......
想起老师一句话,他说搞硬件的都是厉害的角色,比搞软件的还厉害,所以高手都在INTEL,不在MICROSOFT,现在看来似乎有点道理.没有硬件那软件就是空谈了,还运行个鬼,写鸡毛程序.
不过在想想又不对,没有软件搞硬件有什么意思,没操作系统那不就是裸机了.到底哪个更重要?有点乱了.
那我还是成为软硬件高手把.这样软硬兼施肯定很厉害了.室友说那是非人.就好像在理论物理和试验物理上都有建树的历史上没几个.不过不还是有吗?费米啊,阿基米德啊.我可以吗?
那我就是非人了.
不讨论这个了.反正现在发现有电脑真好!电脑是哪个家伙整出来的?这比爱因斯坦还牛.
我去翻翻资料...........
c中的陷阱(2006-09-25 11:08:00)
摘要:先看个题目:
void fun(char *p1)
{
p1=p1+1;}
main()
{
char *p="abcd";
fun(p);
cout<<*p;
}
这个题目看起来非常简单,但对于初学者来说却是个巨大的陷阱.很多初学者在学习c的时候就会听老师说过:指针是可以用来传值,甚至可以不要return;这句话本身没有错误,错的是初学者的理解!
首先说一下答案:结果是a不是b
这也许出乎你的意料.但是仔细一想就明白了.首先定义了一个字符型指针p,让它指向一个字符串的首地址,如果没有fun函数,那么*p='a';但是现在调用了fun,难道对p没有影响?
是的.调用fun的时候,会将p的值传给p1,也就是说现在p1也指向这个字符串的首地址了.然后执行:p1=p1+1;这样p1会指向下一个字符,也就是'b',但是p还是指向首字符!!!
所以结果也就出来了.这时候你可能会怀疑你以前学的指针是不是出现了问题.再来看这个题目,你就明白了:
void fun(char *p1)
{
*p1=*p1+2;
}
主函数不变,结果是'c'(a+2),同样p1开始指向了首地址,就当作一个箱子,然后把箱子里的东西换了(*p1),等调用结束以后,下个人(主函数)再来看的时候,箱子里的东西已经变化了!
总之,希望初学者在学习的时候多加琢磨一些关键的话语,这对你的分析能力是很有帮助的.
2.
main()
{
char p[]={'a','b','c'};
char q[]="abc";
printf("%d,%d,%d,%d",strlen(p),strlen(q),sizeof(p),sizeof(q));
}
感兴趣的读者,你能在不上机的情况下说出结果吗?
答案 是3,3,3,4.
我们知道strlen测的 是字符串的实际长度,不包括'\0',而sizeof测的是开始分配的空间.对于char q[]="abc";实际上应该是q[4],而对于char p[]={'a','b','c'};这种写法在很多C语言书上是不允许的,因为没有结束符.所以它的结果可能会出乎意料.在此不多作申明.不过如果写成char ......