基于CH-CGI的C程序设计网络学习系统

来源 :网络与信息 | 被引量 : 0次 | 上传用户:sannian
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:利用CH这一C语言解释器无需编译链接、支持网络计算的特点,通过其功能强大的CGI组件,实现在客户端提交C语言源代码,通过Internet在远程服务器上运行代码的功能。
  关键词:C程序设计;CH;CGI;网络学习系统
  
  1 引言
  C程序设计是所有从事计算机相关领域应用者的必修课程,学习者众多,但是C语言代码程序需要通过编译链接之后才能成为可执行程序运行。这对于程序开发者的调试、初学者的学习、教学人员的教学来说就很不直观,显得非常繁琐,而且每一次修改都必须重新编译链接。很多初学者因此望而生畏。
  另外,若临时要运行一段C语言代码,计算机上又没有安装C编译器,就需要用户去下载、安装C编译器,过程非常繁琐。如若有一个网络在线C语言环境能在线提交代码,并返回执行结果就可以省去这些环节。
  基于这些现状,我们很有必要开发一个C程序设计的网络学习系统,使用户可以在客户端的浏览器上提交C语言的源代码,通过远程服务器进行运行后得到运行结果和纠错指导,快速有效地提高用户的编程能力。
  
  2 CH-CGI简介
  CHProfessionalEdition由知名的SoftIntegration,Inc.所开发,是一个嵌入式C语言解释器,且提供C语言的超集。CH提供了CGI组件功能,利用其Cgi.h文件中定义的Crequest、Cresponse等各类函数实现从客户端提取C语言源代码在CH中执行,并将运行结果或错误提示经过处理后输出到客户端。
  
  3 系统框架和工作原理
  3.1系统框架
  采用B/S体系结构,系统架构与工作流程如图1所示:
  


  3.2工作原理
  如图1所示的系统框架,本学习系统大致分为以下三个模块:
  (1)Web客户端模块
  用户在客户端浏览器中编写C语言源代码,并通过Internet提交到Web服务器。此模块采用普通的HTML代码编写而成,在一个表单中放置了两个文本框分别用于客户提交C语言源代码和输入数据。设置该表单的action属性等于makefile.c(makefile.c文件是实现功能模块2的核心代码)。
  (2)运行代码模块
  通过CH-CGI接口提取客户提交的源代码,写入临时的C文件,并调用CH程序执行这个文件。如源代码执行需要数据输入的,则将客户端输入的数据写入到一个data.dat文件中。利用CH的CGI组件功能,编写一个makefile.c文件用来实现这块功能。makefile.c核心代码大致如下:
  #!/bin/ch-g
  #include//包含cgi.h头文件
  #defineABC
  intmain(){
  intcinput;//用于判断是否需要输入数据
  chstrarrayname,value;
  classCResponseResponse;
  classCRequestRequest;
  Response.begin();
  Response.title("CGIFORMresults");
  /*………………………………*/
  #ifdefABC
  FILE*temp,*dat;
  char*tempChar,*temp1;
  temp=fopen("temp.ch","w");
  /*………………………………*/
  fclose(temp);
  #endif//提取客户C语言源代码,建立数据文件//temp.ch:
  Response.end();
  if(cinput==1)
  chtemp.ch;//调用CH执行temp.ch
  elseif(cinput!=1)
  chtemp.ch  }
  (3)结果返回模块
  将运行结果或错误提示经过处理后返回给客户端。如图1所示,举一个简单的例子,若在main函数后忘了输入“()”,代码如下:
  Main
  {Printf(“欢迎使用在线C语言环境!\n”);}
  执行结果如图2所示:
  


  参照错误提示,修改代码后再执行这段代码,就可以得到正确的结果。
  以上的例子只是C程序设计中诸多错误的缩影。要对任意的程序代码和千变万化的错误都能分析出问题真正所在,就需要建立一个强大的数据库,收集CH的错误集合,收集大量的程序案例分析,要设计从CH信息到纠错指导的映射算法,通过对运行结果的二次处理,使用户的程序调试可操作化。
  在多年C程序设计的教学过程中,我们已经积累了大量的C语言编译错误集合。随着本学习系统的投入使用,该集合越来越丰富,使得本学习系统的功能越来越强大。
  
  4 总结
  C的学习者是以一种主动的尝试的学习方法去学习新的知识。采用B/S体系结构,无需编译链接就能直接运行C代码程序,学习者能够摆脱繁琐的C代码调试过程,直观地进行C程序设计的学习,有效地帮助用户掌握C编程方法,提高程序设计能力。同时使得用户在任意一台带网络的PC机上进行C语言学习变为可能。
  
  参考文献
  [1]http://www.softintegration.com.
  [2]丛春瑜,刘家勋.“C程序设计语言”智能辅导系统原型的设计与开发.计算机时代.2004.8.
  [3]李华,何茜,吴中福.基于CGI的个性化学习系统.计算机工程与应用.2002.13.
  
  基金项目:浙江省教育厅科研项目(“基于CGI的C程序设计智能学习系统” 0507121 2005-2006 );浙江理工大学重点教改项目(“基于CH-CGI的C程序设计网络学习系统”)资助项目。
  作者简介:
  陶灵兵(1980-),男,助教,主要研究方向:网络工程、网络安全、信息系统管理。
  庄红(1964-),女,副教授,主要研究方向:计算机网络、信息处理、数据库安全、可信计算。
