c++程序设计教案.docx

上传人:b****4 文档编号:4618230 上传时间:2022-12-07 格式:DOCX 页数:94 大小:178.94KB
下载 相关 举报
c++程序设计教案.docx_第1页
第1页 / 共94页
c++程序设计教案.docx_第2页
第2页 / 共94页
c++程序设计教案.docx_第3页
第3页 / 共94页
c++程序设计教案.docx_第4页
第4页 / 共94页
c++程序设计教案.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

c++程序设计教案.docx

《c++程序设计教案.docx》由会员分享,可在线阅读,更多相关《c++程序设计教案.docx(94页珍藏版)》请在冰豆网上搜索。

c++程序设计教案.docx

c++程序设计教案

saw锯sawedsawed/sawn

spread传播spreadspread

win获胜wonwon

saw锯sawedsawed/sawn

feed喂fedfed

burn燃烧burnt/burnedburnt/burned

may可以might×

mistake误认mistookmistaken

stand站立stoodstood

flee逃跑fledfled

《C++程序设计》教案

海南软件职业技术学院

HainanSoftwareProfessionInstitute

(2006-2007学年度第一学期)

 

教师姓名:

季文天

系部:

软件工程系

授课专业:

软件技术

授课班级:

05软件技术3班

课题01:

VisualC++6.0开发环境

一、教学目标:

1.掌握VisualC++6.0开发工具的选单、工具栏、项目、工作区等概念

2.掌握使用VC编写控制台应用程序

3.掌握使用VC进行程序调试

二、教学重点:

1、掌握VisualC++6.0开发工具的选单、工具栏、项目、工作区等概念

三、教学难点:

1、使用VC编写控制台应用程序。

2、使用VC进行程序调试

四、课时安排:

2节课

五、教具准备:

多媒体教室

六、教学方法:

讲授

七、教学过程:

(一)、复习导入

VisualC++是Microsoft公司推出的目前使用极为广泛的基于Windows平台的可视化开发环境。

VisualC++6.0是在以往版本不断更新的基础上形成的,由于其功能强大、灵活性好、完全可扩展以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为目前最为流行的C++语言集成开发环境。

(二)、讲授新课

1、开发环境概述

板书或幻灯片演示下图

VisualC++6.0开发环境包括:

标题栏

工具栏

选单

项目工作区窗口

输出窗口

状态栏

文档窗

依次介绍各项功能,详细介绍选单、工具栏、项目工作区。

2、简单的控制台应用程序

使用Appwinzard创建一个控制台应用程序,使学生理解“工程”概念,熟悉项目的程序框架,以及如何添加程序代码、编译、运行。

以下面程序为例,讲述如何建立控制台应用程序:

【例Ex_Hello】

【运行结果】:

【例Ex_Hello】利用投影演示P18例Ex_Hello。

3、程序调试

在软件开发过程中,大部分的工作往往体现在程序的调试上。

调试一般按这样的步骤进行:

“修正语法错误—设置断点—启用调试器—控制程序运行—查看和修改变量的值”

修正语法错误

调试最初的任务主要是修正一些语法错误,比如:

⏹未定义或不合法的标识符

⏹数据类型或参数类型及个数不匹配。

设置断点

用C++调试的断点可以有以下类型:

⏹为之断点

⏹数据断点

⏹条件断点

启用调试器

VisualC++6.0创建的项目,系统会自动为项目创建Win32Debug版本的默认配置,选择”build”选单---“startdebug”---“Go”、”stepinto”、“Runtocursor”命令,就可以启动调试器了。

控制程序运行

可以通过”stepinto,stepover,stepout,runtocursor”控制程序运行。

查看和修改变量的值

在程序调试的时候VC会自动显示”Watch”和”Variables”两个调试窗口,通过这两个窗口可以查看或修改当前运行程序的变量的值。

课题02:

C++数据类型、表达式、语句

一、教学目标:

1.掌握C++程序结构、基本组成

2.掌握C++的基本数据类型、基本输入/输出

3.掌握C++运算符、表达式

4.掌握C++基本语句

二、教学重点:

1.C++程序结构、基本组成

2.C++基本数据类型、输入输出

三、教学难点:

1.C++运算符、表达式

2.C++基本语句

四、课时安排:

2节课

五、教具准备:

多媒体教室

六、教学方法:

讲授

