MySchool在线答题模块V

上传人:tian****1990 文档编号:244675677 上传时间:2024-10-05 格式:PPT 页数:44 大小:605KB
返回 下载 相关 举报
MySchool在线答题模块V_第1页
第1页 / 共44页
MySchool在线答题模块V_第2页
第2页 / 共44页
MySchool在线答题模块V_第3页
第3页 / 共44页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,MySchool 在线答题模块,问题描述,MySchool,考试管理系统在线答题模块:,1、,学员登录,2、,选题,3、,答题,4、,查看答题卡,5、,自动阅卷评分,要求完成在线答题模块相关界面设计及功能实现,MySchool 数据库结构介绍,数据库由教员提供,在线答题模块使用到的数据表,问题分析-1,需要使用到的数据表:,Student:学员信息表,Subject:科目信息表,Question:题目信息表,问题分析-2,主要功能分析,1、登录,学员身份登录,用户验证,记录登录的用户名和登录类型,2、在线答题,选题:选择试题的科目,抽题:随机抽取20道题,答题:答题时间为20分钟,在程序中保存答案,修改答案:通过答题卡返回修改,判题:计算得分,结果显示:分数、分数条、表情、评语,问题分析-3,主要界面分析,登录界面:与上机课的相同,学员主界面,选题界面,答题界面,答题卡界面,答题结果界面,问题分析-4,辅助类分析,DBHelper 类:数据库连接字符串、数据库连接对象,UserHelper 类:当前登录用户名、登录类型,QuizHelper 类:,1、totalSeconds:整型,答题限制时间,2、remainSeconds:整型,剩余时间,3、allQuestionIds:整型数组,所有题目 Id,4、selectedStates:布尔型数组,表示题目是否已被抽中,5、questionNum:整型,题目数量,6、selectedQuestionIds:整型数组,选出的题目 Id,7、correctAnswers:字符串型数组,标准答案,8、studentAnswers:字符串型数组,学员用户的答案,问题分析-4,QuizHelper 类中几个数组的关系:,selectedStates,题目是否被抽中,0,1,2,3,4,5,6,allQuestionIds,所有题目 Id,1,3,4,5,9,11,10,0,1,2,3,4,5,6,selectedQuestionIds,选出的题目 Id,0,1,2,correctAnswers,标准答案,0,1,2,studentAnswers,学员用户的答案,0,1,2,false,false,false,false,false,false,false,3,true,true,4,10,true,未回答,未回答,未回答,D,B,C,将该科目所有题目的 Id 取出,题目状态都是未选中,随机抽 3 道题,,索引1、2、5被抽中,取出抽中试题的标准答案,用户答案都置为“未回答”,难点分析-1,随机抽取试题:,Random random=new Random();,int questionIndex=0;,/,随机产生的问题的索引值,int i=0;,while(i QuizHelper.questionNum),questionIndex=,random.Next,(QuizHelper.allQuestionsIds.Length);,/如果没有被选中过,可以选择,if(QuizHelper.selectedStatesquestionIndex=false),/,随机数对象,生成小于指定最大值的非负随机数,难点分析-2,每次显示一道题目:,答题窗体增加,questionIndex 字段,记录当前显示的题目的索引值,根据selectedQuestionIds,利用 DataReader 读取题目信息,难点分析-3,倒计时的时钟显示:,QuizHelper.remainSecond-;,minute=QuizHelper.remainSecond/60;,second=QuizHelper.remainSecond%60;,/,控制显示格式,lblTimer.Text=,string.Format(0:00:1:00,minute,second);,控制显示两位数字,难点分析-4,答题卡显示答案:,用20个标签显示答案,将题目的索引写在标签的 Tag 中,private void AnswerCardForm_Load(object sender,EventArgs e),int index=0;,foreach(,Control item in this.Controls,),if(,item is Label,)/,如果是标签,index=Convert.ToInt32(item.Tag);,item.Text=QuizHelper.studentAnswersindex;,/,循环每一个控件,判断控件是不是标签,难点分析-5,从答题卡返回修改答案:,用20个按钮显示题号,将题目的索引写在 Tag 中,20个按钮共用一个 Click 事件处理方法,private void btnQuestion_Click(object sender,EventArgs e),/,获得当前点击的按钮对应的题目索引,int questionIndex=Convert.ToInt32(,(Button)sender).Tag,);,/,自定义方法,打开答题窗体,ShowAnswerQuestionForm(questionIndex);,难点分析-6,颜色条表示分数:,/,计算得分,int score=correctNum*100/QuizHelper.questionNum;,lblMark.Text=score.ToString()+,分,;,/,确定显示分数的,label,的宽度,lblStudentScoreStrip.Width=lblFullMarkStrip.Width*score/100;,/,根据不同的得分,显示不同的颜色,if(score 60),lblStudentScoreStrip.BackColor=Color.Red;,lblComment.Text=,该好好复习啦,!,;,/,阶段划分,第一阶段(20分钟),设计学员主窗体,实现学员登录功能,第二阶段(30分钟),设计选题窗体,实现部分辅助功能,第三阶段(80分钟),实现随机抽题功能,第四阶段(80分钟),设计答题窗体,实现答题功能,第五阶段(60分钟),设计答题卡窗体,实现答案显示和返回修改答案功能,第六阶段(30分钟),设计答题结果显示窗体,实现判题功能,第一阶段,第一阶段(20分钟),设计学员主窗体,实现学员登录功能,要求学员自己动手操作,教员巡视,解答学员提出的问题,阶段检查,针对第一阶段抽查学员的操作结果,教员给出点评或集中演示难点部分,第一阶段结果演示,第一阶段设计的学员主窗体:,第二阶段,第二阶段(30分钟),设计选题窗体,实现部分辅助功能,要求学员自己动手设计选题窗体,实现科目组合框、退出答题的功能,教员巡视,解答学员提出的问题,阶段检查,针对第二阶段抽查学员的编码结果,教员给出点评或集中演示难点部分,第二阶段结果演示,选题窗体:,第二阶段标准代码演示,添加科目名称到科目组合框中:,string sql=SELECT SubjectName FROM Subject;,try,SqlCommand command=,new SqlCommand(sql,DBHelper.connection);,DBHelper.connection.Open();,/,执行查询,SqlDataReader dataReader=command.ExecuteReader();,/,循环添加到组合框中,while(dataReader.Read(),cboSubjects.Items.Add(dataReaderSubjectName.ToString();,dataReader.Close();,/,第三阶段,第三阶段(80分钟),实现随机抽题功能,要求学员自己动手操作,教员巡视,解答学员提出的问题,阶段检查,针对第三阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,第三阶段标准代码演示,随机抽题:自定义,SetSelectedQuestionIds(),方法,Random random=new Random();,int questionIndex=0;/,随机产生的问题的索引值,/,抽取每一道题并保存抽出的题目的,Id,int i=0;/,记录抽取了几道题,while(i 0),QuizHelper.remainSeconds-;,minute=QuizHelper.remainSeconds/60;,second=QuizHelper.remainSeconds%60;,/,以“分:秒”的形式显示时间,lblTimer.Text=string.Format(0:00:1:00,minute,second),;,else,/,提示时间到,转到结果显示界面,第五阶段,第五阶段(60分钟),1、设计答题卡窗体,2、实现答案显示和返回修改答案功能,要求学员自己动手操作,教员巡视,解答学员提出的问题,阶段检查,针对第五阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,第五阶段窗体效果演示,答题卡窗体:,第五阶段标准代码演示-1,窗体加载时,显示答案:,/,窗体的,Load,事件,private void AnswerCardForm_Load(object sender,EventArgs e),int index=0;,foreach(,Control item in this.Controls,),if(,item is Label,)/,如果是标签,index=Convert.ToInt32(item.Tag);,if(index!=-1),item.Text=QuizHelper.studentAnswersindex;,tmrCostTime.Start();/,启动倒计时的计时器,第五阶段标准代码演示-2,点击题号,返回修改答案,20个题号按钮共用一个 Click 事件处理方法,private void btnQuestion_Click(object sender,EventArgs e),/,获得当前点击的按钮对应的题目索引,int questionIndex=Convert.ToInt32(Button)sender).Tag);,/,打开答题窗体,AnswerQuestionForm answerQuestionForm,=new AnswerQuestionForm();,/,设置答题窗体显示的题目索引,answerQuestionForm.questionIndex=questionId;,answerQuestionForm.MdiParent=this.MdiParent;,answerQuestionForm.Show();,this.Close();,第六阶段,第六阶段(30分钟),设计答题结果显示窗体,实现判题功能,要求学员自己动手操作,教员巡视,解答学员提出的问题,阶段检查,针对第六阶段抽查学员的编码结果,抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果,教员给出点评,第六阶段窗体效果演示,结果显示窗体:,第六阶段标准代码演示-1,显示分数:,private void QuizResultForm_Load(object sender,EventArgs e),int correctNum=0;/,答对的题目数量,for(int i=0;i QuizHelper.questionNum;i+),if(QuizHelper.studentAnswersi=QuizHelper.correctAnswersi),correctNum+;,/,计算得分,int score=correctNum*100/QuizHelper.questionNum,;,lblMark.Text=score.ToStri
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!