




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySchool在线答题模块,2,问题描述,MySchool考试管理系统在线答题模块:1、学员登录2、选题3、答题4、查看答题卡5、自动阅卷评分要求完成在线答题模块相关界面设计及功能实现,3,MySchool数据库结构介绍,数据库由教员提供,在线答题模块使用到的数据表,4,问题分析-1,需要使用到的数据表:Student:学员信息表Subject:科目信息表Question:题目信息表,5,问题分析-2,主要功能分析1、登录学员身份登录,用户验证记录登录的用户名和登录类型2、在线答题选题:选择试题的科目抽题:随机抽取20道题答题:答题时间为20分钟,在程序中保存答案修改答案:通过答题卡返回修改判题:计算得分结果显示:分数、分数条、表情、评语,6,问题分析-3,主要界面分析登录界面:与上机课的相同学员主界面选题界面答题界面答题卡界面答题结果界面,7,问题分析-4,辅助类分析DBHelper类:数据库连接字符串、数据库连接对象UserHelper类:当前登录用户名、登录类型QuizHelper类:1、totalSeconds:整型,答题限制时间2、remainSeconds:整型,剩余时间3、allQuestionIds:整型数组,所有题目Id4、selectedStates:布尔型数组,表示题目是否已被抽中5、questionNum:整型,题目数量6、selectedQuestionIds:整型数组,选出的题目Id7、correctAnswers:字符串型数组,标准答案8、studentAnswers:字符串型数组,学员用户的答案,8,问题分析-4,QuizHelper类中几个数组的关系:,selectedStates题目是否被抽中,allQuestionIds所有题目Id,selectedQuestionIds选出的题目Id,correctAnswers标准答案,studentAnswers学员用户的答案,false,false,false,false,false,false,false,3,true,true,4,10,true,未回答,未回答,未回答,D,B,C,将该科目所有题目的Id取出,题目状态都是未选中,随机抽3道题,索引1、2、5被抽中,取出抽中试题的标准答案,用户答案都置为“未回答”,9,难点分析-1,随机抽取试题:,Randomrandom=newRandom();intquestionIndex=0;/随机产生的问题的索引值inti=0;while(iQuizHelper.questionNum)questionIndex=random.Next(QuizHelper.allQuestionsIds.Length);/如果没有被选中过,可以选择if(QuizHelper.selectedStatesquestionIndex=false)/,随机数对象,生成小于指定最大值的非负随机数,10,难点分析-2,每次显示一道题目:答题窗体增加questionIndex字段,记录当前显示的题目的索引值根据selectedQuestionIds,利用DataReader读取题目信息,11,难点分析-3,倒计时的时钟显示:,QuizHelper.remainSecond-;minute=QuizHelper.remainSecond/60;second=QuizHelper.remainSecond%60;/控制显示格式lblTimer.Text=string.Format(0:00:1:00,minute,second);,控制显示两位数字,12,难点分析-4,答题卡显示答案:用20个标签显示答案将题目的索引写在标签的Tag中,privatevoidAnswerCardForm_Load(objectsender,EventArgse)intindex=0;foreach(Controliteminthis.Controls)if(itemisLabel)/如果是标签index=Convert.ToInt32(item.Tag);item.Text=QuizHelper.studentAnswersindex;/,循环每一个控件,判断控件是不是标签,13,难点分析-5,从答题卡返回修改答案:用20个按钮显示题号将题目的索引写在Tag中20个按钮共用一个Click事件处理方法,privatevoidbtnQuestion_Click(objectsender,EventArgse)/获得当前点击的按钮对应的题目索引intquestionIndex=Convert.ToInt32(Button)sender).Tag);/自定义方法,打开答题窗体ShowAnswerQuestionForm(questionIndex);,14,难点分析-6,颜色条表示分数:,/计算得分intscore=correctNum*100/QuizHelper.questionNum;lblMark.Text=score.ToString()+分;/确定显示分数的label的宽度lblStudentScoreStrip.Width=lblFullMarkStrip.Width*score/100;/根据不同的得分,显示不同的颜色if(score60)lblStudentScoreStrip.BackColor=Color.Red;lblComment.Text=该好好复习啦!;/,15,阶段划分,第一阶段(20分钟)设计学员主窗体,实现学员登录功能第二阶段(30分钟)设计选题窗体,实现部分辅助功能第三阶段(80分钟)实现随机抽题功能第四阶段(80分钟)设计答题窗体,实现答题功能第五阶段(60分钟)设计答题卡窗体,实现答案显示和返回修改答案功能第六阶段(30分钟)设计答题结果显示窗体,实现判题功能,16,第一阶段,第一阶段(20分钟)设计学员主窗体,实现学员登录功能要求学员自己动手操作,教员巡视,解答学员提出的问题,17,阶段检查,针对第一阶段抽查学员的操作结果教员给出点评或集中演示难点部分,18,第一阶段结果演示,第一阶段设计的学员主窗体:,19,第二阶段,第二阶段(30分钟)设计选题窗体,实现部分辅助功能要求学员自己动手设计选题窗体,实现科目组合框、退出答题的功能教员巡视,解答学员提出的问题,20,阶段检查,针对第二阶段抽查学员的编码结果教员给出点评或集中演示难点部分,21,第二阶段结果演示,选题窗体:,22,第二阶段标准代码演示,添加科目名称到科目组合框中:,stringsql=SELECTSubjectNameFROMSubject;trySqlCommandcommand=newSqlCommand(sql,DBHelper.connection);DBHelper.connection.Open();/执行查询SqlDataReaderdataReader=command.ExecuteReader();/循环添加到组合框中while(dataReader.Read()cboSubjects.Items.Add(dataReaderSubjectName.ToString();dataReader.Close();/,23,第三阶段,第三阶段(80分钟)实现随机抽题功能要求学员自己动手操作,教员巡视,解答学员提出的问题,24,阶段检查,针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评,25,第三阶段标准代码演示,随机抽题:自定义SetSelectedQuestionIds()方法,Randomrandom=newRandom();intquestionIndex=0;/随机产生的问题的索引值/抽取每一道题并保存抽出的题目的Idinti=0;/记录抽取了几道题while(i0)QuizHelper.remainSeconds-;minute=QuizHelper.remainSeconds/60;second=QuizHelper.remainSeconds%60;/以“分:秒”的形式显示时间lblTimer.Text=string.Format(0:00:1:00,minute,second);else/提示时间到,转到结果显示界面,33,第五阶段,第五阶段(60分钟)1、设计答题卡窗体2、实现答案显示和返回修改答案功能要求学员自己动手操作,教员巡视,解答学员提出的问题,34,阶段检查,针对第五阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评,35,第五阶段窗体效果演示,答题卡窗体:,36,第五阶段标准代码演示-1,窗体加载时,显示答案:,/窗体的Load事件privatevoidAnswerCardForm_Load(objectsender,EventArgse)intindex=0;foreach(Controliteminthis.Controls)if(itemisLabel)/如果是标签index=Convert.ToInt32(item.Tag);if(index!=-1)item.Text=QuizHelper.studentAnswersindex;tmrCostTime.Start();/启动倒计时的计时器,37,第五阶段标准代码演示-2,点击题号,返回修改答案20个题号按钮共用一个Click事件处理方法,privatevoidbtnQuestion_Click(objectsender,EventArgse)/获得当前点击的按钮对应的题目索引intquestionIndex=Convert.ToInt32(Button)sender).Tag);/打开答题窗体AnswerQuestionFormanswerQuestionForm=newAnswerQuestionForm();/设置答题窗体显示的题目索引answerQuestionForm.questionIndex=questionId;answerQuestionForm.MdiParent=this.MdiParent;answerQuestionForm.Show();this.Close();,38,第六阶段,第六阶段(30分钟)设计答题结果显示窗体,实现判题功能要求学员自己动手操作,教员巡视,解答学员提出的问题,39,阶段检查,针对第六阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评,40,第六阶段窗体效果演示,结果显示窗体:,41,第六阶段标准代码演示-1,显示分数:,privatevoidQuizResultForm_Load(objectsender,EventArgse)intcorrectNum=0;/答对的题目数量for(inti=0;iQuizHelper.questionNum;i+)if(QuizHelper.studentAnswersi=QuizHelper.correctAnswersi)correctNum+;/计算得分intscore=correctNum*100/QuizHelper.questionNum;lblMark.Text=score.ToString()+分;/确定分数条和评语/,42,第六阶段标准代码演示-2,显示分数:,privatevoidQuizResultForm_Load(objectsender,EventArgse)/计算分数./确定显示分数的label的宽度lblStudentScoreStrip.Width=lblFullMarkStrip.Width*score/100;/根据不同的得分,显示不同的颜色if(score=60&score85)/,43,总结,巩固的知识点:条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年5月绍兴银行社会招聘15人模拟试卷及一套完整答案详解
- 2025年3月山东大集物流科技集团有限公司及权属子公司公开招聘考前自测高频考点模拟试题参考答案详解
- 2025广西揭阳普宁市公安局招聘警务辅助人员80人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年潍坊市技师学院公开招聘控制总量工作人员(39人)模拟试卷及答案详解参考
- 2025广东广州市横沥人力资源管理服务有限公司招聘服务外包人员1人模拟试卷及答案详解(名师系列)
- 2025北京第五实验学校招聘38人模拟试卷附答案详解(考试直接用)
- 2025年春季中国邮政储蓄银行合肥市分行校园招聘考前自测高频考点模拟试题及完整答案详解1套
- 2025昆明市官渡区北京八十学校招聘(18人)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年甘肃陇南事业单位预计将于5月中旬发布考前自测高频考点模拟试题及答案详解(必刷)
- 2025年宝鸡金台区事业单位招聘高层次人才(29人)模拟试卷及一套答案详解
- 胎儿磁共振技术医学应用
- 医防融合知识讲座
- 培养幼儿的语言能力
- 《认识几种常见的岩石》说课稿、教案和教学设计
- 黑布林英语阅读初一年级16《柳林风声》译文和答案
- 广东省监理从业人员网络继续教育平台题库
- YY/T 1268-2023环氧乙烷灭菌的产品追加和过程等效
- 平地机操作规程
- HY/T 0302-2021沸石离子筛法海水提钾工程设计规范
- GB/T 710-2008优质碳素结构钢热轧薄钢板和钢带
- GB/T 18591-2001焊接预热温度、道间温度及预热维持温度的测量指南
评论
0/150
提交评论