CC程序设计练习系统的开发与设计
CC++程序设计练习系统的开发与设计 摘 要 本文讨论了一个基于 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++语言 的编程练习系统,在学生登陆系统以后,可以从数据库内下 载程序题,让学生练习。其中练习库能够将学生输入的源代 码、编译、连接最后生成 程序,通过调用该程序,让练 习者灵活的运用该系统。 2.1 系统流程设计 该系统流程主要是练习者登陆系统后,运用练习者输入 的用户名和密码查找数据库内的服务器,如果存在该用户, 就证明登陆成功,并且能够根据后台操作了解该用户类型是 学生或者是管理员,判断结束后给该用户分配应有的使用权 限。 如果是学生用户,可以从服务器下载编辑好的样例程序, 根据选择的相应程序代码,在显示屏幕上面选择源代码,让 学生输入相关信息。输入过程中要求系统时刻监听键盘,对 比输入的代码和样例程序,用明显的颜色标识出错误代码。 输入完成后,把输入的代码保存到临时建立的文件夹里面, 并且调用 C 编译器,编译存储的文件,生成 程序,调用 不断执行。管理用户设置是要求增加样例程序,可以查看学 生的练习情况[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]。 函数原型的如下: typ