文畅 谢凯
摘要:该文针对《面向对象程序设计》课程教学中不足,以软件工程师的培养为导向,提出从模块开发教学和实践教学等方面对该课程教学进行改革,并通过案例分析说明,使学生尽快熟悉整个编程的流程,从纯代码编程向可视化编程过渡,提高编程的质量和效率,获得了良好的教学效果。
关键词:面向对象程序设计;模块化;计算机专业
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)05-0071-02
模块化的面向对象程序设计是一种软件设计与开发的新方法,其核心思想将整个软件分割成不同功能化模块,在开始编码之前,先做模块化设计,画出整个软件模块化流程图。然后编写各个“模块代码”,对各个模块进行测试,确保每个模块测试通过。最后将各个模块连接起来,进行整个软件的测试,确保整个软件的正常运行。
面向对象程序设计[1]是计算机专业和信息类专业一门重要的专业基础课。本文针对《面向对象程序设计》课程教学中不足,将模块化开发理念引入面向对象程序设计,通过计算机专业和信工专业几个实验班的多轮教学实践检验,学生受益匪浅。
1 面向对象程序设计与模块化教学结合
我们通过多年的教学实践发现,大学生在刚开始学习面向对象程序设计的障碍来主要来自于以下两个方面[2]:1)缺乏计算机的程序化思维模式;2)对整个程序的运行过程不是非常了解。要想学好面向对象程序设计,要了解程序如何运行、运行的顺序和运行结果。只有具备了这方面的认识,才能更好设计可视化程序,解决工程碰到的实际问题。同时,也解决了缺乏计算机的程序化思维模式的问题。
为避免面向对象程序编程中的缺点引入结构化编程的模块化思想。在采用面向对象编程的过程中发现,引入传统变成方法的模块化思想后,程序的易读性和可重用性比单纯使用面向对象的方法效果更佳,在实际编程中,具有很好的效果。
2 案例分析
我们以一个案例为例,来说明模块开发方法的优越性以及在面向对象程序设计教学中的应用 [3]。
例如,要求学生用VC6.0做一个简单的绘图软件。软件的功能如下:
1)启动界面,要求将“VC大作业2”写在软件启动界面上,界面上有“确定”和“取消”两个按钮,点击“确定”按钮进入绘图主程序,点击“取消”按钮退出程序。
2)绘图程序,要求如下:①有图像工具栏,完成“画正弦波”、“画方波”、“画锯齿波”、“单视图”、“双视图”和“退出主程序”六大功能。②绘图界面切分为上下两部分,上部为绘图区,下部为控制区。
3)退出界面,要求将“你确定退出吗”写在软件退出界面上,界面上有“确定”和“取消”两个按钮,点击“确定”按钮退出绘图主程序,点击“取消”按钮返回绘图主程序。
2.1 软件模块化流程
1)启动模块:启动模块主要通过对话框模板来设计。程序刚开始运行时,会弹出一个启动对话框,用户根据对话框上的提示,做出相應的选择。在整个启动对话框退出之前,整个应用程序不能继续其他的操作。
建立一个与启动模块相对应的类,类名为CStartDlg,该类为CDialog的一个公有派生类。同时为该类建立一个相对应的可视资源IDD_START_DIALOG,如图1所示。
2)绘图模块:拟采用VC6.0的单文档程序来设计绘图模块。该模块分为三步完成,首先建立工具栏,利用VC6.0提供的画笔绘制工具栏,如图2所示。
然后按照软件功能要求将绘图区域分为显示和控制两部分。程序的代码图3所示。
最后在内存区域对正弦波、方波和锯齿波进行绘制。
3)退出模块:拟采用对话框来设计退出模块。建立一个与退出模块相对应的类,类名为CExitDlg,该类为CDialog的一个公有派生类。同时为该类建立一个相对应的可视资源IDD_EXIT_DIALOG,如图4所示。
3 结论
通过模块化的设计,进行可视化编程的训练。可以使学生尽快熟悉整个编程的流程,从纯代码编程向可视化编程过渡。在进行编程前,让学生进行软件整体模块的方案设计,可以提高学生编程的效率,为以后进入软件开发团队,承担部分模块化设计打下坚实的基础。
参考文献:
[1] 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2014.
[2] 余厚全,吴凌云,陈永军.电子信息类专业实验教学的几点思考[J].实验室研究与探索, 2009,28(6):102-104.
[3] 谭浩强.C++面向对象程序设计题解与上机指导[M]. 北京:清华大学出版社,2014.