C语言程序设计学习支持系统的设计和开发
2016-03-07陈吉平
陈吉平
摘要:C语言是一种广泛应用于高级程序设计中的语言,C语言凭借功能强、可移植性好、效率高、表达能力强等优点在程序设计中占有重要的地位,C语言也成为计算机从业者必须学习的设计语言之一。同时C语言还有概念众多、规则复杂、使用灵活等特点,这就增加学习C语言的难度。因此,进行C语言程序设计学习支持系统的研究就显得尤为重要。
关键词:C语言程序设计;学习;支持系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)34-0074-02
C语言广泛运用于工程技术软件开发中,其运用非常广泛。C语言是学习其他计算机技术的基础,如学生要进行工程数值计算、计算机图形技术等技能的学习都要学习C语言。C语言学习具有一定的难度,为了解决学生在C语言学习中遇到的问题,本文进行了C语言程序设计学习支持系统的开发。该学习支持系统用于解决学生上机编程遇到大问题,帮助学生发现问题并技术解决问题,有效提升学生编程能力以及程序调试能力,在C语言程序设计教学以及学习中有着很高的推广价值。
1 系统开发思想及相关技术
本系统在开发中采用了原型开发法。原型开发法就是在系统的开发初期通过调查用户需求进行系统原型的构建,原型系统构建完成后要给用户使用,在使用过程中根据用户的使用意见不断地对系统进行补充和完善,通过数据补充、结构调整、模型重建等工作形成新的原型,系统经过如此反复几次后能够逐渐满足用户的使用需求,最终形成明确的系统定义及用户界面要求。这种系统开发方法实施的关键是能够在最短时间内运用最经济的方法全面掌握用户的实际使用需求,并以此作为系统原型开发的依据。原型法流程:明确需求→开发原型系统→使用系统→不断完善系统→形成最终系统。
1.1 VC++
VC++是一种广泛运用于系统开发的工具,该软件开发工具由微软公司开发完成。VC++包含很多组建,这些组建沟通构成了系统的开发环境,同时也为用户提供了开发过程中所需编辑、编译、调试、联机等工具。VC++具有功能强大、集成度高等优点,对于提升系统开发效率有很大的帮助。
MFC是VC++的核心部分,其中包含了Windows软件开发工具包中的所有结构和功能,其作用是为用户提供应用程序框架,用户所要进行的很多编程工作都可以通过这一应用程序框架进行。MCF是微软公司提供的面向对象的Windows程序开发的最佳方法,具有高效、易于维护等优点,这就使得VC++被广泛运用于系统开发中。
1.2 Microsoft SQL Server2008数据库
在Microsoft SQL Server整个产品线中,Microsoft SQL Server2008版本拥有比较重要的地位,因为它对之前版本的改进更加的更加彻底,很多的关键技术得以改进,增加了更多新的特性,其功能更加强大和全面,该版本是公认的Microsoft SQL Server产品中性能最强大和全面的一代。本文也将对这些新的特性、功能等进行介绍。
Microsoft SQL Server2088能够满足当今数据爆炸式发展的应用需求,在设计所运用的前瞻性技术使得该平台在未来使用中也能够满足需求。
Microsoft SQL Server 2008有以下特点:可信任——该平拍的安全性和稳定性更好,同时也具有更好的可扩展性,企业可以利用这些特性进行关键应用程序的应用,能够保证系统整体的稳定性和安全性;高效——用户运用简单的数据基础设施花很短的时间就可以完成系统的开发实现数据管理;智能——实现了数据的自动化管理,会根据用户的需要进行观察信息的发送。
1.3 专家系统
专家系统的应用是本系统的关键,同时也是特色之一。
专家系统是由内容专家及程序员组成一个小组所完成的一种计算机程序,专家系统可以模拟专家对学生在学习过程中遇到的问题进行解决,因此专家系统是一个解决问题或者作出决策的过程。专家系统的原理是用户向系统提交所遇到的问题,其关键是要详细描述问题,系统会根据用户所提交的问题对知识库进行查找,并根据知识库中的相关内容给出解决方案。
专家系统不但能够解决学生学习中遇到的问题,更重要作用是不断完善系统知识库。本系统的知识主要包含两方面的内容:一是C语言程序设计相关的知识信息和数据资料;二是运用C语言进行编程所具备的知识以及相应的技能。
专家系统由知识库和推理机两个部分组成。知识库中的内容包括事实内容和规则内容,知识库中的事实和规则是系统开发人员在系统建设过程中采用程序的形式输入的;推理机属于逻辑单元,其实质是系统中的一种程序,推理机的主要作用是接受并分析使用者提交的问题、查找相关信息、推理、给出解决方案。通过界面就可以实现对专家系统的访问。
2 设计原则
2.1 实用性原则
以提升学生C语言程序设计学习效率作为系统的开发目标,将绩效管理运用于系统中,通过系统提升学生的编程能力以及程序调试能力,因此必须保证系统具有很强的实用性。
2.2 兼容性、稳定性原则
在系统开发过程中考虑到了软件的兼容问题,C语言的上机编程学习过程从设计开发的角度确保系统工作稳定。
2.3 可扩展性
用户在使用系统的过程中经常会上传信息,用户所上传的这些信息在经过一定的处理后会储存在系统中,随着信息量的不断增大,系统所面临的信息存储压力会逐渐增大,为了保证系统的正常运行,系统必须要具备良好的可扩展性。
3 功能设计
根据电子绩效支持系统理念及学生学习C语言学习的特点将本系统划分为学习支持模块和信息库管理模块。
3.1 学习支持模块
学习支持模块就是学生在进行程序调试过着编程过程中遇到无法解决的问题时可以利用这一模块解决难题。学习支持模块包括编译诊断和编程思路分析两个部分。
3.1.1 编译诊断
编译诊断功能是学生在编程练习中遇到无法解决问题的时候能够对学生提供帮助,帮助学生分析编程中的错误。编译诊断是由问题诊断和上传程序两个部分组成。
学生在运用C语言进行编程时出现错误时可以运用该功能进行分析。具体操作如下:启动系统→提交出错信息(根据需要输入参数)→回答系统根据数据库信息所进行的设问→系统给出判断。如果系统无法对用户提交的编译错误信息进行诊断就说明该系统的知识库不够全面,系统会提出没有找到相关信息,用户需要上传源程序,系统会将问题汇总由专家进行诊断,并由此对系统的知识库进行补充。
3.1.2 编程思路分析
学生在进行复杂程序编程练习时经常会会出现思路混乱的情况,当学习遇到编程思路混乱的时候可以登录C语言程序设计学习支持系统运用编程思路分析功能对程序进行分析以完成编程。学生通过系统的问题分析功能对编程过程中遇到的问题进行分析并得出解决方案,不但可以帮助学生锻炼程序分析的能力,同时也能够提升学生的编程能力。
同时该系统还提供了帮助功能,帮助功能主要是帮助学生掌握本系统的操作。
3.2 信息库管理模块
信息库管理模块由用户信息库管理、出错知识库管理、推理知识库管理、编程思路分析信息库管理几个部分组成。
3.2.1 用户信息库管理
该功能主要用于用户信息、密码、权限、上传程序等信息进行管理。用户登录系统后,系统要根据系统的相关信息进行权限的分配。用户信息库还要存放用户上传的程序编译错信息。
3.2.2 出错知识信息库管理
该管理工作由教师完成,教师可以运用出错信息库管理功能实现对各自出错信息的添加、修改、删除等操作,这一功能的主要作用是根据教学的需要来不断完善系统的出错信息库,保证系统能够准确进行编译出错诊断。
3.2.3 推理信息库管理
C语言教师可以通过这一功能对系统的推理路径进行修改和添加以保证系统进行编译诊断的准确性。进行推理路径添加操作时,教师C语言教师首先要选择相应的编译错误信息,这是编译错误信息添加的入口,找到入口后将专家所设计的推理路径以图形的形式添加,对应的数据ID信息被记录到推理路径信息库中。对于系统无法准确针对的编译错误信息,C语言教师也要对其进行分析并设计相应的推理路径,同时还将新的推理路径添加到推理信息库中。
3.2.4编程思路分析信息库管理
C语言教师可以运用这一功能实现编程思路的添加、修改和删除等操作。
4 数据库设计
在系统开发过程中,出于对系统的使用需求和建设工作量的考虑,系统数据库包含6张数据表,包括用户信息表、出错知识表(编译错信息表、设问信息表、诊断信息表)、推理路径表和编程思路分析信息表。
用户信息表:该表内容包括用户基本信息和上传程序等;
出错知识表:包括编译错误表、设问信息表、诊断信息表,其内容包括信息和ID;
推理路径表:该表中的内容包括推理路径节点。节点类型有叶子节点、入口节点、出口节点、中间节点;
编程思路分析信息表:该表中的内容包括编程思路分析信息和相应的ID。
5 系统开发
5.1主页
系统登录界面,学生的学号就是其用户名,系统为学生设置了初一密码,学生登录系统后可以对密码进行更改,学生只有输入正确的学号和密码才能登录系统。
5.2学习支持模块
5.2.1 学习支持主界面
学习主页面,由图中可以看出,学习支持模块包括编译诊断、编程思路分析和帮助三个主要功能。编译诊断功能是学生在编程练习中遇到无法解决问题的时候能够对学生提供帮助,帮助学生分析编程中的错误;编程思路分析功能为学生进行编程问题分析提供支持和帮助并给出解决方案;帮助功能主要是帮助学生掌握本系统的操作。
5.2.2 编译诊断
编译诊断流程:启动系统→提交出错信息(根据需要输入参数)→回答系统根据数据库信息所进行的设问→系统给出判断。如果系统无法对用户提交的编译错误信息进行诊断就说明该系统的知识库不够全面,系统会提出没有找到相关信息,用户需要上传源程序。
5.2.3 编程思路分析
学生在进行复杂程序编程练习时经常会会出现思路混乱的情况,当学习遇到编程思路混乱的时候可以登录C语言程序设计学习支持系统运用编程思路分析功能对程序进行分析以完成编程。能够进行问题分析是本学习支持系统的重要功能,学生通过系统的问题分析功能对编程过程中遇到的问题进行分析并得出解决方案,不但可以帮助学生锻炼程序分析的能力,同时也能够提升学生的编程能力。图5是编程思路分析的主界面,这个界面包含多个标题,学生可以根据编程的题目进行选择。以“顺序结构程序设计”为例,学生在进行这类题目编程时可以点击“顺序结构程序设计”,页面会跳转至编程思路分析界面,该界面中包含“顺序结构程序设计”的所有题目,学生可以根据自己所编程序进行选择所要分析内容。
C语言广泛运用于工程技术软件开发中,其运用非常广泛。C语言是学习其他计算机技术的基础,如学生要进行工程数值计算、计算机图形技术等技能的学习都要学习C语言。C语言程序设计学习支持系统主要是用于上机编程练习中帮助学习进行问题诊断以及分析编程思路,帮助学生发现问题并技术解决问题,可以有效提升学生编程能力以及程序调试能力,对于学生的C语言程序设计学习效果和效率的提升有着非常大的帮助,在C语言程序设计教学以及学习中有着很高的推广价值。
参考文献:
[1] 朱晓江.C语言程序设计学习支持系统的设计与开发研究[J].电子技术与软件工程,2015(13):250-250.
[2] 张健,高振栋.C语言智能学习系统的设计与开放[J].软件导刊,2014,5(5):119-120.
[3] 陈江丽,舒清录.大学C语言学习系统的设计和开发[J].临沧师范高等专科学校学报,2012,3(3):117-120.
[4] 周微微,王建新,陈零,盛羽.基于Internet的C语言学习支撑系统平台的设计与实现[J].计算机应用,2008,28(1):260-263.