《VC++程序设计》电子教案.docx

上传人:b****8 文档编号:9517531 上传时间:2023-02-05 格式:DOCX 页数:57 大小:45.16KB
下载 相关 举报
《VC++程序设计》电子教案.docx_第1页
第1页 / 共57页
《VC++程序设计》电子教案.docx_第2页
第2页 / 共57页
《VC++程序设计》电子教案.docx_第3页
第3页 / 共57页
《VC++程序设计》电子教案.docx_第4页
第4页 / 共57页
《VC++程序设计》电子教案.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

《VC++程序设计》电子教案.docx

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

《VC++程序设计》电子教案.docx

《VC++程序设计》电子教案

《VisualC++程序设计》

授课专业:

计算机科学技术

授课年级:

2002级本科

授课方式:

课堂讲授;实验课

教学方式:

多媒体教学

课程教学总学时数:

48学分数3

课时分配:

课堂讲授32学时;实验课16学时

教材:

《VisualC++与面向对象程序设计(第二版)》,吕军等,高教出版社,2003年8月

参考书目:

《C++程序设计教程》,钱能,清华大学出版社

《VisualC++程序设计与软件技术基础》,马建红沈西挺,中国水利水电出版社

《VisualC++图形用户界面开发指南》,李博轩,清华大学出版社

《新编VisualC++6.0教程》,北京科海培训中心编著

《C++PRIMER(3RD)中文版》Stanley.Lippman,JoseeLajoie,中国电力出版社

《C++程序设计语言(特别版)》(美)BjarneStroustrup,机械工业出版社

常用网址:

1.

2.

3.

 

第一章C++入门

1.1软件开发与C++语言

1.2算法与程序

1.3输入、编译、调试和运行一个C++程序

1.4C++语言的输入与输出命令

1.5程序设计语言的发展

1.6C++程序的基本要素

1.6.1标识符、关键词和标点符号

1.6.2注释

1.6.3源程序

1.7编译预处理

1.7.1宏定义

1.7.2文件包含

1.8VisualC++的集成开发环境

1.8.1菜单和工具栏

1.8.2DeveloperStudio窗口

1.8.3用DeveloperStudio编写和调试简单C++程序

1.8.4菜单选项、快捷键和工具栏

第二章控制结构

2.1程序的基本控制结构

2.2C++的控制结构

2.2.1顺序结构

2.2.2选择结构

2.2.3循环结构

2.3结构化程序设计

2.4伪代码

2.5结构化程序设计方法简介

2.6C++的其他控制转移语句

2.6.1switch语句

2.6.2goto语句和语句标号

2.6.3break语句和continue语句

2.6.4exit()函数和abort()函数

2.7DeveloperStudio的文本编辑器

第三章基本数据类型

3.1数据类型

3.1.1整型数据的表示方法

3.1.2实型数据的表示方法

3.2常量

3.2.1整型常量

3.2.2实型常量

3.2.3字符常量

3.2.4字符串常量

3.3变量

3.3.1变量的声明

3.3.2变量的初始化

3.4数组

3.5字符型数组和字符串处理库函数

3.6类型修饰符和常量修饰符

3.7枚举类型

3.8typedef语句

3.9DevelperStudio的文件处理功能

3.10VisualC++程序的编译、链接和运行

3.11查看和修改编译、链接错误

第四章表达式

4.1算术运算符和算术表达式

4.2逻辑运算符和逻辑表达式

4.3赋值运算符和赋值表达式

4.4自增运算符

4.5表达式中各运算符的运算顺序

4.6其他具有副作用的运算符

4.7问号表达式和逗号表达式

4.8类型不同数据之间的混合算术运算

4.9运行错误的判断与调试

4.10基本调试手段

4.11注释号在调试中的作用

4.12条件编译

第五章函数

5.1函数的定义

5.2函数的调用

5.3函数原型

5.4函数间的参数传递

5.4.1值调用

5.4.2引用调用

5.5函数重载

5.6局部变量和全局变量

5.7内联函数

5.8带有默认参数的函数

5.9C++的库函数

5.10函数模板

5.11变量的存储类别

5.12DevelooperStudio的跟踪调试功能

第六章指针

6.1指针与地址

6.1.1地址

6.1.2指针

6.2指针运算

6.3指针与数组

6.4动态存储分配

6.5指针与函数

6.5.1指针作为函数的参数

6.5.2返回指针的函数

6.5.3指向函数的指针

6.6指针的数组

