在线考试系统课程设计


    



    课程设计报告






    毕业设计题目: 线考试系统
    学 生 姓 名:
    学 院: 信息工程学院
    专 业 班 级:
    指 导 教 师:
    完 成 日 期: 2014年 X 月 X日







    目 录
    绪 3
    第1章 系统开发背景意义 3
    11系统开发背景 3
    12系统开发意义 4
    第2章网考试系统需求分析 5
    21现状分析 5
    22行性分析 6
    221济行性 6
    222技术行性 6
    23设计目标 7
    24功求 7
    25系统开发环境配置 8
    26系统开发工具 8
    261开发语言—JSP(Java Server Page) 8
    262数库—Oracle 9
    第3章 网考试系统设计 10
    31数库设计 10
    311数库需求分析 10
    312数库概念结构设计 11
    313数库逻辑结构设计 12
    314数库表设计 14
    32系统结构设计 16
    321页面模块化设计 16
    322 MVC模式设计(Jsp+Servlet+JavaBean) 17
    第4章 网考试系统实现 18
    41系统部分实现方法 18
    411创建数库连接 18
    412访问数库JavaBean 19
    413户理员登录模块页面 20
    414系统模块页面 23
    415学生考试模块实现页面 24
    416教师添加试题制作试卷模块实现 26
    第5章 系统测试 29
    51什软件测试 29
    52软件测试目标方法 29
    53系统足展 29
    结束语 30



















    考试检验教学效果重手段促进学生学重手段教学程中重环节学生考试成绩优劣反映教学容应掌握知识分析理解吸收运力更反映教师教学容握熟练程度
    传统学校教学中进行场考试求老师编写试卷印试卷安排考试监考收集试卷评改试卷讲评试卷分析试卷繁杂程需量力物力时间投入已越越适应学校信息化建设现代教学需尤远程网络教学中学生分布广易统集中安排考试校方学生带众便
    网考试系统仅减轻组织考试评卷成绩统计等方面花费力物力突破时间空间限制仅节省资源提高评分客观性公正性准确度改善考试工作效率加数库技术利简化传统考试程线考试电子化教学缺少辅助手段信息时代计算机技术网络技术越越广应领域改变着学工作生活思维方式引起教育领域重变革计算机网络技术应现代高等教育中现代高等教育发展需改革教育模式提高学校教学效果教学效率提高科研理水必手段
    第1章 系统开发背景意义
    11系统开发背景
    着计算机技术网络技术迅速发展高校校园网功日益完善高校建立基校园网网络信息理台提高教学理水提供先进理手段目前基网络线考试系统成现代考试方式力补充发展相传统笔试网络线考试仅减轻组织考试评卷成绩统计等方面花费力物力突破时间空间限制仅节省资源提高评分客观性公正性准确度改善考试工作效率
    12系统开发意义
    学校学生期末考试采课教师(集体)考前出题方式解决学生压题考前漏题补(缓)考试题正式考试试题题量难度差异问题教务理部门通常求教师时出套试卷题量难度求相时出答案评分标准样做解决问题教师增加工作负担届学生门课程教师承担难免届学生相套试卷教师课出题届学生成绩间具性
    建立题库次考试前题库中题目机生成试卷较解决考教分离问题广教师学期末繁重命题工作中解放出年部分学校陆续开发基微机题库系统作成果学校推广题库般结合校具体情况针单课程型题库甚某学校购题库系统中题目身维护题目已适合学生考试法更新题库中题目
    解决题库系统中存问题 作者研究种网系统充分考虑出较理想题库系统解决方案结合前较BS结构开发功完备网考试系统
    第2章网考试系统需求分析
    21现状分析
    传统考试方法求组织者提前命题试卷然约定统时间考生考场里进行考试种模式图21 示:


    编辑考题

    印刷量试卷

    安排考场时间监考员

    学生集体考试

    阅卷统计成绩

    图21 传统考试模式

    种模式存较问题:
    命题:考试求统进行考生考样份试卷试卷命题工作便定非常谨慎心试题太难太容易达考试目尤规模考试(计算机等级考试英语四六级考试等)正确握试卷难度直命题教师头痛问题考试前命试题泄漏出组织者费心思
    试卷印刷:规模考试试卷印刷费工费时成高纸张资源种浪费涉域范围较广考试(英语四六级考试)考虑试卷长途运送费考试印刷运输程中样试题泄漏出问题环节出问题前面工作付诸流水
    考场安排:监考员培训理规模考试尤考试密集期(期末期中)诸学科考试陆续开始时候教室资源教师数量相紧张学校安排考场调配监考员件相繁琐复杂事情果考试涉域间步英语四六级考试考虑更问题
    进行考试:次考试试卷相杜绝考生作弊普遍难题历届组织考试动脑筋分AB卷加强监考加重作弊者惩罚程度等没根杜绝作弊域监考严格程度考试时问控制严格程度难达统素加入考试公正性降
    判卷:考试结束采工判卷较容易出错出现造成公正现象
    22行性分析
    行性分析称行性研究系统调查基础针新系统开发否具备必性性新系统开发技术济理方面进行分析研究避免投资失误保证新系统开发成功行性研究目代价短时间确定问题否够解决该系统行性分析包括方面容
    221济行性
    项目济效益进行评价利计算机实现网考试成适应教学理方式开发套满足网考试系统软件十分必实现试卷理试卷生成动化减少认失误早成损失时教师减少工作量系统济接受系统实施显著提高考试效率助学院完全实现网络化理系统济行
    222技术行性
    技术行性分析分析技术条件否利完成开发工作硬软件否满足开发者需等
    软件方面网络化考试需种软件环境已具备数库服务器方面MySQL均够处理量数时保持数完整性提供许高级理功灵活性安全性易性数库编程提供良条件系统软件开发台已成熟行
    硬件方面科技飞速发展天硬件更新速度越越快容量越越性越越高价格越越低硬件台完全满足系统需
    23设计目标
    线考试系统总体目标:
    1 线考试系统帮助教师完成考试题目设计考试安排考试实施考卷批改分数计算总结工作
    2 考试数数库需种流方式进行存储理例数库技术
    3 考试数存放处理必须考试保密需定安全性保障
    4 题目定稳定性机性稳定性保证次考试考生公机性避免作弊发生
    5 考试部分客观题考生考完系统动评分保存考生观题答案
    24功求
    系统应该具备基功:
    户类:登录系统身份定三种理员二普通老师四学生授权户系统资源
    权限理:系统需效身份验证登录户身份系统资源考生参加线考试普通教师线制作试卷控制考试成绩查询添加试题阅卷等理员添加系系部教师专业科目信息查询修改理员信息审批试卷查询考生成绩
    线考试功:考生输入学号密码登陆系统选择应试卷进行考试答题中倒计时功考试结束时没提交动交卷系统动客观题进行评分
    线制作试卷:教师理员线制作试卷设定试题类型分值教师制作试卷必须理员审核考试
    控制考试功:设定次考试时间
    考生理功:注册新增学生户时查考生班级考生信息
    考生成绩查询功:提供考生科目成绩详细查询
    试卷审批功:理员权限教师制作试卷完毕理员审批发布发布学生开考
    实现述功外线考试系统应该具友简洁界面安全性高稳定性强
    25系统开发环境配置
    选择微软台作导方面考虑目前微软飞速发展越越企业规划部网络时微软台作首选方案令方面技术角度讲微软台应开发软件部署非常容易性优越具体:
    1 开发工具:MyEclipse 80
    2 辅助开发工具: Dreamweaver 8
    3 数库:Oracle 11g
    4 服务器 :Apache Tomcat60
    5 运行环境 :安装JDK16支持Java运行
    6 技术:前台网页设计采JSP技术制作负责响应户业务逻辑请求根户请求行决定JSP页面发送客户servlet处理JavaBean负责数处理
    26系统开发工具
    系统基JSP+Oracle数库技术实现现JSP技术Oracle数库作简介绍
    261开发语言—JSP(Java Server Page)
    JSP页面HTML代码嵌入中Java代码组成Java ServletJSP技术基础型Web应程序开发需Java ServletJSP配合完成JSP具备Java技术简单易完全面象具台关性安全面特网等特点JSP技术优势:
    次编写处运行点JavaPHP更出色系统外代码需做更改
    系统台支持基台意环境中开发意环境中进行系统部署意环境中扩展相ASPPHP局限性显易见
    JSP技术Java语言作脚语言Java语言成熟强易扩充编程语言
    高效性安全性JSP执行前先编译成字节码字节码Java虚拟机解释执行源码解释效率高
    维护性JSP技术种开放跨台结构Web服务器台组件容易升级切换会影响JSP基应程序
    样化功强开发工具支持Java已许非常优秀开发工具许免费中许已利运行种台
    262数库—Oracle
    ORACLE 数库系统美国ORACLE公司(甲骨文)提供分布式数库核心组软件产品目前流行客户服务器(CLIENTSERVER)BS体系结构数库Silver Stream基数库种中间件ORACLE数库目前世界广泛数库理系统作通数库系统具完整数理功作关系数库完备关系产品作分布式数库实现分布式处理功知识种机型学ORACLE知识便种类型机器
    ORACLE高级结构化查询语言(SQL)基础型关系数库通俗讲方便逻辑理语言操量规律数集合目前流行客户服务器(CLIENTSERVER)体系结构数库
    ORACLE7x引入享SQL线索服务器体系结构样减少ORACLE资源占增强ORACLE力抵挡软硬件台较少资源支持更户高档台支持成百千户
    ORACLE提供机具角色(ROLE)分工安全保密理数库理功完整性检查安全性致性方面良表现
    ORACLE支持量媒体数二进制图形声音动画维数结构等
    ORACLE提供第三代高级语言接口软件PRO系列CC++等语言中嵌入SQL语句程化(PLSQL)语句数库中数进行操加许优秀前台开发工具POWER BUILDSQL FORMSVISIA BASIC等快速开发生成基客户端PC台应程序具良移植性
    ORACLE提供新分布式数库力通网络较方便读写远端数库里数称复制技术

    第3章 网考试系统设计
    31数库设计
    网考试系统数库部分进行设计程中通系统功进行需求分析系统基信息表绘制系统业务流程图系统数流程图分析数字典概率结构设计阶段通需求阶段户需求抽象数库关系模型ER图逻辑结构设计阶段数库关系模式绘制信息表详细设计程介绍
    311数库需求分析
    需求分析设计数库起点需求分析结果否准确反映户实际求直接影响面阶段设计影响设计结果否合理实
    3111系统基信息
    综合分析实现面功模块数库设计十表分:科目表班级表系表专业表试卷信息表学生表学生成绩表学生答题试卷信息表教师表题库表
    3112系统层次图
    根实现功户权限设置
    系统总体层次图图31示:

    图31系统层次图
    3113系统数流程图
    系统数流程图图32示:

    图32数流程图
    312数库概念结构设计
    概念设计阶段需求分析阶段户需求抽象信息结构(概念模型)程整数库设计关键包括概念模型设计新系统流程两阶段需求分析阶段应需求应该首先抽象信息世界结构更更准确某DBMS实现需求
    概念数模型独立具体数处理细节数库理系统次设计采传统实体联系图作概念设计工具进行优化量满足结构清晰关联简洁实体数适中属性分配合理没低级冗余系统ER图图33示:

    图33 系统ER图
    313数库逻辑结构设计
    关系型数库数库概念结构设计完毕ER图描述概念数模型转换等价关系模式极约束逻辑设计基工作包括3步骤
    3131关系模式设计
    该设计概念结构设计中ER图出相关整体逻辑结构该系统关系模式图34示:

    图34 概念关系模型图

    3132完整性设计
    完整性求描述种信息间制约关系关联关系数项取值范围数项否取值根实际需采取定手段满足户完整性需求域完整性约束求属性值必须域中实体完整性约束求键必须唯空户信息表中户名设置键求唯空
    3133模式优化
    次采3NF规范准分解关系关系分解两者关系满足规范避免产生插入异常删异常更新异常314数库表设计
    学生信息表图35示

    图35 学生信息表

    教师信息表图36示

    图36 教师信息表
    题库信息表图37示

    图37 题库信息表
    试卷信息表图38示

    图38 试卷信息表
    学生答案表图39示

    图39 学生答案表
    学生成绩表图310示

    图310 学生成绩表
    系部信息表图311示


    图311 系部信息表
    专业信息表图312示

    图312 专业信息表
    科目信息表表313示

    表313 科目信息表
    班级信息表图314示

    图314班级信息表
    32系统结构设计
    321页面模块化设计
    模块化设计求仅提高代码重性更重提高代码维护性稳定性模块化程度高结构清晰应程序程序维护时便利性想知初设计方案时规划模块提出次模块次提出代码更清晰等
    网考试系统典型数库开发应程序系统理员教师学生三模块组成模块功:
    理员模块:该模块系部专业班级课程进行理添加修改学生教师信息添加试题试卷审核教师制作试卷等
    教师模块:该模块教师通登录该系统够修改信息添加试题线制作试卷阅卷等
    学生模块:该模块学生通登录该系统够修改信息(修改密码)进行考试等
    322 MVC模式设计(Jsp+Servlet+JavaBean)
    MVC(Model View Controller)设计模式强制性应程序输入处理输出分开MVC应程序分成三核心部件:模型视图控制器处理务
      视图户交互界面处理应程序界面变越越挑战性MVC处应程序处理视图JSP页面处表现层视力(ViewV)角色
    模型表示企业数业务规MVC三部件中模型拥处理务应模型代码需写次视图重减少代码重复性JavaBean负责数处理模型(ModelM)角色
    控制器接受户输入调模型视图完成户需求单击Web页面中超链接发送HTML表单时控制器身输出东西做处理接收请求决定调模型构件处理请求然确定视图显示模型处理返回数Servlet处理请求事务充控制器(ControllerC)角色Servlet负责响应户业务逻辑请求根户请求行决定JSP页面发送客户
    初始请求Servlet处理Servlet调商业逻辑数处理代码创建Bean表示相应结果(模型)然Servlet确定页面适合表达特定结果请求转发相应页面(JSP页面视图)Servlet确定业务逻辑适应该JSP页面相应结果(Servlet控制器)
    第4章 网考试系统实现
    41系统部分实现方法
    系统功模块划分中出系统总体两功模块组成模块然独立统数库中便理员理维护数库时便教师学生操作介绍系统模块实现方法前首先介绍系统数库连接方式——JavaBean连接连接服务器tomcat里配置连接池介绍系统部分实现方法
    411创建数库连接
    配置数源创建连接池通JavaBean连接数源数库进行操作
    连接池创建理连接缓池技术连接准备需线程连接池极改善户 Java 应程序性时减少全部资源连接池优点:减少连接创建时间简化编程模式受控资源连接池够性化时资源利控制定水果超该水应程序崩溃仅仅变慢
    配置连接池:
    1.首先mysql驱动包放tomcatlib目录
    2.应服务器Tomcat 里conf找contextxml文件里面添加容:
    authContainer
    typejavaxsqlDataSource
    driverClassNameorggjtmmoracleDriver
    urljdbcoracle127001examol
    usernameroot
    password123
    maxIdle30
    maxWait10000
    maxActive100>

    需访问数库通JavaBean创建QueryRunner()方法访问
    代码:
    public class Conn {
    public static QueryRunner getQueryRunner() {
    DataSource ds null
    try {
    Context context new InitialContext()
    ds(DataSource)contextlookup(javacompenvjdbcexamolds)
    } catch (Exception e) {
    Systemoutprintln(获取数源出错)
    }
    QueryRunner qr new QueryRunner(ds)
    return qr
    }
    }
    412访问数库JavaBean
    JavaBean种Java语言写成重组件写成JavaBean类必须具体公具参数构造器JavaBean通提供符合致性设计模式公方法部域暴露成属性众周知属性名称符合种模式Java类通省机制发现操作JavaBean属性
    户JavaBean功处理值数库访问Java代码创造象进行包开发者通部JSP页面ServletJavaBeanApplet程序应象户认JavaBean提供种时复制粘贴功关心改变
    JSP重特性JavaBean实现功扩展部分功放JavaBean中完成JSP页面程序更干净简洁利维护JavaBean方便捕获页面表单输入完成种业务逻辑处理
    连接数库JavaBean——Conn通JSP页面调JavaBean实现数库连接数表添加删更新等操作
    413户理员登录模块页面
    户登录页面较简单防止户登录操作错误应设置错误处理页面登录操作程中般发生错误:户输入错误户名密码户直接单击登录钮述情况判断通Servlet文件实现学生登录界面图41示:

    图41 学生登录面

    登录页面时户提交登录资料UsersServletjavaservlet进行验证工作判断户登录帐号密码否致完成工作必须连接存储户数库取出相关信息记录果户输入错误户名密码通historyback()返回登录界面提示出错图42示:

    图42登录错误提示页面
    户提交正确户密码果记录验证误通JSPrequestgetRequestDispatcher()方法跳转相应界面判断户否输入正确户名密码Java程序片段示:
    学生登录信息验证
    public void stu(HttpServletRequest request HttpServletResponse response) throws ServletException IOException {
    String StuId requestgetParameter(StuId)
    String StuPwd requestgetParameter(StuPwd)
    String sql select * from student where StuId and StuPwd
    String params[] { StuId StuPwd }
    QueryRunner qr ConngetQueryRunner()
    Student student null
    List list null
    try {
    list (List) qrquery(sql new BeanListHandler(Studentclass)params)
    } catch (SQLException e) {
    }
    if (listsize() > 0) {
    student (Student) listget(0)
    HttpSession session requestgetSession()
    sessionsetAttribute(student student) requestgetRequestDispatcher(servletOptionExamSelect)forward(request response)
    } else {
    responsesetContentType(text mlcharsetUTF8)
    PrintWriter out responsegetWriter()
    outprintln(