学C++的几个烦恼(200分)不要复制的..现在很迷茫..

学C++几个不知道该怎么解决的问题..
1.C++是程序里的祖先..不过我学程序时 都是从VF到VB到VC开始的..
我喜欢用C++啊 VB啊 VC啊制作软件 不喜欢那种纯理论性的程序...
比如用数学方式和程序的语句来解决数学问题..这个我不喜欢..
学程序 制作软件 因为这个才有兴趣学 用程序解决数学问题 太没劲了..在说了 如果软件上要算法 我在用啊..用那样 作业都要用程序解决问题?太麻烦了 解决一个要好长时间..
我喜欢创造东西 ..不是像大学生学数学那样 制作出虚实的东西..没什么用处..就显得自己数学好?还有 我一老师以前的教网站的..一纯书呆子说 不会算法的程序员 二流货色..那我就说了 连软件都制作不来 那不就是三流货色?别谈什么二流啊之类的P话..我喜欢想什么软件就出来什么软件//
2.还有C++在代码编写方式用的是事件型的对一个控件的命令控制时很麻烦..声明这个啊 那个啊...
3.程序的枯燥一开始学程序时没感觉什么..一到学C++特别无聊 老师没来..有时 上课只能呆着看C++程序 没基础啊..有的也不能上机试试
一试就出现问题..无聊..
而教VC的老师给了我一本实战型的C++书..
我基础都没学到..就实战?可是也没什么好书
对于网上自学我不喜欢..因为网上的都很散...你没有学习顺序...
加上 你自学学了一小点知识就高兴半天 之后在网上说什么我要制作出一个游戏之类的..我以前也这样 一学程序班 才知道自己学的好少..好幼稚..
......
怎么能解决啊?
还有
能说下C++在制作软件时的流程嘛?
告诉一下吧
注意 我说的是软件的制作流程。。别说什么大道理。。
我要的是实际 不要像你当master一样。。说那么多废话..
要的实际 能做出来实际就行。。这社会说大话的人真多。。
算法 不过我不想在我的兴趣在制作软件时 接触那些算法 那样我会冷淡的。。
说个流程用那么抄来》?
回 回答者: 冰之凝520 - 二级 2010-6-17 22:27

我知道自己很狂妄。。可是人还狂妄的野心都没有..不然追求没有乐趣..
像你们一样?只是无味的跟着别人怎么想的思路?

下面是前辈们的谆谆教诲,我在网上找到的,希望对你有帮助:
学习C++的50条忠告 也适合于C

1.把C++当成一门新的语言学习(和C没啥关系!真的);

2.看《Thinking In C++》,不要看《C++变成死相》(C++编程思想,翻译的非常差);

3.看《The C++ Programming Language》(这本东西有影印板的)和《Inside The C++ Object Model》 ,不要因为他们很难而 我们自己是初学者所以就不看;

4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;

5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;

6.会用Visual C++,并不说明你会C++;

7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;

8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;

9.看Visual C++的书,是学不了C++语言的;

10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?

11.浮躁的人容易问:我到底该学什么;——别问,学就对了;

12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;

13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;

15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;

16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

17.C++不仅仅是支持面向对象的程序设计语言;

18.学习编程最好的方法之一就是阅读源代码;

19.在任何时刻都不要认为自己手中的书已经足够了;

20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;

21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;

22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;

23.请看《Effective C++》(这本书刚出,也是候sir翻译的)和《More Effective C++ 》以及《Exceptional C++》;

24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;

25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;

26.请看《程序设计实践》,并严格的按照其要求去做;

27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;

28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z 语言联系得那么紧密;

29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;

30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;

31.学习编程的秘诀是:编程,编程,再编程;

32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;

33.记住:面向对象技术不只是C++专有的;

34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;

35.把在书中看到的有意义的例子扩充;

36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;

37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;

38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;

39.C++语言和C++的集成开发环境要同时学习和掌握;

40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;

41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;

42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);

43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;

44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;

45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;

46.记录下在和别人交流时发现的自己忽视或不理解的知识点;

47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;

48.保存好你写过的所有的程序——那是你最好的积累之一;

