主题:写了2年的初学者C++基础教程,今天终于出版了《易学C++》
p1s
[专家分:4100] 发布于 2006-11-27 08:42:00
[img]http://www.tomatostudio.net.cn/images/front2ss.jpg[/img]
[size=3][color=FF0000]本书已交由人民邮电出版社出版发行。[/color]
[b][size=4][color=0000FF]购买《易学C++》网址:[url]http://www.china-pub.com/39862[/url],欢迎大家捧场![/color] [/size][/b]
前 言
高级语言程序设计是各大院校计算机专业的一门专业基础必修课,主要是学习一些程序设计的基础知识和基本思路。学好高级语言程序设计对后继的一些数据结构、软件工程等课程有着重大的影响。而如果一名计算机专业的学生将来想在软件行业有所发展,也需要有着扎实的高级语言程序设计基础。因为高级语言是众多计算机语言中使用最多的。
然而,由于中学里的一些学习问题,各中学毕业的学生在计算机水平方面良莠不齐,有些甚至连一点点程序设计的基础也没有。到了大学里,老师们却因为课时紧张,难以把一些很基本的知识很详细地给学生们解释清楚,以至于日积月累之后,学生们还是觉得什么都不懂。于是,如何能够提高学生的专业水平,更快地把大家领进计算机的世界就显得尤为重要。
本书作者自幼接触并自学了BASIC语言,从初高中开始自学PASCAL语言和Visual Basic,对如何学习和掌握高级语言有一些自己的想法,在帮助一些没有程序设计基础的同学更快入门有一些自己的方法。于是就把这些想法和方法一一罗列出来,编著成书。
学习程序设计是一个循序渐进的漫长过程,在短短的几个学期内是不可能很好地掌握的。在学习过程中要求精求全实在是很有难度。而且
对初学者来说,知道得越多往往就越是迷茫。所以本书将其他教材中一些不常用的知识和原来的一些C语言的知识删去,添加了一些平时常用的算法介绍和一些可能和后继课程有部分关联的知识,以帮助大家更快地掌握高级语言程序设计的精髓。
本书作者也只是一名普通的大学生,在考虑一些非常专业的问题上可能尚有欠缺。而且由于时间较为仓促,书中难免有一些错误或不合理的地方,希望各位高人能够不吝赐教。如果您对本书有什么建议或者意见,请发送邮件到tomatostudio@126.com。
使用指南
本书主要是依照计算机本科专业的实际教学需要来编排内容的。虽然内容的条理可能不及某些专业的C++工具书那么清晰,但是这样的次序让初学者比较容易上手。毕竟那些工具书是面向一些已经掌握C++或有较高的高级语言程序设计基础的读者。编写此书的主旨就是不要一下子把什么都说出来,而是一点一点循序渐进地增长读者的能力。这样,读者就不会一下子被那么多难以接受的概念吓住,以至于失去了继续学习的信心。
本书的主要论述对象是Microsoft Visual C++,对于以前的C语言和Borland的C++不作讨论,以免初学者把各种语言的概念混淆起来,也有效降低了学习的压力。对于一些VC++中存在却不常用的内容,本书一般一笔带过或不予提及。因为这些内容在应试方面不作要求,在实际使用上也可以由其他方法代替。但是,如果你是一位初学者,那么就请务必要看到本书的每一个角落。你所遗落的一句话就有可能是一个知识的关键点。
本书的内容有四个特点:
1、粗体字:读者必须掌握理解的内容,也是每个知识点的精髓或要点。很多初学者容易犯的错误也在粗体字中予以提醒。
2、试试看:把一些可能与一般情况不符甚至矛盾的情况列举出来,鼓励读者上机试验,以得到深刻的结论。这些结论可能对以后的学习有所帮助。所以建议所有有条件的读者务必去试试看。对于没有条件的读者,则需要牢记本书给出的结论。
3、算法时间:向大家介绍一些程序设计的常用算法。其实很多时候一个程序就是把这些算法以不同形式搭建起来。能够掌握这些算法不论是对阅读别人的代码还是自己设计程序都有着很大的帮助。
4、习题:帮助大家巩固已经学习的知识。有些题型则是符合应试的要求。从难度上来说,都算适中。如果读者已经掌握了章节中的知识,那么做这些习题也不会有什么困难。
本书的定位是C++程序设计的教学辅导书,而不是C++的工具书或语法书。如果你想要了解更多深层的内容,请查阅C++的专业工具书。
如果大家感兴趣,可以到[url]http://www.tomatostudio.net.cn[/url]查看。
QQ:149883760
E-mail:tomatostudio@126.com
MSN Space:http://spaces.msn.com/members/OOTTMA/
希望能够结交高手。
最后更新于:2008-05-09 17:20:00
回复列表 (共61个回复)
沙发
superlcr [专家分:2300] 发布于 2005-12-10 18:20:00
不错不错
板凳
一个好人 [专家分:30] 发布于 2005-12-10 19:45:00
说句心理话 真的非常感谢你啊
我是一个还没入门的初学者~你的资料无易于雪中送碳
再次的说非常感谢你
将来我学成了 也会为咱们编程的朋友做一点自己应有的贡献
3 楼
p1s [专家分:4100] 发布于 2005-12-19 11:21:00
内容节选
在日常生活中,我们经常会用到工具。比如我们画一个表格需要用到直尺,它可以告诉我们线段的长度;我们开瓶子的时候需要用开瓶器,它可以把瓶子打开;我们在做计算题的时候需要用到计算器,它能够告诉我们计算结果。
使用工具有些什么好处呢?首先,如果这个工具是现成的话,我们就可以不必要自己去做一个这样的工具,直接拿来就能用(比如开瓶器、计算器)。其次,不管是现成的工具,还是自己做的工具(比如自己做的直尺),一定是能够多次反复使用的(比如直尺不是用完一次就不能再用的),而且是能够在各种合适的情况下使用的。(直尺在量程范围内能量这条线段的长度,也能够量那条线段的长度。)
在程序设计中,我们也会有各种各样的“工具”。你告诉比较大小的“工具”两个不相等的数,这个“工具”能够告诉你哪个数大;你告诉求正弦值的“工具”一个弧度,这个工具能够求出这个弧度对应的正弦值等等……这些工具的名字就是函数(Function)。要注意,在程序设计中的函数和数学中的函数有相似的地方,但是它们却完全是两码事,请不要将两者等同起来。
函数和工具的性质是一样的。如果有一个现成求正弦值的函数,我们就不必自己去“造”一个这样的函数。求正弦值的函数是可以多次使用的,并且可以求出任意实数的正弦值(合适的情况下),但是它却求不出一个虚数的正弦值(不合适的情况下)。
在第一节,我们已经知道使用工具的好处,即可以重复使用和在各种适用情况下使用。函数和工具一样具有这些好处。但是除此以外,函数的存在还有着其他的意义。
一、现在要设计一个“学生信息处理程序”,需要完成四项工作,分别是记录学生的基本情况、学生成绩统计、优秀学生情况统计和信息输出。如果我们把四项工作全都写在主函数里面,那么我们就很难分清那一段代码在做什么。多层次的缩进和不能重复的变量名给我们阅读程序带来了困难。
如果我们为每一个功能编写一个函数,那么根据函数名每个函数的功能就很清晰了。如果我们要修改某一个函数的功能,其他的函数也丝毫不会受到影响。所以,函数的存在增强了程序的可读性。
二、需要设计一个规模很大的程序,它有几千项功能,把这些功能都编写在一个主函数里就只能由一个人来编写,因为每个人解决问题的思路是不同的,而且在主函数中的变量名是不能重复的,只有编写者自己知道哪些变量名是可以使用的。这样一来,没有一年半载,这个程序是无法完成的。
如果我们把这几千项功能分拆为一些函数,分给几百个人去编写,那么用不了几天时间这些函数就都能够完成了。最后用主函数把这些完成的函数组织一下,一个程序很快就完工了。所以,函数能够提高团队开发的效率。它就像把各个常用而不相关联的功能做成一块块“积木”。完成了函数的编写,编程就像搭积木一样方便了。
以上一些内容都是该书的节选。本书摒弃直接使用专业的术语,而是以形象的比喻来介绍程序设计中的内容,比如把变量比作箱子,把分支语句比作开关等等。对没有程序设计基础的同学来说,也能够轻松地看懂。另外,本书也注重提高读者的实际能力,在书中穿插讲述一些常用的小算法和小技巧,避免以前有些学生看得懂书却写不来程序的情况
4 楼
p1s [专家分:4100] 发布于 2005-12-23 23:50:00
第五章内容简介
这章讲述的是循环结构。和钱能老师的教材不一样,我先来讲述for语句,并且把循环结构和赛车F1结合了起来,相信看过赛车的人应该都能看懂什么是循环语句了。其中还有一些编程小技巧,诸如控制变量和循环所要完成的工作的关系等等……希望大家多提宝贵意见!
5 楼
yoyoyozan [专家分:310] 发布于 2005-12-24 19:32:00
等你出版后我第一个买.
6 楼
p1s [专家分:4100] 发布于 2006-01-07 00:34:00
第六章写好了,函数一直是初学者比较难以理解的一部分,不知道我这样写大家是不是能理解。如果觉得还是不太懂,欢迎大家提出来,我再想办法改进。还有如果哪位高手觉得我的理论或者语言有问题,也欢迎捉虫!地址在顶楼。
谢谢大家的支持!
7 楼
superlcr [专家分:2300] 发布于 2006-01-07 14:55:00
建议作者按 ANSI C++ (C++标准编写),让读者养成好的习惯是至关重要的,比如
a)C++ 标准(ANSI C++) 要求 main 必须声明为 int 型。建议楼主写书的时候遵守这一规定,以免在严格遵循 C++ 标准的编译系统(如 Dev-C++)中不通过。只要记住:在 main 前面加 int ,同时在 main 函数的最后加上一条语句 return 0; 即可。
即
int main()
非
void main()
b)内部头文件建议用 #include <iostream>的形式,其它头文件用 #include "mine.h"的形式
c)if switch for和while在只有一个语句的时候不必加 { },这会使程序变得繁琐,建议作者教会读者怎样用这种形式:
if(条件)
语句;
else
语句;
switch(表达式)
{
case 条件1:语句1;break;
case 条件2:语句2;break;
...
default: 语句 n;
}
不过总的来说,通俗易懂,还是很佩服楼主!
8 楼
p1s [专家分:4100] 发布于 2006-01-07 16:49:00
关于主函数的问题,我也查阅了资料,知道这个标准问题。可是考虑到很多同学在使用钱能老师的书,里面的主函数都使用void,所以一下子改过来还比较难以接受……这个我再斟酌一下。关于<>还是""我也想说明,可是就简单而言,""是万用的,<>是标准的。在后面详细介绍头文件的时候我会说一下。最后那个问题,我个人觉得虽然括号多了程序会很长,但是可能就缩进和匹配来说会比较容易一些。否则语句一多就容易看花眼。这个问题我也再研究一下,看看如何解决。
谢谢楼上的诸多建议!谢谢支持!
9 楼
p1s [专家分:4100] 发布于 2006-01-21 08:10:00
第七章完成!
节选:
我们知道,在程序设计中,大多数数据都是存放在变量里的。如果我们要处理较多的数据,增加存放数据的空间最简单的方法就是多开设一些变量。然而,变量多了就难以管理了。这就好像一个班级里的学生名字有长有短,即使没有重复的名字,要在一长串名单里找到一个同学的名字也不是件容易的事情。于是,最方便的方法就是给同学们编上学号了,把名单按学号排列好以后,查找起来只要找学号就可以了。因为数字的排列是从小到大的,是有序的,所以查找起来要比在一堆长短不一的名字中查找要方便多了。
我们受到“学号”的启发,可以给变量也编一个号,把存储着相关内容的变量编在一组内,这就称为数组(Array)。
我们知道变量和数组都是放在内存里的,我们有时候还能够听到内存地址(Address)这个词。那么地址究竟是什么意思呢?
其实在内存里,就像是许许多多的街道,每条街道有它的名字,而街道上的每幢房子又按顺序地编了号,于是街道名和房子在街道上的编号就能确定内存中唯一的一幢房子,我们在这里认为所有的数据在内存中都是放在房子里。电脑就是依照这个原理找到所要的访问或修改的数据的。街道名和房子在街道上的编号就称为这个房子的地址。
那么这些内存中的房子和我们所说的变量和数组是什么关系呢?在内存里的房子的大小是规定的,每幢房子只能存储一个字节(Byte)的数据。(一个字节相当于一个半角的英文字母,一个汉字需要占用两个字节。)有时候,一种类型的变量需要比较大的空间,比如一个浮点型的实数,一幢房子是放不下的,而是需要4幢房子的空间才能放得下。于是电脑就把连起来的4幢房子拼起来,每幢房子放这个实数的一部分数据。而这连起来的4幢房子,构成了一个能够存放浮点型实数的变量。
什么时候要用二维数组呢?一般有两种情况,一种是描述一个二维的事物。比如用1表示墙,用0表示通路,我们可以用二维数组来描述一个迷宫地图;用1表示有通路,0表示没有通路,我们可以用二维数组来描述几个城市之间的交通情况。还有一种是描述多个具有多项属性的事物。比如有多个学生,每个学生有语文、数学和英语三门成绩,我们就可以用二维数组来描述。
10 楼
p1s [专家分:4100] 发布于 2006-01-26 23:51:00
第八章讲述的是如何阅读代码。本来按照安排应该写指针和结构的,考虑到我校学生都放假,而且开学后不久就要考试,还是及早写一些有用的东西。等到阅读代码和调试写完以后,我会再回到前面写指针和结构。
在阅读代码中,主要介绍整体把握法、经验法和模拟法三种常用方法来读懂代码,对一些初学者来说,阅读了这一章可能对读代码有一些新的认识。
另考虑到pdf文件中的程序代码无法复制出来,而且手工输入有很麻烦,现在考虑过几天把代码文件都打包发上来,请需要的朋友记得关注一下。
我来回复