第 2章 C++基础第 2讲 C++的基础
教学目的与要求:
了解 C++的产生和特点 。
掌握 C++源程序的构成和与在非面向对象方面的特征 。
教学内容提要:
1,C++语言的产生和特点;
2,C++源程序的构成;
3,C++在非面向对象方面的特征;
教学重点,C++源程序的构成和与在非面向对象方面的特征 。
教学难点,C++在非面向对象方面的特征 。
教学进度,P17~ P23
教学过程:
2.1 C++的产生和特点
2.1.1 C++的产生
C++是美国贝尔实验室于 1980年开发出来的一种过程性与面向对象性结合的程序设计语言 。 最初他把这种新的语言叫做,含类的 C”,
到 1983年才取名为 C++。
2.1.2 C++的特点
(1) C++保持与 C兼容 。
(2) 用 C++编写的程序可读性更好,代码结构更为合理,可直接地在程序中映射问题空间的结构 。
(3) 生成代码的质量高,运行效率仅比汇编语言代码段慢 10%到 20%。
(4) 从开发时间,费用到形成的软件的可重用性,
可扩充性,可维护性和可靠性等方面有了很大的提高,使得大中型的程序开发项目变得容易的多 。
(5) 支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。
2.2 C++程序的结构特性
2.2.1 一个简单的 C++示例程序例 2.1
#include<iostream.h>
void main()
{
cout<<″This is my first C++ program!\ n″;
}
是一条预处理指令,指示编译器将文件 iostream,h中的代码嵌入到程序中该指令所在之出。
定义了一个 main()的函数。
函数名表示该函数没有返回值。它是程序中的开始执行点。
包括了该函数的全部内容。
括号中的内容被称作函数体,它是由一系列 C++
语句组成,这些语句描述了函数的功能实现。
程序的主要部分。
在 C++语句中必须以“;”
结尾。
告诉 cout在输出:
This is my first
C++ program!后换行。
用来向显示器输出数据。 表示将,<<”号后的数据在显示器上显示出来,这里是一个字符串。
例 2.2 两数相加
// sum.cpp
#include<iostream.h>
int add(int a,int b); // 函数原型说明
int main() // 主函数
{ int x,y,sum; // 定义三个整型变量
cout <<? Enter two numbers:? <<?\n?; // 界面,提示用户输入两个数
cin>>x; // 从键盘输入变量 x的值
cin>>y; // 从键盘输入变量 y的值
sum=add(x,y); // 调用函数 add,将得到的值赋给变量 sum
cout<<?The sum is:?<<sum<<?\n?; // 输出两个数的和 sum的值
return 0
}
int add(int a,int b) // 定义 add函数,函数值为整型
{ int c; // 定义一个整型变量
c=a+b; // 计算两个数的和
return c; // 将 c的值返回,通过 add带回调用处
}
2.2.2 C++程序的结构特性类的声明部分面向对象程序类的使用部分例 2.3 典型的 C++程序结构
#include<iostream.h>
// 类的声明部分
class A{
int x,y,z; //类 A的数据成员声明
fun(){? } //类 A的成员函数声明
};
// 类的使用部分
int main()
{
A a; // 创建一个类 A的对象 a
a.fun(); // 给对象 a发消息,调用成员函数 fun()
return 0;
}
2.2.3 C++程序的编辑、编译和运行
C源程序文件扩展名为,C,而 C++源程序文件扩展名为,CPP。
在 DOS下,C++程序的编辑,编译及运行方法和过程与 C语言基本一样,如 Turbo C++或
Borland C++都有带 C和 C++两种编辑器,当源程序文件扩展名为,C时,启动 C编译器,当源程序文件扩展名为,CPP时启动 C++编译器 。
在 Windos下,我们常用 Visual C++开发环境,
来编辑、编译和运行 C++程序。
2.3 C++在非面向对象方面的扩充
2.3.1 注释与续行以下两条语句是等价的,
x=y+z; /* This is a comment */
x=y+z; //This is a comment
/***********************************
This program adds two integers that are
entered by us,then writes the sum to screen
***********************************/
#include<iostream.h>
void main()
{
int x,y,z; //x,y,z are integer
cout<<″Please input two integers:″;
cin>>x>>y; //enter x,y
cout<<″x=″<<x<<″y=″<<y<<endl; //writes x,y to screen z=x+y;
cout<<″x+y=″<<z<<endl; //writes the sum to screen
}
1.标准输出流标准输出流 cout使用流插入运算符,<<”将文本或所有预先定义类型的数据重定向输出到屏幕。
例如,int a=2;
float b=3.8;
cout<<“a=”<<a<<“,”<<“b=”<<b<<endl;
结果,a=2,b=3.8
2.标准输入流标准输入流 cin和流提取运算符 >>,将键盘中输入的数据送到流提取符右边的变量中保存起来。
例如,int i;
double d;
cin>>i>>d;
语句 cin>>i>>d;的读法为:从输入流 cin中分别提 取 i和 d的值 。
2.3.2 输入输出流例 2.4 一个完整的 C++程序。
#include<iostream.h>
void main()
{
int x,y,z;
cout<<″Please input two integers:″;
cin>>x>>y;
cout<<″x=″<<x<<″ y=″<<y<< endl ;
z=x+y; cout<<″x+y=″<<z<<endl;
}
Please input two integers,
x = 1 y = 2
x + y = 3
输入两个整数 1和 2,
之间以空格符分隔,
输出结果如下:
在程序中的作用等同于,\n”,不过,\n”是 C语言的换行符,在
C++语言中保留。
“int”说明数据 x,y,z
是整数,有关整数
,int”的使用,本章稍后将有说明。
(2) 变量和流提取运算符在一起使用时不需要象 scanf()函数那样在变量的前面加上地址运算符 &。
注意:
(1) 流提取运算符和流插入运算符不需要指示输入 /输出数据类型的格式控制串和转换说明符,运算符能够自动识别要用的类型。
(3) C++程序必须包含头文件 iostream.h后才能使用输入 (cin)/输出 (cout)流。若使用 scanf()和 printf()函数进行输入 /输出,则应包含头文件 stdio.h
(4)标准的输出流的默认格式输出有时不能满足特殊要求,
用控制符对输出格式进行控制
2.3.3 灵活的变量说明
float fun(int x,int y) // 对形参直接进行说明
{
for (int i=0;i<10;i++) // 对循环变量 i进行说明
{
int sum=0; // 循环体内也可对变量 sum进行说明
sum=sum+i;
cout<<"sum="<<sum;
}
int z=0; // 使用变量 z时才说明它
z=x+y;
}
在 C中,程序块中的所有声明都必须出现在所有可执行语句之前,在 C++中,声明可以出现使用该声明内容之前的任何地方。
小结
C++的产生和特点 。
C++源程序的构成 。
C++在非面向对象方面的一些特征 。
作业
P45 2.2
教学目的与要求:
了解 C++的产生和特点 。
掌握 C++源程序的构成和与在非面向对象方面的特征 。
教学内容提要:
1,C++语言的产生和特点;
2,C++源程序的构成;
3,C++在非面向对象方面的特征;
教学重点,C++源程序的构成和与在非面向对象方面的特征 。
教学难点,C++在非面向对象方面的特征 。
教学进度,P17~ P23
教学过程:
2.1 C++的产生和特点
2.1.1 C++的产生
C++是美国贝尔实验室于 1980年开发出来的一种过程性与面向对象性结合的程序设计语言 。 最初他把这种新的语言叫做,含类的 C”,
到 1983年才取名为 C++。
2.1.2 C++的特点
(1) C++保持与 C兼容 。
(2) 用 C++编写的程序可读性更好,代码结构更为合理,可直接地在程序中映射问题空间的结构 。
(3) 生成代码的质量高,运行效率仅比汇编语言代码段慢 10%到 20%。
(4) 从开发时间,费用到形成的软件的可重用性,
可扩充性,可维护性和可靠性等方面有了很大的提高,使得大中型的程序开发项目变得容易的多 。
(5) 支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。
2.2 C++程序的结构特性
2.2.1 一个简单的 C++示例程序例 2.1
#include<iostream.h>
void main()
{
cout<<″This is my first C++ program!\ n″;
}
是一条预处理指令,指示编译器将文件 iostream,h中的代码嵌入到程序中该指令所在之出。
定义了一个 main()的函数。
函数名表示该函数没有返回值。它是程序中的开始执行点。
包括了该函数的全部内容。
括号中的内容被称作函数体,它是由一系列 C++
语句组成,这些语句描述了函数的功能实现。
程序的主要部分。
在 C++语句中必须以“;”
结尾。
告诉 cout在输出:
This is my first
C++ program!后换行。
用来向显示器输出数据。 表示将,<<”号后的数据在显示器上显示出来,这里是一个字符串。
例 2.2 两数相加
// sum.cpp
#include<iostream.h>
int add(int a,int b); // 函数原型说明
int main() // 主函数
{ int x,y,sum; // 定义三个整型变量
cout <<? Enter two numbers:? <<?\n?; // 界面,提示用户输入两个数
cin>>x; // 从键盘输入变量 x的值
cin>>y; // 从键盘输入变量 y的值
sum=add(x,y); // 调用函数 add,将得到的值赋给变量 sum
cout<<?The sum is:?<<sum<<?\n?; // 输出两个数的和 sum的值
return 0
}
int add(int a,int b) // 定义 add函数,函数值为整型
{ int c; // 定义一个整型变量
c=a+b; // 计算两个数的和
return c; // 将 c的值返回,通过 add带回调用处
}
2.2.2 C++程序的结构特性类的声明部分面向对象程序类的使用部分例 2.3 典型的 C++程序结构
#include<iostream.h>
// 类的声明部分
class A{
int x,y,z; //类 A的数据成员声明
fun(){? } //类 A的成员函数声明
};
// 类的使用部分
int main()
{
A a; // 创建一个类 A的对象 a
a.fun(); // 给对象 a发消息,调用成员函数 fun()
return 0;
}
2.2.3 C++程序的编辑、编译和运行
C源程序文件扩展名为,C,而 C++源程序文件扩展名为,CPP。
在 DOS下,C++程序的编辑,编译及运行方法和过程与 C语言基本一样,如 Turbo C++或
Borland C++都有带 C和 C++两种编辑器,当源程序文件扩展名为,C时,启动 C编译器,当源程序文件扩展名为,CPP时启动 C++编译器 。
在 Windos下,我们常用 Visual C++开发环境,
来编辑、编译和运行 C++程序。
2.3 C++在非面向对象方面的扩充
2.3.1 注释与续行以下两条语句是等价的,
x=y+z; /* This is a comment */
x=y+z; //This is a comment
/***********************************
This program adds two integers that are
entered by us,then writes the sum to screen
***********************************/
#include<iostream.h>
void main()
{
int x,y,z; //x,y,z are integer
cout<<″Please input two integers:″;
cin>>x>>y; //enter x,y
cout<<″x=″<<x<<″y=″<<y<<endl; //writes x,y to screen z=x+y;
cout<<″x+y=″<<z<<endl; //writes the sum to screen
}
1.标准输出流标准输出流 cout使用流插入运算符,<<”将文本或所有预先定义类型的数据重定向输出到屏幕。
例如,int a=2;
float b=3.8;
cout<<“a=”<<a<<“,”<<“b=”<<b<<endl;
结果,a=2,b=3.8
2.标准输入流标准输入流 cin和流提取运算符 >>,将键盘中输入的数据送到流提取符右边的变量中保存起来。
例如,int i;
double d;
cin>>i>>d;
语句 cin>>i>>d;的读法为:从输入流 cin中分别提 取 i和 d的值 。
2.3.2 输入输出流例 2.4 一个完整的 C++程序。
#include<iostream.h>
void main()
{
int x,y,z;
cout<<″Please input two integers:″;
cin>>x>>y;
cout<<″x=″<<x<<″ y=″<<y<< endl ;
z=x+y; cout<<″x+y=″<<z<<endl;
}
Please input two integers,
x = 1 y = 2
x + y = 3
输入两个整数 1和 2,
之间以空格符分隔,
输出结果如下:
在程序中的作用等同于,\n”,不过,\n”是 C语言的换行符,在
C++语言中保留。
“int”说明数据 x,y,z
是整数,有关整数
,int”的使用,本章稍后将有说明。
(2) 变量和流提取运算符在一起使用时不需要象 scanf()函数那样在变量的前面加上地址运算符 &。
注意:
(1) 流提取运算符和流插入运算符不需要指示输入 /输出数据类型的格式控制串和转换说明符,运算符能够自动识别要用的类型。
(3) C++程序必须包含头文件 iostream.h后才能使用输入 (cin)/输出 (cout)流。若使用 scanf()和 printf()函数进行输入 /输出,则应包含头文件 stdio.h
(4)标准的输出流的默认格式输出有时不能满足特殊要求,
用控制符对输出格式进行控制
2.3.3 灵活的变量说明
float fun(int x,int y) // 对形参直接进行说明
{
for (int i=0;i<10;i++) // 对循环变量 i进行说明
{
int sum=0; // 循环体内也可对变量 sum进行说明
sum=sum+i;
cout<<"sum="<<sum;
}
int z=0; // 使用变量 z时才说明它
z=x+y;
}
在 C中,程序块中的所有声明都必须出现在所有可执行语句之前,在 C++中,声明可以出现使用该声明内容之前的任何地方。
小结
C++的产生和特点 。
C++源程序的构成 。
C++在非面向对象方面的一些特征 。
作业
P45 2.2