回 帖 发 新 帖 刷新版面

主题:写了2年的初学者C++基础教程,今天终于出版了《易学C++》

[size=3][color=FF0000]本书已交由人民邮电出版社出版发行。[/color]

[b][size=4][color=0000FF]购买《易学C++》网址:[url]http://www.china-pub.com/39862[/url],欢迎大家捧场![/color] [/size][/b]

完整版含附录,其中包括C++常用关键字及含义、所有练习的参考答案等。[/size]
编写的主旨就是不要一下子把什么都说出来,而是一点一点循序渐进地增长读者的能力。
摒弃直接使用专业的术语,而是以形象地比喻来介绍程序设计中的内容,比如把变量比作箱子,把分支语句比作开关等等。对没有程序设计基础的朋友来说,也能够轻松地看懂。
同时也注重提高读者的实际能力,在书中穿插讲述一些常用的小算法和小技巧,尽量避免看得懂书却写不来程序的情况。
[color=FF0000][size=4]下载[/size]请到[url]http://www.tomatostudio.net.cn[/url]
e-mail:[email]tomatostudio@126.com[/email][/color]

回复列表 (共59个回复)

11 楼

懂概念不一定懂程序!

12 楼

支持 
要加油啊!
不要松懈了!!

13 楼

这几天又收到不少来信,QQ的好友数也增加了不少。甚至有一位高龄网友说想按正式出版计价,寄一些钱给我。在此,我感谢各位对我长期以来的支持和鼓励!也感谢各位细心地阅读了我的作品,给我提出了一些非常好的建议。

这次更新花了三周的时间。本来结构这个东西就包含了链表这些内容,我原认为链表应该交给数据结构的,不过考虑到学校里还是要求这个的,我就说一下吧,这次选用自行车链条作为比喻,图画得比较难看,请多包涵。枚举本来在学校里一带而过的,不过发现Java也都开始支持枚举了,可见这个类型还是蛮有用的。这次我花了一个小节来说枚举。两周半就用在了枚举、结构、链表上了。还有半周呢我对前面作了一些修改,在第一章添加了程序设计到底要做什么,在第三章添加了常用数据类型的简介。如果大家觉得哪里还写得欠妥,请给我建议,谢谢!
本次内容节选:

很多初学者会不解:程序设计到底是要做什么呢?我们该如何教会电脑解决问题呢?
其实,要解决一些看似不同的问题,我们可以将其归结为一种确定的过程和方法。我们把这种能够解决一类问题的过程和方法称为算法(Algorithm)。下面,我们以解一元二次方程为例,介绍求解的算法:
(1)输入二次项系数a,一次项系数b和常数项c。
(2)计算△=b2-4ac。
(3)判断△的大小,如果△≥0,则有实数解,否则就没有实数解。
(4)如果有实数解,就利用求根公式求出两个解。
(5)输出方程的两个实数解,或告知无解。
以上便是用自然语言描述的求解一元二次方程的算法。程序设计所要做的便是探求这种能解决一类问题的算法,并且要将这种算法用计算机能够“看懂”的语言表达出来。

在基本的数据类型中,无外乎就是些数字和字符。但是某些事物是较难用数字和字符来准确地表示的。比如一周有七天,分别是Sunday、Monday、Tuesday、Wednesday、Thursday、Friday和Saturday。如果我们用整数0、1、2、3、4、5、6来表示这七天,那么多下来的那些整数该怎么办?而且这样的设置很容易让数据出错,即取值超出范围。我们能否自创一个数据类型,而数据的取值范围就是这七天呢?
C++中有一种数据类型称为枚举(Enumeration)类型,它允许用户自己来定义一种数据类型,并且列出该数据类型的取值范围。

我们把变量比作为箱子。在现实生活中,如果小箱子太多太杂乱了,我们会拿一个大收纳箱来,把小箱子一个个有序地放到收纳箱里面。这样一来,在我们视线里的箱子就变少了,整理起来也会比较方便。那么,我们能否把这么多凌乱的变量整理到一个变量当中呢?
C++中有一种数据类型称为结构(Structure)类型,它允许用户自己定义一种数据类型,并且把描述该类型的各种数据类型一一整合到其中。

相信很多人都玩过即时战略游戏(RTS),比如时下流行的魔兽争霸、曾红极一时的红色警戒。可是大家有没有考虑过,每个战斗单位都有它们各自的属性,电脑又是如何为我们造出来的部队分配内存的呢?
显然,部队的数量在程序执行之前是未知的。如果用数组来存储这些数据,那么就会造成游戏前期浪费内存(没有那么多的部队),游戏后期存储空间不够(战斗单位数大大增加)的情况。
那么使用数组的动态分配行不行呢?还是不行。因为部队的数量在程序执行的时候仍然是未知的。甚至连玩家自己也不知道要造多少战斗单位,只是根据战斗的实际情况来发展自己的势力。所以,这时候最合理的内存分配方式就是每造一个战斗单位分配一个内存空间。
然而,新问题又出现了:建造各单位的时间一般不可能是完全连续的,根据不同时刻程序运行的实际情况,每个单位分配到的内存空间也不是连续的了。空间不连续就意味着没有了方便的数组下标。我们就很难把这些零零散散的内存空间集中起来管理。
链表的出现改变了这个情况。它可以在程序运行时根据实际需要一个个分配堆内存空间,并且用它的指针可以把一系列的空间串联起来,就像一条链子一样。这样一来,我们就能够利用指针对整个链表进行管理了。

14 楼

就是啊,

这样学东西是比较快,
很形象,
我会经常来看看的,

15 楼

对于指针还有一些释放内存,或者由编写不当产生的迷失指针,
由此带来的后果和避免方法有必要说说啊 ~!~
还有你的文章好象只是陈述,
连一些格式都没有,
最好有一点小的程序,!~
说的不当的地方
见谅!~

16 楼

[quote]对于指针还有一些释放内存,或者由编写不当产生的迷失指针,
由此带来的后果和避免方法有必要说说啊 ~!~
还有你的文章好象只是陈述,
连一些格式都没有,
最好有一点小的程序,!~
说的不当的地方
见谅!~[/quote]
嘿嘿,我这里给出的可是部分节选哦,这些怎么可能是全部呢?也太少了吧……
迷失指针或忘记释放内存的后果是内存泄漏,系统变慢什么的我可都在书里写了哦……程序的话书里也有不少了,呵呵。
不过还是要谢谢楼上这位朋友帮顶!

17 楼

看了 写的真的不错

18 楼

感谢!很有用的东西!

19 楼


好像还不错,支持楼主

20 楼

对指针的理解很独创,顶了

我来回复

您尚未登录,请登录后再回复。点此登录或注册