在线考试系统需求分析说明书.docx
《在线考试系统需求分析说明书.docx》由会员分享,可在线阅读,更多相关《在线考试系统需求分析说明书.docx(50页珍藏版)》请在冰豆网上搜索。
在线考试系统需求分析说明书
中原工学院计算机学院
软件工程实训报告
课题名称:
在线考试系统
指导教师:
底恒
完成人:
姜应伟刘海阔盛俊尧陈志博曹勇华王涛
2011年12月30日
第1章引言
1.1目的
传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。
对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。
在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。
与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。
通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。
1.2名词解释
使用权限:
在线考试系统一共有3种用户类型,第一是管理员,权限最高,可以进行系统管理,第二种是老师,可以进行组卷,上传题目,批卷,统计等操作。
第三种是学生,只能进行考试和查看本人成绩。
组卷:
即按照用户选择的条件,比如不同类型的题量,难度限制,然后从题库中抽取题目,来组合成一张试卷。
试题难度系数:
难度系数分为初,中,高三种。
1.3参考资料
[1]中华人民共和国国家标准,GB9385-88,计算机软件需求说明编制指南,中华人民共和国电子工业部,1988-04-06批准。
[2]C#程序使用教程,李春平,清华大学出版社
[3]数据库系统概论第四版,王珊,高等教育出版社
[4]ASP.NET应用教程,石志国,清华大学出版社
[5]需求分析.doc,底恒
1.4文档结构
第1章引言,简述本文档写作的目的和使用范围,名词解释部分描述了项目的业务词汇与文档中使用的术语,参考资料是撰写文档与项目设计所引用的资料文献。
第2章远景,项目概述首先介绍项目的背景、来源和应用范围,以及系统带来的经济和工作效率方面的利益,并从功能、用户特征、业务模型等方面展开概要描述。
交待了系统的开发环境、参与人员以及开发的过程控制。
第3章需求,采用用例规约方式详细描述了项目的需要分析,并将需求划分为功能性需求和非功能性需求,非功能性需求主要描述项目的安全性和性能等指标的设计方案。
第4章体系结构,描述系统的设计结构,其中逻辑视图描述对项目实现的逻辑结构的设计,包括包结构和类结构;流程视图描述项目主要业务流程的设计;数据视图是对项目持久化数据结构的设计。
第5章设计实现,详细描述项目关键用例或关键流程的设计与实现,并附相应代码片段。
附录附有与项目相关的所有书面资料。
第2章远景
2.1项目概述
随着Internet的迅速发展和广泛普及,网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。
远程教育成为现代教育技术未来发展的重要方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。
Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。
与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。
传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。
对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。
在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。
与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。
通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。
可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。
传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。
这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。
在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。
本文以Internet为平台,研究了基于Web考试系统的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。
重点阐述了用户登录模块、在线考试模块、题库管理模块、试卷管理模块、学生管理模块、成绩管理模块的设计。
2.1.1项目功能结构
系统总体结构和各子系统用例图如图2至图5所示:
图表1系统总体用例图
图表2试题管理用例图
图表3组卷管理用例图
图表4试卷管理用例图
图表2老师成绩管理子系统用例图
2.1.2功能摘要
1该系统在平时可以作为学生测试自己专业知识的模拟考卷系统,在考试周期内则承担起在线考试的任务。
2作为模拟考卷系统时,学生可自行查看自己的测试结果和标准答案。
3正式考试时系统对具体试卷的客观题自行判分,主观题则由老师判分。
在考试周期内,教师用户进入系统抽取不同题型试题进行组卷,可以对已有试卷进行查看和删除,对已有试卷的试题进行重复抽取,也可以打印试卷和试卷答案。
该系统可以使教师用户对试卷进行启用,作废,删除等操作。
4题库题量统计功能可以选择要统计题量的学科,比如要统计英语题一共有多少题,有多少选择,多少填空题。
而且可以统计同一题型不同难度题的数量。
比如选择题初级题有多少题,中级题有多少题,高级题有多少题。
5统计成绩信息时系统有成绩明细和成绩统计两个功能,明细是把某个学生的成绩信息显示出来。
成绩统计则是把考过该试卷的信息全部显示出来,不具体显示某个学生的成绩,而是对全部信息进行汇总统计,比如某个学院这个学科的平均成绩,不同分值段内的人数。
6该系统只能由管理员对学院用户的添加、修改、删除
7对用户的添加、修改、删除也只能由管理员完成。
2.1.3用户特点
本系统预期用户分为3类,即管理员,任课教师和学生。
管理员主要是学校的考务人员,他们使用本系统的“系统管理”功能来进行学院管理,人员管理。
任课教师是在学校的教学人员。
他们使用本系统的来进行组卷,上传试题,批卷,统计成绩等功能。
学生是在校的学生。
他们使用本系统来进行在线考试和练习,也可以查看本人考试成绩,是本系统的主要用户群。
2.1.4业务模型
传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。
对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。
在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。
与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。
通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。
可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。
2.1.5系统开发环境
2.1.5.1硬件环境
类别
最低配置
CPU
酷睿2E6300
内存
DDR21G
硬盘
7200转/S80G
操作系统
MicrosoftWindows2003Server
表格1硬件环境
2.1.5.2编写环境
网络
100M/S
Web服务器
IIS
数据库服务器
SQLServer2005
表格2支持软件一览表
2.2参与者与分工
人员姓名
任务分配
曹勇华
系统管理,上传题目
刘海阔
单选题、多选题设计
陈志博
判断题、填空题、问答题设计
盛俊尧
组卷管理,试卷管理
姜应伟
在线做卷(在线练习,在线考试),批改
王涛
成绩统计,题库题量统计
2.3开发过程
单选题,多选题,判断题、填空题、简答题基本开发类似,以简答题为例:
选择相应学科,试题表中出现对应学科的试题;试题的启用和作废,从数据库中读出试题启用作废情况显示在试题表中,可以单击启用和作废来控制试题的使用情况;试题的删除,先判断试题的使用情况,启用的试题不能删除,作废的试题可以删除,删除是出现提示页面,以免误删;试题的添加,单击跳转到添加页面,进行添加;修改试题时,此题情况显示在修改页面,进行修改;简答题上传图片,选择浏览,选中路径后,单击上传,最后添加试题。
题库题量统计:
前期先实现了搜索数据库对不同学科不同题型不同难度的题量进行统计,并将这些统计信息存入数据库中,后期调用画图类,根据统计的题量画出了题型统计的柱状图和扇形图。
成绩信息统计:
信息统计包括两个部分,成绩明细和成绩统计。
首先,实现了成绩明细功能,即可以查看考过该试卷的考生信息,考试信息。
然后,以成绩明细得到的结果为基础,按班级为单位统计其分数信息中的不同分值段的人数,以及该班级的平均分和考试总人数。
第3章需求分析
3.1功能需求
3.1.1系统管理
实现对各个学院,人员信息的添加,修改和删除,以及对以不同权限登录的用户的权限的控制。
3.1.2题库管理
实现对单选题,多选题,判断题,填空题,问答题的题目的维护,包括修改试题,添加试题,删除试题,以及启用和作废试题。
还要实现各种题目的批量上传,同时,问答题还要实现上传图片的功能。
3.1.3组卷管理
实现能够根据用户选择的组卷条件,自动从题库中抽取题目,用户要能看见抽出的题目,不满意可以重新抽取,抽取完成后,该试卷可以用于在线考试和在线练习。
3.1.4试卷管理
实现对现有试卷的管理,包括增,删,改,查。
而且试卷可以有启用,作废功能,试卷启用后才能用于考试。
而且,还可以打印已有试卷,以及试卷答案。
3.1.5在线考试
实现学生可以登录考试,考试过程中学生可以暂存试卷,试卷暂存后,学生下次考试同一张试卷时,可以恢复答案。
考试能够实现自动计时,考试到时间后,系统会自动提交试卷,强制学生停止答题。
考试结束后,学生的答题信息会存入数据库中,老师阅卷的时候,会从数据库中读出学生的答题信息,便于老师阅卷。
3.1.6批卷
实现老师登录后,可以选择要批改的试卷,选择试卷后,还可以选择要批改学生的ID,批改时,自动将学生的考试答案读出到页面上,而且正确答案也要显示出来,便于老师阅卷。
客观题,如选择题,判断题实现自动阅卷,主观题,如填空题,问答题,需要老师选择要给的分数。
不需要老师手动输入。
阅卷结束后,将学生成绩存入成绩表中。
3.1.7信息统计
实现题库题量统计,学生成绩统计。
题库题量统计能统计不同科目的题量,主要统计各种题型的不同难度的题的数量。
成绩信息统计有两个子功能。
第一,成绩明细。
成绩明细实现能够查看某一张试卷的全部考生信息,包括学院,班级,专业,得分,登录时间。
第二,成绩统计。
成绩统计实现按班级为单位,统计每个班级的平均分,不同分值段的人数以及总分。
3.2非功能需求
3.2.1访问控制
不同的用户的权限是不一样的,管理员权限最高,能进行系统管理。
老师的权限次之,可以进行试卷管理,批卷,统计等操作。
学生能进行登录考试和练习,而且能查看成绩。
不同用户之间不能互相访问,比如,学生不能组卷,不能批卷和统计。
同样的老师不能考试。
访问权限是用0,1,2表示的。
0表示是管理员,1表示老师,2表示学生。
第4章体系结构
4.1逻辑视图
4.2流程视图
4.3数据库结构
第5章设计实现
【与第四章逻辑视图相对应,给出每个包、类的具体实现】
注意:
只需写出关键实现逻辑即可,不要把所有代码附上。
5.1系统管理
5.2试题管理
5.2.1单选题管理
1.启用和作废
数据库中用0,1判断试题使用情况,为1时,可被抽选,抽选之后的题,不能被删除,为0时不能被抽选,为1时,Gridview中的checkbox自动选中,为0的不被选中。
实现代码如下:
if(icheckbox1=(CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
checkbox1.Checked=true;
点击启用,其属性“使用”设为“1”,“作废”设为“0”;实现如下
启用:
if(e.CommandName=="启用")
{
GridViewRowdrv=((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent));
stringid=Convert.ToString(GridView1.DataKeys[drv.RowIndex].Value);
SqlConnectionCon=newSqlConnection();
Con.Open();
SqlCommandcmd1=newSqlCommand("updateT_SingleChoiceset使用=1where题目ID='"+id+"'",Con);
cmd1.ExecuteNonQuery();
Con.Close();
GridView1.DataBind();
shuaxin();
}
作废:
SqlCommandcmd1=newSqlCommand
("updateT_SingleChoiceset使用=0where题目ID='"+id+"'",Con);
2.修改试题
当点击修改时,获取要修改题目的“题目ID”,放入session中,然后传递到修改页面使用,作为显示和修改该题判断条件,代码如下:
if(e.CommandName=="change")
{
intindex=Convert.ToInt32(e.CommandArgument);
Session["subjectid"]=this.GridView1.Rows[index].Cells[0].Text.ToString();
}
使用label控件,在gridview中,绑定数据(题干,选项A、B、C、D)显示原题干及各个选项信息,方便修改。
方法如下:
Eval[“题干”],Eval[“选项A”],Eval[“选项B”],Eval[“选项C”],Eval[“选项D”]
同时使用TextBox控件绑定数据(题干,选项A、B、C、D)以便进行小范围的修改。
提交修改则激活事件
DataList1_ItemCommand(objectsource,DataListCommandEventArgse)
实现如下ButtonID="Button1"
CommandName='<%#Eval("题目ID")%>'OnCommand="btn_Click"
OnItemCommand="DataList1_ItemCommand"
激活DataList1_ItemCommand事件后只需将TextBox控件中获得的数据同步到数据库中即可,再跳回到ManageSingleChoice.aspx页面即可查看修改的大致结果
protectedvoidDataList1_ItemCommand(objectsource,DataListCommandEventArgse)
{
intid=Convert.ToInt32(e.CommandName);
for(inti=5;i<=8;i++){//获取正确答案
tringanswerid="RadioButton"+i;
RadioButtonrb=e.Item.FindControl(answerid)asRadioButton;
if(rb.Checked)stringanswer1=rb.Text;
SqlCommandcm=newSqlCommand("updateT_SingleChoiceset正确答案='"+answer1+"'where题目ID='"+id+"'",con);
for(inti=9;i<=11;i++){//获取难度系数
stringlevelid="RadioButton"+i;
RadioButtonrb=e.Item.FindControl(levelid)asRadioButton;
if(rb.Checked)
stringlevel1=rb.Text;
SqlCommandcm2=newSqlCommand("updateT_SingleChoiceset题干='"+title+"',选项A='"+choice1+"',选项B='"+choice2+"',选项C='"+choice3+"',选项D='"+choice4+"',科目ID='"+choice5+"'where题目ID='"+id+"'",con);
cm2.ExecuteNonQuery();
con.Close();
Response.Redirect("ManageSingleChoice.aspx");}
3删除题目
删除题目时给出提示,若题目的状态“使用”为“1”,将不能被删除,程序将直接刷新,不做任何操作,若当前题目状态为“0”,即可以被删除,删除后将刷新本页。
点击作废后重新删除,成功后的刷新页面如下
具体实现如下
if(e.CommandName=="delete")//判断操作
{intindex1=Convert.ToInt32(e.CommandArgument);
stringdel=this.GridView1.Rows[index1].Cells[0].Text.ToString();
myconn.Open();
SqlCommandcmd=newSqlCommand("select使用fromT_SingleChoicewhere题目ID='"+del+"'",myconn);
SqlDataReaderdr=cmd.ExecuteReader();
inti=0;
while(dr.Read())
if(i{
Response.Redirect("ManageSingleChoice.aspx");
}i++;
dr.Close();
stringdel1="deletefromT_SingleChoicewhere题目ID='"+del+"'";//删除字符串
SqlCommanddel2=newSqlCommand(del1,myconn);
GridView1dataBind();//数据再次绑定
shuaxin();//页面刷新
刷新页面的函数
protectedvoidshuaxin()
{
SqlCommandcmd=newSqlCommand("select使用,题干fromT_SingleChoicewhere科目ID='"+DropDownList1.SelectedValue+"'",Con1);
SqlDataReaderdr=cmd.ExecuteReader();
CheckBoxcheckbox1;
while(dr.Read()){
if(icheckbox1=(CheckBox)GridView1.Rows[i].
FindControl("CheckBox1");checkbox1.Checked=true;}i++;}
}
4添加题目
题目的添加必须要完整,否则就不能做为一道题目来使用,即作为单选题,所有选项和题干都不能为空,正确答案和难度系数也不能为空。
一旦题目不完整,就不能添加。
如下所示:
信息填写完整后,添加成功结果如下
实现过程如下
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringanswer=null;stringlevel=null;
for(inti=1;i<=3;i++){
RadioButtonrb=this.FindControl("RadioButton"+i)asRadioButton;
if(rb.Checked)
level=rb.Text;
for(inti=6;i<=9;i++){
RadioButtonrb=this.FindControl("RadioButton"+i)asRadioButton;
if(rb.Checked){
answer=rb.Text;}}
SqlConnectioncon;con.Open();
stringsql="insertintoT_SingleChoice(科目ID,题干,选项A,选项B,选项C,选项D,正确答案,试题难度系数)values('"+DropDownList1.SelectedValue+"','"+TextBox2.Text+"','"+TextBox3.Text+"','"+TextBox4.Text+"','"+TextBox5.Text+"','"+TextBox6.Text+"','"+answer+"','"+level+"');";
SqlCommandcm=newSqlCommand(sql,con);
cm.ExecuteNonQuery();
con.Close();
Response.Redirect("ManageSingleChoice.aspx");
5.2.2多选题管理
1.启用和作废
数据库中用0,1判断试题使用情况,为1时,可被抽选,抽选之后的题,不能被删除,为0时不能被抽选,为1时,Gridview中的checkbox自动选中,为0的不被选中。
实现代码如下:
if(i<