6.7指针的初始化

6.8VisualC++的帮助功能

第七章类和对象

7.1面向对象的思想

7.2面向对象程序设计的特点

7.3类与对象

7.3.1类的定义

7.3.2成员函数的定义

7.3.3内联成员函数

7.3.4对象

7.4构造函数与析构函数

7.5数据成员的初始化

7.6对象与指针

7.7const修饰符

7.8MFC的CString类

7.9MFC的CTime类和CTimeSpan类

7.9.1CTime类

7.9.2CTimeSpan类

7.9.3CTime类和CTimeSpan类的运算

7.10类的嵌套

7.11如何在程序中使用MFC类库

7.12使用FileView标签

第八章继承与派生

8.1继承与派生

8.1.1为什么使用继承

8.1.2派生类的定义

8.1.3派生类中的变化

8.2派生类的继承方式

8.2.1公有继承

8.2.2私有继承

8.2.3保护继承

8.3派生类的构造函数和析构函数

8.3.1构造函数

8.3.2析构函数

8.4显式访问基类成员

8.5静态成员

8.6类模板

8.7使用ClassView标签

第九章多态性

9.1多态性概述

9.2派生类对象替换基类对象

9.3虚函数

9.3.1虚函数定义

9.3.2虚函数的使用限制

9.4抽象类

9.5运算符重载

9.6文件处理

9.7异常处理机制

第一章C++入门

教学目的:

了解C++程序的基本特点,熟悉VisualC++集成开发环境的基本使用方法。

重点:

了解C++程序的基本特点,VisualC++的集成开发环境。

难点:

C语言、C++、VC之间的关系

1.1软件开发与C++语言

一、C语言的发展历程

B-->C-->C++Vc++

B是无类型语言(需解释)

C++是面向对象的语言(解释),使开发软件的可重用性、可维护性和可靠性,具有了极大的优势。

C是C++的子集,C++是C的超集。

VC是可视化的C++集成环境

二、本课程的目的

1.C++的程序结构(面向过程)

2.VC集成环境的使用

3.面向对象的构成思想

4.学习利用系统提供的对象进行面向对象的编程(简单)

1.2算法与程序

算法:

解决问题的方法和步骤

程序:

用计算机语言对算法的描述

例1:

1.根据算法特性,至少要有一个输出,如果使用C语言的printf和scanf函数完成输入输出,则必须打开stdio.h头文件。

c++中数据的输入输出通过cin和cout与>>、<<配合实现,但cin和cout均不是语句,也不是函数,是流对象。

因此只要使用这两个(数据)流对象,就必须打开iosteam.h头文件。

2.c++规定任何函数必须有函数类型(没有缺省类型),由于main函数不能被其他函数调用,所以不需要存放返回值的空间,因此通常将main函数的类型设为void。

3.endl是iostream.h中的一个标准符号常量“换行”。

4.利用输入输出流对象进行输入输出时,没有必要说明需输出输入数据的数据类型,系统会根据相关变量,按变量定义时的类型自动处理。

(整型数据只能按整型格式输出,而不能按字符类型输出)

5.c++提供的注释方式为//,也支持c的注释方式/**/

1.3输入、编译、调试和运行一个C++程序

基本步骤与C一样P4,但是继承环境所提供的界面、操作略有不同。

不同点:

C源程序文件扩展名为c,C++源程序文件扩展名为cpp

1.4C++语言的输入与输出命令

一、输入:

cin>>v1>>v2>>…>>vn;

1.>>:

提取运算符

2.提供数据时,数据间用空格(广义)分开。

3.所提供数据应与变量类型相一致,若不一致,会导致操作失败或数据错误。

(感兴趣者可以仔细研究)。

二、输出:

cout<

1.<<:

插入运算符

2.系统会根据输出数据的类型,自动以相应的格式输出

1.5程序设计语言的发展

自学

1.6C++程序的基本要素

1.6.1标识符、关键词和标点符号

一、标识符:

程序中变量、类型、函数和标号的名称

1.区分大小写

2.组成规则,字母(含下划线)开头的字母数字串

二、关键字

关键字:

具有特定作用,不能作为自定义标识符的字符组合。

标准标识符:

系统提供具有特定功能的常量、函数等,与关键字的区别是,关键字不能作为用户自定义标识符,而标准标识符则可以,但是最好不要将其作为用户自定义标识符。

1.6.2注释

编译器把一个注释作为一个空格字符处理。