七、教学过程:

(一)、复习导入

C++是在20世纪80年代初期由贝尔实验室设计的一种在C语言的基础上增加了面向对象支持的语言,她是目前应用最为广泛的编程语言。

今天我们来学习他的基本结构、数据类型、运算符和表达式、基本语句。

(二)、讲授新课

1、C++程序结构

一个C++程序往往由预处理命令、语句、函数、变量和对象、输入与输出以及注释几个部分组成。

预处理命令

包括:

宏定义命令、文件包含命令和条件编译命令

语句

语句是组成程序的基本单元

函数

一个C++程序是由若干个函数组成。

一个程序中有且仅有一个主函数main.

变量和对象

C++是面向对象的语言,所以在C++中相比C语言多了对象,她是“类”的实例

输入输出

程序中总是少不了输入和输出语句。

注释

注释可以提高程序的可读性、帮助程序员理解,在程序运行中不执行。

在编写C++程序时,还要注意程序的书写风格,要注意缩进和注释。

在编写程序时,标识符应该遵循以下原则:

合法性

有效性

异读性

2、基本数据类型

C++数据类型分为基本数据类型、派生类型以及复合类型3类。

基本数据类型包括:

char

int

float

double

以及上述类型的变种,包括

short

long

signed

unsigned

void

P29表2.1列出了C++的基本数据类型

根据数据在程序中的可变性,我们将数据分为:

常量

⏹整型常量

⏹浮点型常量

⏹字符常量

⏹字符串常量

⏹符号常量

变量

⏹变量定义

⏹变量的初始化

要注意一个未初始化的变量不是没有数值,而是取决于变量在系统中的存储形式,她可能是系统的默认值或无效值。

3、基本输入、输出

C++中是通过标准的输入流cin和标准输出流cout来实现数据的输入输出。

【举例:

Ex_CoutEnd】

【举例:

Ex_Algorism】

4、运算符和表达式

C++用来记述运算的符号称为运算符,按照操作数的个数可以分为:

⏹单目运算符

⏹双目运算符

⏹三目运算符

根据其功能可以分为:

⏹算术运算符

⏹赋值运算符

⏹关系运算符

⏹逻辑运算符

⏹位运算符

变量、常量通过一个或多个运算符组合起来就构成了表达式,比如有关系运算符构成的表达式成为关系表达式。

5、基本语句

C++提供了如表达式语句、复合语句、选择语句和循环语句等,满足了结构化程序设计所需要的3中基本结构。

⏹选择语句

⏹条件语句ifelse

⏹开关语句switch

⏹循环语句

⏹while

⏹do…while

⏹for

以上基本语句和C语言保持一致。

课题03:

数组

一、教学目标:

1.了解构造类型的意义

2.了解数组的概念

3.掌握一维数组、多维数组的定义

二、教学重点:

1.一维数组的定义

2.数组的基本操作

三、教学难点:

1.多维数组将维处理过程及多维数组的存储

2.字符串数组的使用

四、课时安排:

2节课

五、教具准备:

多媒体教室

六、教学方法:

讲授

七、教学过程:

(一)、复习导入

在计算机所处理的数据中,最常见的,也是最需要由计算机高速处理的数据是成批出现的同一类型的数据,C++语言中把这类数据称为数组。

例如:

·监测系统在一段时间内获得的检测、采样值,可能是int型或float型数

据的数组;

·一个管理系统的数据库,可能是一系列结构类型(记录)数据的序列;

·一幅电视图像,可能是其每个像素的颜色及灰度值(整型数)的二维阵列。

任何一种类型的一批数据,都可以组成数组,例如int型,float型,char型数据可以组成数组;这些基本类型的派生类型(如long型,double型,unsignedchar型)的数据,枚举、结构、联合类型的数据,以至由用户或系统定义的类(类型)的对象,都可以组成数组。

(二)、讲授新课

1、一维数组

由n个同一类型数据组成的一维序列,构成一维数组,一维数组的下标为0,⋯,n-1。

1.一维数组的说明

任何一种已知类型数据都可说明为数组,数组说明的格式为:

<类型名><数组名>[<元素数>]={<初值表>};

类型名:

可以是基本类型名,基本类型的派生类型名,类名,枚举类型名,

结构,联合类型名(也可以是枚举、结构联合的类型说明)。

关于指针数组将在下节说明。

