1.1 C++的起源
(1)1967年,BCPL语言
Martin Richards为编写操作系统软件和编译程序开发了BCPL语言(Basic Combined Programming Language);
(2)1970年,B语言
Ken Thompson在继承BCPL语言的许多优点的基础上开发了实用的B语言;
(3)1972年,C语言(编UNIX操作系统)
贝尔实验室的Dennis Ritchie在B语言的基础上,作了进一步的充实和完善,开发出了C语言。C语言具有许多优点,比如语言简洁灵活;运算符和数据类型丰富;具有结构化控制语句;程序执行效率高;同时具有高级语言和汇编语言的优点等。与其他高级语言相比,C语言具有可以直接访问物理地址的优点,与汇编语言相比又具有良好的可读性和可移植性。因此,C语言得到了极为广泛的应用。
(4)1980~1983年,C++(C Plus Plus)
C语言是一种面向过程的编程语言,不能满足面向对象开发软件的需要。为支持面向对象的程序设计,1980年由贝尔实验室的Bjarne Stroustrup创建了C++程序设计语言,C++的重要目标就是面向对象的程序设计,因此在C++中引入了类的机制。1983年正式命名为C++(C Plus Plus)。以后经过不断完善,形成了目前的C++。
当前运用得较为广泛的C++有Microsoft公司的Visual C++(简称V C++)和Borland公司的Borland C++ (简称BC++)。本书以Microsoft Visual C++ 6.0集成环境为例介绍C++语言。
1.2 C++的特点
C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序设计方法。
(1)全面兼容C语言
C++是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。这对于继承和开发当前已在广泛使用的软件是非常重要的,可以节省大量的人力和物力。
(2)支持面向对象
C++是一种面向对象的程序设计语言。它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。
1.3 简单C++程序
C++集成环境支持C++程序与C程序的编译和调试,C++集成环境约定:
(1)源程序文件扩展名为.c时,则为C程序;
(2)源程序文件扩展名为.cpp时,则为C++程序。
本书中,所有例题程序的文件扩展名均为.cpp。
【例1.1】 文本的原样输出。文件名为example1_1.cpp。
//文本原样输出程序
#include <iostream.h>
void main(void)
{ cout<<"Welcome to C++!/n";
}
该程序经编译和连接后,运行可执行程序时,在显示器上显示:
Welcome to C++!
【例1.2】 求两个整数的和。
/*求两个整数的和程序*/
#include <iostream.h>
void main(void)
{ int x,y,sum; //说明变量x,y,sun为整型数
cout<<"Input first integer:"; //显示提示信息
cin>>x; //从键盘上输入变量x的值
cout<<"Input second integer:"; //显示提示信息
cin>>y; //从键盘上输入变量y的值
sum=x+y; //求和
cout<<"Sum is "<<sum<<endl; //输出结果
}
该程序经编译和连接后,运行可执行程序时,在显示器上显示:
Input first integer:5
Input second integer:4
Sum is 9
该程序中的语句:int x,y,sum; 用来说明变量x、y、sum为int(整型)变量。程序中的语句:sum=x+y; 是一个赋值语句,表示将x和y的值相加,其结果送给变量sum。在“/*”和“*/”之间的部分也表示注释。“endl”是换行符,相当于“/n”。
【例1.3】 输入两个整数a和b,输出其中较大的一个数。
#include <iostream.h>
void main(void)
{ int max(int x,int y);
int a,b,m;
cout<<"Input a,b:";
cin>>a>>b;
m=max(a,b);
cout<<"max="<<m<<endl;
}
int max(int x,int y)
{ int z;
if (x>y) z=x;
else z=y;
return(z);
}
该程序经编译和连接后,运行可执行程序时,在显示器上显示:
Input a,b:3 5
max=5
该程序由两个函数组成:主函数main()和被调用函数max()。函数max()的作用是找出x和y中的较大者,并通过return语句返回给主函数。主函数用来输入两个变量a和b的值,调用max函数找出其中的较大者,并输出结果。
通过以上例题,可以看出C++程序的结构有以下特点:
(1)C++程序由一个或多个函数组成(即函数是C++程序的基本构成单位)
其中至少有一个主函数main(),程序从主函数开始执行,由主函数来调用其他函数。被调用的其他函数可以是系统提供的库函数,也可以是用户自定义的函数。例如,例1.3的C++程序就是由主函数main()和用户自定义函数max()组成的。
(2)C++函数组成
① 函数说明部分:函数名、函数类型、函数参数(形式参数)及其类型
函数类型为函数返回值的类型。
② 函数体{}:变量定义和执行语句两部分。
在某些情况下可以没有变量定义,甚至可以既无变量定义又无执行语句(即空函数)。例如:void dump(void )
{ }
(3)语句和数据说明以分号结束
分号是C++语句的必要组成部分。例如:int z; 又例如:return(z);
(4)程序书写规则
① 同一层语句同列书写。同一层次的开花括号必须与对应的闭括号在同一列上。
② 内层语句缩进两个字符的位置。
③ 函数定义第一列书写。
(5)C++输入/输出通过流cin和cout来实现的
例如: cin>>a>>b;
用来输入变量a和b的值。又例如:
cout<<"max="<<m<<endl;
用来输出变量m的值。
(6)严格区分字母的大小写
例如:int a,A; 表示定义两个不同的变量a、A。
(7)注释
① /* 注释内容 */
② // 注释内容
它表示从此开始到本行结束为注释内容。例如://说明变量x,y,sun为整型数
(8)编译预处理命令
以“#”开头的行称为编译预处理命令。例如:#include <iostream.h>
表示本程序包含有头文件iostream.h。
以上所述的有关函数、输入/输出流等概念将在以后的章节中详细介绍。
讲述方法:采用边讲例题、边归纳总结上述C++程序结构特点的讲课方法。
本章小结
C++程序的基本结构
1.C++程序通常由一个或多个函数组成,函数是构成C++程序的基本单位。C++程序中至少要包含一个主函数main(),一个C++程序总是从主函数开始执行的。
2.C++的函数由函数的说明部分和函数体两部分组成。
(1)C++中每个语句和数据说明必须以分号结束,分号是C++语句的必要组成部分。
(2)C++语言没有专门的输入/输出语句,输入/输出操作是通过输入/输出流cin和cout来实现的。
(3)程序的书写必须规范,以便于程序的阅读、修改和相互交流。
(4)在C++中,严格区分字母的大小写。
(5)在C++程序的任何位置处都可以插入注释信息。
作业
1.1 简述C++语言程序的结构特点。
1.3设计一个C++程序,输出以下信息:
***************
Hello!
***************
1.4设计一个C++程序,输入三个学生的成绩,求其总成绩。
1.5设计一个C++程序,输入a、b二个整数,输出其中的最小数。