APP下载

C语言实验教学平台的设计

2017-07-05谭小兰邓作杰

关键词:编译器C语言程序设计

谭小兰, 邓作杰

(湖南工程学院 计算机与通信学院,湘潭 411101)



C语言实验教学平台的设计

谭小兰, 邓作杰

(湖南工程学院 计算机与通信学院,湘潭 411101)

为了帮助学生完成C语言程序设计实验,采用模块化的方法设计了一个C语言实验教学平台.这个平台是由程序编辑、程序编译&运行、程序调试、题库管理和考试评分5大模块组成.使用C语言实验教学平台,学生可以单独进行C语言学习与考试、上机编程和调试操作.为了在实验平台中控制好底层编译器的返回结果,我们提出了一种基于管道的调用方法,这种方法具有速度快、效率高的优点.

平台设计;C语言;实验教学

0 引言

C语言程序设计是计算机及相关专业的一门专业基础课,是操作系统、编译原理等课程的前期课程[1].由于没有专门针对C语言程序设计的实验平台,许多高等学校是使用VC 6.0或者Eclipse作为程序设计的实验平台[2].这些软件开发平台是针对大型软件系统开发的,操作起来较复杂,对于刚刚接触C语言程序设计的学生来说,有点“杀鸡用牛刀”的味道,学生操作起来比较麻烦,实验效果不是很理想.Eclipse 是Java程序开发的工具,需要在Java环境中运行,Eclipse的运行效率比较低.我们只有安装和配置CDT插件以后才能够使用Eclipse开发C语言程序[3].同时,近年来越来越多的研究人员开始使用计算机来辅助C语言程序设计实验教学,如建设网络化的精品课程网站或平台[4,5],但是这些实验平台或者网站都是从C语言语法知识方面辅助学生学习,学生编写和调试程序还是只能求助于VC6.0等软件开发平台.为了帮助学生进行C语言程序设计实验,我们设计了一个C语言实验教学平台,它具有程序编写、编译、调试、程序操作考试和评分等功能.使用我们的C语言实验教学平台,学生可以进行C语言知识学习与考试、上机编程和调试操作.

1 实验平台的系统结构

C语言实验教学平台是由程序编辑、程序编译运行、程序调试、题库管理、考试和评分5大模块组成,这5大模块由一个主控模块控制,它们的系统结构如图1所示.主控模块是整个实验平台的控制中心,它以菜单方式把整个实验平台的功能显示出来,用户通过操作主控模块而选择不同的功能,如编辑程序、程序调试或计算机操作考试.程序编辑模块负责程序的录入、修改和存盘等功能.程序编译运行模块则主要是通过调用GCC程序的相应命令来完成程序编译操作,并把这些命令的运行结果在实验平台上显示出来.程序调试模块则通过与GDB 程序交互来调试程序.题库管理模块则主要完成试题的录入和查询及维护等功能.考试模块主要对学生进行上机考试.评分模块则是对学生考试成绩进行评分.

图1 C语言实验教学平台的系统结构图

2 基于管道的调用方法

为了使C语言实验教学平台具有很好的扩展性,我们采用了开放式和模块化的设计方法,在C语言实验教学平台中以命令方式调用底层编译器编译与调试实验程序.实验教学平台中使用了国际上流行编译器GCC来编译程序.由于系统是开放的,用户只要稍微配置一下就可换用其它的编译器,如微软或者Borland公司的编译器.然而要在平台中控制好底层编译器的返回结果则比较困难.我们研究发现可以使用两种不同方法来解决这个问题,一种方法是把编译结果输出到一个文本文件中,然后再在平台的一个消息文本框中逐条显示.另一种方法是采管道技术,即在底层编译器与上层调用程序之间建立管道,然后再通过管道来传递消息.我们通过对这两种方法进行实验对比后发现第一种方法速度慢,平台不好控制底层命令,而第二种方法则完全克服了第一种方法的这些缺点.因此,在我们的实验平台中采用了第二种方法,这种方法的调用模型图如图2所示.

图2 基于管道技术的调用模型图

3 平台主要模块的功能实现和运行

为了实现这个C语言实验教学平台,我们采用模块化的设计方法把图1中的每一个模块用一个窗体和相应的控制过程来实现它.主控程序调用已定义好的各模块组合成一个C语言实验教学平台.下面重点介绍主控模块、程序编辑和程序编译与运行等模块

3.1 主控模块

