JAVA程序设计与应用开发_第1页
JAVA程序设计与应用开发_第2页
JAVA程序设计与应用开发_第3页
JAVA程序设计与应用开发_第4页
JAVA程序设计与应用开发_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Javaee程序设计与应用开发报告题目:基于WEB的在线考试系统姓名:梅李林学号:132208100145班级:网络工程学院:数计学院第一章 系统概括 随着计算机互联网技术的飞速发展,计算机在各行各业的应用越来越重要。开发一个全新的网上在线考试系统已经越来越重要了。在线考试系统数据库部分通过Power Designer开发,Power Designer是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。Power Designer产生的模型和应用可以不断地增长,适应并随着你的组织的变化而变Power Designer不仅加速了

2、开发的过程,也向最终用户提供管理和访问项目的信息的一个有效的结构。在线考试系统采取的现在比较流行的B/S开发模式。使用的Myeclipse10作为变成工具。使用的Web服务器是Tomcat。采取Struct1.2的框架。在网页涉及部分使用比较流行的Macromedia Dreamweaver 8来进行简单的布局管理。第二章 需求分析2.1使用工具简介在线考试系统的数据库为本学期学习的SQL2008。操作系统是WINDOWS7X64。数据库设计中主要使用了Power Designer、SQL2008等工具。在本系统的实现过程中使用了HTML标签,jsp,JavaScript,java等。2.2在

3、线考试系统全部流程在线考试系统考生管理员在线考试查询成绩修改个人资料推出系统管理员管理考生成绩管理课程管理考试题目管理套题管理退出系统 2.3在线考试系统部分流程图考生登录功能选择失败成功输出错误查询成绩修改资料考生登录流程进行考试注册管理人员流程管理员登录功能选择输出登录失败的信息。失败成功管理员信息管理考生信息管理考生成绩查询课程试题管理第三章数据库系统设计.1Power Designer的安装PowerDesigner15.1安装和普通软件安装差不多。安装中选择选项就选择默认的就行。软件安装成功这是软件的工作的界面。花了几天的时间去了解PowerDesigner15.1的基

4、本功能和使用。3.2数据库局部ER图设计学生准考证号密码性别加入时间身份证号码专业姓名管理员ID帐号密码.1.3.2数据库概念模型(CDM)的设计在线考试系统的ER图。密码在线考试系统ER图(实体的部分属性)管理员课程套题(类似AB卷)学生编号姓名密码MMnmNNN1MnM通过Power Designer设计实体与实体之间的关系。设置完成后的图如下 3.3数据库逻辑模型的设计更具上面的ER图和数据库原理知识进行关系设计。学生拥有(ID,姓名,密码,性别,注册时间,专业,身份证)管理员有(ID,姓名,密码)课程(课程号,课程名,添加时间)套题(套题号,套题名,课程号,添加时间)试卷

