《在线考试系统毕业设计论文(推荐).doc》由会员分享,可在线阅读,更多相关《在线考试系统毕业设计论文(推荐).doc(38页珍藏版)》请在三一办公上搜索。
1、中原工学院软件学院三级实践课题设计任务书姓 名孙豪杰 软件编码 专业 062 班题 目在线测试系统设计任务开发在线测试系统,提供网上测试、网上出卷、网上阅卷、成绩查询等功能。我做的模块如下:1. 学生信息管理2. 教师信息管理3. 试卷信息管理4. 科目信息管理5. 班级信息管理开发工具:C#、ASP .Net、SQL Server 2000时间进度第17周(07-12-1307-12-29):选择课题,写需求分析,选择开发工具,依据需求分析建立SQL数据库,给系统建立模块,分配任务。第18周(07-12-30-08-01-06):依据模块功能,编写代码,并进行测试。第19周(08-01-07
2、08-01-13):整合模块,最终测试,验收,写课题设计任务书。原 主始 要资 参料 考和 文 献01张琦.Visual C#.NET 使用教程M:清华大学出版社,北京交通大学出版社.2006.1202刘烨C#编程及使用程序开发教程M:清华大学出版社,北京交通大学出版社.2006.1203刘勇.SQL Server2000基础教程M: 清华大学出版社. 2005.204黄明.C#+SQL Server中小型信息系统开发实例M机械工业出版社.2007.4指导教师签字: 年 月 日在线测试系统摘 要随着计算机使用的迅猛发展,网络使用不断扩大,如远程教育和虚拟大学的出现等等,且这些使用正逐步深入到千
3、家万户。人们迫切要求利用这些技术来进行在线测试,以减轻教师的工作负担及提高工作效率,和此同时也提高了测试的质量,从而使测试更趋于公证!客观!更加激发学生的学习兴趣。在线测试系统是为了方面学生测试、老师阅卷、提高测试的公正性、公平。本文主要包括系统的需求分析、概要设计、总体设计(部分)、详细设计关键词: 需求分析; 概要设计; 总体目 录摘 要2第一章 系统需求分析41.1 功能需求41.2 性能需求41.3 可靠性和可用性41.4 系统ER图51.5 工具选择51.6实现环境6第二章 总体设计72.1 系统模块72.1.1 系统模块图72.1.2用例图82.1.3管理员功能模块92.1.4教师
4、功能模块102.1.5学生功能模块102.2 数据库设计10第三章 详细设计113.1 数据表113.2 具体模块设计153.2.1 学生信息管理模块163.2.2 教师信息管理模块203.2.3 试卷信息管理223.2.4 科目信息管理243.2.5 班级信息管理模块26第四章 系统测试284.1 所预见的问题284.2 系统测试28第五章 结束语29第一章 系统需求分析1.1 功能需求本系统要实现的是在线测试系统,在设计时应该有友好的用户界面,便用户的操作。系统应具基本功能如下: 科目管理 章节管理 题库管理(选择题,填空题,判断题,简答题,问答题) 系部管理 班级管理 学生管理 教师管理
5、 管理员信息管理 手动组卷 随机组卷(可以完全随机组卷,也可以按章节比重进行随机组卷) 测试页面 阅卷管理 成绩查询1.2 性能需求由于此系统为在线测试系统,响应速度一定要快,要在5秒以内,安全性要高,服务器的磁盘容量要大,主存容量要大,信息处理速率要高。1.3 可靠性和可用性由此系统的性质决定,它的可靠性一定要高,尽量减少系统运行中错误的出现,要保持在一定量的范围内。系统可用性也一定要高,尽量避免不可用几率的发生。1.4 系统ER图专业学号登录密码登录密码用户名密码N1N11NNN学生老师管理员姓名班级性别所教科目姓名教师编号试卷出卷测试管理管理图1.1系统ER图1.5 工具选择数据库是数据
6、管理的最新技术,是计算机科学的重要分支。十年来,数据库管理系统已从专用的使用程序包发展成为通用系统软件。由于数据库具有数据的结构化、可控冗余度、较高的程序和数据独立性、易于扩充、易于编制使用程序等优点,较大的信息系统都是建立在数据库设计之上的。由于用到的数据表格多,另外考虑到实际情况,如学生基本信息的变动,我们选用SQL Server作为数据库开发,而不用Access,主要是因为Access存放的记录,在实际运用中不适合此系统;而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQL Server数据库。用C#语言进行编码。C# 编程语言是微软在.
7、NET计划中重要的开发语言,它具有语法简单,功能强大,快速使用,语言自由,强大的Web服务器控件,支持跨平台,和XML相融合等。因此选择C#编程语言。1.6实现环境本系统是以Windows XP系统为操作平台,在.NET环境下编程实现。第二章 总体设计2.1 系统模块本系统分为用户管理模块、科目管理模块、章节管理模块、班级管理模块、系部管理模块、题库管理模块、试卷生成管理模块、测试页面管理模块、阅卷管理模块、测试结果管理模块、测试查询模块十一个模块2.1.1 系统模块图在线测试系统学生管理教师管理管理员管理章节管理科目管理用户管理题库管理试题管理试题查询测试页面试卷生成随机组卷手动组卷阅卷管理
8、成绩查询管理员教师学生试卷管理信息修改只限密码班级管理系部管理信息修改只限密码图2.1系统模块图2.1.2用例图学生用例图:成绩查询个人信息维护测试只能进行密码修改学生图2.2学生用例图教师用例图:试题查询试题修改试题删除添加试题试题库管理试卷删除修改试卷试卷维护试卷生成阅卷试卷管理教师包括教师信息的添加、修改、删除包括手动阅卷和自动阅卷学生管理教师管理管理员包括学生信息的添加、修改、删除图2.3教师用例图管理员用例图:试卷维护试卷管理学生管理教师管理管理员包括学生信息的添加、修改、删除包括教师信息的添加、修改、删除试卷删除修改试卷图2.4管理员用例图2.1.3管理员功能模块此模块包括用户管理
9、、科目管理、成绩查询、章节管理、试卷管理五个部分。 用户管理:此模块包括学生管理、教师管理、管理员管理1. 学生管理:对学生信息进行添加、修改和删除。2. 教师管理:对教师信息进行添加、修改和删除。3. 管理员管理:只修改管理员密码。 科目管理:对科目信息进行添加、修改和删除。 成绩查询:对学生测试的结果进行查询。 章节管理:对各科的章节进行添加、修改和删除。 试卷管理:对试卷进行删除。 班级管理:对班级进行添加修改和删除。 系部管理:对院系进行添加、修改和删除2.1.4教师功能模块此模块包括题库管理、试卷生成、阅卷管理、信息修改四个部分 题库管理:此模块包括试题管理和试题查询。1. 试题管理
10、:对试题进行添加、修改、删除。2. 试题查询:对试题进查询。 试卷生成:此模块包括手动组卷和随机组卷。1. 手动组卷:手动选择题型、题数进行组卷。2. 随机组卷:按固定的题型和分值进行组卷。 阅卷管理:对试卷进行批阅,客观题进行自动阅卷,主观题由教师进行阅卷 信息修改:只限教师对自己的密码进行修改。2.1.5学生功能模块 此模块包括测试页面和个人信息修改两个部分。 测试页面:学生进行做题的页面。 个人信息修改:只限修改密码。2.2 数据库设计综合以上分析,要实现上面的所有功能模块,数据库共要设计十七个表,它们分别是:科目表、管理表、章节表、班级表、组卷表、系别表、试卷信息表、学生表、学生测试试
11、卷表、测试结果表、学生答题试卷信息表、教师表、选择题表、填空题、判断题、简答题表、问答题表。第三章 详细设计3.1 数据表表3.1科目表(academics)序号字段名数据类型数据长度NULLPrimarykey描述1academicsidnvarchar15NY科目编号2admcnamenvarchar30NN科目名3classidnvarchar20NY班级编号表3.2 管理员表(admin)序号字段名数据类型数据长度NULLPrimarykey描述1adminnvarchar20NY用户名2pwdnvarchar20NN密码表3.3 章节表(chapter)序号字段名数据类型数据长度NU
12、LLPrimarykey描述1chapteridnvarchar12NY章节编号2cptnamenvarchar20NN章节名称3academicsidnvarchar15NN科目编号表3.4 班级表(class)序号字段名数据类型数据长度NULLPrimarykey描述1classidnvarchar20NY班级编号2clsnamenvarchar20NN班级名3departidnvarchar10NY院系编号表3.5 组卷表(construct)序号字段名数据类型数据长度NULLPrimarykey描述1examidnvarchar10NY试卷编号2topicidnvarchar10NY试
13、题编号3topictypenvarchar10NY题型表3.6 系别表(depart)序号字段名数据类型数据长度NULLPrimarykey描述1departidnvarchar10NY院系编号2dpnamenvarchar20NN院系名表 3.7 试卷信息表(examinfo)序号字段名数据类型数据长度NULLPrimarykey描述1examidnvarchar10NY试卷编号2academicsidnvarchar15YN科目编号3choicenumint4YN选择题数4choicescoreint4YN选择题分值5fillnumint4YN填空题数6fillscoreint4YN填空题
14、分值7jugenumint4YN判断题数8jugescoreint4YN判断题分值9simplenumint4YN简答题数10simplescoreint4YN简答题分值11questionnumint4YN问答题数12questionscoreint4YN问答题分值13examdateint4YN测试时间表3.8 学生信息表(student)序号字段名数据类型数据长度NULLPrimarykey描述1studentidnvarchar20NY学号2pwdnvarchar20YN密码3namenvarchar10YN姓名4sexnvarchar5YN性别5classidnvarchar20YN
15、班级编号表3.9 学生测试试卷表(student_exam)序号字段名数据类型数据长度NULLPrimarykey描述1studentnvarchar20NY学号2examidnvarchar10NY密码表3.10 测试结果表(student_exam_result)序号字段名数据类型数据长度NULLPrimarykey描述1studentidnvarchar20NY学号2examidnvarchar10YN试卷编号3scorenvarchar5YN分数表3.11 学生试卷信息表(student_exam_topoic)序号字段名数据类型数据长度NULLPrimarykey描述1student
16、idnvarchar20NY学号2examidnvarchar10NY试卷编号3topicidnvarchar10NY试题编号4answernvarchar400YN答案5topictypenvarchar10NY试题类型表3.12 教师表(teacher)序号字段名数据类型数据长度NULLPrimarykey描述1teacheridnvarchar20NY教师编号2pwdnvarchar20YN密码3namenvarchar10YN姓名4sexnvarchar5YN性别5classidnvarchar20NY班级编号6academicsidnvarchar15YN科目编号表 3.13 填空题
17、表(topic_fill)序号字段名数据类型数据长度NULLPrimarykey描述1topicidnvarchar10NY试题编号2topicnvarchar300YN题干3answernvarchar50YN答案4ranswernvarchar50YN正确答案5academicsidnvarchar15YN科目编号6chapteridnvarchar12YN章节编号表 3.14 选择题表(topic_choice)序号字段名数据类型数据长度NULLPrimarykey描述1topicidnvarchar10NY试题编号2topicnvarchar300YN题干3option_anvarch
18、ar300YN选项A4option_bnvarchar300YN选项B5option_cnvarchar300YN选项C6option_dnvarchar300YN选项D7answernvarchar4YN答案8academicsidnvarchar15YN科目编号9chapteridnvarchar12YN章节编号表3.15 判断题表(topic_juge)序号字段名数据类型数据长度NULLPrimarykey描述1topicidnvarchar10NY试题编号2topicnvarchar300YN题干3answernvarchar4YN答案4ranswernvarchar4YN正确答案5a
19、cademicsidnvarchar15YN科目编号6chapteridnvarchar12YN章节编号表 3.16 问答题表(topic_question)序号字段名数据类型数据长度NULLPrimarykey描述1topicidnvarchar10NY试题编号2topicnvarchar300YN题干3answernvarchar400YN答案4academicsidnvarchar15YN科目编号5chapteridnvarchar12YN章节编号表 3.17 简答题表(topic_simple)序号字段名数据类型数据长度NULLPrimarykey描述1topicidnvarchar1
20、0NY试题编号2topicnvarchar300YN题干3answernvarchar300YN答案4academicsidnvarchar15YN科目编号5chapteridnvarchar12YN章节编号3.2 具体模块设计系统功能模块介绍时,我们把整个系统分为管理员模块、教师模块、学生模块,其中管理员模块包括:用户管理(学生信息管理、教师信息管理、管理员信息管理)、科目管理、章节管理、班级管理、系别管理、试卷管理、测试信息查询;教师模块包括:个人信息修改、题库管理、试卷生成、阅卷管理;学生模块包括:测试页面、个人信息修改。我所做的模块是:学生信息管理模块、教师信息管理模块、试卷管理模块、
21、科目信息管理、班级管理模块五个模块。3.2.1 学生信息管理模块图3.1 学生信息管理界面图3.2 添加学生信息界面设计思路:管理对学生的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录;点击添加按钮,弹出添加学生记录窗口(如图3.2)添加学生记录。实现代码(部分):通过设计类的(ProjectClass()中的方法调用数据库中的存储过程对数据进行操作protected void Page_Load(object sender, EventArgs e) /窗体加载时绑定
22、数据 if (SessionadminId = null) Response.Redirect(login.aspx); else if (!this.IsPostBack) GvDataBind(); private void GvDataBind() / 绑定方法 DataSet ds = new DataSet(); ds = (new ProjectClass().getStuInfo(); DataTable dt = ds.TablesStuInfo; DataView dv = new DataView(dt); dv.RowFilter = +this.DDlIndex.Sel
23、ectedItem.Value.ToString() + like % +this.TxtIndex.Text.Trim() + %; this.GVStuInfo.DataSource = dv; this.LbCount.Text= dv.Count.ToString(); if (dv.Count = 0) this.LbResult.Visible = true; this.GVStuInfo.Visible = false; else this.LbResult.Visible = false; this.GVStuInfo.Visible =true; this.GVStuInfo
24、.DataBind(); protected void Btnselect_Click(object sender, EventArgs e) /查看按钮代码 ViewState.Clear(); this.GVStuInfo.PageIndex= 0; this.GvDataBind(); protected void GVStuInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)/ 更新数据代码 /string ID = this.GVStuInfo.DataKeyse.RowIndex.Values0.ToString();
25、 string strID = (HyperLink)this.GVStuInfo.Rowse.RowIndex.FindControl(HLStuId).Text; string strName = (TextBox)this.GVStuInfo.Rowse.RowIndex.FindControl(TxtName).Text; string strSex = (DropDownList)this.GVStuInfo.Rowse.RowIndex.FindControl(DDLSex).SelectedItem.Value; string strPwd = (TextBox)this.GVS
26、tuInfo.Rowse.RowIndex.FindControl(TxtPwd).Text; string DLCla = (DropDownList)this.GVStuInfo.Rowse.RowIndex.FindControl(DDlClassid).SelectedItem.Value; /判断表单项是否有空并给出提示信息 if (strName = | strSex = | strPwd = | DLCla = ) Response.Write(alert(请输入完整信息!); return; else int i = (new ProjectClass().UpdateStud
27、enInfo(strID,strName,strPwd,strSex,DLCla); if (i = 1) Response.Write(alert(信息修改成功!); else Response.Write(alert(信息修改失败!); /返回浏览状态 this.GVStuInfo.EditIndex = -1; this.GvDataBind();3.2.2 教师信息管理模块图3.3教师信息管理界面图3.4添加教师信息界面设计思路:管理对教师的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的
28、记录,点击删除按钮删除记录;点击添加按钮,弹出添加教师记录窗口(如图3.4)添加教师记录。实现代码(部分):protected void BtnAdd_Click(object sender, EventArgs e) / 添加信息代码 int insert; string strid = this.TxtID.Text.ToString().Trim(); string strname = this.TxtName.Text.ToString().Trim(); string strpwd = this.TxtPwd.Text.ToString().Trim(); string strsex
29、 = this.DDLSex.SelectedItem.Text.ToString().Trim(); string strcid = this.DDLCid.SelectedItem.Value.ToString().Trim(); string strsubid = this.DDLSubid.SelectedItem.Value.ToString().Trim(); if (strid = | strname = | strsex = | strcid = |strsubid=) Response.Write(alert(请填写完整信息!); return; else int exist
30、; exist = (new ProjectClass().ifTeaExist(strid,strcid); if (exist = 0)/exist等于0说明不存在, insert = (new ProjectClass().InsertTeacherInfo(strid, strpwd, strname, strsex, strcid,strsubid); if (insert = 0) Response.Write(alert(添加失败!);); else Response.Write(alert(添加信息成功!); this.TxtID.Text = ; this.TxtName.T
31、ext = ; this.TxtPwd.Text = ; string script = window.opener.location.reload(); ; Page.RegisterStartupScript(refresh, script); else Response.Write(alert(此教师已经存在或所教班级或所教科目已经设定!);); 3.2.3 试卷信息管理图3.5试卷信息管理界面设计思路:管理对试卷信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录。实
32、现代码(部分):protected void BtnDel_Click(object sender, EventArgs e) / int i = 0; Response.Write(alert(确定要删除吗?); for (int rowindex = 0; rowindex this.GVTestPageInfo.Rows.Count; rowindex+) if (CheckBox)this.GVTestPageInfo.Rowsrowindex.Cells0.FindControl(CheckOk).Checked = true) string strID = (HyperLink)t
33、his.GVTestPageInfo.Rowsrowindex.FindControl(HLexamid).Text; i = (new ProjectClass().DeleteTestPageInfo(strID); if (i = 1) Response.Write(alert(删除成功!); else Response.Write(alert(删除失败!); this.GvDataBind();3.2.4 科目信息管理图3.6科目信息管理界面图3.7添加科目信息界面设计思路:管理对科目的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的
34、表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录;点击添加按钮,弹出添加科目记录窗口(如图3.7)添加科目记录。实现代码(部分):protected void BtnAllSel_Click(object sender, EventArgs e) /全选按钮代码 /全选 foreach (GridViewRow item in this.GVAcademicsInfo.Rows) CheckBox cbx = (CheckBox)item.FindControl(CheckOk); cbx.Checked = true; protected void BtnClearS
35、el_Click(object sender, EventArgs e) /全请按钮代码 /全不选 foreach (GridViewRow item in this.GVAcademicsInfo.Rows) CheckBox cbx = (CheckBox)item.FindControl(CheckOk); cbx.Checked = false; protected void GVAcademicsInfo_PageIndexChanging(object sender, GridViewPageEventArgs e) /分页代码 this.GVAcademicsInfo.PageI
36、ndex = e.NewPageIndex; this.GvDataBind(); protected void GVAcademicsInfo_RowEditing(object sender, GridViewEditEventArgs e)/编辑按钮代码 this.GVAcademicsInfo.EditIndex = e.NewEditIndex; this.GvDataBind();3.2.5 班级信息管理模块图3.8班级信息管理界面图3.9添加班级信息界面设计思路:管理对班级的信息进行管理,在查询条件中输入关键字,在后面的下拉菜单中选择以什么做关键字字段,点击查找按钮在下面的表格中显示出相应的信息;删除记录时要选择相应的记录,点击删除按钮删除记录;点击添加按钮,弹出添