1、VC+程序设计电子教案Visual C程序设计授课专业:计算机科学技术授课年级:2002级本科授课方式:课堂讲授;实验课教学方式:多媒体教学课程教学总学时数:48 学分数 3课时分配 :课堂讲授 32 学时;实验课 16 学时教材:Visual C与面向对象程序设计(第二版),吕军等,高教出版社,2003年8月参考书目:C+程序设计教程,钱能,清华大学出版社Visual C+程序设计与软件技术基础,马建红 沈西挺,中国水利水电出版社Visual C+图形用户界面开发指南,李博轩, 清华大学出版社新编Visual C+6.0 教程,北京科海培训中心 编著C+ PRIMER (3RD)中文版Sta
2、nley .Lippman,Josee Lajoie ,中国电力出版社C+程序设计语言(特别版)(美)Bjarne Stroustrup,机械工业出版社常用网址:1.2.3.第一章 C+入门1.1 软件开发与C+语言1.2 算法与程序1.3 输入、编译、调试和运行一个C+程序1.4 C+语言的输入与输出命令1.5 程序设计语言的发展1.6 C+程序的基本要素1.6.1 标识符、关键词和标点符号1.6.2 注释1.6.3 源程序1.7 编译预处理1.7.1 宏定义1.7.2 文件包含1.8 Visual C+的集成开发环境1.8.1 菜单和工具栏1.8.2 Developer Studio窗口1
3、.8.3用Developer Studio编写和调试简单C+程序1.8.4 菜单选项、快捷键和工具栏第二章 控制结构2.1 程序的基本控制结构2.2 C+的控制结构2.2.1 顺序结构2.2.2 选择结构2.2.3 循环结构2.3 结构化程序设计2.4 伪代码2.5 结构化程序设计方法简介2.6 C+的其他控制转移语句2.6.1 switch语句2.6.2 goto语句和语句标号2.6.3 break语句和continue语句2.6.4 exit()函数和abort()函数2.7 Developer Studio的文本编辑器第三章 基本数据类型3.1 数据类型3.1.1 整型数据的表示方法3.
4、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.8 typedef语句3.9 Develper Studio的文件处理功能3.10 Visual C+程序的编译、链接和运行3.11 查看和修改编译、链接错误第四章 表达式4.1 算术运算符和算术表达式4.2 逻辑运算符和逻辑表达式4.3 赋值运算符和赋值表达式4.4 自增运算符4.5 表达式中各运算符的运算顺序4.6 其
5、他具有副作用的运算符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.9 C+的库函数5.10 函数模板5.11 变量的存储类别5.12 Develooper Studio的跟踪调试功能第六章 指针6.1 指针与地址6.1.1 地址6.1.2 指针6.2 指针运算6.3
6、 指针与数组6.4 动态存储分配6.5 指针与函数6.5.1 指针作为函数的参数6.5.2 返回指针的函数6.5.3 指向函数的指针6.6 指针的数组6.7 指针的初始化6.8 Visual C+的帮助功能第七章 类和对象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.7 const修饰符7.8 MFC的CString类7.9 MFC的CTime类和CTimeSpan类7.9.1 CTime类7.9.2 CTimeSp
7、an类7.9.3 CTime类和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 使用Class View标签第九章 多态性9.1 多态性概述9.2 派生类对象替换基类对象9.3 虚函数9.3.1 虚函数
8、定义9.3.2 虚函数的使用限制9.4 抽象类9.5 运算符重载9.6 文件处理9.7 异常处理机制第一章C+入门教学目的:了解+程序的基本特点, 熟悉Visual C+集成开发环境的基本使用方法。重点:了解+程序的基本特点,Visual C+的集成开发环境。难点:C语言、+、VC之间的关系1.1 软件开发与C+语言一、C语言的发展历程B-C-C+ Vc+B是无类型语言(需解释)C+是面向对象的语言(解释),使开发软件的可重用性、可维护性和可靠性,具有了极大的优势。C是C+的子集,C+是C的超集。VC是可视化的C+集成环境二、本课程的目的1.C+的程序结构(面向过程)2.VC集成环境的使用3.
9、面向对象的构成思想4.学习利用系统提供的对象进行面向对象的编程(简单)1.2 算法与程序算法:解决问题的方法和步骤程序:用计算机语言对算法的描述例1:1.根据算法特性,至少要有一个输出,如果使用C语言的printf和scanf函数完成输入输出,则必须打开stdio.h头文件。c+中数据的输入输出通过cin和cout与、v1v2vn;1. :提取运算符2.提供数据时,数据间用空格(广义)分开。3.所提供数据应与变量类型相一致,若不一致,会导致操作失败或数据错误。(感兴趣者可以仔细研究)。二、输出:coute1e2em;1.:插入运算符2.系统会根据输出数据的类型,自动以相应的格式输出1.5 程序
10、设计语言的发展自学1.6 C+程序的基本要素1.6.1 标识符、关键词和标点符号一、标识符:程序中变量、类型、函数和标号的名称1.区分大小写2.组成规则,字母(含下划线)开头的字母数字串二、关键字关键字:具有特定作用,不能作为自定义标识符的字符组合。标准标识符:系统提供具有特定功能的常量、函数等,与关键字的区别是,关键字不能作为用户自定义标识符,而标准标识符则可以,但是最好不要将其作为用户自定义标识符。1.6.2 注释编译器把一个注释作为一个空格字符处理。1.6.3 源程序一个C+源程序由一个或多个源文件构成。习惯上,通常将变量、类型、宏和类等的定义放在一个源文件中(扩展名用.h),然后在其他
11、源文件中引用这些定义量。在编制大型程序时尤其需要这样,在学习阶段,由于程序很小,所以可以不采用这种方法。1.7 编译预处理1.7.1 宏定义无参宏格式:#define 说明:1.习惯上宏名采用大写字母 2.宏替换是一个机械过程有参宏格式:define 说明:1.有参宏与函数的本质不同2.为防止宏替换出现问题,最好将参数和整个宏都用括号括起1.7.2 文件包含格式:#include 或 #include 文件名说明:1.文件包含的作用是将被包含文件嵌入到包含文件中 2.在系统指定的目录查找被包含文件;首先在当前目录中查找,若找不到,再到指定目录查找采用文件包含的方式,从物理角度是两个文件,但是对
12、于C语言系统而言,仍然是“一个”文件。1.8 Visual C+的集成开发环境Visual C+软件包包含了许多独立组件,如编辑器、编译器、链接器、实用程序生成器、调试器。我们运行VC所看到的界面是VC系统所提供的一个叫做Developer Studio的集成开发环境。开发环境会根据用户使用的需要,自动调用一些相应组件。1.8.1 菜单和工具栏开发环境提供的界面与windows下的其他软件的界面窗口基本一样,由标题栏、菜单栏、快捷图标栏及编辑窗口和其他窗口等组成。1.除标题栏外,其他栏目均为停靠式,可以用鼠标拖动改变它们的位置。2.快捷图标栏由多种工具栏组成,缺省状态下由标准工具栏(Stdan
13、dard Bar),向导工具栏(Wizard Bar),建立(编译)微型栏(Build MiniBar)组成,如果希望在工具栏中出现其它栏目,可以通过 工具/定制/工具栏 进行有目的的设置。1.8.2 Developer Studio窗口整个集成环境的窗口中有多个窗口,分为两种类型,一种是文档窗口(带边框),多个窗口时以平铺或层叠方式显示;一种是停靠窗口,缺省状态有两个停靠窗口,一个是工作区(Workspace),一个是输出窗口(Output)。其他窗口在需要时会自动出现,或者通过菜单命令,指定显示某个窗口。1.8.3用Developer Studio编写和调试简单C+程序编写简单程序的步骤:
14、1.选择菜单 文件(File)/新建(New)中的工程(Projects)选项卡,选择Win32 Console Application(32控制台应用程序。C+开发不同的程序需要选择不同的工程项目,对于简单的编程,选择Win32 Console Application即可。2.为该工程项目起一个名字,填在右上方project name上。下面的location指明项目文件的存储位置,用户可自己设定。3.此时应用程序生成向导会提问要生成的项目类型。选择An empty project(空项目),点击finish、ok。系统会自动产生目录和一个工作区文件(.dsw),一个.dsp,一个.ncb文
15、件。4.再次选择菜单 文件(File)/新建(New)中的文件选项卡,从中选择C+ Source File,为该程序文件命名,单击OK。5.在编辑窗口内编辑程序、编译、调试、运行。仅编译:compile Ctrl+F7编译加链接:build F7执行:execute Ctrl+F5产生的文件均存放在相应源程序文件下的debug目录中。1.8.4 菜单选项、快捷键和工具栏第二章控制结构教学目的:掌握结构化程序设计方法的基本思想和+的几种基本控制转移语句,熟悉使用伪代码的编程方法。重点:C+的控制结构。难点:分支循环结构2.1 程序的基本控制结构结构化的基本结构结构化的程序设计方法:以模块化设计为
16、中心,将需解决的问题划分为若干个相互独立的模块。模块的大小2.2 C+的控制结构2.2.1 顺序结构相互间具有先后顺序关系的模块组合2.2.2 选择结构1.概念选择结构又称分支结构。两个模块都有被执行的可能,但每次只能有且只有一个被执行。2.格式if (表达式) 语句1 else 语句23.注意事项(1)表达式必须用括号括起(2)表达式不对类型作任何要求(单变量方式)(3)复合语句的使用4.应用方式(1)逐情况判断(2)假定(3)嵌套 嵌套既可以嵌在then子句上,也可以嵌在else子句上。注意:为了明确的表示嵌套关系,消除二义性,可以采用三种方法:1)将嵌套嵌在else子句上。2)写齐所有子
17、句。没有语句的分支可以使用空语句。3)使用复合语句。当分支数在34个或更多一些,一般使用if语句,若更多时,往往使用switch语句。逐情况法常见于初学者,假定法常用于熟练编程者。嵌套法则是熟练又希望程序比较高效者。2.2.3 循环结构1.语句格式while (表达式) 语句do 语句while(表达式);for (表达式1;表达式2;表达式3)语句2.语句功能1)while和for均是当型循环,do while是直到型循环。2)所有的表达式均对类型没有特定要求。3)所有的循环体均为一条语句(复合语句)。4)所有的语句都是当条件成立时运行,不成立时退出。3.for语句for语句是C语言中极为灵
18、活的一种语句,当省略第一和第三表达式时,与while语句完全等效。2.3 结构化程序设计自顶向下、逐步细化、模块化2.4 伪代码类语言,接近语言,但又不是真正的语言,若需要转化成语言时,只要作简单的修改即可。与具体语言相比,语法不像具体语言的要求那么严格。2.5 结构化程序设计方法简介解决大型软件生产设计的设计基础和方法。2.6 C+的其他控制转移语句2.6.1 switch语句格式注意事项1)switch表达式虽然没有类型要求,但最好不要是实型。2)case后的常量只能是一个常量表达式。3)当执行符合条件的分支后,如无break则继续执行下续语句。4)循环中含switch语句,或switch
19、中含switch,内部的break仅仅自内部跳出,不能跳出外部控制体。continue只对循环起作用。2.6.2 goto语句和语句标号goto语句是无条件转移语句,它可以将程序流程控制无条件地转移到由标号所指定的语句处继续执行。使用goto构成的结构不一定是非结构化的,但非结构化的程序往往由于goto的因素。#include iosteam.hvoid main() int i,j,k=0; for (i=1;i=10;i+) for (j=1;j100) goto out; out: couti=i,j=j,k=kendl;if (k500) goto in;2.6.3 break语句和c
20、ontinue语句1.break作用:中止执行循环,使流程控制退出该循环控制结构,执行该循环语句的下一语句。(还可用于switch,但不能用于使用if构成的循环)虽然break属于非结构化的语句,但它对程序可读性的破坏不严重,某种意义上,还容易提高程序的可读性。2.continue作用:仅实现从该语句位置将流程控制转移到本次循环的结束位置。它结束的是本次循环,而不是跳出整个循环语句。几乎所有出现该语句的地方,都可以通过改变算法而取消该语句的使用。对于多重循环,这两条语句都只能对包含它的语句起作用。2.6.4 exit()函数和abort()函数作用:中止整个程序的运行。exit():结束程序前
21、做一些善后工作。abort():强制结束程序。要求使用整数参数表示退出的原因。习惯上用0表示正常退出,非0值表示非正常退出(程序调试)。2.7 Developer Studio的文本编辑器一、基本操作通用的键盘操作方式二、高级编辑Windows环境下的一些操作第三章基本数据类型教学目的:掌握几种基本数据类型, 包括字符型、整型、长整型、浮点和双精度数据类型的基本概念, 以及常数、变量和数组的使用方法。重点:C+基本数据类型。难点:数组3.1 数据类型数据类型定义了变量可接受值的集合以及对它所能执行的操作。类型的定义决定了三个方面的性质:a.该类型数据所占据内存空间的大小(数据的取值范围)b.数
22、据在内存中的存储格式(定点、浮点)c.定义可以施加在该类型数据上的操作3.1.1 整型数据的表示方法整型数据在内存中的表示方法(补码),字符型数据也可以认为是补码方式。3.1.2 实型数据的表示方法实型数据在内存中的表示方法(浮点数)3.2 常量3.2.1 整型常量十进制:yyy十六进制:0xyyy八进制:0yyy3.2.2 实型常量格式:(x).(x)e(E)xx规定:小数点先后必须有一位数字e的左面必须有数字(上面的要求),右面必须是整数尾数必须为十进制数说明:c中的实型常量为双精度型,如果需要特别指明为单精度型,可在实数后面加f或F3.2.3 字符常量定义:用单引号括起来的一个字符。c语
23、言支持扩展ASCII字符集,因此共包含256个字符注意:1.转义ASCII码没有十进制数,只有十六进制和八进制,没有X就是八进制。X打头时不能有0。其取值范围为ff,3772.任何字符都可以转义方式给出,一些常用控制字符给出了转义字母,如n,t,b,(,在不引起误解的情况下可以不用,如whats,)3.非转义字母前面加,不起任何作用3.2.4 字符串常量字符串是用双引号括起来的一系列字符。注意:当字符串中包含转义字符时,转义符后的数值后面不能跟随引起误解的符号。八进制数后面不能跟07,十六进制不能跟09和a-f(A-F)。3.3 变量3.3.1 变量的声明1.基本类型int 整型(4byte)
24、 char 字符型 (1byte) float 实型(4byte)验证:coutsize=4的值时则有结束标志。没有初值时为随机字符,所以也没有结束标志。3.字符数组的输入输出1)单字符输入输出以单字符方式读取时,应注意添加结束标志(讲一个读不定长度字符串的例子)2)以字符串方式输入输出注意:(1)读取时不需要人为添加结束标志(2)以空格(广义)为字符串的分隔标志4.相关的几个函数strcpy(array,str) strcat(arraystr,str) strcmp(str1,str2) strlen(str)strlwr() strupr()strchr() 字符串中查找字符strrev
25、() 反转字符串strstr() 在字符串中查找字符串说明:array数组(必须有足够的空间),str字符串(数组、常量串、指针)在C中array可以为指针,VC中只能是数组(教材中有错误)3.6 类型修饰符和常量修饰符自学内容检查验证_intxx方式定义类型的大小3.7 枚举类型格式:enum 枚举类型名枚举元素表;说明:枚举元素的序号自0开始,按照先后顺序排列,也可指定序号。指定序号时应预留足够编码空间,若不足,或者系统报错,或者两个元素具有相同的序号。枚举量可以进行比较(如同字符,比较的是它们的序号)。枚举元素是标识符,不是字符串,不能直接以串方式输出,但枚举变量可以直接输出,输出的是该元素的序号。3.8 typedef语句1.方法:1)按定义变量的方法写出定义体2)将变量名换成类型名3)在最前面加上typedef4)用新类型名定义变量
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1