C语言实验教学平台主控模块主要是向用户提供系统界面,把系统的主要功能以菜单和工具栏的方式展示在电脑屏幕上,用户通过鼠标和键盘来选择相应的功能和操作.我们把平台的常用功能以图标的方式放在常用工具栏上,这样可以提高实验人员的工作效率.C语言实验教学平台主控模块的运行界面如图3所示.

图3 平台主控模块的运行界面

3.2 程序编辑模块

程序编辑模块主要是把用户所要编辑的C语言程序读入到内存中供用户编辑操作,用户的编辑包括插入、删除、修改等常规操作,也包括复制、粘贴、剪切等特殊操作,同时用户在编辑时还可以通过选择常用工具栏上的一些按钮操作来改变程序的一些字体,如加粗、倾斜和划线,其流程图如图4所示.

图4 程序编辑模块的流程图

在我们的具体实现中,我们是把C语言程序文件读入到一个VB的多文本编辑控件中,然后再对多文本控件中的文本进行操作的.程序编辑模块的运行界面如图5所示.

4 程序编译与运行模块

程序编译与运行模块主要功能是首先把用户所编辑好的C语言程序存入硬盘,并与底层的GCC建立管道,然后由程序编译与运行模块发送命令给GCC编译程序,最后由程序编译与运行模块读取GCC的编译结果,如果编译成功则运行所编译后的程序.程序编译与运行模块运行结果如图6所示.

图5 程序编辑模块的运行结果

图6 程序编译与运行模块的运行结果

5 结束语

本文介绍了C语言实验教学平台的设计与实现.使用这个平台,学生可以单独进行C语言学习与考试、上机编程和调试操作.通过近二年教学实践,许多科任教师认为C语言实验教学平台可以提高学生的实验效果和考试成绩.当然,C语言实验教学平台还有许多不完善的地方,如不支持网络讨论,不支持网络发布作业等,我们将在下一个版本中克服这些弱点.

[1] Chen, Y., Zhikao, R., and Chunping, C. Research and Development of C Language Programming Experiment Assistant Management Platform Based on Hybrid Architecture[J]. Procedia Engineering, 2011, 15:2932-2936.

[2] 陈 婷.C语言程序设计实验教学改革探究[J].实验技术与管理,2010,27(10):182-184.

[3] The Eclipse Foundation. Eclipse[EB/OL]. http://www.eclipse.org/, 2016/5/17.

[4] 廖雪花,厉兰洁,唐思娩.基于Online Judge的C语言程序设计实验课教学改革研究[J].计算机教育,2016(6):130-132.

[5] 容振邦,赵铁柱,徐 沛.基于J2EE的锐捷网络工程远程实验室设计[J].实验科学与技术,2016,14(1):58-62.

[6] Yuan-pan, Z., Xiao-ke, S., and Zhao, J. Collaborative Application of Multiple Integrated Development Environments to Programming Language Experiment[J]. Journal of Zhengzhou University of Light Industry (Natural Science), 2011.

[7] 高 伟,张国印,黄宏涛.C语言程序设计课程建设研究与实践[J].计算机教育,2010(8):79-82.

[8] 卢 瑾,张 健,陈晋音.C语言程序设计阶段式分层实验教学研究[J].计算机教育,2014(14):74-76.

[9] 杨 毅,雷兴刚,饶志坚,等.通用网络教学平台的研发及应用[J].中国大学教学,2009(7):19-21.

Design of C Language Experiment Teaching Platform

TAN Xiao-lan,DENG Zuo-jie

(School of Computer and Communication, Hunan Institute of Engineering, Xiangtan 411104, China)

To assist students with C language program experiment, a C language experiment teaching platform is designed based on modularized methods. This platform consists of program edit, program compile&run, program debug, testing bank management and examination evaluation. By using C language experiment teaching platform, a student can independently complete C language test, computer programming and debugging operations. To control the results of the underlying compiler in the platform, a kind of calling method based on the pipeline is put forward. This method has the advantages of fast speed and high efficiency.

platform design; experiment teaching; C language

2016-11-20

谭小兰(1973-),女,实验师,研究方向:网络安全与仿真实验.

TP311.5

A

1671-119X(2017)02-0039-03

猜你喜欢

编译器C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
基于相异编译器的安全计算机平台交叉编译环境设计
运行速度大突破华为《方舟编译器》详解
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
通用NC代码编译器的设计与实现
基于ARM嵌入式平台的x86译码SOC架构设计