JAVA程序设计与应用开发Word文档格式.docx
- 文档编号:17126060
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:30
- 大小:1.31MB
JAVA程序设计与应用开发Word文档格式.docx
《JAVA程序设计与应用开发Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计与应用开发Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
2.2在线考试系统全部流程
2.3在线考试系统部分流程图
第三章数据库系统设计
1.
2.
3.
3.1PowerDesigner的安装
PowerDesigner15.1安装和普通软件安装差不多。
安装中选择选项就选择默认的就行。
软件安装成功这是软件的工作的界面。
花了几天的时间去了解PowerDesigner15.1的基本功能和使用。
3.2数据库局部ER图设计
3.1.
3.2数据库概念模型(CDM)的设计
在线考试系统的ER图。
密码
通过PowerDesigner设计实体与实体之间的关系。
设置完成后的图如下
3.3数据库逻辑模型的设计
更具上面的ER图和数据库原理知识进行关系设计。
学生拥有(ID,姓名,密码,性别,注册时间,专业,身份证)
管理员有(ID,姓名,密码)
课程(课程号,课程名,添加时间)
套题(套题号,套题名,课程号,添加时间)
试卷问题(ID号,问题,题目类型,添加时间,课程号,套题号,选项A,选项B,选项C,选项D,答案,备注)
成绩(成绩ID,学生ID,考试科目,单选题成绩,多选题成绩,总分,添加时间。
)
3.4数据库物理结构的设计
创建物理模型属性。
使用PowerDesigner设计的物理模型如下图,可以通过物理模型导出数据库的sql语句,简化数据库的设计。
第四章数据库表的设计
4.1数据表的建立
需要的表有:
课程表,题目表,成绩表,学生表,套题表,管理员表。
/*==============================================================*/
/*Table:
Lesson课程表*/
createtableLesson(
IDbigintidentity(1,1),
Namevarchar(60)notnull,
JoinTimedatetimenotnullconstraintDF_tb_Lesson_JoinTimedefaultgetdate(),
constraintPK_tb_Lessonprimarykey(ID)
WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
ON[PRIMARY]
go
Questions题目表*/
createtableQuestions(
idbigintidentity(1,1),
subjectvarchar(50)notnull,
typechar(6)notnull,
joinTimedatetimenotnullconstraintDF_tb_Questions_que_joindatedefaultgetdate(),
lessonIdintnotnull,
taoTiIdbitintnotnull,
optionAvarchar(50)notnull,
optionBvarchar(50)notnull,
optionCvarchar(50)notnull,
optionDvarchar(50)notnull,
answervarchar(10)notnull,
notevarchar(50)null,
constraintPK_tb_Questionsprimarykey(id)
StuResult成绩表*/
createtableStuResult(
stuIdvarchar(16)notnull,
whichLessonvarchar(60)notnull,
resSingleintnotnull,
resMoreintnotnull,
resTotalAS([resSingle]+[resMore])),
joinTimedatetimenotnullconstraintDF_tb_StuResult_res_subdatedefaultgetdate(),
constraintPK_tb_StuResultprimarykey(id)
Student学生表*/
createtableStudent(
IDvarchar(16)notnull,
namevarchar(20)notnull,
pwdvarchar(20)notnull,
sexvarchar
(2)notnull,
joinTimedatetimenotnullconstraintDF_tb_student_JoinTimedefaultgetdate(),
questionvarchar(50)notnull,
answervarchar(50)notnull,
professionvarchar(30)null,
cardNovarchar(18)notnull,
constraintPK_tb_Studentprimarykey(ID)
TaoTi试题表*/
createtableTaoTi(
Namevarchar(16)notnull,
LessonIDbigintnotnull,
JoinTimedatetimenotnullconstraintDF_tb_TaoTi_JoinTimedefaultgetdate(),
constraintPK_tb_TaoTiprimarykey(ID)
manager管理员表*/
createtablemanager(
IDbigintnotnull,
namevarchar(30)notnull,
PWDvarchar(30)notnull,
constraintPK_tb_Administratorprimarykey(ID)
Go
4.2数据数据类型
在成绩表中使用了自定义数据,就是计算成绩,计算单选和多选的成绩。
identity(1,1),
使用了标识列。
identity(a,b),ab均为正整数,a表示开始数,b表示增幅,就像identity(1,1)意思就是该列自动增长,由1开始每次增加是1。
对数据进行自动编号。
4.3索引的设计
为数据库中使用频繁的表创建索引,并且每个表都创建一个聚集唯一索引。
4.4完整性约束的设计
根据数据库的关系模式,给出了数据库的完整性约束。
1.实体完整性约束
问题的主码是问题编号和所属的套题编号。
套题的的主码是套题的标号和所属课程编号。
成绩的主码是成绩编号,学生编号,和套题编号。
2参照完整性约束
为每一张表设置主键同时为部分表添加外键。
altertableQuestions
addconstraintFK_tb_Questions_tb_TaoTiforeignkey(taoTiId)
referencesTaoTi(ID)
altertableStuResult
addconstraintFK_tb_StuResult_tb_Lessonforeignkey(whichLesson)
referencesLesson(Name)
onupdatecascade
addconstraintFK_tb_StuResult_tb_Studentforeignkey(stuId)
referencesStudent(ID)
altertableTaoTi
addconstraintFK_tb_TaoTi_tb_Lessonforeignkey(LessonID)
referencesLesson(ID)
4.5数据约束的设计
为数据库中所有的表jointime的getdate创建约束
分别是lesson,Questions,TaoTi,Student中的jointime
constraintDF_tb_Lesson_JoinTimedefaultgetdate(),
constraintDF_tb_TaoTi_JoinTimedefaultgetdate(),
constraintDF_tb_student_JoinTimedefaultgetdate(),
constraintDF_tb_StuResult_res_subdatedefaultgetdate(),
这些代码在创建表的时候就添加进去了。
第五章在线考试系统功能实现
5.1数据库的连接
本次我讲使用jdbc的方法的连接数据库sql2008,在官网里面下载sql2008的驱动包,讲数据库sql2008更改为sql身份验证模式,
新建一个web项目,并导入Sql2008数据库需要的驱动。
由于在在线考试系统中我们需要多次使用到数据库,同时考虑面向对象的变成方法。
讲数据库的连接封装。
以下为数据封装的详细代码。
使用了一个java类来连接数据。
经过测试使用jdbc能成功的连接l2008数据库。
到此可以知道本应用能够成功的连接到数据库,对数据库的数据进行操作。
5.2使用jsp,JavaScript和Struct框架进行考生的登录。
由于使用的是Struct框架需要创建Actionfrom类,用于获取和设置数据。
在struct1中action包中功能的实现方法,dao包用来和数据库层进行数据的更新修改。
5.3选取用户登录和注册来详细讲解。
5.3.1注册流程
首先是使用了一个跳转当点注册的时候跳到注册页面。
代码如下<
html:
buttonproperty="
button"
value="
注册"
onclick="
window.location.href='
register.jsp'
"
/>
在注册页面中除了对数据进行检查为,最后要讲用户填写的数据提交到数据库中,这里使用了struct框架。
<
formaction="
/manage/student.do?
action=studentAdd"
method="
post"
onsubmit="
returncheckForm(studentForm)"
>
当点击保存的时候,首先使用JavaScript进行数据的基本判断,如有的信息不能为空,密码长度不能低于6位。
两次输入的密码必须一样。
当数据没有问题后,使用action进行数据的提交。
如上action=studentAdd。
在action包建一个student类。
在student类中因为action=studentAdd会调用考生注册的方面。
在考生注册的方法中使用,使用了studentDAO.insert,讲from表单的数据写入数据库。
在insert中会返回一个字符串falg用来判断是否写入成功。
在action中会根据返回的值(falg)进行判断会返回一个returnmapping.findForward("
studentAdd"
);
或者
returnmapping.findForward("
error"
由于使用的struct框架我们需要在struts-config.xml中配置action
actionname="
studentForm"
path="
/manage/student"
scope="
request"
type="
com.wgh.action.Student"
validate="
true"
forwardname="
/student_ok.jsp"
/>
/manage/error.jsp"
根据返回的值返回给用户相对应的界面。
以下部分代码和截图。
在返回的错误信息中使用设置request.setAttribute("
"
注册失败!
request.setAttribute("
您已经注册,直接登录即可!
来告诉用户错误的原因,
主页面
进入注册页面
这里使用了JavaScript进行表格中的数据检验
注册成功后会填出注册成功的对话框。
以上就是注册的全部流程。
在注册完成后可以在数据库中看到
5.3.2登录流程
注册完成后就需要进行登录,在登陆中需要对准考证号和密码与数据库中的对比。
判断是否是合法用户。
scriptlanguage="
javascript"
functioncheck(form){
if(form.name.value=="
){
alert("
请输入准考证号!
form.name.focus();
returnfalse;
}
if(form.pwd.value=="
请输入密码!
form.pwd.focus();
}
/script>
使用JavaScript判断是否为空。
登录的时候准考证号和密码不允许为空。
当为空的时候为弹出提醒对话框。
当用户输入非法的帐号和密码的时候会跳到
合法用法会跳到登录成功主页面
用户登录其实是一个action动作,action对应的字符是login
在execute中进行查询使用相对应的方法。
验证使用的login,返回的是
returnstudentLogin(mapping,form,request,response)
在执行studentLogin中使用了studentDao,进行数据库的查询。
如上图
<
studentLoginok"
/default.jsp"
同样需要在struts-config.xml中配置action
在登录验证中使用的sql代码为
SELECT*FROMstudentwhereID='
+studentForm.getID()+"
'
;
从from中获取学生的ID,和数据库进行匹配。
检查是否存在这样一个用户。
存在或者不存在都会给action返回一个flag。
在action中对flag进行检查就知道是否登录成功。
当登录成功返回的studentLoginok不成功返回的error
在
Strus-config.xml中配置对应的界面
至此登录验证就完成。
管理员登录验证也是类似的。
5.4在struct中解决中文乱码问题
通常情况下解决中文乱码采用的是编写一个讲ISO-8859-1编码转换为GBK的方法,然后在出现乱码的位置调用该方法即可达到解决中文乱码问题的目的,但是这样做很不方便。
Struct提供了一个快速解决中文乱码问题的方法,那就是通过配置和扩展RequestProcessor类来实现。
packagecom.wgh.action;
importorg.apache.struts.action.RequestProcessor;
importjavax.servlet.http.*;
importjava.io.*;
publicclassSelfRequestProcessorextendsRequestProcessor{
publicSelfRequestProcessor(){
protectedbooleanprocessPreprocess(HttpServletRequestrequest,HttpServletResponseresponse){
try{
request.setCharacterEncoding("
GBK"
}catch(UnsupportedEncodingExceptionex){
ex.printStackTrace();
returntrue;
这个类继承了RequestProcessor,并重写Processpreprocess()方法,在该方法中设置Request对象的请求编码为GBK编码。
需要在struts-config.xml中利用<
controller>
元素配置自定义控制器组件SelfRequestProcessor用于对请求的参数进行转码,具体代码为
controllerprocessorClass="
com.wgh.ac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序设计 应用 开发