1、 教 案 2023 ~ 2023 学年 第 一 学期 学 院、 系 室 计算机科学系 课 程 名 称 面向对象程序设计 专业、年级、班级 12计算机嵌入式系统 、网络和信息安全班 主 讲 教 师 蒋琳琼 梧州学院 面向对象程序设计教案 课时分派:理论课39学时,实验课12学时,共51学时 第1章 C++初步知识 一、教学目的: 熟悉如何编缉、编译、连接和运营一个C++程序,了解在面向过程程序设计中C++对C功能的
2、扩充与增强,并善于在编写程序过程中应用这些新的功能。 学时分派:9学时 二、教学重点: 了解软件设计、开发思想的演变,面向对象程序设计语言的发展;理解面向对象程序设计的基本思想;熟悉如何编缉、编译、连接和运营一个C++程序,熟悉C++程序的结构和编程方法。 三、教学难点: 善于在编写程序过程中应用这些新的C++对C功能的扩充与增强功能 四、教学方法: 课题讲授及面向对象程序设计实例演示 五、教学过程设计:(9学时) 1. C++语言的发展,最简朴的C++程序 1-1程序设计方法的发展和演变 大多数系统软件和许多应用软件都是用C语言编写的。 但是随着软件规模的增大,用C语
3、言编写程序渐渐显得有些吃力了。 C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保存了C语言原有的所有优点,增长了面向对象的机制。 C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。 C++对C的“增强”,表现在两个方面: (1) 在本来面向过程的机制基础上,对C语言的功能做了不少扩充。 (2) 增长了面向对象的机制
4、。
当前用得较为广泛的C++有:VC++ (Visual C Plus Plus)、 BC++(Borland C Plus Plus)、GCC、AT&T C++等。
• 假如选择了
5、类(class)和对象(object)的C++程序,目的是使读者初步了解C++是如何体现面向对象程序设计方法的。
例1.4 包含类的C++程序。
#include
6、// 输入num的值
cin>>score; // 输入score的值
}
void display( ) // 定义公用函数display
{cout<<″num=″< 7、stud2.setdata( ); // 调用对象stud2的setdata函数
stud1.display( ); // 调用对象stud1的display函数
stud2.display( ); // 调用对象stud2的display函数
return 0;
}
1-3最简朴的C++程序
最简朴的C++程序
例1.1 输出一行字符: “This is a C++ program.”。
程序如下:
#include 8、 )
{
cout<<″This is a C++ program.″;
return 0;
}
在运营时会在屏幕上输出以下一行信息:
This is a C++ program.
例1.2 求a和b两个数之和。
可以写出以下程序:
// 求两数之和 (本行是注释行)
#include 9、//赋值语句
cout<<″a+b=″< 10、给z
else z=y; //否则,将y的值赋给z
return(z);//将z的值返回,通过max带回调用处
} //max函数结束
int main( ) //主函数
{ //主函数体开始
int a,b,m;//变量声明
cin>>a>>b;//输入变量a和b的值
m=max(a,b); //调用max函数,将得到的值赋给m
cout<<″max=″< 11、的是初步了解C++是如何体现面向对象程序设计方法的.由于尚未系统介绍面向对象程序设计的概念,对程序理解不深,有一个初步的印象.下章具体介绍.
2. C++对C的扩充
上机暴露的问题:
1.语句cin>>a>>b>>endl;有什么问题?
2.关系运算符将表达式连接起来称为关系表达式。其值非真即假。在C++语言中,用非0代表真,用0表达假。关系表达式的结果只有两个,真为1,假为0。
3.语句cout< 12、const定义常变量
• 一般把程序中不允许改变值的变量定义为常变量.
• C中
• #define PI 3.14159
• 实际只是在预编译时进行字符置换,PI不是变量,没有类型,不占用存储单元,并且容易犯错.
• C++
• Const float PI=3.14159
• 常变量PI具有变量的属性,有数据类型,占用存储单元,有地址,可用指针指向它.
• 举例: Int a=1;b=2;
• #define PI 3.14159
• #define R a+b
• Cout< 13、a+b),而是3.14159 *a+b*a+b,
2-3函数——原型声明、重载、模板及默认参数函数、内联函数
• 在C++中,假如函数调用的位置在函数定义之前,则规定在函数调用之前必须对调用的函数作函数原型声明(强制性).
• 下面两种写法等价
• Int max(int x,int y);
• Int max(int ,int );//编译时只检查参数类型,不检查参数名.
•
• 函数的重载(一个函数名多用)是指C++允许在同一作用域(例如同一个文献模块)中用同一函数名定义多个函数,这些函数的参数个数和参数类型可以都不相同,也可实现功能不同.
• 例1.6 求3个数中的最大的 14、数(分别考虑整数\实数\长整数的情况)
• 例1.7用一个函数求2个整数或3个整数中的最大者.
• 注意: 重载函数的参数个数或类型必须至少有其中之一不同,函数返回值类型可以相同也可以不同.但不允许参数个数和类型都相同而只有返回值不同,由于系统无法从函数的调用形式上判断哪一个函数与之匹配.
• 重载函数的参数个数或类型必须至少有其中之一不同,函数返回值类型可以相同也可以不同.但不允许参数个数和类型都相同而只有返回值不同,由于系统无法从函数的调用形式上判断哪一个函数与之匹配.
• #include 15、int a,int b,int c) //求3个整数中的最大者
• { if (b>a) a=b;
• if (c>a) a=c;
• return a;
• }
• float max(float a,float b, float c) //求3个实数中的最大者
• {if (b>a) a=b;
• if (c>a) a=c;
• return a;
• }
• long max(long a,long b,long c) //求3个长整数中的最大者
• {if (b>a) a=b;
• if (c>a) a=c;
• 16、 return a;
• }
• int main( )
• {int a,b,c; float d,e,f; long g,h,i;
• cin>>a>>b>>c;
• cin>>d>>e>>f;
• cin>>g>>h>>i;
• int m;
• m= max(a,b,c); //函数值为整型
• cout <<"max_i="< 17、 18、定义一个通用函数,用T用虚拟的类型名
• if(c>a) a=c;
• return a;
• }
• int main()
• {int i1=8,i2=5,i3=6,i;
• double d1=56.9,d2=90.765,d3=43.1,d;
• long g1=67843,g2=-456,g3=78123,g;
• i=max(i1,i2,i3); //调用模板函数,此时T被int取代
• d=max(d1,d2,d3); //调用模板函数,此时T被double取代
• g=max(g1,g2,g3); //调用模板函数,此时T被 19、long取代
• cout<<"i_max="< //例1.7此程序为采用不带默认参数的函数
• using namespace std;
• int max(int a,int b,int c) //求3个整数中的最大者
• {if (b>a) a=b;
• if (c>a) a=c;
• ret 20、urn a;
• }
• int max(int a, int b) //求两个整数中的最大者
• {if (a>b) return a;
• else return b;
• }
• int main( )
• {int a=7,b=-4,c=9;
• cout< 21、e 22、 a=c;
• return a;
• }
注意:
• 实参与形参的结合是从左至右进行的,指定默认值的参数必须放在形参表列中的最右端.
• 最佳在函数声明时指定默认值.(必须在函数调用之前将默认值的信息告知编译系统)
• 一个函数不能既作为重载函数,又作为有默认参数的函数.(二义性)
2-4变量的引用、作用域运算符和字符串变量
1.3.7变量的引用(别名)
• 1. 引用的概念
• 变量的”引用”就是变量的别名,对一个变量的”引用”的所有操作,事实上都是对其所代表的(本来的)变量的操作.
• Int a;
• Int &b=a;//声明b是一个整型变量的引用变量,它被 23、初始化为a
• 注意:在上述声明中&是”引用声明符”,此时它并不代表地址.
• 对变量声明一个引用,并不另开辟内存单元,b和a都代表同一变量单元.在声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量.
2. 引用的简朴使用
• #include 24、b< 25、a,int b)
• {int temp;
• temp=a;
• a=b;
• b=temp; //实现a和b的值互换
• }
• int main( )
• {int i=3,j=5;
• swap(i,j);
• cout<
• using namespace std;
• void s 26、wap(int *p1,int *p2)
• {int temp;
• temp=*p1;
• *p1= *p2;
• *p2=temp;
• }
• int main( )
• {int i=3,j=5;
• swap(&i,&j);
• cout<
• using namespace std;
• void swap(int &a,int &b)
• {in 27、t temp;
• temp=a;
• a=b;
• b=temp;
• }
• int main( )
• {int i=3,j=5;
• swap(i,j);
• cout<<"i="< 28、率,在许多情况下能代替指针.
5. 对引用的进一步说明
1.3.8内置函数
• 调用函数需要一定的时间,假如有的函数需要频繁使用,则累计所用时间会很长,从而减少程序的执行效率.C++提供一种提高效率的方法,在编译时将所调用函数的代码嵌入到主函数中.
• 例1.13
• #include 29、
• int main( )
• {int i=7,j=10,k=25,m;
• m=max(i,j,k);
• cout<<"max="<






