目录
摘 要 I
Abstract II
1绪论 1
1.1选题背景及意义 1
1.2研究现状 2
1.3研究主要内容 2
2系统工具 4
2.1 Myeclipse 4
2.2 Mysql数据库 4
2.3 Tomcat 4
2.4 JSP技术(Java Server Page) 5
2.5系统开发环境概述 5
2.5.1硬件环境 5
2.5.2软件环境 5
3系统分析 7
3.1可行性分析 7
3.1.1技术可行性 7
3.1.2经济可行性 7
3.1.3 操作可行性 7
3.1.4 法律可行性 7
3.2 需求分析 8
3.2.1系统全局 8
3.2.2 系统类 15
4数据库设计 23
4.1数据库分析设计 23
4.1.1 系统功能分析 23
4.1.2数据库的设计 23
4.2数据库概念结构设计 24
4.2.1建立数据库的原则 24
4.2.2建立字段的原则 25
4.2.3数据库表的实体E-R图 25
4.3数据库的结构表 33
5系统实现 38
5.1连接数据库 38
5.2 登录注册模块 38
5.2.1 管理员登录 38
5.2.2教师登录 39
5.2.3学生登录 40
5.2.4 学生注册 40
5.3新增考卷、新增考试、自动批改试卷、查看成绩 41
5.3.1 新增考卷 41
5.3.1 新增考试 44
5.3.3 批改试卷 48
5.3.4 查看班级平均分 50
5.4学生参加考试、查看成绩及试卷 50
6系统测试 56
6.1 软件测试 56
6.2 软件测试的目标及方法 56
6.3 系统测试名称和测试内容 56
6.4测试用例 58
6.4测试结果 59
总 结 60
致 谢 61
参考文献 62
本文主要描述了毕业设计的背景以及试卷自动生成考试系统的总体设计、详情需求分析、系统设计、数据库设计。本次系统设计采用DreamWeaver,Myeclipese作为开发工具,运用Java技术、mvc模式、Mysql数据库开发的试卷自动生成考试系统,它具有学生注册、登录,在线考试,查看成绩以及考后试卷,教师登录,随机出题成卷,试卷管理,设置考试的基本功能。
本文主要阐述试卷自动生成考试系统的后台技术以及实现原理,系统主要分成三大模块:管理员模块,教师模块,学生模块。系统核心功能集中在教师出卷,管理考卷,设置考试,试卷批改,成绩分析,学生考试,查看成绩,试卷分析等模块。在文末,会描述对系统开发过程中的一些问题及解决方法。
3系统分析
3.1可行性分析
3.1.1技术可行性
随着java网络编程的不断发展,使用java开发试卷自动生成考试系统已经变得很普遍了,在技术可行性上也完全成立。技术可行性主要分析技术条件是否能顺利完成开发,软硬件方面是否符合开发者的需求。硬件方面,硬件更新速度很快,技术提升飞速,在这方面已经完全能满足本系统的开发。本系统主要运用JSP+Servlet+MVC技术来开发,目前,此技术已经比较成熟。而Web服务器等都已成型具备,环境变量等也都已经搭好,后台数据库采用成熟的Mysql数据库也不存在问题,所以系统开发在技术上是完全可行的。
3.1.2经济可行性
试卷自动生成考试系统的出现不仅符合国家节能减排政策节约纸张,而且能大大的减少人力的投入,让教职工有更多时间在其他教学工作上下功夫。传统的考试不仅存在出卷、打印试卷耗时耗力。而且往往错误率和试卷的不合格率很高,而试卷自动生成考试系统则大大地降低这些概率。本文转载自http://www.biyezuopin.vip/onews.asp?id=12145试卷自动生成考试系统界面简洁,维护方便,所以,不仅人力投入减少,也充分节约了资金的投入。
3.1.3 操作可行性
本系统界面节俭明了,操作方便,只要经过简单的培训即能立即熟练使用,不仅减少教职工的的精力投入,学生操作也更简洁方便。
3.1.4 法律可行性
本系统没有违反国家相关法律规定,在开发过程中没有涉及合同、责任、版权等与国家相关法律规定相抵触的方面。因此法律上有保障。
<%@ 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> </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="#">«</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="#">»</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