试题管理系统.docx
- 文档编号:9651455
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:24
- 大小:354.08KB
试题管理系统.docx
《试题管理系统.docx》由会员分享,可在线阅读,更多相关《试题管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
试题管理系统
课程名称网页设计与网站建设
课题名称试题管理系统
摘要
目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。
另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。
迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。
因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。
试题库管理系统可辅助教师对所教科目的各种试题的题型、知识点、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。
本文首先简要介绍了开发试题库管理系统的需求分析和总体设计,然后主要针对系统的设计、组成、数据库设计进行了详细分析,同时对一般系统软件设计的基本思想及工作流程给出了方法技巧。
首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
关键字:
试题库系统,详细分析
1系统分析
1.1需求分析
1.1.1系统功能
系统针对不同的用户,设置了不同的权限,在用户登录时根据权限跳至不同的界面,从而可以选择相应的操作。
系统采用了较为先进的B/S结构,具有结构灵活、功能齐全等突出特点。
使用本系统可以方便地管理专业、科目、教师、选课和试卷等基本信息,及时调整教学进度,提高学校的管理和教学水平,从而使高校的试卷管理真正实现无纸化。
本系统实现的功能主要包括:
用户管理,系统用户包括:
管理员和教师,用户在选择角色后,可以分别进入对应的界面:
管理员在进入管理员管理界面后,可以对专业、科目、教师、题型和选课进行增、删、改的操作,但管理员没有修改教师信息的权限;教师在初次登录时需要根据自己的教师号以及默认的密码登录,进入教师管理界面后可以修改信息及密码,对章节、题库进行增、删、改等操作,也可以选择组卷方式——自动、手动以及抽取现有试卷三种方式。
自动生成试卷是系统根据用户设置的题型、难易程度随机组成试卷;手动组卷是教师可以自己选择题型、分值、题目,可以自己决定试卷的难易程度;抽取试卷是直接用数据库中已经存在的试卷。
试卷生成包含有实现设置卷头、预览和打印试卷及答案的功能。
本系统中,用户首先登录,登录时,有身份区分,分为普通用户和管理员。
输入系统判定数据库中是否由此用户,这是个验证过程,通过验证才能确定登录。
而普通用户与管理员的区别是两者之间的权限不同。
1.1.2系统特点
本系统最明显的特点就是采用B/S架构,这样大大减轻了系统维护的成本和工作量,易于操作和维护在功能上,本系统对用户实行分权限管理,以满足不同用户的不同需求,保证了数据的安全;在试卷管理功能中,组卷方式,有三种组卷方式——抽取现有试卷、自动生成试卷和手动生成试卷,方便教师选择自己喜欢的组卷方式;在试卷预览功能中,教师可以将试卷在word中预览并保存,方便教师预览以及修改试卷格式。
本系统作为计算机辅助教学软件的一部分,与多媒体教学及其他类软件相比,有着自己的特点:
1.本软件界面友好、操作简便,稳定性好;
2.本软件能够源源不断的向题库内添加新试题;
3.本软件能够按照一定的算法自动生成试卷,并可以人工干预,修改试题;同时也可以直接手工选题;
本软件的实现有着自己的特点,决定做好本软件有着非常重要的实际意义。
1.本软件作为一种新生的、趋向成熟的计算机辅助教学软件,对课堂教学测试及期中、期末考试出题具有很大的帮助,节省了人力,使教学走向自动化轨道;
2.本软件收集了大量的习题,是一本数量大、质量高的高效超能型教材习题集;
3.本软件的自动组卷功能及试卷维护功能节省了教师的时间与精力,可以集中精力全身心的投入到教学中,有利于提高教师素质及教学质量
1.1.3功能模块图
图1-1功能模块图
1.1.4系统运行环境
为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置。
此应用程序可广泛运行于互联网,也可适用于内部的局域网。
其运行要求如下:
操作系统:
MicrosoftWindows10
开发语言:
Java
开发工具:
MyEclipse8.6
数据库:
sqlserever
1.2功能需求
1.2.1系统结构图
试题管理系统的结构图,如图1-2所示
图1-2系统结构图
用户管理模块主要完成管理用户信息及找回密码,信息管理模块完成包括对专业、科目、章节、教师、题型、选课、章节的有关信息的管理,题库管理模块完成对试题信息的管理,组卷模块完成对三种组卷方式的管理
1.2.2功能描述
1.登录模块
用户在进入系统之前,要输入正确的用户名和密码并选择进入系统的角色——教师或者管理员。
如果用户名存在且密码与该用户名对应的密码相同,即可登录本系统。
如果教师初次使用该系统,系统管理员会指定一个特定的用户名和密码给教师,让其登录;如果用户忘记密码,可以运用忘记密码功能找回密码;如是用户名和密码不正确,则会提示输入的信息错误,让用户重新输入。
在忘记密码模块中,教师只需要输入教师编号、教师名称以及电话三个参数,点击提交后,在数据库表中存在与其匹配的项,系统则会弹出提示框为教师提示密码,否则会提示错误的信息。
2.专业管理模块
管理员进入系统后,需要在教师使用该系统前录入专业信息,以方便进行后面的信息管理,管理员可以对专业进行查询、添加、删除和修改的操作。
3.科目管理模块
管理员进入系统后,需要在教师使用该系统前对各个专业的科目信息进行添加,以便让教师进入系统后,对自己所教的科目进行添加,为往试题库里面录入题做准备。
4.教师管理模块
管理员进入系统后,需要提前录入需要使用试卷管理系统的教师的信息,以方便教师使用该系统进行试卷管理,管理员可以对教师进行查询、添加和删除,管理员没有修改教师信息的权利。
5.题型管理模块
管理员进入系统后,需要对试题的题型进行添加,方便老师对题库进行管理。
并可以对题型进行查看、删除及修改题型名称。
6.信息管理模块
教师在进入系统后,可以对自己的个人信息如姓名、邮箱和密码进行修改,方便教师使用该系统。
7.章节管理模块
教师进入系统后,可以为自己所授科目进行章节的管理,以便录入题的时候管理试题库。
8.题库管理模块
教师进入系统后,对题库录入题,并可以对题库中的题进行查看、修改和删除。
9.卷生成模块
该功能由教师完成,生成试卷总共有自动和手动两种方式。
教师可以根据自己情况选择合适的方式。
自动生成试卷是系统根据用户设置的题型、难易程度随机组成试卷;手动组卷是教师可以自己选择题型、分值、题目,可以自己决定试卷的难易程度;
1.2.3业务流程图
如下图1-3
1.2.4数据流图
1试题库系统顶层
图1-4顶层数据流图
2试题库系统下层
图1-5下层数据流图
图1-6
图1-3业务流程图
2系统设计
2.1数据库设计
2.1.1.实体描述和关系描述
1)实体
在试卷管理系统中,主要包括的实体为:
管理员属性:
管理员编号、管理员姓名、管理员密码
专业 属性:
专业号、专业名称。
科目 属性:
科目号、科目名称、专业号、章节 属性:
章节号、章节名、科目号。
教师 属性:
教师编号、教师名称、密码、性别、邮箱、专业号。
题型 属性:
题型号、题型名称。
试题属性:
题号、科目号、章节号、题型号、难易度、题内容、答案、分数。
试卷 属性:
试卷号、科目号、题型号、教师号、题号、卷头。
2) 关系
一个专业可以包含多门科目,一门科目可以属于多个专业中,因此专业和科目具有多对多的联系。
一门科目可以有很多章节组成,一个章节只能属于一门科目,因此科目和章节具有一对多的关系。
一个专业可以有多个教师,一个教师只能归属于一个专业管理,因此专业和教师具有一对多的联系。
一个教师可以教多门科目,一门科目可以让多个教师教,因此教师和科目具有多对多的联系。
一个题型可以包含多个试题,一个试题只能属于一个题型,因此题型和题属于一对多的联系。
一个题型可以属于多个试卷,一个试卷可以包含多个题型,因此题型和试卷属于多对多的联系。
一个试卷只能属于一门科目,一个科目可以组成多个试卷,因此试卷和科目属于一对多的联系。
一个管理员可以管理多位教师多个科目多个专业多个题型,因此管理员和科目教师专业题型是一对多的关系
2.1.2总体E-R图
图1-7总体E-R图
2.1.3数据库表设计
本试卷管理系统的数据库是在SQL Server中实现的,数据库的设计是系统最为重要的一环,数据库设计的好坏将会决定后续工作的进展。
本系统共设计了8张表,分别是:
管理员表、教师表、专业表、科目表、章节表、题型表、题目表、试卷表。
各个表的具体字段说明如下
管理员表
列名
数据类型
允许为空
管理员编号
varchar(50)
否
管理员姓名
varchar(50)
否
管理员密码
varchar(50)
否
表1-1管理员表
教师表
列名
数据类型
允许为空
教师编号
varchar(50)
否
教师姓名
varchar(50)
否
教师密码
varchar(50)
否
电话
varchar(50)
否
专业编号
varchar(50)
否
表1-2教师表
专业表
列名
数据类型
允许为空
专业编号
varchar(50)
否
专业名称
varchar(50)
否
表1-3专业表
科目表
列名
数据类型
允许为空
科目编号
varchar(50)
否
科目名称
varchar(50)
否
专业编号
varchar(50)
否
表1-4科目表
章节表
列名
数据类型
允许为空
章节编号
varchar(50)
否
科目编号
varchar(50)
否
章节名
varchar(50)
否
表1-5章节表
题型表
列名
数据类型
允许为空
题型编号
varchar(50)
否
题型名称
varchar(50)
否
表1-6题型表
试题表
列名
数据类型
允许为空
试题编号
varchar(50)
否
科目编号
varchar(50)
否
章节编号
varchar(50)
否
题型编号
varchar(50)
否
难易度
varchar(50)
否
试题内容
varchar(50)
否
答案
varchar(50)
否
分数
varchar(50)
否
选用次数
varchar(50)
是
表1-7题目表
试卷表
列名
数据类型
允许为空
试卷编号
varchar(50)
否
科目编号
varchar(50)
否
题型编号
varchar(50)
否
教师编号
varchar(50)
否
专业编号
varchar(50)
学年
varchar(50)
学期
varchar(50)
出卷日期
varchar(50)
试卷类型
varchar(50)
年级
varchar(50)
表1-8试卷表
3系统实现
通过对本系统的总体设计,本章开始详细设计,详细设计目的是对该项目进行详细设计,在总体设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。
3.1登录模块
登录模块的主要功能是用于登录本系统,首先是接受从前台页面提交的用户名和密码,按照用户名在数据库中进行查询。
如果查询到该用户,则将用户在数据库的密码与该用户输入的密码进行比对,若匹配则进入系统。
否则,返回登陆页面并显示错误信息。
登录界面如图5-1-1所示。
图2-1登录界面
其主要代码分为页面显示代码和业务逻辑代码:
页面显示主要代码:
通过传进参数进Servlet里面,调用里面的方法进行判断是否存在用户名和密码。
页面代码:
用户名:
if(u.equals("")||p.equals("")){ pw.println(" \");location.href='index.jsp';"); } else{ if(ubc.checkUser(u,p)){ //存入用户名,便于以后验证非法登录 request.getSession().setAttribute("username",u); request.getRequestDispatcher("main.jsp").forward(request,response); } else{ pw.println(" \");location.href='index.jsp';"); JAVABEAN中的判断代码是: //验证用户是否存在 publicbooleancheckUser(Stringu,Stringp){ booleanb=false; try{ conn=newConnDB().getConn(); stat=conn.createStatement();//读取数据库里面的数据进行判断 rs=stat.executeQuery("selecttop1passwdfromuserswhereusername='"+u+"'"); if(rs.next()){ if(rs.getString (1).equals(p)){ b=true; } 3.2用户管理模块 用户管理功能模块: 在此系统中,用户管理功能模块是必须的,管理员可以授权用户进行管理,所以这个系统的管理员是不唯一的。 程序读取数据库的USER表,然后进行显示数据,操作包括添加、删除、修改。 图2-2用户管理模块的主要界面 业务逻辑主要代码: 调用javabean里面的方法,读取数据到ArrayList中去,其具体代码如下: publicArrayListfindUser(Stringsql){//通过SQL语句进行读取用户名列表 ArrayListal=newArrayList(); try{ conn=newConnDB().getConn(); stat=conn.createStatement(); rs=stat.executeQuery(sql); while(rs.next()){ UserBeanub=newUserBean(); ub.setUserId(rs.getInt (1)); ub.setUsername(rs.getString (2)); ub.setTruename(rs.getString(3)); ub.setPasswd(rs.getString(4)); ub.setEmail(rs.getString(5)); 3.3题库管理模块 在试卷生成系统中,题库管理是最重要的一个环节,题库是多少就决定了试卷的 质量问题。 通过管理添加试题到数据库中,可以进行修改、删除操作。 图2-3题库管理界面 具体原理: 通过ArrayList读取数据表的数据,然后分别显示: <%ArrayListal=(ArrayList)request.getAttribute("al");%> <%out.println(Integer.parseInt(pb.getDiff())==0? "易": "中");%> } 业务逻辑主要代码: 调用javabean里面的方法,读取数据到ArrayList中去,其具体代码如下: publicArrayListgetPages(intpageNow){ ArrayListal=newArrayList(); try{ conn=newConnDB().getConn(); stat=conn.createStatement(); //分页显示获取数据第一页信息进行显示出来 rs=stat.executeQuery("selecttop"+pageSize+"*frompoolwhereexamIdnotin(selecttop"+pageSize*(pageNow-1)+"examIdfrompool)"); } returnal; } 在试题管理中,试题的添加是很重要的一部分,用户输入数据,点击添加写入到数据库中去,把数据 提交到PoolsClServlet中去, 图2-4题库添加界面 flag=addPool" //不成功! request.getRequestDispatcher("err.jsp").forward(request,response); } } 3.4试卷管理模块 在试卷生成系统中,试卷管理是最重要的,管理好试卷用户就可以进行打印给学生用。 在试卷生成系统中,功能有添加试卷、修改试卷、删除试卷、查找试卷等功能。 图2-5试卷管理界面 图2-6试卷添加界面 其核心的逻辑代码如下: 通过获取页面的试卷类型、学院、试卷创建人、单选题个数、单选分数等等参数进行插入操作。 if(flag.equals("addPaper")){ //完成添加用户 在试卷管理中,试卷的查找是比较关键的功能模块,在此模块中,用户可以根据输入的条件进行查询操作。 图2-7试卷查找界面 if(flag.equals("findPaper")){ StringpaperId=request.getParameter("paperId"); Stringsubject= codeConvert.getcodeConvert(request.getParameter("subject")); Stringdepart= codeConvert.getcodeConvert(request.getParameter("depart")); Stringpaperhead= codeConvert.getcodeConvert(request.getParameter("paperhead")); Stringsql="select*frompaper"; if(! paperId.equals("")){ sql=sql+"wherepaperId='"+paperId+"'"; }//获取条件进行查询 if(! subject.equals("")){ if(sql.indexOf("where")==-1){ sql=sql+"wheresubjectlike'%"+subject+"%'"; }else{ sql=sql+"andsubjectlike'%"+subject+"%'"; } } ArrayListal=pbc.findPaper(sql); request.setAttribute("al",al);request.getRequestDispatcher("findPaperResult.jsp").forward(equest,response); } 3.5密码修改模块 在此模块中,是完成管理员密码修改的模块,管理员在平时管理中有可能密码有疏忽泄露了,所以改密码是系统中不可缺少的一项功能。 SERVLET获取用户输入的旧密码,先判断旧密码时候正确,然后修改成新输入的秘密。 具体截图如下: 图2-8用户密码修改界面 其具体关键功能代码如下: 传递用户输入的信息,进行判断。 if(flag.equals("changePWD")){ Stringusername= codeConvert.getcodeConvert(request.getParameter("username")); Stringoldpwd=codeConvert.getcodeConvert(request.getParameter("oldpwd")); System.out.println(username+oldpwd); if(ubc.checkUser(username,oldpwd)){ //判断输入的旧密码时候正确 Stringnewpwd1=//新密码 codeConvert.getcodeConvert(request.getParameter("newpwd1")); Stringnewpwd2=//新密码 codeConvert.getcodeConvert(request.getParameter("newpwd2")); if(newpwd1.equals(newpwd2)){ if(ubc.changePWD(username,newpwd1)){ //调用方法进行修改密码 request.removeAttribute("username"); pw.println(" \");location.href='UserFirstLoad';"); }else{ //不成功! request.getRequestDispatcher("error.js
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)