还有数组类型的数组就是多维数组了,也将在下面介绍。

数组名:

标识符,数组名有两个附加作用:

(1)是表示数组元素的下标变量。

如array[2]表示数组的第三个元素。

(2)它还是一个指向数组的首元指针。

元素数:

一个正整数,指出数组的元素个数,或数组的大小(size)。

元素数要用方括号“[]”括起来。

方括号[]不可缺省,元素数则有时可缺省,这时必须赋初值,系统按所赋的初值个数确定数组的大小。

初值表:

可缺省。

是由花括号{,}括起来且用逗号‘,’分开的初始化常

量值。

例如:

intlist[100],A[10][10],B[]={4,3,2};

charch[26];

complexcom[4]={(3.2,4.7),(0.0,0.0)};

其中,数组list[100]未赋初值。

数组A[10][10]为一个二维数组,未赋初值。

数组B[]已赋初值,元素数为3。

数组com[4]是用户定义的complex类型的数组,数组有4个元素,其中前

两个元素已赋初值,初值分别为(3.2,4.7),(0.0,0.0)。

2.数组的操作——下标变量

C++语言未提供对于数组整体进行操作的运算符和运算。

对于数组的操作是

通过对于其元素,即下标变量进行的。

下标变量的格式为:

<数组名>[<下标>]

下标:

整数,或整型表达式,其取值范围为0~n-1,n=数组元素总数,例

如:

intA[4];

共有四个下标变量:

A[0],A[1],A[2],A[3]。

对于下标变量可进行下列操作。

(1)赋值。

可以三种方式进行:

①初始化:

intA[4]={1,2,3};

相当于一次为A[0],A[1],A[2]赋值为1,2,3。

②赋值语句:

A[3]=4*A[1];

相当于把4*2=8赋值A[3]。

③输入语句:

cin>>A[0];

for(inti=0;i<4;i++)cin>>A[i];

后者可通过键盘操作,为数组的四个元素依次赋值。

(2)一般运算。

下标变量可与同一类型的一般变量一样参加它所允许的运算。

如:

A[0]+=A[2]++;

cout<<A[0]<<””<<A[1]*A[2];

等等。

下标也可以是一个表达式,如:

intA[4]={1,2,3,4};

A[3]=A[A[2]-A[1]]*4;

下标表达式应注意其值应保持在0~n-1范围之内。

2、多维数组

若干同一类型的数据m列n行的矩阵,则可称为二维数组,二维数组亦可视为一维数组的数组。

intA[m][n];

说明了一个二维数组,它有m×n个元素,它也可以视为由n个一维数组intA[m]组成的(一维)数组。

类似地,还可以说明三维,四维数组,二维以上的数组统称为多维数组。

1.说明和初始化

多维数组的说明(以二维为例):

<类型名><数组名>[<行数>][<列数>]

类型名:

同前节说明。

数组名:

同前节说明。

行数:

正整数。

列数:

正整数。

例如:

charch[2][3];

该二维数组共有2行3列,元素个数为2*3=6。

在二维数组中,为数组赋初值的方式有:

inta[2][3]={{1,2,3},{4,5,6}};

亦可写为:

inta[2][3]={1,2,3,4,5,6};

二者效果是一样的。

系统将按逐行的次序顺序为各元素赋值。

其次序为:

a[0][0],a[0][1],a[0][2],

a[1][0],a[1][1],a[1][2]

对于三维以上的高维数组,其赋值方法是一样的。

2.二维数组的操作

对于二维数组的操作,同样是通过对其元素即下标变量的操作来进行的。

操作中应注意:

(1)注意下标表达式的取值范围:

charA[m][n];

则下标变量A[i][j]中i的值应在0~m-1之间,j的值应在0~n-1之间。

(2)当只有一个下标时:

A[i](O<=i<=n-1)

表示的是一个一维数组,其元素个数为n,这些元素可用下标变量:

A[i][0],A[i][1],⋯,A[i][n-1]

来表示。

(3)更高维的数组,其定义和操作类似。

3、数组与字符串

从表面上看,一个字符串就是一个字符数组,但在C++语言中,二者并不完全相同,读者在涉及到字符串处理时,必须注意。

字符串是一个以串尾符'\0'结尾的字符类型数组。

从下面的例子可看出其区别:

charstring1[7]="China";

charstring2[]="China";

