《C语言程序设计》考试系统C language progamme design examination system马国富刘波(安阳工学院计算机工程系,河南安阳455000)Ma GuoFu,liu bo(Department of Computer Engineering,Anyang Institute of Technology,Anyang 455000)一:摘要这一考试系统是一种计算机辅助教学软件,它包括教学模式,练习模式,考试模式。
采用调用数据库的方式打开,可以实现随机选题和指定选题,而不是固定的试题。
解决了由于教材更新和题库更新导致教学软件过时。
大大提高了软件的利用价值,打破了教学软件内容的固化,其次三种工作模式极大地拓宽了软件的使用范围,不再是单一的教师教学软件或学生考试软件。
可根据教学需要灵活地选择不同模式,同时少作修改即可用于其它课程。
系统解决了在多媒体教学中出现的模式僵化,内容固化的问题。
更新教学内容只需建立一个新的数据源实现连接即可。
AbstractThe test system of the principle is a Computer extended education software, and this course is also the compulsory course in High etc. school.This system include Teaching mode. Practice mode Examination mode.You can use database open the examination database That is to say the content is up to you or at random.It is the revolution of test system This is the main reason we develop it.二:关键词考试系统、多媒体技术、数据源、连接数据库keywordexamination system、multimedia technology、data soure、connection of database三:课题研究的意义和目的3.1研究意义现在,多媒体技术日趋成熟,多媒体系统以其能输出精彩的图形和图像、美妙的声音、动感的画面赢得了用户和社会各界广泛的关注和应用。
如果把按传统考试方式同现代化的多媒体技术相结合,并且用多媒体著作工具及其它多媒体技术,编制一套符合高校考试需求的系统及其配套的多媒体教学软件,利用多媒体技术生动、直观、形象展示信息的特点,辅助教师授课和学生进行考试,尤其对部分有限制性的实验环节,可利用活动视频技术进行展示,这将会解决一系列目前存在的问题。
总之,该课题是在计算机辅助教学及考试上进行的一次积极有意义的尝试,为其他实践性较强的课程进行多媒体辅助教学开辟一条新的路子,具有一定的理论和现实意义。
3.2目的传统的考试手段主要依靠有纸试卷,几乎没有可重用性。
本课题将实现:用计算机辅助考试系统,把多媒体生动、直观的显示出来,使学生不再将考试视为一种枯燥无味的东西,提高了考试效果,使学生在一种愉悦的心情中进行考试,把枯燥的重复变为充满乐趣、具有启发性的考试过程,使学生能比较全面的学习知识,掌握技能,达到素质教育的要求。
四:系统流程图设计4.1 初始化流程设计在使用Authorware创建任何多媒体项目的时候,都应该先设置当前项目文件的窗口大小,将其设置为“800×600”,然后选择“演示居中屏幕”,同时取消对“显示标题栏”和“显示菜单栏”复选框的选择。
4.2 主界面的设计本界面采用了Photoshop7.0图形图像处理软件来绘制。
为了避免界面的单调和呆板,用蒙版和滤镜技术加以美化。
该界面把Photoshop中的图层技术、图层蒙版技术、文字效果及滤镜等功能完美的结合了起来。
并且在底部设置了一个Flash动画,增加视觉效果。
4.3背景音乐的交互控制该多媒体教学以MIDI作为背景音乐,背景音乐的交互控制包括背景音乐的随机选曲播放、停止等功能,另外当该教学程序处于活动状态时,能够随时调整背景音乐和讲解声音的大小及比例,让使用者在一种轻松悦耳的环境中考试(调出WINDOWS的音量控制实现),还能够暂停背景音乐,当再次进入活动状态时则能重新播放背景音乐。
为了充分考虑用户计算机的不同配置情况,首先利用BUDAPI.U32的BASOUNDCARD函数判断用户机器是否已经安装了声卡,如果已经安装则执行背景音乐播放,否则不允许播放任何背景音乐操作.程序如下:IF BASOUNDCARD() THENMIDI:=1TEST(MIDI,MIDILOOP(FILELOCATION^”MUSIC\\MUSIC-”^RANDOM(1,5,1)^”.MID”),STOPMIDI())END IF软件中的背景音乐交互控制是通过交互响应来实现的。
在程序执行过程中,用户始终可以通过按钮控制背景音乐的播放与暂停。
在计算图标“播放音乐”后添加一交互图标并命名为“音乐控制”,并在交互图标右边添加三个计算分支。
设置“STOP/PLAY”分支为按钮响应交互,其功能是实现对背景音乐的控制。
由于在整个程序执行过程中它都是有效的,因此须设置其为永久按钮,即选择“PERPETUAL”属性选项,同时设置“ACTIVE IF”条件为:BASOUNDCARD(),即检测到用户没有安装声卡的情况下该按钮及响应分支无效。
4.4内容的导航设计该多媒体教学涉及内容繁多,不仅包括文本、图片、声音和动画,而且还有其它多媒体工具与Authorware 配合,同时,还把视频文件导入,以增加实用性。
为使用户操作简单方便,设计了合理的教学内容导航。
主文件与各章节之间的导航设计根据结构规划中的该章节内容的栏目划分,在流程设计中为这些栏目设计了导航,如图1为主程序内容导航的设计流程图。
图1 主程序内容导航这样的流程设计使整个主程序结构清晰,可读性强。
由于该文件结构是主-分结构,即主文件调用各章节模块文件的方式,因此在主文件的章节内容中实际存放的是一个起链接桥梁作用的调用脚本,而具体的考试试题题型内容则放在各章节的模块文件内。
4.5各模块的内容流程设计图中的考试模式、练习模式、教学模式及退出系统这四部分主要程序流程图如下图2、图3、图4、图5所示。
图2图3图4图5第五部分的原理演示则是通过热区交互以及调入用VC6.0制作的演示内容的库文件,抽象的工作原理形象化,具体化。
在打包的过程中采用了分步打包,首先对每部分进行打包。
通过主文件调用其它各部分,这样避免了主文件过大,影响运行速度。
五:以完成单选题为例来看具体实现过程从单选题的数据库题库中随机抽取相应题数的问题;每一题只能选择一个答案;用户可以按次序做答,可跳过不答,在回答过程中,可以随时返回已做过的题目进行修改;交卷后会给出完成情况可以查看每题的回答情况.最后回到选题主界面,并把学生所做的答案成绩保存到数据库中。
当用户在主界面中,选择了“考试模式”后,系统就会进入到登录界面系统会提示输入用户名和密码,当输入后,点击“确定”后,系统将会进入到题型选择界面。
在提示框中输入用户名和密码,我们点击“确定”后,就会进入到正式的单选题型界面中,选择“单选题”单击。
C语言程序设计考试系统的选择题从数据库中取出选择题,在一个界面上显示。
利用三个热区域交互按钮“上一题”“下一题,”“完成”,按钮和四个热区域设置计算图标用来记录学生所选择的答案。
在学生选择“完成”后,弹出学生做题的情况界面,然后回到选题主界面,并把学生所做的答案成绩保存到数据库中。
5.1“未命名”用来擦除以前的图像5.1.1打开“未命名”的属性,进入“未命名”的属性窗口。
5.1.2在“属性窗口”中单击擦除标签在设置过渡效果进行设置5.1.3单击“确定”按钮5.2 设置“单选界面”插入一个图像5.2.1双击“单选界面”图标进入显示图标窗口5.2.2单击绘图工具箱图标进行绘制一个和窗口矩形一样大的矩形5.2.3设置矩形的颜色为“绿色”5.2.4单击显示图标窗口的关闭按钮,关闭保存对“单选界面”的设置5.3 设置交互“进入”5.3.1在交互图标的右边拖放一个群组“单选”5.3.2设置单选的热区为“按钮“5.3.3单击确定后,双击“选择”。
5.3.3.1“未命名”用来擦除上次运行的图形5.3.3.2在“打开数据库”的输入如下源程序:hint0:="您的数据库没有连接上......" --显示连接数据库的信息title:="数据库连接...."ODBChandle:=ODBCOpen(WindowHandle,"","database","","") --得到数据源getrecord:="select count(sequence) from erigister" --得到记录的个数record:=ODBCExecute(ODBChandle,getrecord)if ODBChandle=0 then --测试连接数据库是否连接成功MessageBox(WindowHandle,hint0,title,17)end ifODBCClose(ODBChandle)ODBChandle:=ODBCOpen(WindowHandle,"","database","","")if ODBChandle=0 thenMessageBox(WindowHandle,hint0,title,17)end ifsqlstring1:="select ssdb from erigister where sequence="^record^""-从表中选择单选库表题ssdatabase:=ODBCExecute(ODBChandle,sqlstring1)getrecord:="select count(sequence) from "^ssdatabase^""record:=ODBCExecute(ODBChandle,getrecord) --ssdb数据库的记录个数,以便产生随机数sssum:=0number1:=1sui:=[]sui[1]:=Random(1,record,1) --下面程序用来产生一个随机数不能出现相同的题目i:=2repeat while i<=recordflag:=0repeat while flag=0sui[i]:=Random(1,record,1)flag1:=0repeat with p:=1 to i-1if sui[i]=sui[p] then flag1:=1end repeatif flag1=0 then flag:=1end repeati:=i+1end repeat5.3.3.3在“做选择的背景”显示图标中设计单选题的界面如上图5.45.3.3.4在“数据库的操作”中输入如下代码:在这里,我们就要实现对数据库的随机读取和跟踪答案的长短来选择界面x:=0ran:=sui[number1]result:=""record1:=Number(record)record:=record1 --得到记录的个数sqlstring1:="select topic from "^ssdatabase^" where sequence="^ran^""分别得到选择题各项sqlstring2:="select a from "^ssdatabase^" where sequence="^ran^""sqlstring3:="select b from "^ssdatabase^" where sequence="^ran^""sqlstring4:="select c from "^ssdatabase^" where sequence="^ran^""sqlstring5:="select d from "^ssdatabase^" where sequence="^ran^""sqlstring6:="select result from "^ssdatabase^" where sequence="^ran^""get1:=ODBCExecute(ODBChandle,sqlstring1) --get1得到选择题目内容get2:=ODBCExecute(ODBChandle,sqlstring2) --get2得到选择项A内容get3:=ODBCExecute(ODBChandle,sqlstring3) --get3得到选择项B内容get4:=ODBCExecute(ODBChandle,sqlstring4) --get4得到选择项C内容get5:=ODBCExecute(ODBChandle,sqlstring5) --get5得到选择项D内容get6:=ODBCExecute(ODBChandle,sqlstring6) --get6得到选择题的答案inputa:=1 --用来设置热区域的激活条件5.3.3.5空“操作”用来设置跳转标志5.3.3.6在交互图标右边拖入四个热区域在计算图标中从左到右的四个计算图标中输入: result:="A" result:="b" result:="c" result:="d"在交互属性中设置激活条件为inputa=1: ,鼠标指针设置为标准鼠标指针,其它的为默认设置.其中result变量用来记录用户所选的答案.5.3.3.7拖一个交互图标“未命名”在它的右边拖两个计算图标为“上一题”和“下一题”,再拖一个群组“完成”放在“下一题”右边,设置热区为按钮。