1.6.3源程序

一个C++源程序由一个或多个源文件构成。

习惯上,通常将变量、类型、宏和类等的定义放在一个源文件中(扩展名用.h),然后在其他源文件中引用这些定义量。

在编制大型程序时尤其需要这样,在学习阶段,由于程序很小,所以可以不采用这种方法。

1.7编译预处理

1.7.1宏定义

无参宏

格式:

#define<宏名><替换序列>

说明:

1.习惯上宏名采用大写字母

2.宏替换是一个机械过程

有参宏

格式:

define<宏名><带有参数的替换序列>

说明:

1.有参宏与函数的本质不同

2.为防止宏替换出现问题,最好将参数和整个宏都用括号括起

1.7.2文件包含

格式:

#include<文件名>或#include"文件名"

说明:

1.文件包含的作用是将被包含文件嵌入到包含文件中

2.<>在系统指定的目录查找被包含文件;"首先在当前目录中查找,若找不到,再到指定目录查找

采用文件包含的方式,从物理角度是两个文件,但是对于C语言系统而言,仍然是“一个”文件。

1.8VisualC++的集成开发环境

VisualC++软件包包含了许多独立组件,如编辑器、编译器、链接器、实用程序生成器、调试器。

我们运行VC所看到的界面是VC系统所提供的一个叫做DeveloperStudio的集成开发环境。

开发环境会根据用户使用的需要,自动调用一些相应组件。

1.8.1菜单和工具栏

开发环境提供的界面与windows下的其他软件的界面窗口基本一样,由标题栏、菜单栏、快捷图标栏及编辑窗口和其他窗口等组成。

1.除标题栏外,其他栏目均为停靠式,可以用鼠标拖动改变它们的位置。

2.快捷图标栏由多种工具栏组成,缺省状态下由标准工具栏(StdandardBar),向导工具栏(WizardBar),建立(编译)微型栏(BuildMiniBar)组成,如果希望在工具栏中出现其它栏目,可以通过工具/定制/工具栏进行有目的的设置。

1.8.2DeveloperStudio窗口

整个集成环境的窗口中有多个窗口,分为两种类型,一种是文档窗口(带边框),多个窗口时以平铺或层叠方式显示;一种是停靠窗口,缺省状态有两个停靠窗口,一个是工作区(Workspace),一个是输出窗口(Output)。

其他窗口在需要时会自动出现,或者通过菜单命令,指定显示某个窗口。

1.8.3用DeveloperStudio编写和调试简单C++程序

编写简单程序的步骤:

1.选择菜单文件(File)/新建(New)中的工程(Projects)选项卡,选择Win32ConsoleApplication(32控制台应用程序。

C++开发不同的程序需要选择不同的工程项目,对于简单的编程,选择Win32ConsoleApplication即可。

2.为该工程项目起一个名字,填在右上方projectname上。

下面的location指明项目文件的存储位置,用户可自己设定。

3.此时应用程序生成向导会提问要生成的项目类型。

选择Anemptyproject(空项目),点击finish、ok。

系统会自动产生目录和一个工作区文件(.dsw),一个.dsp,一个.ncb文件。

4.再次选择菜单文件(File)/新建(New)中的文件选项卡,从中选择C++SourceFile,为该程序文件命名,单击OK。

5.在编辑窗口内编辑程序、编译、调试、运行。

仅编译:

compileCtrl+F7

编译加链接:

buildF7

执行:

executeCtrl+F5

产生的文件均存放在相应源程序文件下的debug目录中。

1.8.4菜单选项、快捷键和工具栏

第二章控制结构

教学目的:

掌握结构化程序设计方法的基本思想和C++的几种基本控制转移语句,熟悉使用伪代码的编程方法。

重点:

C++的控制结构。

难点:

分支循环结构

2.1程序的基本控制结构

结构化的基本结构

结构化的程序设计方法:

以模块化设计为中心,将需解决的问题划分为若干个相互独立的模块。

模块的大小

2.2C++的控制结构

2.2.1顺序结构

相互间具有先后顺序关系的模块组合

2.2.2选择结构

1.概念

选择结构又称分支结构。

两个模块都有被执行的可能,但每次只能有且只有一个被执行。

2.格式

if(表达式)语句1else语句2

3.注意事项

(1)表达式必须用括号括起

(2)表达式不对类型作任何要求(单变量方式)

(3)复合语句的使用

4.应用方式

(1)逐情况判断

(2)假定

(3)嵌套嵌套既可以嵌在then子句上,也可以嵌在else子句上。

注意:

为了明确的表示嵌套关系,消除二义性,可以采用三种方法:

1)将嵌套嵌在else子句上。

