计算机本科毕业论文-在线答题系统的设计与实现_第1页
计算机本科毕业论文-在线答题系统的设计与实现_第2页
计算机本科毕业论文-在线答题系统的设计与实现_第3页
计算机本科毕业论文-在线答题系统的设计与实现_第4页
计算机本科毕业论文-在线答题系统的设计与实现_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要如今,计算机网络技术日益成熟和校园网络的普及,为网络答题考试系统提供了良好的基础。利用计算机以及网络技术实现答题考试的信息化,具有传统考试不可比的优点。因此开发适应信息时代的网络答题考试系统是有必要的。首先本文对整个系统的设计需求和思路进行了分析,并对各个部分进行分析,形成一个科学的设计方案。在设计的过程中,采用了PyCharm作为系统开发工具,Django作为开发框架,以MySQL作为数据库管理系统,然后对系统进行详细的数据库设计。然后,对系统的各个模块组成进行一一实现。在本设计的最后对系统的性能进行了测试,根据调试结果,提出了改进,以促进此系统在今后的工作中更好的运行。本系统实现了用户注册、登录,授权机制,机构注册,答题首页设计,比赛详情页面,答题功能实现,提交答案,批量录入题库和管理员后台管理页面等功能。关键词:在线答题系统;PyCharm;Django;MySQL;设计与实现

