首页>电子书>安全与解密>VisualC++与面向对象程序设计教程.pdf

VisualC++与面向对象程序设计教程.pdf

3288cd  在  2021-01-11 21:21:07  上传  45.79 MB C++
Visual C++与面向对象程序设计教程.pdf
第二版前言
本书自2000年7月面市,转眼已近三年了,在这三年里,仅在本校先后就有十余位教师
近万学生参与了本课程的教学实践。在教学中,授课教师多次开展教学法活动,互相听课
研讨,并以各种形式听取学生的意见和建议。我们建立了一整套教学体系,并不断完善教学
环节,包括多媒体授课、网络视频课堂、电子答疑、电子作业提交与批改以及上机编程的考
核方法,以图贯彻“精讲多练”的教学方针
在教学实践和教学法交流活动中,授课教师和学生对本书提出了大量建议。除了指出原
书中存在的错误外,这些建议集中反映在学习难度上.作为 Visual c++的入门教科书,并且
面向“零起点”的学生,本书的目标在第一版就明确定位为“使学生掌握使用Ⅴ isual c艹设
计应用程序的基本技能”,以及能够编写、调试程序,而不是对 Windows编程的全面介绍
为了能在一本几十个课时的教材中涵益 Visual C++的基本技术,对于C,C++和 Windows编
程技术相关内容的选择一直是我们反复推敲的重点,经过三年的积累,我们深感需要对有关
内容进行修订和调整,以反映这些来自教学一线的需求。
随着微软net的推广,有的教师建议将教学环境过渡到net框架,以适应技术发展的潮流
经过多次讨论,我们认为语言开发环境的变化是快速的,而语言本身在相当时间内会保持相
对稳定。作为入门教材,我们应更注重对学生基本程序设计能力的培养,而不过分依赖于开
发环境。为此,我们在新版中没有引入最新的开发环境,而把重点放在内容的取舍和例题难
度、跨度的调整上
除了修正原书中的错误外,第二版主要进行了以下方面的修改和调整:
(1)加大了C++部分内容的份量,由原来的两章改为三章,并增加了相应例题,以期
强化初学者面向对象程序设计的能力。为保持总课时数, Windows编程部分相应地压缩了
(2)降低学习难度,删除了原书中的“win32应用程序”编程模式、使用非模式对话框
编程方法,并改写了相关例题,以单文档(SDI)编程模式为主线介绍 Windows编程,以使
学生更关注于程序设计本身,弱化对开发环境的学习
(3)增加部分贴近实际应用的例题,如应用数值分析及图示编程,为学生在后续课程及
以后工作中应用编程技术打下良好基磁
(4)对例题和概念的讲解进行了全面的润色,并从第十章开始,采用step- by-step的方
法指导学生在向导生成的程序基础上进行编程,更有利于读者自学,原书中编程技巧较高的
例题放在附录中,以满足学习进度较快的学生的要求
第一版的主要作者刘路放教授已经远在加拿大、笫二版的修订工作是冯博琴教授应高等
教育出版社要求,组织西安交通大学计算机教学实验中心多位在课程教学一线的教师共同完
成的,这些教师中有些人还同时承担其他语言的教学工作。参加修订的有杨瑜(第1~7章),
仇国巍(第8、9章),吕军(第10、11.15、16章),朱丹军(第12章),薛涛(第13、

2
第二版前言
14章),崔舒宁(本书的部分例题)本书由罗建军、杨琦统稿,全书由冯博琴教授主审
刘路放教授对本书的修改提出了重要的建议,在此致以诚挚的感谢。其他授课教师在百忙中
也对本书提出许多有益的建议,在此一并致谢。特别的致谢给予那些在调查问卷,课堂调查
以及通过BBS、E-mall向教师提出建议的广大学生
由于作者学识浅陋,编写时间仓促,书中错误在所难免希望读者不吝赐教。
编者于西安交通大学
2003年6月