2)写齐所有子句。

没有语句的分支可以使用空语句。

3)使用复合语句。

当分支数在3-4个或更多一些,一般使用if语句,若更多时,往往使用switch语句。

逐情况法常见于初学者,假定法常用于熟练编程者。

嵌套法则是熟练又希望程序比较高效者。

2.2.3循环结构

1.语句格式

while(表达式)

语句

do

语句

while(表达式);

for(表达式1;表达式2;表达式3)

语句

2.语句功能

1)while和for均是当型循环,dowhile是直到型循环。

2)所有的表达式均对类型没有特定要求。

3)所有的循环体均为一条语句(复合语句)。

4)所有的语句都是当条件成立时运行,不成立时退出。

3.for语句

for语句是C语言中极为灵活的一种语句,当省略第一和第三表达式时,与while语句完全等效。

2.3结构化程序设计

自顶向下、逐步细化、模块化

2.4伪代码

类语言,接近语言,但又不是真正的语言,若需要转化成语言时,只要作简单的修改即可。

与具体语言相比,语法不像具体语言的要求那么严格。

2.5结构化程序设计方法简介

解决大型软件生产设计的设计基础和方法。

2.6C++的其他控制转移语句

2.6.1switch语句

格式

注意事项

1)switch表达式虽然没有类型要求,但最好不要是实型。

2)case后的常量只能是一个常量表达式。

3)当执行符合条件的分支后,如无break则继续执行下续语句。

4)循环中含switch语句,或switch中含switch,内部的break仅仅自内部跳出,不能跳出外部控制体。

continue只对循环起作用。

2.6.2goto语句和语句标号

goto语句是无条件转移语句,它可以将程序流程控制无条件地转移到由标号所指定的语句处继续执行。

使用goto构成的结构不一定是非结构化的,但非结构化的程序往往由于goto的因素。

#include"iosteam.h"

voidmain()

{

inti,j,k=0;

for(i=1;i<=10;i++)

for(j=1;j<=10;j++)

{in:

k+=i*j;

if(k>100)gotoout;

}

out:

cout<<"i="<

if(k<500)gotoin;

}

2.6.3break语句和continue语句

1.break

作用:

中止执行循环,使流程控制退出该循环控制结构,执行该循环语句的下一语句。

(还可用于switch,但不能用于使用if构成的循环)

虽然break属于非结构化的语句,但它对程序可读性的破坏不严重,某种意义上,还容易提高程序的可读性。

2.continue

作用:

仅实现从该语句位置将流程控制转移到本次循环的结束位置。

它结束的是本次循环,而不是跳出整个循环语句。

几乎所有出现该语句的地方,都可以通过改变算法而取消该语句的使用。

对于多重循环,这两条语句都只能对包含它的语句起作用。

2.6.4exit()函数和abort()函数

作用:

中止整个程序的运行。

exit():

结束程序前做一些善后工作。

abort():

强制结束程序。

要求使用整数参数表示退出的原因。

习惯上用0表示正常退出,非0值表示非正常退出(程序调试)。

2.7DeveloperStudio的文本编辑器

一、基本操作

通用的键盘操作方式

二、高级编辑

Windows环境下的一些操作

第三章基本数据类型

教学目的:

掌握几种基本数据类型,包括字符型、整型、长整型、浮点和双精度数据类型的基本概念,以及常数、变量和数组的使用方法。

重点:

C++基本数据类型。

难点:

数组

3.1数据类型

数据类型定义了变量可接受值的集合以及对它所能执行的操作。

类型的定义决定了三个方面的性质:

a.该类型数据所占据内存空间的大小(数据的取值范围)

b.数据在内存中的存储格式(定点、浮点)

c.定义可以施加在该类型数据上的操作

3.1.1整型数据的表示方法

整型数据在内存中的表示方法(补码),字符型数据也可以认为是补码方式。

3.1.2实型数据的表示方法

实型数据在内存中的表示方法(浮点数)

3.2常量

3.2.1整型常量

十进制:

yyy

十六进制:

0xyyy

八进制:

0yyy

3.2.2实型常量

格式:

±(x).(x)e(E)±xx

规定:

小数点先后必须有一位数字

e的左面必须有数字(上面的要求),右面必须是整数

