• 基于BS的在线考试系统设计与开发


    目 录

    绪论 1
    1.1系统研究背景和意义 1
    1.2研究现状 2
    1.3研究及设计目标 2
    1.4系统研发工具 3
    1.5系统开发环境概述 5
    1.6 论文结构 5
    第一章 系统分析 7
    2.1可行性分析 7
    2.2 需求分析 8
    第二章 数据库设计 21
    3.1数据库分析设计 21
    3.2数据库概念结构设计 22
    3.3数据库逻辑结构设计 28
    第三章 系统详细设计 33
    4.1连接数据库 33
    4.2 登录注册模块 33
    4.3新增考卷、新增考试、自动批改试卷、查看成绩 35
    4.4学生参加考试、查看成绩及试卷 43
    第四章 系统测试 48
    5.1 软件测试 48
    5.2 软件测试的目标及方法 48
    5.3 系统测试名称和测试内容 48
    5.4测试用例 49
    5.4测试结果 50
    5.5系统展望 51
    结 语 52
    致 谢 53
    参考文献 54
    参考文献 61
    第三章系统详细设计
    4.1连接数据库
    框架搭好,前台服务都已经实现之后,我们需要把系统和后台数据库连接起来。数据库采用的是Oracle数据库,这个工具已经部署在计算机上,并在数据库上建好所需要的数据库表,表间约束,插入所需测试数据。连接数据库主要采用servlet调用Dao来对数据库进行更新操作,这个需要提前配置好object和数据库表的映射关系,这样做在系统运行时就能自动调取加载数据库中的类,并通过配置文件对对象实现自动加载,同时也便于对这些object进行自动维护。所以我们可以先编写好一个连接数据库的工具类。
    4.2 登录注册模块
    进入系统首页,我们可以看到有系统功能介绍以及开发介绍。在首页鼠标点击左移右移可以切换用户角色登录。登录角色分别分为管理员、教师、学生。在注册方面,系统只提供学生注册,学生注册后,经由教师审核通过方可登录。下面分别介绍3个角色的登录(注册)情况。
    4.2.1 管理员登录
    在这里插入图片描述

    图 4-1
    管理员登录账号默认为:“admin”,密码默认为“123456”

     if (role.equals("admin")) {//角色为管理员
    			String a = request.getParameter("name");
    			String p = request.getParameter("pasw");
    			if("admin".equals(a) && "123456".equals(p))
    			{
    			//如果账户名密码验证通过,跳转进入管理员界面(admin.jsp)	request.getRequestDispatcher("admin.jsp").forward(request, response);
    			}
    			else
    			{
    //如果用户名或者密码错误返回提示
    				String html = "";
    				response.getWriter().print(html);
    			}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.2.2教师登录
    在这里插入图片描述

    图 4-2
    输入正确的用户名、密码登录

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>在线考试</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	<style type="text/css" media="all">
    		@import url("css/style.css");
    		@import url("css/jquery.wysiwyg.css");
    		@import url("css/facebox.css");
    		@import url("css/visualize.css");
    		@import url("css/date_input.css");
        </style>
      </head>
       
     <body>
    	
    	<div id="hld">
    	
    		<div class="wrapper">		<!-- wrapper begins -->
    	
    	
    			
    			<div id="header">
    				<div class="hdrl"></div>
    				<div class="hdrr"></div>
    				
    				<h1><a href="#">在线考试</a></h1>
    				
    				<ul id="nav">
    					<li class="active"><a href="#">首页</a></li>
    					<li><a href="#">我的考试</a>
    								<ul>
    									<li><a href="#">我的成绩</a></li>
    									<li><a href="#">开始考试</a></li>
    							       </ul>
    							</li>
                                           <li><a href="#">个人中心</a>
                            <ul>
                                <li><a href="EameServlet?op=findallstudent">基本信息</a></li>
                                <li><a href="studentUpdate.jsp">修改资料</a></li> 
                                <li><a href="EameServlet?op=findstudentphoto">修改头像</a></li>
                                <li><a href="studentPsw.jsp">修改密码</a></li> 
                            </ul>
                         </li>
    				<li ><a href="#">学生</a></li>
                        <li><a href="#">退出</a></li>
    				
    			</div>		<!-- #header ends -->
    			<div class="block">
    			
    				<div class="block_head">
    					<div class="bheadl"></div>
    					<div class="bheadr"></div>
    					
    			<!--  		<h2>考试</h2>
    					
    					<ul>
    						<li><a href="#">编辑试卷</a></li>
    						<li><a href="#">添加试卷</a></li>
    					</ul>-->
    				</div>		<!-- .block_head ends -->
    				
    				
    				
    				<div name="main" class="block_content">
    				
    					<form action="" method="post">
    					
    						<table cellpadding="0" cellspacing="0" width="100%" class="sortable">
    						
    							<thead>
    								<tr>
    									<th width="10"><input type="checkbox" class="check_all" /></th>
    									<th>试卷类型</th>
    									<th>状态</th>
    									<th>日期</th>
    									<th>作者</th>
    									<td>&nbsp;</td>
    								</tr>
    							</thead>
    							
    							<tbody>
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>已完成</td>
    									<td>20.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">化学</a></td>
    									<td>未完成</td>
    									<td>18.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">物理</a></td>
    									<td>已批改</td>
    									<td>20.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>未完成</td>
    									<td>18.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>未完成</td>
    									<td>20.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>未完成</td>
    									<td>18.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>未完成</td>
    									<td>20.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    								
    								<tr>
    									<td><input type="checkbox" /></td>
    									<td><a href="#">计算机</a></td>
    									<td>未完成</td>
    									<td>08.03.2010</td>
    									<td><a href="#">John Doe</a></td>
    									<td class="delete"><a href="#">Delete</a></td>
    								</tr>
    							</tbody>
    							
    						</table>
    						
    						
    						
    						<div class="tableactions">
    							<select>
    								<option>Actions</option>
    								<option>删除</option>
    								<option>编辑</option>
    							</select>
    							
    							<input type="submit" class="submit tiny" value="Apply to selected" />
    						</div>		<!-- .tableactions ends -->
    						
    						
    						
    						<div class="pagination right">
    							<a href="#">&laquo;</a>
    							<a href="#" class="active">1</a>
    							<a href="#">2</a>
    							<a href="#">3</a>
    							<a href="#">4</a>
    							<a href="#">5</a>
    							<a href="#">6</a>
    							<a href="#">&raquo;</a>
    						</div>		<!-- .pagination ends -->
    						
    					</form>
    					
    				</div>		<!-- .block_content ends -->
    				
    				<div class="bendl"></div>
    				<div class="bendr"></div>
    			</div>		<!-- .block ends -->
    	
              			
    						
    	</div>		<!-- #hld ends -->
    	
    
    	<!--[if IE]><script type="text/javascript" src="js/excanvas.js"></script><![endif]-->	
    	<script type="text/javascript" src="js/jquery.js"></script>
    	<script type="text/javascript" src="js/jquery.img.preload.js"></script>
    	<script type="text/javascript" src="js/jquery.filestyle.mini.js"></script>
    	<script type="text/javascript" src="js/jquery.wysiwyg.js"></script>
    	<script type="text/javascript" src="js/jquery.date_input.pack.js"></script>
    	<script type="text/javascript" src="js/facebox.js"></script>
    	<script type="text/javascript" src="js/jquery.visualize.js"></script>
    	<script type="text/javascript" src="js/jquery.visualize.tooltip.js"></script>
    	<script type="text/javascript" src="js/jquery.select_skin.js"></script>
    	<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
    	<script type="text/javascript" src="js/ajaxupload.js"></script>
    	<script type="text/javascript" src="js/jquery.pngfix.js"></script>
    	<script type="text/javascript" src="js/custom.js"></script>	
    </body>
    </html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    鸿蒙开发—基础组件
    十分钟带你入门向量检索技术
    AWS SAP-C02教程8-大数据和机器学习
    Python继承和组合 工厂模式、单例模式实现如下需求
    yolo后处理操作-如何获取我们想要的目标框及置信度?
    R语言内连接两个dataframe数据(Inner join)
    VMware虚拟机找不到*.vmdk文件
    【OJ比赛日历】快周末了,不来一场比赛吗? #10.21-10.27 #11场
    数据分析师到底是做什么的?写Python或SQL语句?
    JS,字符串的语法+示例,超详细!!!
  • 原文地址:https://blog.csdn.net/newlw/article/details/127583897