charstring3[7]={'c','h','i','n','a'};

charstring4[7]={'c','h','i','n','a','\0'};

这说明了四个字符型数组,它们是互不相同的。

课题04:

结构类型

一、教学目标:

1.了解结构类型的意义

2.掌握结构类型的定义及应用方法

3.掌握结构数组的使用方法

二、教学重点:

1.结构类型的定义

2.结构类型使用方法

三、教学难点:

1.结构数组的使用方法

四、课时安排:

2节课

五、教具准备:

多媒体教室

六、教学方法:

讲授

七、教学过程:

(一)、复习导入

实际应用中往往需要把若干种不同类型的数据组合为一个导出类型,这就是结构类型。

数组是把若干相同类型的数据放在一起,结构则是把若干不同的数据放在一起。

例如,一个公司雇员的数据可能包括:

charname[20];

enum{male,female}sex;

floatsalary;

charphone[11];

那么我们如何处理这样的数据呢?

下面就让我们来学习一种新的构造数据类型—结构体。

(二)、讲授新课

对公司雇员数据进行处理或检索时,把它们组成结构类型会更方便:

structEmployee{

charname[20];

enum{male,female}sex;

floatsalary;

charphone[11];

};

C++语言中的结构是作为类似于类的概念处理的,这一点将在以后学习中说明,在本章结构(以及联合)类型仅作为一种构造数据类型。

1、结构类型与结构变量说明

结构类型说明的格式为:

struct<类型名>{<成员表>};

类型名:

标识符。

成员表:

<类型><成员1>;<类型><成员2>;...<类型><成员n>;

结构类型的变量说明的格式为:

[struct]<结构类型名><变量名表>;

变量说明中的关键字struct可以省略(C语言中不可),变量名表与一般

变量说明一样,其赋初始值的方法可从下面的例子中了解:

structEmployee{

charname[20];

enum{male,female}sex;

floatsalary;

charphone[11];

};//结构类型Employee的定义

structEmployeegy1,gy2;//变量gy1,gy2的说明

Employeegy3,gy4={“JohnSmith”,male,2107.5************};

//变量gy3,gy4(赋初值)的说明

结构类型及其变量的说明也可放在一起:

structEmployee{

charname[20];

enum{male,female}sex;

floatsalary;

charphone[11];

}gy1,gy2;

2、结构变量的引用和赋值

一个结构变量由若干分量组成,对结构分量的存取由圆点运算符“.”实现,例如,在上例中,雇员gy1的姓名可表示为gy1.name,其电话号码可表示为gy1.phone。

因此,为结构变量赋值,除了在变量说明中赋初值(如为gy4赋初值)的方法外,还可以用赋值语句或输入语句为结构分量赋值的方法:

gy3.name=“TomGreen”;

gy3.sex=male;

cin>>gy3.salary;

cin>>gy3.phone;

无论采用哪种方法为结构分量赋值,都必须保证类型一致。

C++语言还允许直接对结构变量赋值,下面的赋值语句也是允许的:

gy1=gy4;

gy3=gy4;

一般,数组变量不能这样直接赋值。

3、结构数组

结构类型的数据也可以组成数组,称为结构数组。

结构数组在许多实际应用问题中的采用非常普遍,例如,通讯录,学生成绩单,商业销售记录,人事档案,资料登记表等等。

下面的结构数组是一个公司的雇员档案:

structEmployee{

charname[20];

enum{male,female}sex;

floatsalary;

charphone[11];

};

Employeeefile[100];

数组的每一个分量是一个雇员的档案数据。

课题05:

函数

一、教学目标:

1.了解函数的作用、意义

2.掌握函数的说明、调用、返回

3.掌握函数的使用方法

二、教学重点:

1.函数的说明

2.函数的调用

三、教学难点:

1.函数返回

四、课时安排:

2节课

五、教具准备:

多媒体教室

六、教学方法:

讲授

七、教学过程:

(一)、复习导入

函数概念是C++语言中最重要的概念之一,函数设计是程序设计的主要部分或实质部分。

函数在C++程序设计中的意义体现在四个方面。

(1)从历史上说,函数的思想来源于子程序,(如BASIC语言中的子程序),把程序中反复出现的相同或相近的程序改写成子程序,可以大大缩短程序的长度。

函数实际上是参数化的子程序。