尾数必须为十进制数

说明:

c中的实型常量为双精度型,如果需要特别指明为单精度型,可在实数后面加f或F

3.2.3字符常量

定义:

用单引号括起来的一个字符。

c语言支持扩展ASCII字符集,因此共包含256个字符

注意:

1.转义ASCII码没有十进制数,只有十六进制和八进制,没有X就是八进制。

X打头时不能有0。

其取值范围为ff,377

2.任何字符都可以转义方式给出,一些常用控制字符给出了转义字母,如\n,\t,\b,\\,(\',\"在不引起误解的情况下可以不用\,如"what's",'"')

3.非转义字母前面加\,\不起任何作用

3.2.4字符串常量

字符串是用双引号括起来的一系列字符。

注意:

当字符串中包含转义字符时,转义符后的数值后面不能跟随引起误解的符号。

八进制数后面不能跟0-7,十六进制不能跟0-9和a-f(A-F)。

3.3变量

3.3.1变量的声明

1.基本类型

int整型(4byte)char字符型(1byte)float实型(4byte)

验证:

cout<<"size="<

注意:

不同的语言版本在不同类型的机器上其所占据空间不同

3.类型的前缀

signedunsignedlongshort

注意:

double即为longfloat

原则:

a.不能自相矛盾shortlongint

b.不能没有实际意义longchar、unsignedfloat

3.3.2变量的初始化

C++允许在说明变量的同时对变量赋一个初值。

两种格式:

inta=3;

inta(3);

3.4数组

1.概念

数组:

数组是具有同一类型数据项(数组元素)的有序集合。

其所属数据的类型称作基类型或成分类型。

数组由一组连续的存储空间构成。

2.数组说明

格式:

存储类别类型说明符数组名[常量表达式];[二维]

注意:

1)数组占据的是连续的存储空间

2)下标的取值范围0-n-1

3)允许越界

4)数组名为指针常量,其表示的是地址

5)给定初值时可以省略第一维的下标

3.数组初始化

1)初始化格式

一维数组:

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

二维数组:

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

{{1,2,3},{4,5,6}};

2)数组的初值

staticextern存储类别无初值及初值不足时,无初值元素初值自动为零

auto类别无初值时为随机数,初值不足时,无初值元素为零。

3.5字符型数组和字符串处理库函数

1.概念

字符数组:

基类型为字符的数组。

字符串:

以双引号括起来的一系列字符(结束标志)。

关系:

字符串借助字符数组来存放。

区别:

串必定有结束标志,数组不能保证有结束标志;串常量不能以下标方式访问(利用指针指向后可以)。

串常量是没有数组名的数组。

2.字符数组的初始化

性质与数值数组一致

格式:

charstr[10]={'a','b','c'};{"abc"};"abc";

省略下标的特殊说明:

charstr[]={'a','b','c'};无结束标志,下标为>=4的值时则有结束标志。

没有初值时为随机字符,所以也没有结束标志。

3.字符数组的输入输出

1)单字符输入输出

以单字符方式读取时,应注意添加结束标志(讲一个读不定长度字符串的例子)

2)以字符串方式输入输出

注意:

(1)读取时不需要人为添加结束标志

(2)以空格(广义)为字符串的分隔标志

4.相关的几个函数

strcpy(array,str)strcat(arraystr,str)strcmp(str1,str2)strlen(str)

strlwr()strupr()

strchr()字符串中查找字符

strrev()反转字符串

strstr()在字符串中查找字符串

说明:

array数组(必须有足够的空间),str字符串(数组、常量串、指针)

在C中array可以为指针,VC中只能是数组(教材中有错误)

3.6类型修饰符和常量修饰符

自学内容

检查验证_intxx方式定义类型的大小

3.7枚举类型

格式:

enum枚举类型名{枚举元素表};

说明:

①枚举元素的序号自0开始,按照先后顺序排列,也可指定序号。

指定序号时应预留足够编码空间,若不足,或者系统报错,或者两个元素具有相同的序号。

②枚举量可以进行比较(如同字符,比较的是它们的序号)。

③枚举元素是标识符,不是字符串,不能直接以串方式输出,但枚举变量可以直接输出,输出的是该元素的序号。

3.8typedef语句

1.方法:

1)按定义变量的方法写出定义体

2)将变量名换成类型名

3)在最前面加上typedef

4)用新类型名定义变量

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

当前位置:首页 > 成人教育 > 专升本

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

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