绪论研究背景在现代信息时代,计算机和互联网在各个领域的应用都越来越成熟和全面。在这一环境下,每个人的需求似乎都可以通过网络来实现,可以根据用户的需求来灵活的定制学习,也可以对学习的成果进行快速和准确的评价。在现代教育模式下,教师迫切需要一个科学性高、信息集成能力强的考试系统来提高考试和评阅的效率。而教育机构也希望可以为学生提供一个更加灵活和全面的教育服务,对学生的学习和测试情况进行全面的跟进。本次设计的在线答题测试系统便是基于这样的一个背景下来开发出来的。此系统集成了先进的互联网应用技术和功能,通过这一新型考试系统,可以为学校提供更多的选择,提高了工作的效率和考试标准化水平,也能够让学生、教师、教务管理者更好的来组织和参与测试过程。与传统的测试方式进行比较,在线答题测试系统有着很多优势。传统的测试无论是在考试组织、场地安排、纸张印刷、阅卷点评等多个环节上都耗费大量时间,而且效率低、成本高,而且人工批阅考卷也会存在出错的机会。随着互联网技术在教务管理中的应用,像在线答题测试系统这种考试系统就显得更加有优势,一方面提高了考试过程的效率,另一方面也大大节约了成本,有效弥补了传统考试的不足。研究目的与意义本次研究所设计与开发的在线答题测试系统目的在于更好的保障考试的效率和可靠性,提升考务过程的效率,降低了其他方面的时间和成本,更好的顺应现代教育信息化的发展要求,这也是未来教育行业的一个发展大趋势。本次系统通过设计一个面向教学和考试的答题考试管理系统,容易管理,方便维护,兼容性高,可以满足很多课程的测试和考核需要。通过本系统,能够为教师开展随堂测试和期末考试提供一个选择机会,也更加方便学生去自主学习和测试,同时系统中有大量的题库可以供学生练习和学习。为了提高系统的科学性、可移植性、可扩展性,在系统设计的过程中,采用的是基于B/S的三层体系结构。这就要求了后台数据中里面要包含了试题样库,教师可以根据需要对试题实施编辑、添加和删除等操作。教师可以加入新的考试科目,学生答题提交后可以立马获得答案,并且分析错题的问题。这样以来,可以方便学生及时的发现错误的原因,趁热打铁,提高学习效果,也可以快速的知道测试结果。此外,系统还可以为教师展示学生错题较多的地方,方便教师更好的针对性开展教学。另外,本系统还要具有一个操作性能好、用户界面友好的功能,最大限度的降低操作出错的问题,且兼具保密性。总的来说,本次所开发的在线答题测试系统和传统测试方式比有着如下几个具体的优势:第一,高效节约。传统的测试过程从制定测试计划到试卷的编写、印刷,再到考试的组织机后续的阅卷、成绩统计都需要耗费很多时间,而本次开发的系统是利用网络技术开发的,答题全程无纸化,而且只需要在电脑面前答题,答题提交后可以立马显示成绩,并且对分数进行自动合成,节约了很多成本。第二,准确公正。传统测试是人工批阅,无论是在试卷批改、成绩合成和成绩汇总的时候,都是由人来完成的,大量的重复性工作很容易产生错误。而本次开发的系统采用的是标准化的试卷,利用数据库的答案来进行自动批改,快速而且准确公正,降低了人的主观因素导致分数的不客观。第三,可有效杜绝答题考试的作弊现象。利用计算机答题系统可以打乱学生的试卷内容,即便题目一样,但是顺序和选项的顺序也有差异,所以可以避免抄袭问题,提高了考试的公正和公平性。研究内容在本文中,以模拟一套网络答题系统的业务流程等工作内容为基础,通过PyCharm工具实现在线答题测试系统的开发。相关技术基础B/S架构简介B/S架构即浏览器和服务器架构模式。这一架构是随着网络技术兴起而不断发展及应用的,这一结构是在原来C/S架构基础上进行改进和变化后的。便能够通过浏览器进行系统界面操作,实现其想要的功能,在服务器上安装相关的数据库。MySQL数据库简介MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。SQL简介SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。PyCharm简介PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。系统结构设计业务需求分析本系统的用户适用于所有的机构或学校和社会人员,根据登录、注册、注册机构、出题、指定比赛类型、提交、评分等主要功能,具体功能如下:系统结构设计根据需求分析中总结的用户需求,本系统结构如图3-1所示。图3-1系统功能模块系统流程分析在进行系统流程分析的过程中,就是要对用户在系统应用时候的工作过程进行分析。在系统打开运行之后,首先是进入到登录窗体界面,对用户的登录信息进行验证。这其中包含了2个过程:第一是通过系统输入的账号和密码验证其真实性。第二是确定用户的类型(学生、教师或管理员)。第一个过程决定用户是否有权限进行到系统。第二个过程是判断用户的类型,决定其以何种权限进行到系统下一步的操作中。假如要对普通用户实施管理,那么就要进入网站后台用管理员账号登录,否则便是网站登录首页的用户登录页面。假如还有其他用户使用系统,可以在用户管理模块进行用户的添加和创建。在创建的时候,需要输入账号、密码和验证码。管理员用户还可以对普通用户的账号进行修改和删除操作。在本系统中,应该首先验证用户的信息,验证用户信息有两点,一个是用户注册,另一个是用户登录。对于注册而言,用户需要填写注册信息,然后系统对用户填写的注册信息进行验证,如果验证通过,会提示用户到邮箱进行最后的激活。对于用户登录,它的业务流程相对简单一些,首先用户填写登录信息,然后对用户填写的登录信息进行验证,验证成功则登录成功。登录成功之后,机构可以上传题库,出题时需要录入题库,在录入题库的平台会提供一个下载的模板文件,用户可以根据模板文件输入题库,题库里的题型目前只有两种:选择题和填空题,录入完题库就可以上传至题库,此外答题机构还可以配置比赛,比如配置题库的类型和比赛的信息等,机构出完踢之后,在规定的时间内,普通用户就可以答题了,用户选择要答的题库开始答题,在答题时用户可以选择上一题或者下一题,答完题点击交卷提交试卷,答题时有倒计时提醒,如果在规定时间内没有完成答卷,则不录入成绩,如果答题完成,可以查看排行榜,还可以查看折线图分析答题结果。本系统中,系统业务流程包括登录首页,进行用户验证、注册,机构的验证、注册,进行出题、答题,提交,打分,折线图分析等。系统业务的流程如图3-2所示。图3-2系统业务流程数据库结构设计在线答题测试系统使用MySQL数据库来存储数据,数据库名为exam,共包含12张数据表吗,分别为:account_profile: 用户信息表account_useinfo: 用户填写信息表business_appconfiginfo: 机构app配置表business_businessaccountinfo: 机构账户表business_businessappinfo: 机构app表business_userinfoimage: 表单图片链接表business_userinforegex: 表单验证正则表competition_bankinfo: 题库信息表competition_choiceinfo: 选择题表competition_competitionkindinfo: 比赛信息表competition_competitionqainfo: 答题记录表competition_fillinblankinfo: 填空题表Account负责用户信息的处理,包括注册、登录、验证等功能。Analysis负责数据分析功能。Business负责管理机构信息。Competition负责比赛信息的处理。Config负责系统的配置信息,包括数据库、redis等配置。Utils是一个工具集,封装了一些系统所用的到工具。Web中存放的是项目的前端代码文件。Api接口功能。Backup用户存储机构账户上传题库文件的。Tmp存储log日志的目录。在业务处理的模块的每个模块中都有一个models.py的文件,这个文件封装了对应模块的数据库操作类,在通常情况下,类的成员变量与对应的表中的字段名相同。Profile类用来管理表account_profile的数据库操作。UserInfo类用来管理表account_useinfo的数据库操作。BusinessAccountInfo类用来管理表business_businessaccountinfo的数据库操作。BusinessAppInfo类用来管理表business_businessappinfo的数据库操作。AppConfigInfo类用来管理表business_appconfiginfo的数据库操作。UserInfoImage类用来管理表business_userinfoimage的数据库操作。UserInfoRegex类用来管理表business_userinforegex的数据库操作。BankInfo类用来管理表competition_bankinfo的数据库操作。ChoiceInfo类用来管理表competition_choiceinfo的数据库操作。FillInBlankInfo类用来管理表competition_fillinblankinfo的数据库操作。CompetitionQAInfo类用来管理表competition_competitionqainfo的数据库操作。CompetitionKindInfo类用来管理表competition_competitionkindinfo的数据库操作。1、用户信息表account_profile,保存授权后的用户信息,结构如表3-1所示。表3-1表account_profile的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是uidvarchar22user_srcint11是user_statusint11是unionidvarchar32openidvarchar32wxidvarchar32namevarchar32emailvarchar40sexint11是ageint11是nicknamevarchar32avatarvarchar60phonevarchar11countryvarchar32procincevarchar32cityvarchar32locationvarchar60is_upgardeint11是upgarde_timedatetime6expire_timedatetime6upgarde_countint11是2、用户填写信息表account_useinfo,保存用户参与比赛时填写的信息,结构如表3-2所示。表3-2account_useinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是kind_atvarchar32uidvarchar32namevarchar24sexvarchar1ageint11phonevarchar11wxidvarchar24emailvarchar60pidvarchar18graduated_fromvarchar60addressvarchar603、机构app配置表business_appconfiginfo,保存机构app的配置信息。结构如表3-3所示。表3-3business_appconfiginfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是app_idvarchar32是app_namevarchar40rule_textlongtext0is_show_userinfotinyint1是userinfo_fieldsvarchar128option_fieldsvarchar128userinfo_fields_namesvarchar1284、机构账户表business_businessaccountinfo,保存机构账户的信息。结构如表3-4所示。表3-4business_businessaccountinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是account_idvarchar22是emailvarchar40company_namevarchar60company_descriptionlongtext0company_usernamevarchar32company_phonevarchar16company_locationlongtext0company_typeint11是5、机构app表business_businessappinfo,保存机构应用的信息。结构如表3-5所示。表3-5 表business_businessappinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是account_idvarchar32是app_idvarchar22是app_namevarchar40app_descriptionlongtext05、表单图片链接表business_userinfoimage,保存每个表单图片字段的链接。结构如表3-6所示。表3-6 business_userinfoimage的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime32是uii_namevarchar60namevarchar60sexvarchar60agevarchar60phonevarchar60wxidvarchar60emailvarchar60pidvarchar60graduated_fromvarchar60addressvarchar60resumevarchar606、表单验证正则表business_userinforegex,保存每个表单字段的正则表达式信息。结构如表3-7所示。表3-7business_userinforegex的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是field_namevarchar16regexvarchar40descriptionvarchar40是7、题库信息表competition_bankinfo,保存题库的信息。结构如表3-8所示。表3-8competition_bankinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是bank_idvarchar22choice_numint11是fillinblank_numint11是bank_typeint11是kind_numint11是bank_namevarchar40uidvarchar32account_idvarchar328、选择题表competition_choiceinfo,保存选择题的信息。结构如表3-9所示。表3-9competition_choiceinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是image_urlvarchar255audio_timevarchar255是bank_idint11ctypevarchar32是questionint11answervarchar255item1varchar255item2varchar255item3varchar255item4varchar255sourcevarchar2559、比赛信息表competition_competitionkindinfo,保存比赛的信息和比赛的配置信息。结构如表3-10所示。表3-10competition_competitionkindinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是kind_idvarchar22account_idvarchar32app_idvarchar32bank_idvarchar32kind_typeint11是kind_namevarchar32sponsor_namevarchar60total_sourceInt11是question_numint11是cop_startatdatetime6是perid_timeint11是cop_finishatdatetime6total_partin_numint11是10、答题记录表competition_competitionqainfo,保存答题记录的信息。结构如表3-11所示。表3-11competition_competitionqainfo的结构名类型长度不是nullidint11是statustinyint11是created_atdatetime6是updated_atdatetime6是kind_idvarchar32qa_idvarchar22uidvarchar32qsrecordlongtext0asrecordlongtext0aslogrecordlongtext0started_stampbigint20是finished_stampbigint20是expend_stampint11是startedtinyint1是finishedtinyint1是corrected_numint11是incorrected_numint11是total_numint11是scoredouble0是correct_listvarchar10000wrong_listvarchar1000011、填空题表competition_fillinblankinfo,保存填空题的信息。结构如表3-12所示。表3-12competition_fillinblankinfo的结构名类型长度不是nullidint11是statustinyint1是created_atdatetime6是updated_atdatetime6是image_urlvarchar255audio_urlvarchar255audio_timeint11是bank_idvarchar32questionaudio255answervarchar255sourcevarchar255系统详细设计设计首页面和主页面首页可以理解为是一个系统的欢迎页面,它的功能很简单,就是一个友好的页面,这个页面只是一张静态图片,点击图片任意位置跳转进入主页面。首页面如图:4-1所示。图4-1首页面主页面如图:4-2所示:图4-2主页面首页面跳转主页面的代码如下:<bodyclass="index-body"><imgid="index"src="{%static'img/index4.PNG'%}"/><script>{#$(document).ready(function(){#}{#$('.index').css('cursor','pointer');#}{#});#}$(document).click(function(){window.location.href='/index'})</script></body>设计登录页面当系统从首页面跳转到主页面时,答题的时候需要先进行登录操作,只有有权限的用户才能进入答题系统。登录成功后,将显示在主页面上,登录页面如图4-3所示。图4-3登录页面用户在输入邮箱、密码和验证码的时候系统会检测用户输入的是否匹配,如果不匹配会提示用户输入错误,如图4-4所示。图4-4用户信息输入错误匹配成功后,会在原登录按钮出显示出用户名称,如图4-5所示。图4-5登录成功后显示用户名核心代码如下:defnormal_login(request):"""普通登录视图:paramrequest:请求对象:return:返回json数据:user_info:用户信息;has_login:用户是否已登录"""email=request.POST.get('email','')password=request.POST.get('password','')sign=request.POST.get('sign','')模块设计模块包括了,出题、答题和平台管理员等。出题管理出题模块主要功能是为用户提供一个出题的模板,用户可以按照模板中的规则进行出题,出题完成之后,将模板再次上传到系统中,就可以配置比赛或者答题,出题的流程如图4-6所示。图4-6出题的流程下载模板和上传题库的核心代码如下:defindex(request):"""题库和比赛导航页:paramrequest:请求对象:return:渲染视图和user_info用户信息数据配置题库页面答题流程选择刚刚我们创建答题,进入答题页面,点击开始挑战,首先需要先填写用户信息,填写完用户信息,进入答题页面。答题的过程中,我们的题目是从题库随机抽取的,比如说我们题库中题的数量是10000道,而我们选择出题的时候,题目数量为10,就是从10000道题里面随机抽取10道题。打完题后点击提交,提交之后会统计出分数与排名,可以查看排名。答题的流程如图4-7所示。图4-7答题的流程答题功能核心代码如下:###检测用户是否登录###defcheck_login(func=None):ifnotuid:ifrequest.path.startswith('/bs'):returnrender(request,'err.html',ProfileNotFound)elifrequest.path.startswith('/api'):returnjson_response(*ProfileError.ProfileNotFound)returnfunc(request,*args,**kwargs)平台管理员平台管理员拥有最高的权限,管理员可以在后台添加机构、比赛信息、应用等等。在后台我们可以查看站点管理的信息,如用户信息、用户登记信息、出题账户、应用信息等。平台管理员的功能如图4-8所示。图4-8平台管理员管理员还可以为机构设置比赛类别的信息,进入比赛类别信息,添加一个比赛类别信息,我需要填写三个id,分别是出题账户id、应用id和题库id,然后根据需求完成信息的填写,这里可以设置总分数、题目的个数、比赛的时间等功能。这样可以使系统灵活应用,既可以让答题机构自己配置比赛,管理员也可以为机构配置比赛。系统测试在本系统当中,由于大部分都是与表单交互的数据处理,所以我们主要采用了黑盒测试为主的测试方法,将系统中所有的流程都按照正常的途径测试一次。测试点如下:1、页面是否跳转异常2、数据库信息是否按预想结果发生变化3、系统运行是否正确4、数据显示是否正确在正常操作的基础上,我们引入了异常处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论