5、问题(ID号,问题,题目类型,添加时间,课程号,套题号,选项A,选项B,选项C,选项D,答案,备注)成绩(成绩ID,学生ID,考试科目,单选题成绩,多选题成绩,总分,添加时间。)3.4数据库物理结构的设计创建物理模型属性。使用Power Designer设计的物理模型如下图,可以通过物理模型导出数据库的sql语句,简化数据库的设计。第四章 数据库表的设计.1数据表的建立需要的表有:课程表,题目表, 成绩表, 学生表,套题表,管理员表。/*=*/* Table: Lesson 课程表 */*=*/create table Lesson ( ID bigint identity(1,

6、1), Name varchar(60) not null, JoinTime datetime not null constraint DF_tb_Lesson_JoinTime default getdate(), constraint PK_tb_Lesson primary key (ID) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYgo/*=*/*

7、 Table: Questions 题目表 */*=*/create table Questions ( id bigint identity(1,1), subject varchar(50) not null, type char(6) not null, joinTime datetime not null constraint DF_tb_Questions_que_joindate default getdate(), lessonId int not null, taoTiId bitint not null, optionA varchar(50) not null, optio

8、nB varchar(50) not null, optionC varchar(50) not null, optionD varchar(50) not null, answer varchar(10) not null, note varchar(50) null, constraint PK_tb_Questions primary key (id) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

9、 ON PRIMARY)ON PRIMARYgo/*=*/* Table: StuResult 成绩表 */*=*/create table StuResult ( id bigint identity(1,1), stuId varchar(16) not null, whichLesson varchar(60) not null, resSingle int not null, resMore int not null, resTotal AS (resSingle + resMore), joinTime datetime not null constraint DF_tb_StuRe

10、sult_res_subdate default getdate(), constraint PK_tb_StuResult primary key (id) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYgo/*=*/* Table: Student 学生表 */*=*/create tableStudent ( ID varchar(16) not null

11、, name varchar(20) not null, pwd varchar(20) not null, sex varchar(2) not null, joinTime datetime not null constraint DF_tb_student_JoinTime default getdate(), question varchar(50) not null, answer varchar(50) not null, profession varchar(30) null, cardNo varchar(18) not null, constraint PK_tb_Stude

12、nt primary key (ID) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYgo/*=*/* Table: TaoTi 试题表 */*=*/create table TaoTi ( ID bigint identity(1,1), Name varchar(16) not null, LessonID bigint not null, JoinTime

13、 datetime not null constraint DF_tb_TaoTi_JoinTime default getdate(), constraint PK_tb_TaoTi primary key (ID) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYgo/*=*/* Table: manager 管理员表 */*=*/create table m

14、anager ( ID bigint not null, name varchar(30) not null, PWD varchar(30) not null, constraint PK_tb_Administrator primary key (ID) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY)ON PRIMARYGo4.2数据数据类型 resTotal AS (resS

15、ingle + resMore),在成绩表中使用了自定义数据,就是计算成绩,计算单选和多选的成绩。identity(1,1),使用了标识列。identity(a,b),ab均为正整数,a表示开始数,b表示增幅,就像identity(1,1)意思就是该列自动增长,由1开始每次增加是1。对数据进行自动编号。 .1.4.3索引的设计为数据库中使用频繁的表创建索引,并且每个表都创建一个聚集唯一索引。4.4完整性约束的设计根据数据库的关系模式,给出了数据库的完整性约束。1. 实体完整性约束问题的主码是问题编号和所属的套题编号。套题的的主码是套题的标号和所属课程编号。成绩的主码是成绩编号,学

16、生编号,和套题编号。2参照完整性约束 为每一张表设置主键同时为部分表添加外键。alter table Questions add constraint FK_tb_Questions_tb_TaoTi foreign key (taoTiId) references TaoTi (ID)goalter table StuResult add constraint FK_tb_StuResult_tb_Lesson foreign key (whichLesson) references Lesson (Name) on update cascadegoalter table StuResult

17、 add constraint FK_tb_StuResult_tb_Student foreign key (stuId) references Student (ID)go alter table TaoTi add constraint FK_tb_TaoTi_tb_Lesson foreign key (LessonID) references Lesson (ID)go4.5数据约束的设计为数据库中所有的表jointime的getdate创建约束分别是lesson,Questions,TaoTi,Student中的jointimeconstraint DF_tb_Lesson_Joi

18、nTime default getdate(),constraint DF_tb_TaoTi_JoinTime default getdate(),constraint DF_tb_student_JoinTime default getdate(),constraint DF_tb_StuResult_res_subdate default getdate(),这些代码在创建表的时候就添加进去了。第五章在线考试系统功能实现5.1数据库的连接本次我讲使用jdbc的方法的连接数据库sql2008,在官网里面下载sql2008的驱动包,讲数据库sql2008更改为sql身份验证模式,新建一个web

19、项目,并导入Sql2008数据库需要的驱动。由于在在线考试系统中我们需要多次使用到数据库,同时考虑面向对象的变成方法。讲数据库的连接封装。以下为数据封装的详细代码。使用了一个java类来连接数据。经过测试使用jdbc能成功的连接l2008数据库。到此可以知道本应用能够成功的连接到数据库,对数据库的数据进行操作。5.2使用jsp,JavaScript和Struct框架进行考生的登录。由于使用的是Struct框架需要创建Actionfrom类,用于获取和设置数据。在struct1中action包中功能的实现方法,dao包用来和数据库层进行数据的更新修改。5.3 选取用户登录和注册来详细讲解。5.3

20、.1注册流程首先是使用了一个跳转当点注册的时候跳到注册页面。代码如下<html:button property="button" value="注册" onclick="window.location.href='register.jsp'"/>在注册页面中除了对数据进行检查为,最后要讲用户填写的数据提交到数据库中,这里使用了struct框架。<html:form action="/manage/student.do?action=studentAdd" method="

21、post" onsubmit="return checkForm(studentForm)">当点击保存的时候,首先使用JavaScript进行数据的基本判断,如有的信息不能为空,密码长度不能低于6位。两次输入的密码必须一样。当数据没有问题后,使用action进行数据的提交。如上action=studentAdd。在action包建一个student类。在student类中因为action=studentAdd会调用考生注册的方面。在考生注册的方法中使用,使用了studentDAO.insert,讲from表单的数据写入数据库。在insert中会返回一个字符

22、串falg用来判断是否写入成功。在action中会根据返回的值(falg)进行判断会返回一个return mapping.findForward("studentAdd");或者return mapping.findForward("error");由于使用的struct框架我们需要在struts-config.xml中配置action<action name="studentForm" path="/manage/student" scope="request" type="c

23、om.wgh.action.Student" validate="true"><forward name="studentAdd" path="/student_ok.jsp" /><forward name="error" path="/manage/error.jsp" />根据返回的值返回给用户相对应的界面。以下部分代码和截图。 在返回的错误信息中使用设置request.setAttribute("error", "注册

24、失败!");request.setAttribute("error", "您已经注册,直接登录即可!");来告诉用户错误的原因,主页面进入注册页面这里使用了JavaScript进行表格中的数据检验<script language="javascript">function checkForm(form) if(form.ID.value="")alert("请输入考生考号!");.focus();return false;if(.valu

25、e="")alert("请输入考生姓名!");.focus();return false;if(form.password1.value="")alert("请输入登录密码!");form.password1.focus();return false;if(form.password1.value.length<6 | form.password1.value.length>20)alert("您输入的密码不合法,密码必须大于6位,并且小于等20位!");form.

26、password1.focus();return false;if(form.password2.value="")alert("请确认登录密码!");form.password2.focus();return false;if(form.password1.value!=form.password2.value)alert("您两次输入的登录密码不一致,请重新输入!");form.password1.focus();return false;</script>注册成功后会填出注册成功的对话框。以上就是注册的全部流程。在注

27、册完成后可以在数据库中看到5.3.2登录流程注册完成后就需要进行登录,在登陆中需要对准考证号和密码与数据库中的对比。判断是否是合法用户。 <script language="javascript">function check(form)if (.value="")alert("请输入准考证号!");.focus();return false;if (form.pwd.value="")alert("请输入密码!");form.pwd.focus(

28、);return false;</script>使用JavaScript判断是否为空。登录的时候准考证号和密码不允许为空。当为空的时候为弹出提醒对话框。当用户输入非法的帐号和密码的时候会跳到合法用法会跳到登录成功主页面用户登录其实是一个action动作,action对应的字符是login在execute中进行查询使用相对应的方法。验证使用的login,返回的是return studentLogin(mapping,form,request,response)在执行studentLogin中使用了studentDao,进行数据库的查询。如上图<action name="

29、;studentForm" path="/manage/student" scope="request" type="com.wgh.action.Student" validate="true"> <forward name="studentLoginok" path="/default.jsp" />同样需要在struts-config.xml中配置action在登录验证中使用的sql代码为"SELECT * FROM student

30、 where ID='"+studentForm.getID()+ "'"从from中获取学生的ID,和数据库进行匹配。检查是否存在这样一个用户。存在或者不存在都会给action返回一个flag。在action中对flag进行检查就知道是否登录成功。当登录成功返回的studentLoginok不成功返回的error在Strus-config.xml中配置对应的界面<action name="studentForm" path="/manage/student" scope="request" type="com.wgh.action.Student" validate="true"> <forward name="studentLoginok" path

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论