Windows程序设计课程教学新思路

时间:2022-06-29 08:30:49

Windows程序设计课程教学新思路

摘 要: Windows程序设计使得复杂的软件开发过程变得简便,但是由于API、MFC等复杂内容的引入,使得该课程的学习过程充满艰辛,难以获得满意的教学效果。随着该课程的广泛开展,基于对该课程教学模式的深入思考和多年教学经验,分析了该课程教学过程中存在的问题,充分认识到程序整体结构对于Windows程序设计的重要性,提出了“先搭结构,再添砖瓦”的教学模式,并设计了一套与之相对应的实验。

关键词: Windows程序设计; API; MFC; 程序框架

中图分类号:G42 文献标志码:A 文章编号:1006-8228(2014)11-57-02

New idea of Windows programming course

Zhang Xiaofeng

(School of Computer Science and Technology, Nantong University, Nantong, Jiangsu 226019, China)

Abstract: Using Windows programming, the complex software development becomes easy. But the course of Windows programming is hard to obtain a satisfactory teaching effectiveness. Since the introduction of API, MFC and so on, the study of Windows programming is difficult. With the development of this course, it is necessary to take a deep considering of this course. In this paper, the problems of this course are analyzed according to years of teaching experience. A new teaching mode, which suggests the framework is more important, is proposed. A suit of corresponding experiments are designed.

Key words: Windows programming; API; MFC; framework of programming

0 引言

Windows程序设计是一种实用的面向对象程序设计方法,该方法主要使用API(Application Programming Interface,应用程序编程接口)、MFC(Microsoft Foundation Classes,微软基础类库)等实现,是程序设计的高级形式。近几年来,为了让学生更好地接触流行的程序设计方式,毕业后更好地适应角色融入工作中,很多学校开设了Windows程序设计课程。由于该课程涉及的知识面广,包含内容的关系错综复杂,实际获得的教学效果并不理想。一些研究[1-3]分析了Windows程序设计课程的特点,提出了相应的教学方案。但是这些方法的使用往往得到只见树木不见森林的结果。本文分析和研究了Windows程序设计课程教学过程中遇到的问题,提出了合理的解决方案,并设计了一套与之相对应的实验。所提出的方法在近几年的教学实践中获得了较好的效果。

1 课程的难点

本课程涉及一种实用的程序编写技术,它和Windows操作系统有着密切的联系,通过Windows编程技术,既能够编写出涉及底层的软件,也可以实现功能强大的具有Windows窗口界面的程序。然而正是由于其强大的功能,使得初学者无所适从。以下简要分析本课程的难点。

⑴ 面向过程到面向对象的转变

学生在接触本课程之前,一般都学习过诸如C或者C++这类程序设计语言。然而那些课程中编写的程序主要是面向过程的,程序之间的调用、跳转清晰明了。会有人说C++是一个面向对象的语言,课程中主要涉及的是控制台程序,用C++来讲解面向过程的程序结构和思想,对于面向对象的讲解仅停留在类、对象等概念上,学生很难形成面向对象的深刻认识。

到了Windows程序设计部分,面向对象就涉及到程序的方方面面。对象、类和方法使得整个程序形成一个复杂的关系网,与原先的程序开发思想形成了鲜明的对比。

⑵ 消息驱动机制

传统的编程方式主要是过程式的结构,从一个部分到另一个部分一目了然。比如在程序中运行一个函数,必须有代码显式调用该函数。因此,仅仅读程序就可以获得程序完整的流程。

但是消息驱动机制改变了传统的结构。在这种驱动机制下,程序的流向与当前获得的消息有关,这样,每次运行程序时的消息不同会造成不同的运行结果。消息的种类有好多种,其中最常用的是用户的鼠标、键盘交互动作。因此想要更好地掌握Windows程序的设计的结构,理解消息驱动机制是必不可少的。

⑶ API和MFC开发的区别和联系

API和MFC是实现Windows程序设计的两种基本途径。两者都能实现具体的编程目的,都是基于消息驱动的,但在实现过程中有较大的区别。

API开发方式没有对程序进行过多封装,功能的实现都必须调用相应的API函数实现,样样事都需要亲力亲为,优点是开发人员对设计程序的实现有清晰的认识。而MFC则封装了较多的内容,优点是使开发者集中精力在具体实现上,而不是纠结于界面设计、消息处理的细节,缺点则是初学者不了解程序的流向,不能有效掌控整个程序。

⑷ 对Windows程序设计的结构理解不够

由于Windows程序设计是基于消息驱动的,编程的时候需要考虑的是如何调用消息处理程序。API比较简单,一般就是处理窗口的消息。而MFC将这些内容封装起来,很难直接看到内部的结构。

