公务员期刊网 论文中心 正文

面向对象程序设计课程实验系统

面向对象程序设计课程实验系统

关键词:面向对象程序设计课程;实验教学;快乐学习

1实验内容

在面向对象程序设计课程中,涉及到一系列与面向过程编程所不同的概念,如类、对象、属性、操作、继承、多态等。这些概念比较抽象,学生初学时难以理解和把握。而角色扮演游戏能较好地反映面向对象程序设计的特点,能让学生在娱乐中学习这些基本概念。面向对象程序设计课程的教学一般是按照类的封装性、继承性、多态性的顺序组织内容[9]。为此,笔者结合角色扮演游戏的特点,将面向对象的程序设计课程实验划分为以下3部分内容[10‐11]:(1)封装:该部分实验要求学生掌握和应用类的建立、对象的声明和使用等知识,要求学生定义2个类———怪兽(Monster)类和英雄(Hero)类,并实现其基本属性和操作。(2)继承:该部分实验要求学生掌握和应用类的继承机制,实现Monster类和大怪兽(Boss)类之间的继承关系。(3)多态:该部分实验要求学生掌握和应用多态的实现机制,实现Monster类和Boss类的对象操作的多态。在以上实验的基础上,还可以扩展运算符重载、模板等实验内容。

2系统设计与实现

基于游戏的面向对象程序设计课程实验系统以实现一个简单的对打游戏为背景,根据该课程的教学内容和教学进度要求,对游戏阶段进行划分,构造针对不同内容的实验题目,逐步开放。每个实验题目都要求学生在已有的固定程序框架下填入自行编写的代码,实现所要求的程序功能。学生提交代码后,系统首先将学生编写的代码与程序框架进行合并,随后采用后台在线编译工具进行整体编译,查找是否存在语法错误。若有,则返回错误信息;否则,利用代码分析工具对代码进行分析,检查是否已实现所要求实现的功能,是否实现选做功能。随后,系统进行代码测试,检查是否存在运行错误。最后运行模块将正确实现的功能在前台显示出来。前台将读取后台代码的实现情况,以图形界面的方式显示已正确定义的类和对象,并为对象提供后台代码正确实现的操作。根据后台代码定义的游戏流程,实现与学生的互动游戏,并在游戏中让学生发现所写代码中缺少的功能,更好地体会每一部分代码的功能和效果。(1)代码编译模块将抽取实验题目的固定框架代码与学生提交的代码进行拼接,调用在线编译器MinGW对合并后的代码进行编译。若无错误,将代码交予代码分析模块进行语义分析。(2)代码分析模块针对不同游戏阶段的要求,规定类名、函数名等的标准,要求学生所提交的代码的名称以此为依据。运行时,分析模块对学生提交代码进行分析,提取关键类、函数等,与命名标准做对比,逐一排查是否实现对应功能。(3)代码测试模块针对学生程序设计完成情况,利用预先定义好的后台数据,进行测试分析并生成相应的测试报告。(4)代码运行模块在对固定框架和学生代码合并后的程序进行分析测试后,对程序进行修改,创建socket连接,使其具备通信功能,并在内部加入了通信协议解析,解析从前台传来的指令协议。(5)通信模块负责通过socket在后台与前台之间进行数据与指令的传输。在收到请求后,首先创建连接线程,实现后台程序和前台显示两端的通信,将代码功能以图形化的效果展示。(6)前台模块提供教师模式和学生模式,为用户提供各类功能使用的图形化界面。在教师模式下,教师可以对题库、作业、成绩进行管理,增加或修改实验题目,或结束实验作业,查看学生代码和提交情况,查看和管理学生的成绩。在学生模式下,在线答题模块让学生可以查看作业、根据要求在线编写代码并提交。若代码通过,可以进入在线游戏。若在游戏中发现功能的缺失,可以修改代码并再次提交。在线游戏模块通过通信模块连接前后台,将经过系统分析与编译的学生提交代码的实现情况传输给游戏模块。游戏模块根据收到的数据,在游戏场景下生成对应的角色,激活已正确实现的相关操作,转化在图形界面上展现出来,并根据编写的程序流程与用户进行游戏互动,让学生在游戏中体会代码经过编译后,实际被执行的效果。

3系统测试

基于游戏的面向对象程序设计实验系统为学生提供了趣味性的实验过程。在系统固定的实验流程框架下,学生在线编写并提交考查关键知识点的代码,系统后台自动在线对代码进行整合、编译、分析等。系统对学生提交的类的实现代码进行分析测试,对实现异常的函数进行标注。学生提交代码通过后,系统提供在线游戏的功能,让学生直观感受所编写代码的效果。正确实现的类和对象及其相关的属性和操作、类的继承情况等被显示出来,而出现异常的信息则无法显示。

4结语

基于游戏的面向对象程序设计课程实验系统要求学生在固定框架下,按照各个实验考查的知识点,编写并提交相应代码。系统将在线编译、分析、测试和运行提交的代码,并在前台结合角色扮演游戏,显示正确实现的功能,以趣味化的方式,加深学生对面向对象程序设计课程中各个概念的理解和掌握。

参考文献(References)

[1]贾澎涛.基于游戏案例的面向对象程序设计课程教学改革[J].陕西教育(高教版),2011(12):80.

[2]彭召意,文志强,朱艳辉.以项目驱动的面向对象程序设计课程教学研究[J].计算机教育,2012(24):95‐98.

[3]黄建灯,田娟.基于应用型人才培养的《面向对象程序设计》课程教学改革探讨[J].计算机产品与流通,2017(7):201.

[4]国伟.《C#面向对象程序设计课程》教学改革探讨与实践[J].科技创新导报,2013(2):154.

作者:肖志娇 刘士俊 徐婧 单位:深圳大学计算机与软件学院