49.请不要做浮躁的人;

50.请热爱C++!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-17
呵呵,首先我想说你遇到的只是一个小问题,其实就是归根结底不就是一个c++入门的问题嘛?你说c++有好多是解决数学问题,很无聊,你这样说我很理解(我是从c一步步学过来的)。但是我想说凡是牛x的软件几乎没有是用vb写的。例如windows系统(包括最新的win7),魔兽、qq、Adobe cs、卡巴斯基,还有诸多系统软件、应用软件等等。所以c++是非常牛x的,您别看他土,不如vb那样图形化,但是它可以和最基础的硬件打交道,有非常强大的功能,这个是vb无法比拟的,关于书的话当然还是c++ primer最好,你好好看下补补基础,同时要多上机,作为一个优秀的程序员,大量的上机体验是必须的,个人感觉就像打靶一样,好枪法是子弹喂出来的,学好了基础,就可以迈向图形的世界了。
注:(以下内容均属转载,但相信对楼主有帮助。)
从SDK编程开始,不要担心,这不会花费你太长时间,但却是对Windows程序运行机制进行深入了解的好时机,在此的努力都不会白费(trust me),此时的参考书没有什么好考虑的,基础的有Charles Petzold的《Windows程序设计》,进阶的有《Windows核心编程》。请从《Windows程序设计》开始,Charles Petzold的书通俗易懂,学习起来非常轻松,而且对你的语言要求不高,只要懂C就可以了。

此时容易碰到的问题大多与项目设置有关,如果使用Visual C++,请按Alt+F7调出项目设置对话框仔细检查,并阅读相关文档,熟悉各项配置的意义。

此阶段请重点掌握Windows SDK程序的编写方法,Windows程序的运行机制和Windows消息机制,和常用的Windows API。我们还可以更进一步:尝试用前一阶段学到的C++知识对过程化的SDK程序进行初步的改造,将我们敲入计算机的程序变得可重用,按照自己对基于对象思想和面向对象思想的理解来重新编写例子程序。

OK,现在你已经初步入门了,掌握了C++的基本用法,对面向对象有了一点模糊而自以为是的认识,也能够写出Windows程序了,虽然还有点简单,还有点丑陋,不过,总归是图形界面啊。开始有点感觉了,是吗? :P 别急着往前冲,停一停,将C++和Windows SDK的基础打牢,贪多嚼不烂吗。此时有很多经典书籍等待你去掌握,也有几乎无限的题材供你练习,请尽量多阅读接触下面的资源:
《C++ Primer》
《Windows核心编程》
《应用程序调试技术》
面向对象开发设计方面的书籍
MSDN的Platform SDK部分,Periodicals部分(包含了大量有价值C++、SDK方面的技术文章)
CodeProject里相关的源代码是很好的补充学习资料
现在继续往前走吧,利用SDK开发毕竟有时太过于费时费力,还是使用更高级的应用程序开发框架的好,主要的有MFC和VCL,关于这些框架谁好谁坏的争论我已经听烦了,一句话,能帮助我们完成任务就行,它们无非都是工具,你自己随便选择吧。不过选择好之后,你应该明白,对于你的工具,了解越深,越能发挥它的威力。如果你选择了MFC,我建议学习下面的书籍:
《深入浅出MFC》:关于此书毋庸多说,尽管有人不停的贬低,但它的地位是无可置疑的,而且也是对我最有帮助的书籍之一。
《MFC程序设计》
《Visual C++技术内幕》
就此转载完毕