其他文献
故障现象  机器以前可正常上网的,突然出现可认证,不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令ARP -d后,又可恢复上网一段时间。     故障原因  这是ARP病毒欺骗攻击造成的。一般是由传奇外挂携带的ARP木马攻击引起的。当在局域网内使用上述外挂时,外挂携带的病毒会将该机器的MAC地址映射到网关的IP地址上,向局域网内大量发送ARP包,从而致使同一网段地址内的
期刊
“远程破解”与“本地破解”正好相反,是指QQ盗号者通过网络盗窃远端QQ用户的密码。这种QQ破解有很多方法,如在线密码破解、登录窗口破解、邮箱破解、消息诈骗以及形形色色的QQ木马病毒等。下面就让我们一同来看看这些QQ密码的远程破解是怎么实现的。     1.在线密码破解     大家知道QQ可以利用代理服务器登录,这是一种保护措施。它不仅可以隐藏用户的真实IP地址,以避免遭受网络攻击,还可以加快登录
期刊
局域网网络层存在的隐患及其解决方法  文:九歌    不安全的地方   由于局域网中采用广播方式,因此,若在某个广播域中可以侦听到所有的信息包,黑客就可以对信息包进行分析,那么本广播域的信息传递都会暴露在黑客面前。     网络分段   网络分段是保证安全的一项重要措施,同时也是一项基本措施,其指导思想在于将非法用户与网络资源相互隔离,从而达到限制用户非法访问的目的。     网络分段有物理分段和
期刊
DoS是“拒绝服务”(Denial of Service)的缩写,它是指故意攻击网络协议的缺陷或直接通过野蛮手段耗尽受攻击目标的资源,目的是让目标计算机或网络无法提供正常的服务,甚至系统崩溃。早期的DoS攻击都需要相当大的带宽资源来实现,而以个人为单位的“入侵者”往往没有这样的条件。但是后来攻击者发明了分布式的攻击方式,即利用工具软件集合许多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是D
期刊
很多Windows Live Messenger用户都碰到了陌生人要求添加为好友的情况。譬如一个名为“好久没联系了,最近还好吗?我换了新的msn”的人向多人发送了要求添加为好友的信息,收到者以为是自己的老朋友,一般都同意添加。出现对话框后,则出现了一个“这是我的新博客,欢迎你来做客”的链接,点击后发现只是一个广告网站的页面。    怎么会出现这种情况,有哪些可能性?  如果因为某种原因,用户的账号
期刊
众所周知,Windows Vista为了保证用户机密数据,在安全方面有了很大改进。而在Windows Vista Enterprise与Ultimate版中提供的系统级的安全防护BitLocker,则可以提供完整的驱动器加密功能,有效避免Windows Vista用户因 PC 硬件丢失、被盗或不当的淘汰处理而导致由数据失窃或泄漏构成的威胁。即便非法使用者启动另外一个系统,以脱机方式浏览存储在受保护
期刊
不用专业软件就能禁用U盘  文:小优    公司禁用U盘和移动硬盘的原因多种多样,最响亮的原因就是防止员工带走机密资料,在这里提供一种不用专业软件就能禁用U盘的小技巧给大家。     方法一:BIOS设置法(快刀斩乱麻法)   进入BIOS设置,选择“Integrated Peripherals”选项,展开后将“USB 1.1 Controller”和“USB 2.0 Controller”选项的
期刊
目前,随着经济环境的变化,企业越来越注重培养员工的团队精神。“团队精神”是一个企业的灵魂,一个企业能否在激烈的市场竞争中站稳脚跟最重要的是有一个融洽默契的团队。所谓“团队”就是把所有的员工看成一个整体,员工之间不再各自为政,而是进行有条不紊地协作,就是“协同办公”。协同办公看似一件很简单的事情,但是仅仅靠管理者个人的力量难免顾此失彼,微软公司的Microsoft Office SharePoint
期刊
摘要:首先介绍了CORBA中POA的组织结构及工作机制,然后具体介绍如何使用POA-tie实现CORBA/JAVA服务器端。  关键词:POA;POA-Tie;CORBA;IDL     1 POA简介  (1)POA结构  每一个POA都要维护一个活动对象映射(Active Object Map),它包含一个个对应于服务的对象ID,活动对象映射是一张将激活对象映射到相应服务的表。对象ID是一个由
期刊
随着打印机价格越来越便宜,部分适合于家庭使用的文本打印机已经低至两三百元,但是对于一些不但需要打印文本,而且还需要打印图片的用户来说,这个价位的打印机无论是在输出速度上,还是输出质量上都有些欠缺。而定位于600元以上的打印机则是专为满足该需求用户而推出的,价格再高一些的打印机对于家庭普通应用的投入显得又过高。于是就来得实在点,就为大家介绍几款600-1000元价位的打印机,看看是否能为大家带来一些
期刊