
求MFC入门书,学习心得,建议,和前辈们对MFC的见解评价
mfc windows 应用程序设计 我是用的这本,然后结合着孙鑫的c++视频(有点多,不过你看几集,差不多对mfc 就有一定的了解啦),很快就能入门,然后你就可以再看那些比较深一点的书籍啦。
求一篇 计算机心得体会的文章~
计算机实验心得体会 篇一:大学计算机基础实验体会 大学计算机基础实验体会 大学计算机基础这门课是一门基础应用类课程,目的是让我们了解计算机硬件组成,简单的运行原理,以及各类常用软件的使用。
这个周末,我们完成了基础实验6、7、8。
本来以为会很简单的几个实验却花费了我们大量的时间,名且发现了很多问题,我才知道这门课程并不像我们想象的那么简单单学到的知识恰恰和难度成正比,这三个实验着实让我受益匪浅。
这次实验作业中,主要的问题都出在word文档的应用中。
我们普遍都用惯了老式的word2000或者word2003,所以对word2007不熟悉,于是造成了很多麻烦,尤其是添加目录这个新功能,摸索了好久依然毫无头绪。
最后不得已只能拿出教材自习阅读,同时上网找了很多详细的讲解,最后才完成了实验6。
在做powerpoint时候,可能是因为平时做过很多的原因,并没有遇到什么很明显的问题和困难, 但是为了能把PPT 做得精美和详细,也花费了不少的时间。
最后一项是excel的应用。
我以前对它的接触不多,所以对其应用也是最不熟练最不明白的。
但是通过自主的对其学习,尤其是对教材的阅读,使我能运用一些比较基本的功能进行表格制作。
同时也了解了很多以前不知道简便功能。
可以说,动过这次试验,我学到的最多的知识,就是excel 的应用了。
虽然这次试验作业已经完成,但是它给我的启发让我思考至今。
首先,本已经在课堂上学习过的内容,为什么在
你好,我在百度上看见您以前提问过用MFC制作猜数字游戏的问题,可以帮我一下吗
、问题描述: 该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。
玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求: 1、本游戏显示这样的菜单: (1) 随机产生数据 (2) 用户输入数据 (3) 退出游戏 2、游戏成功与否都能返回主菜单 三、算法提示: 1、 数据结构:数组 2、 用简单的程序设计方法 四、测试数据: 测试数据: 3792 第一次输入: 1234 0A2B 第二次输入: 5678 0A1B 第三次输入: 0867 0A1B 第四次输入: 9786 1A1B 第五次输入: 1794 2A0B 第六次输入: 2793 2A2B 第七次输入: 3792 4A0B 游戏成功 五、其它: 对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。
②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。
④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。
就是每句后有注释++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
#include
个位为第一位,千位为第4位*\\\/ { s=g;m=1; for(t=1;t<5;t++) \\\/*人所猜想的数*\\\/ { if(a%10==s%10) \\\/*若第i位与人猜的第t位相同*\\\/ { if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3]) { j++;m=0;l[j-1]=t; \\\/*若该位置上的数字尚未与其它数字“相同”*\\\/ } \\\/*记录相同数字时,该数字在所猜数字中的位置*\\\/ if(i==t) k++; \\\/*若位置也相同,则计数器k加1*\\\/ } s\\\/=10; } a\\\/=10; } printf(Correctly guessed %d digits,,j); printf(and guessed %d digits in exact position.\\\ \\\ ,k); if(k==4) break; \\\/*若位置全部正确,则人猜对了,退出*\\\/ } printf(Now correctly guessed the whole number after %d times.\\\ ,c); }
请教MFC的类如此多 该怎么学
如果你是要研究MFC的代码及其框架,强烈建议你读侯捷的一本书《深入浅出MFC》(不过要求你对MFC有较深了解,最起码会用,并且C++基础要好)。
如果仅仅是学习使用MFC,看一些一般的MFC使用教程就可以了,它的类是很多,但mfc的框架十分清晰,你要在先了解框架的基础上学习类,而且不一定全学,用到哪些学哪些也可以。
(参考MSDN的例子)
求c\\\/c++编程心得,就是自己感觉比较好的地方和技巧
编程,就是把复杂的问题简单化,简化到每个动作都是1+1=2那么简单,然后计算机照做就好了。
这就是我理解编程的真谛。
我师姐听到了,也若有所悟,这个话题就没有再说了。
我们来分析一下计算机的特点,准确的讲,目前我们这个社会的计算技术,还很原始,说它是计算机,正确,它确实只能计算,说它是电脑,太抬举它了,它不可能有思考能力。
在冯诺依曼体系架构中,计算设备就是具有一定计算能力,有能力和外界做出IO互动,并且能高速重复动作的这么一种设备,这可能和大家在教科书里面学到的不太一样啊,不过,我是这么理解的。
因此,我从一开始,就没有把计算机作为一个伙伴,一个可以帮助我出主意,或者代替我思考的伙伴,仅仅是看做一种工具,这种工具有什么用呢
我认为它最重要的,有两个作用:1、无限可重复性,一个动作序列,一旦编订程序,计算机就可以无数次重复这个序列,不会感到累。
这特别适合于那些乏味的,不断重复的劳动,比如,我们一个学校每天要敲钟,打上课铃,如果让人来做,这个人会很乏味,做久了,就可能出错,但是让计算机来做,它可没有什么思想,不会觉得累,而且做的很好。
计算机特别适合做重复性工作。
2、服务品质的稳定性。
计算机适合做重复工作,还有个有点,就是每次执行结果都是一样的。
这体现了工业化时代最重要的一个思想:量产思维,大家可以看到,现在的社会,不可重复的艺术固然很好,但公众需要的是量产的产品,因为质量稳定,产量稳定,能满足大众需求。
劳斯莱斯虽然很美,但绝大多数人在开大众、丰田等低端车。
就是这个道理。
还是打铃那个例子,如果是人,可能会生病,可能会请假,或者干脆搞忘了,但计算机不会,只要有电在正确工作,打铃就不会出错。
这样,我就慢慢理解到了,计算机其实就是能以恒定品质不断重复输出服务的机器而已。
ok了,这我们是不是可以理解到,计算机编程,其实首先是人的工作,当我们遇到一个服务需求,我们人来做一次,嗯,获得一个比较满意的结果,然后我们觉得这个动作可以重复,下次遇到类似的问题,照做就好了。
于是,我们就安排计算机来做这件事了。
是不是这样
这是不是说明,程序,其实是在讲一件事应该怎么做,这个做的过程,以及这个过程的含义,其实是人定义出来的,然后通过编程,教给计算机来做而已。
我以前经常有种感觉,计算机编程,是两层意思,一层,是程序本身的含义,就是怎么做事,另一层,是隐含在程序下面的逻辑含义,就是做事的意义,程序只是字面上的意思,而逻辑,是程序段落组合起来,共同表述的一层意思。
现在想想,其实就是这个道理。
嗯,既然我们知道,编程,就是把做一件事情的步骤,分拆开来,教计算机去做,但,分拆到什么粒度呢
这个很重要。
如果分拆的粒度太细,白白浪费程序员的时间和精力,这些都是成本。
而分拆得太粗,计算机还是弄不明白,做事不对,就是bug了。
这说明,编程有个很重要的概念,就是粒度,也就是我们对问题描述的精细程度。
最开始的计算机是最笨的,学过计算机组成原理的同学大概知道,只要有个累加器,其实已经可以算一台计算机了,只会做加法计算。
因为从数学上,我们可以知道,任何计算,最终都可以演化成加法计算,事实上,现在的CPU,在最底层核心的部分,也还是这个加法逻辑。
这样做当然没什么不好,不过,有个小小的问题,就是粒度太细了。
如果每件事情,都要程序员去拆解成很细的加法计算,这个工作就几乎不是人干的事情了。
难道就无解了吗
呵呵,前面我们说过,计算机的特点是什么
无限重复,大家就发现,一个事情,比如7*24,这是乘法计算,但是,我们最终要拆解为加法计算去实现,但是,不是说我们每次都要这么拆解,乘法计算也是一个工作,有规律的,因此,当我们拆解一次之后,我们当然可以把这次拆解过程本身,编订为程序,下次遇到类似问题,让计算机把这个程序再跑一遍就ok了。
呵呵,大家以为Intel的CPU里面的乘法计算指令是怎么实现的
大家又以为AMD的CPU内部的微代码体系是怎么实现的
就是这么一个思维,解决了所有的问题,遇到需求,首先拆分,然后不断检索我们以前是不是以前拆分过了,遇到能套用的程序段落,就直接用,不用每次都拆分那么细,减少工作量,当然,遇到新问题,还是需要自己拆解的,不过,拆解后,最好把拆解本身,也写成程序,下次重用。
大家玩各种语言,一般都提供基本库,这个基本库,其实就是前人已经拆解过的结果,软件公司觉得有代表性,可以满足大多数应用场合,就编订到基本库里面,以后程序员直接用,不用自己重复了,大家说是不是这样
现在,大家知道怎么看待C的stdio.h,stdlib.h这些基本库了吧
C++的iostream是什么含义,知道了不
MFC知道了不
Java的运行时库是什么意思,也知道了吧
不过呢,这个世界的需求总是很多的,并且,计算机的能力也是不断在进步,以前不适合计算机做的事情,现在也慢慢变得适合了。
因此,大家总能遇到一些新问题,需要自己重新拆解,基本库中没有提供,这就是程序员这个职业存在的真实含义。
帮助用户不断拆解新需求,解决新问题。
当然,库本身也在进步,不断把已经被证明拆解成功的问题,修补到库中,避免以后的程序员做重复工作。
就这么简单。
呵呵,啰嗦了这么多,可能很多同学看的一头雾水,肖舸老师你到底想说啥
我想说的,其实很简单,编程序,就是拆解问题,但讲究个拆解的技巧和方法,以前人做过的,别做,尽量用,没有的,做过一次,尽量保留下来,供下次使用,就这么简单。
那,这和本文的题目“修炼编程的内功”有啥关系呢
当然有关系了,什么叫编程的内功
我的理解,就是对这个世界的抽象化理解能力以及描述能力。
一个工作,能迅速从中提炼出下次可以重复的套路,并且能以一定的规则,就是计算机语言规范,描述出来,拥有这两个能力,就能保证遇到任何问题,都有办法写出程序来。
所以,大家学校中学了很多数学,语言,算法,数据结构,甚至编译原理,操作系统,其实这些统统是工具,不是写程序的目的。
写程序,就是遇到需求,能迅速抽象,理解其共性,并能以清晰的语言描述出来。
上述学科,不是帮助提升你的抽象能力,就是帮助提升你的描述能力,大家看是不是这个道理
所以,我在带徒弟的时候,有时候喜欢说一句话,其实作为程序员,学习一点语文有好处,因为最能培养描述能力的,其实还是语文。
英语不算啊,英语虽然也是一门语言,但中国的教育,一般是能看懂,很少从一个英文文学家的角度培养学生用英文的描述能力。
只有我们的语文课,这不但是教语言,而且通过无数次造句和作文,在教大家描述问题的组织能力,这个能力在写程序的时候,很有用。
这个时候,话题就出来了。
中国的语文,先是甲骨文,然后古文,然后白话文,大家发现没有,总体是越来越简单,这是发展的趋势。
为什么呢
因为大家觉得,语文就是让人懂的,太深奥的东东,不太适合普及,就没有生命力,反而越简单的东东,普及越快。
因此,请大家注意,写程序时拆解,是把问题简单化,不是说把一个问题描述得晦涩难懂,才叫本事。
真正的程序高手,都是简化问题的大师。
当然,从这个话题,我们是不是可以得出一个结论,其实写程序的方法本身,编程的内功本身,其实是没有什么语言特性的,C、C++、Java、PHP、Python。
。
。
是不是都用的同一种方法在做事情
因此,我这里提出,修炼编程的内功,是学习抽象能力和描述能力,与语言无关,换而言之,从任何一门语言入门,都可以修炼到内功的极致,关键看你用不用心。
因此,学习期间,我的建议,不要好高骛远,不要去评价语言的好坏,平台的好坏,没有多大意义的,你并不能确定这辈子最终能在哪个平台下用哪种语言开发。
捡着手边有的书,老师教的课程,埋进去学扎实,出来后,换语言比吃盘菜也难不倒哪去,呵呵。
这算是正式回答杰杰同学的问题。
再说一下郭晓同学的问题。
他列了一个很偏的题目,就是有两个变量a和b,不用if、?:、switch或其他判断语句,找出两个数中比较大的那个。
这个问题,我不认为是个好问题,因此提出异议。
主要的原因就是基于上述的讨论,我认为评价一个程序员好坏的标准,应该是考察其简化描述问题的能力,而不是把问题复杂化的本事。
这在学院派里面很多,这里大家可不要生气啊,我知道大家现在基本上都是大学学计算机专业的,算是学院派,但肖老师我的实战出来的,看法很多都和大家不一样。
学校里面,老师的任务是把尽可能多的东东教给大家,因为他不知道以后你做什么工作,哪些知识没用,因此,学校老师会尽量培养大家描述复杂问题的能力,这就造成了,学校里面的考试,是尽量把问题复杂化,多考察大家几个项目。
学校里面的风气,也认为能解决复杂问题算高手,甚至问题本身不复杂,大家把它造复杂,来考核自己的能力。
但实际工作中不是这样的,实际工作中,大家最看重的是能用最简单的办法解决问题的能力,因为这样成本最低,无形中,大家赚钱最多。
所以,对问题的抽象拆解和清晰描述非常看重。
很多同学刚刚上班,会很不适应,其实就是这个思路的转换。
学院里,以复杂为美,而商业公司中,以简单为美。
这应该是一个很大的思想转变,甚至是世界观的改变,很难的。
一般转的比较快的同学,在公司里面进步就比较快,但我也见过工作几十年了,还是没有转过来的程序员,一般在公司里面活的就比较累一点。
建议大家好好思考一下我今天的提法,看问题抓本质,只要能及时理解商业公司的开发思路,理解简单这个要素,我不敢说大家一定能找到工作,但只要找到了,在公司里面,基本都能快速融入公司。
问题如题,我不是用MFC的,是用API SDK的,有高手可以教下吗
先找本C++的语法书看,里面的所有东西不必全明白,只要看懂类部分就行了接着找本图比较多的教程看看吧,一般叫VC百例之类的。
看看里面一些自己感兴趣的例子,照着做几个接下来就要找本比较系统的书了,一般叫VC从入门到精通或者Windows程序设计这样的。
里面一般会把Windows消息,常用控件,对话框,单文档这样分开来介绍,照着他的思路学就行了再接下来就可以自己想一些程序做做了,做的过程中会学到许多技巧和心得再接下来我自己也不知道了,我就到这里了,现在打算看些高级应用,如hook之类的以上的话是一个尚未成功自学者的总结。
如果你有朋友会VC的话,建议你找他教你,这样你很快就能学会了(个人体会:我用了好久时间才搞懂的一些东西,结果发现高手早就懂了)



