APP下载

C/C++程序设计练习系统的开发与设计

2016-07-15何波玲

科技传播 2016年10期
关键词:程序设计

何波玲

摘 要 本文讨论了一个基于C/S模式的练习系统,为学生提供一个自主学习、提升学生学习效率的平台。

关键词 C/C++;程序设计;联系系统;开发与设计

中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2016)163-0102-02

提升C/C++语言的编程能力,不仅是教师关心的切实问题之一,也是大学生今后学习及提升就业竞争能力的客观需要。C/C++语言学习中教师虽然在课堂上面讲授很多种类的语法,并且也详细阐明各类语法的使用方法,但是课程教学结束后,学生对于学过的内容印象就会减弱。究其原因是由于学生对C/C++语言编程练习较少,特别是初期学习者,受到程序概念抽象的影响,不能快速的掌握集中的语法,因而也不能适应形式严谨的语言思考,不能较好的解决问题。由此可见学习C/C++语言的最好方法是开展大量的联系,在输入源代码以后运行各类程序,观察程序运行的具体结果,然后才能体会程序的本质,通过练习掌握程序运行理念,提高程序掌握技能。

1 学生学习C/C++语言时面临的问题

1.1 不能熟练掌握C/C++语法

学生在对照输入参考资料的过程中,要一面看书一面敲键盘,出现此类现状的原因是由于学生对程序本身不甚熟悉,因而如果不进行对照会出现字母输错的情况,例如,经常出现的问题是大小写、中英文、字母漏写等情况。对于初学者,如果不能清楚了解其中的语法,那么就不能快速的找到语法错误,在没有教师指导的前提下,会感觉不知所措,长此以往学生就容易失去学习信心和学习兴趣。

1.2 不熟悉开发环境

学生在不熟悉开发环境的基础上,联系过程中不能很好的结合开发环境开发程序,更不能很多的开展练习,所以操作不当引发很多不必要的错误,并且出现问题会不能做出妥善处理[1]。

1.3 参考书不准确

学生在学习时会借助参考书等书籍,但是现在很多市面上的参考书本身就存在错误,因而学生不但不能提升自己的语言开发能力,还会带来适得其反的效果。

2 系统设计概述

针对以上提出的问题,针对初学者设计一套C/C++语言的编程练习系统,在学生登陆系统以后,可以从数据库内下载程序题,让学生练习。其中练习库能够将学生输入的源代码、编译、连接最后生成EXE程序,通过调用该程序,让练习者灵活的运用该系统。

2.1 系统流程设计

该系统流程主要是练习者登陆系统后,运用练习者输入的用户名和密码查找数据库内的服务器,如果存在该用户,就证明登陆成功,并且能够根据后台操作了解该用户类型是学生或者是管理员,判断结束后给该用户分配应有的使用权限。

如果是学生用户,可以从服务器下载编辑好的样例程序,根据选择的相应程序代码,在显示屏幕上面选择源代码,让学生输入相关信息。输入过程中要求系统时刻监听键盘,对比输入的代码和样例程序,用明显的颜色标识出错误代码。输入完成后,把输入的代码保存到临时建立的文件夹里面,并且调用C编译器,编译存储的文件,生成EXE程序,调用不断执行。管理用户设置是要求增加样例程序,可以查看学生的练习情况[2]。

2.2 功能模块的设计

为了适应系统功能的各项要求,需要将系统功能划分为3个重要模块,分别是系统管理、学生练习和教师管理。系统管理模块主要的工作职责是判断用户登录情况,学生练习模块主要是统计学生开展练习的时间情况,控制学生的各项练习数据。教师管理模块能够管理练习分数查询学生的具体练习情况。

2.2.1 系统选项模块的设计

该模块的控制方式用户设置模块、管理员模块和推出模块,用户控制模块可以实现用户口令的修改,保障整个体统平台的安全性,避免非法用户进入系统中破坏系统内的各类质量。管理元设置模块字更高一级的模式控制,主要是在该模块中添加一部分合法用户,或者删除一部分用户,或者当用户忘记密码后,可以通过管理员密码进行查询[3]。

2.2.2 试题维护模块

试题维护模块主要涉及内容是增加试题、浏览和删除试题,并且对应模块中还有不同的对应操作模块,运用试题增设模块可以随时随地的补充试题,并且添加不同类型的视图,浏览和删除试题模块是在浏览过程中删除没有必要存在或者重复试题。

2.2.3 试题打印模块

该模块的主要构成是选择题、填空题和程序改错题,通过不同模块的组合了解不同题型,根据题型应答不同的操作。

2.2.4 试题生成模块

该模块的主要构成部分是2部分,包括自动生成试卷和人工生成试卷。自动生成模块主要是针对试卷的难易程度,分为简单、适中和较难3类,通过随机组合生成一张标准的试卷,借助于浏览和打印等工作流程。人工生成试卷模块主要是用户根据自己的实际需求,要求生成难易不同和类型不同的试卷。

