前 言随着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集成开发环境的使用方法,以及如何调试、连接和运行Visual C++应用程序项目。强调编程实践是本书的重要特色。第1单元的调试技术中的部分内容可以在授课时间讲授,其他单元的调试技术一般由学生自学,同时也可以作为学生上机的实验指导书。辅导教师在带学生上机时应对这些内容进行现场辅导。
· 程序设计举例:为了补充授课内容和自学内容部分的例题,我们设置了程序设计举例栏目。本栏目所有例题均与本单元的授课、自学或调试技术等部分的内容密切相关,是学生学习和复习本单元内容的重要参考资料。
· 单元上机练习题目:每个单元均配有若干上机练习题目,供学生上机练习。“精讲多练”式教学方法的基本特点是上机时数较多,所以这部分的习题工作量较大,因此在上机时数不足的情况下可以酌情选做若干题目。
为了保证教学效果,在条件许可的情况下授课最好在多媒体教室进行。在这种情况下,每个教学单元可使用连续的4课时,首先由教师讲解授课部分并对自学部分和调试技术等内容进行简短的指导(共2学时),然后学生即可在教师指导下上机练习(2学时)。除此而外,如果能够提供一定数量的课外机时(如20~30小时)则更好。
近年来,我中心在计算机基础教育的理论和实践等方面进行了一系列探索和革新,其成果(“精讲多练”的教学模式是其中之一)荣获了1997年度国家级教学成果一等奖。这些成果都是在冯博琴教授的领导下完成的,本课程的建设也不例外。本教程的构思和编写得到了冯博琴教授的多方指导,并由他审核了书稿,在此向冯老师表示深深的谢意。在本书编写过程中,曾与李波、罗建军、卫颜俊、杨琦、吕军和张伟诸同事进行了多次交流,受益匪浅。以上同事还提供了一些有用的材料;杨琦同志为本书绘制了部分插图,在此一并表示感谢。由于作者学识浅陋,编写时间仓促,书中错误在所难免。希望读者不吝指教。
作 者
2000年4月于西安交通大学
计算机教学实验中心