⑸ API数量庞大,难以记忆

功能强大带来的副作用就是需要更多的函数实现具体功能。Windows中的API函数多达数千个,随着Windows的发展,数量还在不断增加,这给初学者造成了较大的负担。如何分门别类记忆这些API函数,是Windows程序设计中必须面对的问题。

2 解决方案

Windows程序设计课程中遇到的问题并不是孤立的,它们之间紧密联系。对这些问题进行深入分析研究,本文提出这样的教学模式:先掌握程序的框架结构,然后再考虑细节的“砖瓦”。先导课程中有相关程序设计语言课程已训练过学生的编程思想,本课程主要希望教会学生借助Windows程序设计工具开发结构复杂和功能强大的Windows程序,因此程序整体结构在本课程中具有意义。

面向对象的思想不能仅靠讲解对象和类的概念,应该放到具体程序中讲解,比如程序的主体中的对象和类。而MFC中更是充满了类的概念,从整个框架到小的控件都是类的具体对象。当学生知道了这些部分都是对象的时候,他们会恍然大悟。这些类的具体方法也会随着教学的深入而不断被提到。

对构架的理解可以通过分析一个样板程序获得,并且在随后的课程中逐渐加深理解。API创建程序的结构比较清晰,一般是创建窗体后进入消息循环。MFC创建的程序主要有三类:对话框、单文档和多文档,这三类的结构略有区别。“文档/视图”结构是MFC程序的基本结构,它将数据和显示分开,使程序开发更容易。但是只会往这种结构中填写程序,则会在文件是如何打开、保存,以及送到屏幕显示等具体问题上迷惘,因此需要从基本结构入手,深入剖析其程序的消息响应机制。

解决了程序的框架问题,接下来需要进一步训练学生的面向过程的程序思想,即如何实现一个个程序块的功能。这些功能块构建了程序需要的“砖块”,填入之前设计的结构中就形成了完整的程序。构建“砖块”就会用到相应的API函数,这时不能一下子将所有API抛给学生。API太多,结构也比较复杂。适宜采用的方法是让学生掌握部分常用的API函数,然后拓展范围,教会他们使用MSDN查找具有相应功能的API函数。

3 实验设计

作为一门实践性的课程,光靠理论是不能够让学生掌握课程的基本内容的,良好的实验设计可以使学生将书本知识转化为自己的技术。经过这些整理,设计的实验包含以下几个部分。

⑴ Windows应用程序的框架

该实验主要用于熟悉使用API编写Windows应用程序的框架,首先实现单窗口程序及其消息处理,并在此基础上添加其他窗体、对话框,及其消息处理函数。通过API掌握数据的流向。

⑵ Windows应用程序对各种消息的响应

这部分的消息主要包括:鼠标、键盘、菜单等。主要掌握各种常见的消息处理,以及这些消息处理中使用的API函数。

⑶ Windows应用程序的图形和文字输出

这部分主要训练学生使用API函数实现输出功能。

⑷ MFC创建程序的框架

这部分内容包括使用MFC创建单文档、多文档和对话框程序,文档打开、保存,消息传递。要着重理解MFC程序的“文档/视图”框架。

⑸ MFC创建菜单

菜单中的消息响应机制是这部分的重点,需要掌握手动添加菜单及其相应函数。

⑹ MFC程序中其他控件的使用

如果前面已经掌握了MFC程序的框架,这部分就是在添砖加瓦。每个部分相对独立,学习的难度不大。

其实验的安排与书本顺序恰恰相反,它遵循了从整体到局部的理念。通过这些实验,可以让学生充分掌握Windows程序设计的框架,同时掌握每个细节的编写方法,实现对Windows程序的全面掌控。

4 结束语

本文针对Windows程序设计课程内容繁多、结构复杂的特点,分析了课程的难点,提出了从结构入手,逐步了解各个细节的学习方法,并配合该方法提出了一套实验方案。在近些年的教学实践中,这些方法取得了较好的教学效果。

参考文献:

[1] 何军.面向对象思想在Windows程序设计课程中的教学研究[J].福建

电脑,2013.8:186-187

[2] 刘智,张金荣,王森.深入浅出讲解“Windows程序设计―Visual C++”

课程[J].计算机时代,2012.9:57-59

[3] 虞芬,邹睿娟.以学生为中心,培养学习能力―《Windows程序设

计》课程的教学改革与实践[J].九江职业技术学院学报,2011.2:

46-48

上一篇:应用型本科院校IT专业数据挖掘课程建设 下一篇:人民大学平安校园建设:让校园更智慧