您现在的位置: 论文网 >> 教育论文 >> 学科教育论文 >> Windows程序设计课程教学新思路论文

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

出处:论文网
时间:2015-02-12

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

  中图分类号: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程序设计课程内容繁多、结构复杂的特点,分析了课程的难点,提出了从结构入手,逐步了解各个细节的学习方法,并配合该方法提出了一套实验方案。在近些年的教学实践中,这些方法取得了较好的教学效果。

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

论文搜索
关键字:程序 教学 思路 设计 课程 Windows
最新学科教育论文
软件工程专业“计算机网络”课程实验教学研
“赛教学训”四位一体化的物联网工程专业人
浅议幼儿美术趣味教学及创新能力的培养
如何利用奥尔夫音乐教学法培养幼儿的创造力
解读体育游戏在初中体育教学中的应用及影响
如何在美术教学中营造快乐的氛围
微积分慕课教学资源与应对策略探究
浅析在德育课教学中如何灌输团队观念
MOOC引领下中学历史课程多元化教学模式研究
“情感过滤”假设对大学英语听力教学探讨
热门学科教育论文
浅谈语文教学中学生创造力的培养
变“教师教,学生学”为“教师教学生学”
素质教育与小学语文教学
小学“语文综合性学习”实践初探
素质教育和小学语文教学改革
现代体育课堂教学重在创新
浅谈《体育课程标准》与体育教师观念的转变
电教手段优化体育教学
陶行知健身思想研究
简论现代游泳技术与训练的发展方向