初版前言
随着 windows操作系统的崛起,由传统的面向控制台的字符软件开发向面向窗口的可视
化编程转化已成为必然趋势。而Ⅴ isual C++正是 windows环境下最强大、最流行的程序设计
语言之一。
Ⅴ isual C++支持面向对象的程序设计方法( Object-Oriented Programming,OoP),支持
MFC( Microsoft Foundation Class)类库编程,有强大的集成开发环境 Developer Studio(其中
包括了程序自动生成向导 App wizard、类向导 Class wizard和各种资源编辑器,以及功能强
大的调试器等可视化和自动编程辅导工具). Visual c++可用来开发各种类型、不同规模和
复杂程度的应用程序,开发效率很高,生成的应用软件代码品质优良。这一切都使得 isual
C++成为许多专业程序开发人员的首选
然而,Ⅴ isual c++一向有“难学”的名声,许多初学者视学习 Visual C++为畏途。究其
原因,一方面是 Visual C++(包括MFC类库〕的规模庞大,结构复杂,难于理出一条循序淅
进的学习路线;另一方面是其 App wizard自动生成的程序专业化程度高,代码量大,结构复
杂,以其为基础编写的例题难于为初学者理解和掌握。因此,目前的 Visual c++教科书多是
为已有C语言或C+语言编程基础的人准备的,起点较高
本书是 Visual c++入门教科书,适用于本科类计算机及相关专业学生程序设计能力的培
养。为了克服上述困难,使基础不高的初学者也能很快地掌握程序设计方法,我们在确定教
学目标、设计教学模式、编写教程内容等方面进行了一系列革新探索,以现代教育理论为指
导,多媒体教学手段为基础,提出了“精讲多练”的教学模式。使用“精讲多练”模式进行
Visual C++这类程序设计语言课程的教学,效果很好
本教程的目标是使学生掌握使用Ⅴ Visual c++设计应用程序的基本技能,了解面向对象的
和结构化的程序设计方法,能够编写、调试和运行实用、规范、可读性好的 Visual C++程序
不像其他 Visual c++教材需要学习者具有一定的程序设计基础(如学过C语言或C++语言)
本书“从零开始”,不要求学生有程序设计方面的先修课程。但在学习本课程时,学生最好
对计算机的使用有一定了解(了解 Windows的使用,具有键盘操作和文件处理的基础)
我们在设计本教程内容时,以面向对象的和结构化的程序设计方法思想贯穿全书,并以
大量篇幅介绍了 Visual c++程序的调试技术和一些典型应用程序的设计思路,其中有些是作
者在长期的编程和教学实践中摸索和总结出来的心得,
本教程共分16章,分别对应16个教学重点。这16个教学重点又可分为两组:前8章为
组,处理C+的基本内容,包括控制结构、基本数据类型、表达式、函数,指针和引用,
以及类与对象的基本概念和封装、继承和多态性等面向对象程序设计的基础理论,在学习了
这些内容之后,学生应能编写、调试和运行一般规模和难度的控制台应用程序(如数值计算
类程序),并对面向对象的和结构化的程序设计方法有所了解,为编写较大规模的应用程序
打下基础。后8章处理 Windows编程技术,包括消息传递机制、MFC应用程序框架、设备

2
初版前言
环境、资源、文档/视图结构、对话框和控件等。在这一部分中,强调对基本概念的理解和掌
握,以及在理解和掌握的基础上编写具有较复杂的窗口界面的 windows应用程序的能力
为了便于教学,每章均按以下主题进行组织:
教学目标和学习要求本书的特点是“精讲多练”,因此为教师和学生规定明确的教学
和学习目标是非常重要的。
授课内容是建议教师课堂讲授的内容。一般来说,授课内容是本章所有教学内容的
“纲”,起着联系本章所有项目的作用。授课内容部分的分量按两学时组织。第1章的授课
内容分量略轻,这是因为在第1章的投课时间中还应划分出部分时问用于介绍编辑、调试和
运行应用程序项目的基本步骤
自学内容“自学内容”和“授课内容”部分一起组成了一个章的基本教学内容。这部
分内容通常都是“授课内容”的延伸和继续,由学生在课外时间自学,必须强调的是自学部
分并非不重要,也不能省略。一般来说,教师应在授课时间中抽出5-10分钟对自学内容略
作导引,以便利学生自学
调试技术介绍 Developer Studio集成开发环境的使用方法,以及如何调试、连接和运行
Visual C艹+应用程序项目。强调编程实践是本书的重要特色。第I章的调试技术中的部分内
容可以在授课时问讲授,其他章的调试技术一般由学生自学,同时也可以作为学生上机的实
验指导书。辅导教师在带学生上机时应对这些内容进行现场辅导
程序设计举例为了补充授课内容和自学内容部分的例题,我们设置了程序设计举例栏
日。本栏目所有例题均与本章的投课、自学或调试技术等部分的内容相关,是学生学习复习
本章的重要参考资料
上机练习题每章均配有若干上机练习题目,供学生上机练习。这些练习题目均为程序
设计题目,传统的做法是先编程,再上机。由于C++的特点,也可以在写出较详细的伪代码
程序之后直接上机,“精讲多练”式教学方法的基本特点是上机时数较多,所以这部分的习
题工作量较大,因此在上机时数不足的情况下可以酌情选做若干题目
为了保证教学效果,在条件许可的情况下最好采用直接在计算机房进行的联机电化教
学,在这种情况下,每个教学单元(即每章)可使用连续的4课时,先由教师讲解授课部分
并对自学部分和调试技术等内容进行简短的指导(共2学时),然后学生即可在教师指导下
上机练习(2学时),此外,如果能够提供一定数量的课外机时(如20-30小时)则更好。
近年来,我中心在计算机基础教育的理论和实践等方面进行了一系列探索和革新,其成
果(“精讲多练”的教学模式是其中之一)荣获了1997年度国家级教学成果一等奖。这些成
果都是在冯博琴教授的领导下完成的,本课程的建设也不例外,本教程的构思和编写得到了
冯博琴教授的多方指导,并由他审核了书稿,在此向冯老师表示深深的谢意。在本书编写过
程中,曾与李波、罗建军、卫颜俊,杨琦、吕军和张伟诸同事进行了多次交流,受益匪浅
以上同事还提供了一些有用的材料;杨琦同志为本书绘制了部分插图,在此一并表示感谢。
由于作者学识浅陋,编写时间仓促,书中错误在所难免。希望读者不吝指教。
编者于西安交通大学
2000年4月

目录
第一章C+入门
27 Developer Studio的文本编辑器
上机练习题
1,1软件开发与C++语言…
1.2算法与程序…
2
第三章基本数据类型………………35
1.3输入、编译、调试和运行一个
3.1数据类型………………………35
C+程序
3.11整型数据的表示方法…………36
14C++语言的输入与输出命令
3.1.2实型数据的表示方法
…36
15程序设计语言的发展…
32常量………………36
1.6C++程序的基本要素………17
321整型常量………"37
1.61标识符、关键词和标点符号
322实型常量………37
1.62注释…………17
323字符常量……………37
16.3源程序……8
324字符串常量……38
17编译预处理…
8
3,3变量…38
171宏定义…
平彩,
8
331变量的声明…………38
17.2文件包含…
332变量的初始化……40
1.8 Visual C++的集成开发环境…………10
34数组…………………40
1.81菜单和工具栏…
3.5字符型数组和字符串处理库函数…4
1.82 Developer Studio窗口…
36类型修饰符和常量修饰符
,,,
1.83用 Developer Studio编写和
37枚举类型"4
调试简单C+程序………ll
3.8 typedef语句
1.84菜单选项、快捷键和工具栏…12
39 Developer Studio的文件处理功能…46
上机练习题……………………15
3.10 Visual C++程序的编译、连接和
第二章控制结构……16
运行………………47
3.1查看和修改编译、连接错误…48
2!程序的基本控制结构…………16
上机练习题……
51
22C++的控制结构………8
22l顺序结构………………18第四章表达式
……53
222选择结构……18
4.1算术运算符和算术表达式……3
223循环结构
4.2逻辑运算符和逻辑表达式………54
23结构化程序设计…
43赋值运算符和赋值表达式
24伪代码……
44自增运算符和自减运算符…
55
25结构化程序设计方法简介…24
4.5表达式中各运算符的运算顺序…56
26c+的其他控制转移语句
24
4.6其他具有副作用的运算符…57
26.1 switch语句………25
47问号表达式和逗号表达式……
……58
2.6.2goo语句和语句标号………………26
4.8类型不同的数据之间的混合
263 break语句和 continue语句…27
算术运算……………59
264exi0函数和ab0函数…28
49运行错误的判断与调试……
60

2
目录
410基本调试手段…………………61
73l类的定义……
102
411注释号在调试中的作用……
732成员函数的定义………103
42条件编译
652
733内联成员函数………104
上机练习题……
…66
734对象……
74构造函数与析构函数…………………106
第五章函数…………………
67
75数据成员的初始化…………108
51函数的定义
67
7.6对象与指针……………109
5,2函数的调用………69
7.7 const修饰符………………………110
53函数原型……………………70
78MFC的 CString类……………1
54函数间的参数传递
79MFC的 CTime类和 CTime Span类…113
541值调用
79.1 CTime类………
114
542引用调用……
792 TImesPan类…………115
55函数重载……………………72
79.3 CTime类和 Ctime Span
56局部变量和全局变量………………73
类的运算………………115
57内联函数………………74
7.10类的嵌套……………………………115
58带有默认参数的函数………………75
7.11如何在程序中使用MFC类库………16
59C++的库函数………………15
7.12使用 Fileview标签……………116
510函数模板
上机练习题
19
511变量的存储类别…
51L1自动变量(auto)…………………77
第八章继承与派生……………120
5112静态变量( static)…………77
81继承与派生………………
120
512 Developer Studid的跟踪调试功能……78
81.1为什么使用继承……………120
上机练习题…
,
81
812派生类的定义……………121
第六章指针
813派生类中的变化…………122
82派生类的继承方式……………122
61地址与指针…………………13
821公有继承……………………122
611地址……………………83
822私有继承…124
612指针……164
82.3保护继承
26
62指针运算……………………84
83派生类的构造函数和析构函数……127
63指针与数组………
831构造函数………………128
64动态存储分配………
832析构函数
65指针和函数……………………………91
84显式访问基类成员…………………129
651指针作为函数的参数
91
85静态成员……………………131
652返回指针的函数……
92
86类模板……………………132
653指向函数的指针……
87使用 Class view标签………………134
66指针的数组……14
上机练习题
139
67指针的初始化
68 visual C++的帮助功能……………………96
第九章多态性…
和,+
140
上机练习题…………………………99
9.1多态性概述
…140
第七章类和对象
92派生类对象替换基类对象…………142
100
93熊函数
……143
7.1面向对象的思想
93.1虚函数定义………………143
72面向对象程序设计的特点……………101
932虚函数的使用限制…………145
7.3类与对象
102
94抽象类

目录
3
9.5运算符重载xr………148
117文档/视图结构中的应用程序类…
96文件处理
150
11.8文档/枧图结构中的框架窗口类…205
97异常处理机制……………………152
19文档视图结构中各类对象之间的
上机练习题…………………459
协作关系
205
l1.10Ⅴ isual C++的常用调试宏…
205
第十章 Windows编程
160
11101 TRACEO宏……
205
101 Windows编程的基本思想…160
1.10.2 ASSERTO宏………206
10.2MFC编程…161
1.13 ASSERT VALIDO宏“…206
103单文档界面(SD)应用程序………162
1114 CObject: Dump成员函数206
104在窗口的客户区输出文字和图形…163
上机练习题……212
105编制消息处理函数167
10.51消息映射……
…167
第十二章图形设备接口和资源……213
1052利用 Classwizard编制
12.1设备环境类和图形对象
213
消息处理函数
12.2 Windows应用程序资源………214
106鼠标和键盘消息处理………168
123库存图形对象………215
10.7 Windows的用户界面对象……170
124画笔与画刷……………27
10.71窗口………170
125位图
10.7.2系统菜单…………171
126菜单…
225
107,3标题栏…………71
12.7字体………………227
1074菜单栏…………………171
12.8绘图模式………429
107.5工具条
……7l
129GDI坐标系………………230
107.6客户区……………………l7
12.10图标、快捷键和字符串表…………23l
107.7垂直滚动条和水平滚动条……172
121向项目中添加资源………………231
107.8状态栏…
……172
12.12资源编辑器………232
1079图标……………………172
12.12.1图标编辑器…………232
10.7.10光标
…172
12.22位图编辑器…………233
10.7.11插入符…
12123菜单编辑器…………233
107.12对话框…
……172
12.124快捷键编辑器………234
107.13控件
12.25字符串表编辑器………234
10.8 Windows数据类型与
上机练习题
……242
变量的命名规则
173
第十三章对话框……………243
10.9用 Appwizard生成文档/视图
结构的程序框架
175
13.1对话框( Dialog)………243
10.10 Developer Studio B
13.2控件…………246
Class wizard(类向导)……………184
133对话框的初始化……………………246
上机练习题……………19
134对话框的数据交换和数据
检验机制
246
第十一章文档/视图结构
………192
13.5非模态对话框
,,,,,,节,,·,听
252
111文档/视图概念……192
13.6公用对话框………252
1.2视图类…………………193
1361颜色选择对话框…………253
113文档类………94
13.62字体选择对话框………23
114文档/视图类之间的协作关系…195
13.7对话框模板资源的编辑…
115使客户区重绘
200
13.8使用 Class wizard建立对话框类……256
116定时器消息…
……203
139为对话框类加入成员变量…25

4
目录
上机练习题…
…263
上机练习题…………297
第十四章控件
1264
第十六章多文档界面程序………298
141常用控件……24
161MDI应用程序
……298
14.2基于对话框的应用程序…
274
16,2滚动视图………
304
14.3动画控件…………
16.3对话视图……
44a,.和,,,,,,、v,着
305
144用 App wizard生成基于
164文本编辑视图………………306
对话框的应用程序
279
165使用 App wizard建立MDl
上机练习题…………………28l
程序框架………………307
上机练习题…………309
第十五章文档读写与打印……………282
151序列化( Serialize)
…182
附录……………………1310
152打印和打印预览……
283
附录 1 ASCII吗表…
310
15.3自定义类的序列化…286
附录2常用库函数………
311
154编写独立的打印处理程序………288
附录3可供两人对奔的中国象棋程序……317
155更新命令用户接口消息……………291
附录4防空战游戏程序……328
156工具条与状态条……………294
附录5七巧板程序
…336
15.7 Developer Studio的输出窗口…………295
我要下载
意见反馈 联系客服 返回顶部

登录注册找回密码

Vaptcha启动中...

Vaptcha启动中...

充值账单订单冲正

*扫码按套餐金额一次性付款立即点击“确认”按钮

*充值提示成功,请重新登录账户生效

*充值问题联系Q或邮箱最迟24小时内答复

*充值问题先尝试【订单冲正】自助解决

*无法解决Q421644184或Q邮箱,支付宝订单平台账号

*推荐用chrome浏览器访问本站,禁用360浏览器

啥都没有哦

*输入正确支付宝订单号,2021开头的,点“确认”按钮

*有疑问请及时联系Q 421644184或此Q对应的邮箱

*提供支付宝支付订单号截图及平台用户名

*推荐用chrome浏览器访问本站,禁用360浏览器

在线咨询 x
如果您有任何疑问
点击咨询