第一篇 C++简介
目录
1、 简介
1.1、 为什么要编程?
1.2、 什么是C++和OOP?
1.3、 编程需要什么?
2、 第一个程序
2.1、运行一个C++程序
2.2、C++程序结构
2.3、注释
2.4、库
2.5、函数
2.6、流
2.7、返回
3、 数字系统
3.1、十进制
3.2、二进制
3.3、十六进制
4、 练习
4.1、练习1
4.2、练习2
4.3、练习3
5、 现在干什么?
5.1、优秀编程站点
5.2、优秀编程书籍
正文
1、 简介
1.1、 为什么要编程?
每一个人都有他自己编程的理由,但我可以告诉你编程是获取对于计算机和计算机技术深入理解的最好途径之一。学习编程可以使你懂得为什么计算机和计算机程序会以这样的方式工作。编程还会让你了解制作软件是多么的艰辛。
1. 2、什么是C++和OOP?
C++是C的一个扩充版本。C是于1978年在贝尔实验室诞生的。开发C的目的是为了创造一种可以在多种平台上使用的简单语言(比汇编和机器代码简单…)。后来在80年代早期C被扩充为C++用于创造一种面向对象的语言。O(bject,对象)O(riented,基于)P(rogramming,编程)是一种用类来构造程序的编程方式。类型标识符用以区分main函数及后继类。OOP在方法上,C++在实现上使编写极为复杂的图形应用环境(例如Windows,Macintosh…)成为可能。
1. 3、编程需要什么?
我想你需要一台计算机和一个编译器来开始你的旅途,此外你还需要一些促使你前进的催化剂——好奇心以及大量的时间。我猜(!?)你有一台电脑。在BORLAND公司的网站上你还可以找到各种各样的免费编译器(见3.1)。你有好奇心但没有好好坐下来读书的时间,那你就尽量一有时间就读书。有一本优秀的C++的书也能帮你不少忙(而且对你的眼睛也有好处)。千万要记住:任何指南、书籍、程序或者课程都不可能使你在5天之内成为程序员。只有你才能使你成为程序员。任何编译器都不可能为你写一个完整的程序。程序是你写的。
2、 第一个程序
2.1、 运行一个C++程序
一个C++程序只有在编译和链接之后才能在计算机上执行或运行。各种各样的编译器自动帮你完成这项工作。那什么是编译器?编译器是一个把C++代码翻译成机器语言的程序。机器语言是一种由0和1组成的语言,它是计算机的“母语”。一个典型的C++程序被称为源代码,相应地编译后的代码被称为目标代码。
在目标代码执行前,它必须和其他一些在程序中用到的代码(如程序中包含的库)链接。这样,编译和链接后的程序就称为可执行文件。最后,这个程序就被系统执行。执行后的输出结果在窗口中显示。
2.2、 C++程序结构
所有的C++程序都包含有指挥计算机工作的语句(命令)。下面是一个简单的C++程序范例:
/* 来自 Code.box.sk
We own you 程序 */
#include <iostream.h>
int main()
{
cout<<"We own you"; // 第一个语句
return(0); // 第二个语句
}
运行这个程序,它应该显示:
We own you
由此,一个简单的C++程序结构为:
*****************************************************
* /* 注释 : 程序的名称和目的
* 你的名字、日期等 */
*
* #include <librarynames.h>
*
* int main()
* {
* statements; // 注释
* return(0);
* }
******************************************************
下面我们将对这个结构做一个更深入的了解。
2.3、注释
注释用来向读者解释程序的内容,而计算机将忽略它们。“/*”和“*/”用于标识多行注释的开始和结束。“//”也用于注释中,“//”后所有的字符将被当作注释并忽略(一行)。绝大多数的新手会认为注释只是浪费时间。很抱歉,这种观点是错误的。注释非常重要,因为它能使你的代码被其他程序员所理解以及使得改进程序和纠错显得方便。几个月后,在你试图解释你所写的一百页代码时,你对此会有一个更深刻的理解。
2. 4、库
再看刚才提到的那个程序范例。在开头的注释之后是:
#include <iostream.h>
这一行简单地告诉计算机程序里需要iostream库,所以它应该被包含进来。库是一个可以在用户程序中被用来进行各种各样操作的程序集合。iostream是一个库(也叫做头文件),用于执行输入输出(I/O)任务。在code.box.sk里你可以找到许多由废寝忘食的高手们编写的用以实现各种各样用途的非商业性目的的C++库。
2. 5、函数
接下来的一行是:
int main()
这是函数的声明部分。函数是用于完成一个任务的一些列语句的集合。函数声明包括函数名和函数返回值。正如声明所示,main函数通过return(0)返回一个整数值。同样,所有声明为整型的函数都必须返回整型值。显而易见,函数(在这里是main函数)以花括号结束。“{”和“}”代表函数体的开始和结束。以后我们将更深入地探讨函数。
2.6、流
什么是流?在C++里,输入/输出设备被称为流。cout(我们上面用到的)是c(onsole,控制台)out(put,输出)流,而发送(插入)运算符被用来向流发送“We own you”数据。在第一个语句:
cout<<"We own you";
在“<<”运算符之后用引号括起来的字符形成一个字符串。当程序运行的时候,“We own you”就被送到控制台输出设备。对,它也叫计算机屏幕。
!注意:C++是区分大小写的。也就是说cout和Cout是不同的。
2.7、返回
第二个语句是:
return(0);
用以使程序结束运行并发送返回值0给计算机。“0”代表程序正常结束。
!注意:语句用一个“;”结束。在C++ 中分号意味着语句的结束。
3. 数据系统
3.1、 十进制
基数为10的数字系统。用10个数字表示:0到9。任何数字的加权0等于1。例如:5加权0=1。以基数10和加权表示的数字:
2600:2*(10加权3)+6*(10加权2)
33:3*(10加权1)+3*(10加权0)
3.2、 二进制
基数为2的数字系统。用2个数字表示:0和1。工作原理和十进制一样,只不过基数是2而不是10。例如:
110:1*(2加权2)+1*(2加权1)=6(十进制)
3.3、 十六进制
基数为16的数字系统。用16个数字表示:0到9和“A”到“F”。工作原理和十进制一样,只不过基数是16而不是10。例如:
1B:1*(16加权1)+B*(16加权0)=27(十进制)
4. 练习
4.1、 运行
获取一个编译器并安装,然后输入上面那个范例程序并运行。请注意语法结构!
4.2、 编程
不看范例程序,你自己编一个可以显示你的姓名的程序。请注意不要看范例程序,这对你很有好处。
4.3、 转换
二进制转换成十进制:110101、001101、10101110
十进制转换成十六进制:234、324、19394
十六进制转换成二进制:2F、1B3、234、125
5. 现在干什么?
5.1、 优秀编程站点
http://code.box.sk --> 内容丰富
http://www.borland.com --> 免费、共享和商业性编译器
http://www.cprogramming.com --> Some original tuts
http://www.planet-source-code.com --> 源代码极为丰富
5.2、 优秀编程书籍
——》A Guide to Programming in C++(C++程序设计指南)
我的第一本关于C++的书(从那儿“借”了不少定义)
——》C-How to Program(C程序设计)
关于C程序设计的最好的书籍之一。对所有层次的程序员都大有裨益。
——》在线书籍
你可以在code.box.sk上找到许多在线书籍。Think in C++(C++编程思想)应该是最好的一本,必读!
第二篇 I/O和变量
目录
1、 简介
5.3、 这一篇讲什么?
5.4、 需要作什么准备工作?
2、 控制台输出(cout)
2.1、忽略字符
2.2、基本运算
3、 变量和常量
3.1、什么是变量?
3.2、数据类型
3.3、整形(int)和长整形(long)
3.4、双浮点型(double)
3.5、字符型(char)
3.6、常量
4、 控制台输入
4.1、怎么做?
4.2、范例程序
5、 练习
5.1、求面积
5.5、 爱因斯坦公式
正文
1、 简介
1.1、 这一篇讲什么?
在这一篇(绝对是为初学者度身定制的)里,你可以学到如何从用户那儿获取数据并使用它们。你并需要太多的C++语言基础。
1.2、 需要做什么准备工作?
请先阅读C++快速入门的第一篇“C++简介”。你还需要一个C++编译器。如果你没有读过C++快速入门的第一篇,你可以在code.box.sk C/C++部分找到它。我建议你不要复制和粘贴这些代码,相反你应该尝试着自己写,那可以让你对于语法有更深刻的理解。
2、 控制台输出(cout)
2.1、转义字符
要显示我们自己的名字,可以这样写:
cout<<"Bill Gates";
但如果我们需要显示:
My name is "Bill"
怎么办呢?这似乎有些困难,因为在cout语句中双引号代表一个字符串的开始和结束。例如“that is a string”是不可能在屏幕上显示双引号的。“\”被用来解决这个问题,这样,如果你需要显示:
My name is "Bill"
你可以这样写:
cout<<"My name is \"Bill\""
转义符号的作用
——————————————————
\n ——》 换行
\" ——》 输出双引号
\' ——》 输出单引号
\\ ——》 输出反斜杠
\t ——》 跳格(移动8格)
\a ——》 警告(发出“嘟”的声音)
2.2、基本运算
要用cout显示数字无需加双引号,例如:
cout<<"A Number: "<<2600<<endl;
!注意:在每一项的左边都需要一个“<<”。
你还可以在cout中实现简单的运算,例如:
cout<<"Total Money: "<<((5*34)+(5*17))<<endl;
运算符作用
————————
+ ——》 加法
- ——》 减法
/ ——》 除法
* ——》 乘法
% ——》 取模
3、 变量
3.1、什么是变量?
定义:变量是一个用于存放数据的命名内存地址。太晦涩?其实变量可以被形象的比喻为一个空瓶子。这个空瓶子可以被用户和程序员装填。在使用变量前必须先定义它的类型和标识符。变量的类型指示这个变量可以存放什么数据。各种不同的数据类型将在3.2中讨论。变量的标识符其实就是变量的名字。请看下面这个例子:
int counter;
这个例子定义了一个用于存放整形(int)数据并且名字为“counter”的变量。变量用于存放数据。对一个变量你可以这样赋值:
counter = 35;
其中的等号代表赋值,它的效果就是把35存放到存储器中名字为“counter”的单元中去。在4.2有一个范例程序详细介绍了变量的作用。
3.2、数据类型
程序员可以定义自己的数据类型,同时C++也提供了一些预先定义好的类型。让我们先来了解一下这些C++自带的数据类型:
类型说明
————————————————————————
双浮点型(double):1/(10*308) to 10*308 (+ or -)
整型(int):-32,767 to +32,767
长整型(long):-2,147,483,647 to +2,147,483,647
字符型(char):所有可打印和显示的字符
接下来,让我们一个一个的来。
3.3、整型(int)和长整型(long)
整型和长整型用于存放正的或负的整数。整型和长整型唯一的区别是存放数据的范围不同。如果将一个小数存放在一个整型变量中,则小数部分将被截去。
3.4、双浮点型(double)
双浮点型用于存放正的或负的实数。当我们显示非常大或非常小的数字时,计算机将使用科学计数法。
3.5、字符型(char)
字符型用于存放一个字符。字符包括所有可以显示的字符,如数字,字母和符号:^+#$~@2çþ 等。例如:
char iamachar;
iamachar = 'C';
cout<<iamachar<<
显示为C。
3.6、常量
常量用在一个变量语句前加“const”实现。例如:
const double pi = 3.14159;
这样,在整个程序的运行期间,标识符pi将代表3.14159。它不能被赋值因为它是常量。试图改变一个常量的值将导致编译错误。
4、 控制台输入(cin)
4.1、怎么做?
当用户可以程序进行交互操作时,程序将变得更有用。控制台输入暂停一个程序并允许用户输入数据为变量赋值。例如:
cin>>counter;
这个语句使得程序等待用户输入一个数据为变量counter赋值。cin和cout一样都属于iostream库,但cin时控制台输入流。“>>”被称为“获取运算符”或“提取运算符”,用于从输入流中得到数据。
4.2、范例程序
下面是一个示范变量和cin用法的范例程序:
/* 来自 code.box.sk
Mp3 评价程序 */
#include <iostream.h>
int main()
{
int rate; // rate变量的定义
cout<<"Please rate Jotun by entering a number between 1-5 :";
cin>>rate; // 从用户处得到评价
cout<<"You gave jotun "<<(rate*20)<<" percent";
return(0);
}
首先用户被要求对于Jotun的mp3输入一个在1到5之间的等级,然后这个等级将被转化为百分制并显示。
5、 练习
5.1、求面积
编一个根据用户输入的半径求圆面积的公式。如果程序不能正常工作,请仔细检查语法。
5.2、爱因斯坦公式
根据用户自定义的质量和爱因斯坦公式e=mcc来计算可以释放的能量。