(2)从结构化程序设计(SP)的观点来看,函数绝不仅仅是为了缩短程序长度,更重要的是通过函数设计,可以把整个程序要完成的整体的复杂的计算任务,分解为一个个较小的,相对简单的子任务。

这种模块化的程序易设计,易阅读,易调试,易维护,较少出错。

(3)从运算的角度说,函数就是C++语言提供的由用户定义的运算。

运算符是系统提供的运算,而函数是由用户自己定义的运算。

(4)作为面向对象程序设计(OOP)语言的C++,以类为核心,类由数据和方法组成,方法就是对数据的运算和处理,亦即类的函数成员。

故函数设计同样是OOP的重要组成部分。

(二)、讲授新课

1、函数的说明

C++程序允许两种函数说明语句的形式,我们把它们分别称为函数原型(或

函数声明)和函数定义。

[1].函数原型

函数原型(亦称函数声明)用来指出函数的名称,类型和参数,其格式为:

[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉);

例如:

intadd(inta,intb);

inlinevoidswap(float&s,float&t);

voidprint(char*);

属性说明:

可缺省,一般可以是下面的关键字之一:

inline,static,virtual,

friend等。

inline表示该函数为内联函数;

static表示该函数为静态函数;

virtual表示该函数为虚函数;

friend表示该函数为某类(class)的友元函数。

其含义的细节在后面有关章节介绍。

类型:

指函数的返回类型。

C++语言规定除了特别情形(main()函数和类的构造函数,析构函数)之外,所有函数都必须在说明中指出返回类型。

一个函数可能有多个结果,不一定都用返回值的方式输出(还可通过全局变量,引用参数和指针等方式传出)计算结果,但函数调用作为一个表达式,该表达式的值则只能是函数的返回值。

函数名:

一个标识符。

参数表:

它可能为空,void或〈类型〉〈参数名〉,〈类型〉〈参数名〉…的

形式。

例如:

main()

print(void)

cuberoot(floatx)

add(inta,intb)

其中,函数原型中的参数表可忽略参数名,如:

intadd(int,int)

voidswap(float&,float&)

它们与函数原型intadd(inta,intb);voidswap(float&s,float&t);是等价

的,事实上在编译时,函数原型中的参数名是被忽略的,后者的参数表中的符

号`&`表示该参数为引用型参数,用以区别于一般的赋值型参数,其用法在下面

介绍。

[2].函数定义

函数定义与函数原型的主要区别是它还包括函数体,其格式为:

[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉)〈函数体〉

属性说明,返回类型,函数名与函数原型一致,参数表中不可省略参数名。

函数体:

由{和}括起来的复合语句即程序块。

program5_1的最后12行就是一个函数定义。

从函数说明语句的介绍,我们可以看到程序中各种语句的分类(说明语句,表达式语句,控制语句和复合语句)并不是一个简单的划分概念。

函数定义本身是一种说明语句,但其函数体则是一个复合语句。

而在函数体内部又可能包含说明语句,表达式语句,控制语句和复合语句。

总之,这种分类和区分是明确的,但它们之间又有互相包含的关系。

2、函数调用

函数调用是已定义函数的一次实际运行,(与某类型的一个变量和后文中某类的一个对象类似),函数调用是函数定义的一个“实例”。

函数说明中的参数称为形式参数(形参),函数调用中的参数称为实际参数(实参),函数调用一般出现在表达式中或独立形成一个函数调用语句,例如:

xr=cuberoot(-q/2+a)+cuberoot(-q/2-a);

swap(a,b);

函数调用的两要素是函数名和实参表:

<函数名>(<实参表>)

实参表中的参数的类型、个数、顺序必须与函数说明的参数表(形参表)相一致。

赋值型的实参可以是一个表达式。

在上节program5_1的main()中两次出现函数cuberoot(x)调用,其具体的调用实施过程如下:

(1)根据调用语句中的函数名(cuberoot)在整个程序中搜索同名函数定义;

(2)对实参数的参数个数,类型,顺序进行核对,判定是否与函数定义中的形参表对应一致,在上例中只有一个浮点型参数;

(3)根据参数的类型(值参数或引用参数)进行值参数的值传递或引用参数的换名,在上例中即是要把实参表达式的值计算出来赋给形参x;

(4)运行函数体代码;

(5)返回调用点,并返回所要求的函数值,即返回计

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1