总之一句话多看书。我学c和c++的书有好几本参考书,每本书都看过,这样下来后相当于学了好几遍,印象特别深刻,而且基础打好后,以后变得非常好学,最好再说一句。我不知道您是不是学计算机专业的,您可以去网上搜下,现在学c++还是特别好就业的,只要技术好的话,而vb和vf几乎没有多少公司招人。。。
希望我的话对您有帮助。
第2个回答  2010-06-19
学c++也不是什么坏事,当然现在很多直接学java,.net的。你说做游戏。那就c++吧。
很多学习语言的开始接触的都是很“讨厌”的算法啊什么的很枯燥的东西,没有实战的激情(其实做多了实战也很枯燥的)。c++是相对比较浩繁的,当然学起来就比较累。我觉得你既然决定学这个,算法啊什么的还是要学的,而且应该学好。我是数学系毕业的,也做过软件开发,数理逻辑也是很重要的,当然大学数学大部分东西在软件开发上没有直接用处。
那来直接的。你首先要对自己的未来职业要有一个完整的规划。确定要做程序员?还有你要学c++吗?我觉得不要了吧。直接来Java吧。找个商城什么的实例做一下,完成后会有很大的信心。理论与实战相结合。要踏实。基础理论也很重要。实在不行去外面培训班学。
软件流程大致就和你做的vb。vc小程序一样的。项目规划,分工协作,调试,修改,调试,在修改。。。交付。客户发现bug,再修改。客户要求增加能功能,那就添加模块(or从新再做)。当然实际中很多分工。美工啊,做数据库的等等。项目经理会告诉你去做什么。你也只做自己的那部分而已。
就到这里吧,说的比较乱,希望会对你有帮助。
我的技术也一般般。转行了。本回答被提问者采纳
第3个回答  2010-06-17
一个真正的程序员,或者说解决问题高手,到最后肯定要学习算法和数学模型,否则编不了真正有用程序。
事实上,很多程序员刚开始时,与你一样感觉不到算法和数学的重要性(包括我在内),因为他们在编程序(如数据库)时根本涉及不到复杂的运算(如矩阵求逆,傅利叶变换等),所以觉得自己编的程序又实用又不需要数学,数学可学不学无所谓。
但是随着程序设计技术水平的提高,这些程序员会逐渐发现自己的“浅簿”。因为他们的编的程序充其量是一个模仿“手工”工作的所谓自动化程序,虽然一定程度提高了工作效率,但是其程序含金量真的不多。
这样低水平重复的软件,在中国只要到一些软件培训学校学习一二年就可以达到这个水平。在印度,实际上高中生就可达到,不需要大学生来做。所以印度有软件蓝领一说。
实际上要成为有竞争力程序员,一定得掌握相关算法和数学模型,如想成为游戏程序员,除了程序本身的学习以外,相关数学模型得学习(如碰撞算法,图像处理算法,人工智能寻径算法等)。想作为数据库程序员,未来的倾向则是对数据进行析深度分析(数据挖掘,聚类,时序分析等),这些没有一定的数年学功底和算法基础是不可想像的。
学不学数学和算法,就可看你想成为什么的程序员了。如果你想让自己有些核心竞争力的话,花点时间学习算法和相关数学模型是一件极其重要的事情。
关于制作软件的流程,“软件工程”教材写得很清楚。归结起来就是要做好四件事情(这些过程与用什么语言没有关系,包括C++):
(1)系统分析。搞清楚软件要做什么,需要有什么功能,涉及什么数据,软件与现有的系统有什么联系与区别,软件应该达到什么样的水平,确定软件的工作进度等,最后建立系统的逻辑模型。
(2)系统设计。搞清楚如何做软件,软件的功能结构是什么样的,软件的流程和数学模型是什么,软件需要在什么平台运行,用什么平台开发,软件的体系结构是什么,网络和数据库如何选择,数据库如何设计,界面如何设计,输入/输出如何设计,这一阶段主要完成软件的物理模型的构建。
(3)系统实现。就是用具体语言实现程序。涉及到程序的编写方法、测试方法等。用结构化或面向对象对象方法编程和调试,程序文档的编档,测试计划、测试用例的编写等。结果是真正可运行的程序(计算机模型)
(4)系统运行与维护。系统初装,数据载入,系统的试运行与切换。系统的改善性维护等。
对于程序设计初学者,需要了解的很多。有技术上、有方法上的,甚至还有程序设计思想或哲学上的。所以,做一个真正的程序员需要比别人付出更多的时间和精力。
个人看法,希望对你有用,给不给分无所谓。
第4个回答  2010-06-17
感觉你年少狂妄,做事从根开始,没基就想一步登天,有点做梦。学东西要自觉,别偷懒,也别挑剔,你现在没这资格
相似回答