前言 随着 Windows操作系统的崛起,传统的面向控制台的字符软件开发向面向窗口程序的 可视化编程的转化已成必然趋势。而 Visual C艹-正是 Windows环境下最强大、最流行的程 序设计语言之 Visual c+支持面向对象的程序设计方法(OOP: Object Oriented Programming),支持 MrC( Microsoft Foundation Class类库编程,有强大的集成开发环境 Developer Studio(其 中包括了程序自动生成向导 AppWizard、类向导 Class wizard和各种资源编辑器,以及功能 强大的调试器等可视化和自动化编程辅助工具)。 Visual c++可用来开发各种类型、不同规 模和复杂程度的应用程序,开发效率很高,生成的应用软件代码品质优良。这一切使得Ⅴ isual C++成为许多专业程序开发人员的首选。 然而, Visual c++一向有“难学”的恶名,许多初学者视学习 Visual o++为畏途。究其 原因,一方面是 Visual c++(包括MFC类库)的规模庞大,结构复杂,难于理出一条循序 渐进的学习路线;另一方面是其 App Wizard自动生成的程序专业化程度高,代码量大,结 构复杂,以之为基础编写的例题程序难于为初学者理解和掌握。因此,坊间的 sual c++ 教科书多是为已有C语言或C++语言编程基础的人准备的,起点较高。 本书是 Visual c++入门教科书,适用于非计算机专业理、工、管类学生的程序设计能力 培养。为了克服上述困难,使基础不高的初学者也能很快地掌握程序设计方法,我们在确定 教学目标、设计教学模式、编写教程内容等方面进行了一系列革新探索,以现代教育理论为 指导,多媒体教学手段为基础,提出了“精讲多练”的教学模式。使用“精讲多练”模式进 行Ⅴ isual c++这类程序设计语言课程的教学,效果很好。 本教程的目标是使学生掌握使用 Visual c++设计应用程序的基本技能,了解面向对象 的和结构化的程序设计方法,能够编写、调试和运行实用、规范、可读性好的 Visual c++ 程序。不象其他ⅤsuaC++教材需要学习者具有一定的程序设计基础(如学过C语言或C++ 语言),本教程设计为“从零开始”,不要求学生有程序设计方面的先修课程。但在在学习本 课程时,学生最好对计算机的使用有一定了解(如学习过“计算机文化基础”课程,了解 Windows的使用,具有键盘操作和文件处理的基础) 我们在设计本教程内容时,以面向对象的和结构化的程序设计方法的思想贯穿全书,并 以大量篇幅介绍了Ⅴ isual C艹+程序的调试技术和一些典型应用程序的设计思路,其中有些 是作者在长期的编程和教学实践中摸索和总结出来的心得。 本教程共分16个单元,分别对应16个教学重点。这16个教学重点又可分为两组:前 8单元处理C++的基本内容,包括控制结构、基本数据类型、表达式、函数、指针和引用, 以及类与对象的基本概念和封装、继承和多态性等面向对象程序设计的基础理论。在学习了 这些内容之后,学生应能编写、调试和运行一般规模和难度的控制台类应用程序(如数值计 算类程序),并对面向对象的和结构化的程序设计方法有所了解,为编写较大规模的应用程 序打下基础。后8单元处理 Windows编程技术,包括消息传递机制、MFC应用程序框架、 设备环境、资源、文档/视图结构、对话框和控件等。在这一部分中,强调对基本概念的理 解和掌握,以及在理解和掌握的基础上编写具有较复杂的窗口界面的 Windows应用程序的
前 言 I 前 言 随着 Windows 操作系统的崛起,传统的面向控制台的字符软件开发向面向窗口程序的 可视化编程的转化已成必然趋势。而 Visual C++正是 Windows 环境下最强大、最流行的程 序设计语言之一。 Visual C++支持面向对象的程序设计方法(OOP:Object Oriented Programming),支持 MFC(Microsoft Foundation Class)类库编程,有强大的集成开发环境 Developer Studio(其 中包括了程序自动生成向导 AppWizard、类向导 Class Wizard 和各种资源编辑器,以及功能 强大的调试器等可视化和自动化编程辅助工具)。Visual C++可用来开发各种类型、不同规 模和复杂程度的应用程序,开发效率很高,生成的应用软件代码品质优良。这一切使得 Visual C++成为许多专业程序开发人员的首选。 然而,Visual C++一向有“难学”的恶名,许多初学者视学习 Visual C++为畏途。究其 原因,一方面是 Visual C++(包括 MFC 类库)的规模庞大,结构复杂,难于理出一条循序 渐进的学习路线;另一方面是其 AppWizard 自动生成的程序专业化程度高,代码量大,结 构复杂,以之为基础编写的例题程序难于为初学者理解和掌握。因此,坊间的 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 应用程序框架、 设备环境、资源、文档/视图结构、对话框和控件等。在这一部分中,强调对基本概念的理 解和掌握,以及在理解和掌握的基础上编写具有较复杂的窗口界面的 Windows 应用程序的
能力。 为了便于教学,每个单元均按以下主题进行组织: 教学目标和学习要求:本书的特点是“精讲多练”,因此为教师和学生规定明确的教 学和学习目标是非常重要的。 授课内容:是建议教师课堂讲授的内容。一般来说,授课内容是本单元所有教学内容 的“纲”,起着联系本单元所有项目的作用。授课内容部分的份量按2学时组织。第1单元 的授课内容份量略轻,这是因为在第1单元的授课时间中还应划分出部分时间用于介绍编 辑、调试和运行应用程序项目的基本步骤(见第1单元的“调试技术”)。 自学内容:“自学内容”和“授课内容”部分一起组成了一个单元的基本教学内容。 这部分内容通常都是“授课内容”的延伸和继续,由学生在课外时间自学。必须强调的是自 学部分并非不重要,也不能省略。一般来说,教师应在授课时间内抽出10~20分钟对自学 内容和调试技术略作导引,以便利学生自学 调试技术:介绍 Developer Studio集成开发环境的使用方法,以及如何调试、连接和 运行 isual C艹应用程序项目。强调编程实践是本书的重要特色。第1单元的调试技术中 的部分内容可以在授课时间讲授,其他单元的调试技术一般由学生自学,同时也可以作为学 生上机的实验指导书。辅导教师在带学生上机时应对这些内容进行现场辅导。 程序设计举例:为了补充授课内容和自学内容部分的例题,我们设置了程序设计举例 栏目。本栏目所有例题均与本单元的授课、自学或调试技术等部分的内容密切相关,是学生 学习和复习本单元内容的重要参考资料。 单元上机练习题目:每个单元均配有若干上机练习题目,供学生上机练习。“精讲多 练”式教学方法的基本特点是上机时数较多,所以这部分的习题工作量较大,因此在上机时 数不足的情况下可以酌情选做若干题目 为了保证教学效果,在条件许可的情况下授课最好在多媒体教室进行。在这种情况下, 每个教学单元可使用连续的4课时,首先由教师讲解授课部分并对自学部分和调试技术等内 容进行简短的指导(共2学时),然后学生即可在教师指导下上机练习(2学时)。除此而外 如果能够提供一定数量的课外机时(如20~30小时)则更好。 近年来,我中心在计算机基础教育的理论和实践等方面进行了一系列探索和革新,其成 果(“精讲多练”的教学模式是其中之一)荣获了1997年度国家级教学成果一等奖。这些成 果都是在冯博琴教授的领导下完成的,本课程的建设也不例外。本教程的构思和编写得到了 冯博琴教授的多方指导,并由他审核了书稿,在此向冯老师表示深深的谢意。在本书编写过 程中,曾与李波、罗建军、卫颜俊、杨琦、吕军和张伟诸同事进行了多次交流,受益匪浅 以上同事还提供了一些有用的材料:杨琦同志为本书绘制了部分插图,在此一并表示感谢 由于作者学识浅陋,编写时间仓促,书中错误在所难免。希望读者不吝指教 作者 2000年4月于西安交通大学 计算机教学实验中心
前 言 II 能力。 为了便于教学,每个单元均按以下主题进行组织: ·教学目标和学习要求:本书的特点是“精讲多练”,因此为教师和学生规定明确的教 学和学习目标是非常重要的。 ·授课内容:是建议教师课堂讲授的内容。一般来说,授课内容是本单元所有教学内容 的“纲”,起着联系本单元所有项目的作用。授课内容部分的份量按 2 学时组织。第 1 单元 的授课内容份量略轻,这是因为在第 1 单元的授课时间中还应划分出部分时间用于介绍编 辑、调试和运行应用程序项目的基本步骤(见第 1 单元的“调试技术”)。 ·自学内容:“自学内容”和“授课内容”部分一起组成了一个单元的基本教学内容。 这部分内容通常都是“授课内容”的延伸和继续,由学生在课外时间自学。必须强调的是自 学部分并非不重要,也不能省略。一般来说,教师应在授课时间内抽出 10~20 分钟对自学 内容和调试技术略作导引,以便利学生自学。 ·调试技术:介绍 Developer Studio 集成开发环境的使用方法,以及如何调试、连接和 运行 Visual C++应用程序项目。强调编程实践是本书的重要特色。第 1 单元的调试技术中 的部分内容可以在授课时间讲授,其他单元的调试技术一般由学生自学,同时也可以作为学 生上机的实验指导书。辅导教师在带学生上机时应对这些内容进行现场辅导。 ·程序设计举例:为了补充授课内容和自学内容部分的例题,我们设置了程序设计举例 栏目。本栏目所有例题均与本单元的授课、自学或调试技术等部分的内容密切相关,是学生 学习和复习本单元内容的重要参考资料。 ·单元上机练习题目:每个单元均配有若干上机练习题目,供学生上机练习。“精讲多 练”式教学方法的基本特点是上机时数较多,所以这部分的习题工作量较大,因此在上机时 数不足的情况下可以酌情选做若干题目。 为了保证教学效果,在条件许可的情况下授课最好在多媒体教室进行。在这种情况下, 每个教学单元可使用连续的 4 课时,首先由教师讲解授课部分并对自学部分和调试技术等内 容进行简短的指导(共 2 学时),然后学生即可在教师指导下上机练习(2 学时)。除此而外, 如果能够提供一定数量的课外机时(如 20~30 小时)则更好。 近年来,我中心在计算机基础教育的理论和实践等方面进行了一系列探索和革新,其成 果(“精讲多练”的教学模式是其中之一)荣获了 1997 年度国家级教学成果一等奖。这些成 果都是在冯博琴教授的领导下完成的,本课程的建设也不例外。本教程的构思和编写得到了 冯博琴教授的多方指导,并由他审核了书稿,在此向冯老师表示深深的谢意。在本书编写过 程中,曾与李波、罗建军、卫颜俊、杨琦、吕军和张伟诸同事进行了多次交流,受益匪浅。 以上同事还提供了一些有用的材料;杨琦同志为本书绘制了部分插图,在此一并表示感谢。 由于作者学识浅陋,编写时间仓促,书中错误在所难免。希望读者不吝指教。 作 者 2000 年 4 月于西安交通大学 计算机教学实验中心