在试卷模块中如何针对不同类型题目选择试卷,满足学生的实际需求,这是该模块开发的重点内容,其中随机产生的试卷作为开发的重点也是开发的难点。

该系统主要是根据试卷的具体难易程度和试题难度设置不同参数,实现试卷的随机性抽取,对于同一张试卷其难易度更趋向多维合理性,评价方式是需要借助于学生参与考试的成绩或者其他的参数做出综合测评,根据参数试卷能够被划分为简单,就是试卷内容很简单没有任何难度,适中就是难易程度在学生可以接受的范围内,较难就是有一定的难度。

为了区分开试卷的难易情况,在系统运行是要求从系统中找到大致的难度系数,这样做的目的是在生成试卷的过程中,系统有效的筛选出题库中的题目,对系统的难度规定系数如下。

难度系数范围集中在0.3~1.0之间,难度系数范围可以分为以下几个档次:

A档主要的难度系数定在0.3~0.4之间,通过对C类语言试题考察可以了解,这部分试题没有太大的难度,属于基本档。B档的难度系数主要定位在0.5~0.6之间,此范围内的语言知识是需要通过考虑,就能得到分数的。C档主要是0.7~0.8,该档有着一定的难度系数和综合性。D档难度系数在0.9~1.0档,该档的难度系数较大,主要考察学生的综合能力,要求学生对C语言知识有着深刻的认知和理解。考察学生的C语言知识,要求考察学生的基本程序知识,C语言基础知识和阅读等方面的知识,让学生可以对该项知识有着深入浅出的理解,为了使用时更好的实现试卷的随机性,就要求在试卷生生成过程中有较大的随机性,通过取舍试卷系统随机产生RAND(),让系统每一次产生随机的RAND()不同,用以赛选试题的不同表现方式。

2.3 学生编辑练习功能

该功能区主要是让学生选择合理的样例程序,将各类源代码显示在屏幕上面,让学习对照练习。练习中样例程序输入某一代码时,系统需要用反色表示,这样可以便于学生对照。学生在完成编辑以后可以继续编译其他的练习程序。学生开始练习以后要求学生从数据库内下载样例程序,或者从本地文件找样例程序进行编辑。学生整体输入区域的控制件是RichEidt实现。前面的反色目的是为样例程序添加背景颜色,并且设置好RichEdit的字体样式,其中用到字体的结构和设置的文字背景色[4]。

函数原型的如下:

typdedf struct charformat

UINT cbSize://定位特殊字节的大小

DWORD dwMask://设置相关文字属性信息内容

DWORD dwEffeets;//具体的文字设定效果

LONG yHeight://文字的高度

LONG yOffset://文字的偏移情况COLORREF erTextColor;//文字颜色BYTE bCharSet;//字符集

BYTE bpitchAndFamily:??字体家族和间距情况

cf.cbsize=sizeof (charformat2)

cf.dwmask=cfm backcolor

cf.crbackcolor=rgb(0、255、0)//背景颜色是红色

m richedit setsel(0.2)//设置处理的区域

m richedit setsel message(EM SETCHARFORMAT. SCF SELECTION.(LPARAM)cf) 2.4 正确率统计设计

学生将相关内容输入编辑框的同时,也会引发很多其他项目的变化,并且容易触发相应实践,学生通过响应时间可以回刁函数中的内容,读取学生输入的部分程序内容,逐一与模板进行对比,最终判定录入的字母数与模板程序的具体长度比率成为判读学生正确率的 标准。

#include using namespace std;

int main(int argc, char* argv[]) {

for (int i = 100; i < 1000; i++) {

int temp = i;

int first = temp % 10; temp /= 10;

int second = temp % 10;

temp /= 10;

int third = temp % 10;

if (i == first * first * first + second * second * second + third * third * third) {

cout<

}}

return EXIT_SUCCESS;

}

3 结论

本教学系统的开发为学生学习C/C++语言提供良好的平台,学生通过该平台能够快速的掌握C/C++语言编程的各类语法知识,并且在后期训练中提升自己的运用熟练度,增大学生的学习兴趣,也可以为后续的课程学习打下坚实基础。

参考文献

[1]吴皖赣,董华青,蒋一君,等.中小学个性化网络练习系统的设计与开发[J].中国教育信息化,2011(4):21-22.

[2]马金强,苗志宏.程序设计类课程案例演示系统的设计与开发[J].武警学院学报,2013(1):19-20.

猜你喜欢

程序设计
基于SolidWorks和VBA的电机阶梯轴建模程序设计
高职Java程序设计课程体系建设思考
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
基于LabVIEW的车载充电机控制程序设计
浅谈基于C语言的计算机软件程序设计
高职高专院校C语言程序设计教学改革探索
OBE理念下基于Greenfoot的Java程序设计课程教学改革
模块化程序设计在一体化检定平台中的应用
PLC梯形图程序设计技巧及应用