版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Javaee程序設(shè)計(jì)與應(yīng)用開發(fā)報(bào)告題目:基于WEB的在線考試系統(tǒng)姓名:梅李林學(xué)號(hào):132208100145班級(jí):網(wǎng)絡(luò)工程學(xué)院:數(shù)計(jì)學(xué)院第一章 系統(tǒng)概括 隨著計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在各行各業(yè)的應(yīng)用越來(lái)越重要。開發(fā)一個(gè)全新的網(wǎng)上在線考試系統(tǒng)已經(jīng)越來(lái)越重要了。在線考試系統(tǒng)數(shù)據(jù)庫(kù)部分通過(guò)Power Designer開發(fā),Power Designer是一個(gè)功能強(qiáng)大而使用簡(jiǎn)單工具集,提供了一個(gè)復(fù)雜的交互環(huán)境,支持開發(fā)生命周期的所有階段,從處理流程建模到對(duì)象和組件的生成。Power Designer產(chǎn)生的模型和應(yīng)用可以不斷地增長(zhǎng),適應(yīng)并隨著你的組織的變化而變Power Designer不僅加速了
2、開發(fā)的過(guò)程,也向最終用戶提供管理和訪問(wèn)項(xiàng)目的信息的一個(gè)有效的結(jié)構(gòu)。在線考試系統(tǒng)采取的現(xiàn)在比較流行的B/S開發(fā)模式。使用的Myeclipse10作為變成工具。使用的Web服務(wù)器是Tomcat。采取Struct1.2的框架。在網(wǎng)頁(yè)涉及部分使用比較流行的Macromedia Dreamweaver 8來(lái)進(jìn)行簡(jiǎn)單的布局管理。第二章 需求分析2.1使用工具簡(jiǎn)介在線考試系統(tǒng)的數(shù)據(jù)庫(kù)為本學(xué)期學(xué)習(xí)的SQL2008。操作系統(tǒng)是WINDOWS7X64。數(shù)據(jù)庫(kù)設(shè)計(jì)中主要使用了Power Designer、SQL2008等工具。在本系統(tǒng)的實(shí)現(xiàn)過(guò)程中使用了HTML標(biāo)簽,jsp,JavaScript,java等。2.2在
3、線考試系統(tǒng)全部流程在線考試系統(tǒng)考生管理員在線考試查詢成績(jī)修改個(gè)人資料推出系統(tǒng)管理員管理考生成績(jī)管理課程管理考試題目管理套題管理退出系統(tǒng) 2.3在線考試系統(tǒng)部分流程圖考生登錄功能選擇失敗成功輸出錯(cuò)誤查詢成績(jī)修改資料考生登錄流程進(jìn)行考試注冊(cè)管理人員流程管理員登錄功能選擇輸出登錄失敗的信息。失敗成功管理員信息管理考生信息管理考生成績(jī)查詢課程試題管理第三章數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì).1Power Designer的安裝PowerDesigner15.1安裝和普通軟件安裝差不多。安裝中選擇選項(xiàng)就選擇默認(rèn)的就行。軟件安裝成功這是軟件的工作的界面?;藥滋斓臅r(shí)間去了解PowerDesigner15.1的基
4、本功能和使用。3.2數(shù)據(jù)庫(kù)局部ER圖設(shè)計(jì)學(xué)生準(zhǔn)考證號(hào)密碼性別加入時(shí)間身份證號(hào)碼專業(yè)姓名管理員ID帳號(hào)密碼.1.3.2數(shù)據(jù)庫(kù)概念模型(CDM)的設(shè)計(jì)在線考試系統(tǒng)的ER圖。密碼在線考試系統(tǒng)ER圖(實(shí)體的部分屬性)管理員課程套題(類似AB卷)學(xué)生編號(hào)姓名密碼MMnmNNN1MnM通過(guò)Power Designer設(shè)計(jì)實(shí)體與實(shí)體之間的關(guān)系。設(shè)置完成后的圖如下 3.3數(shù)據(jù)庫(kù)邏輯模型的設(shè)計(jì)更具上面的ER圖和數(shù)據(jù)庫(kù)原理知識(shí)進(jìn)行關(guān)系設(shè)計(jì)。學(xué)生擁有(ID,姓名,密碼,性別,注冊(cè)時(shí)間,專業(yè),身份證)管理員有(ID,姓名,密碼)課程(課程號(hào),課程名,添加時(shí)間)套題(套題號(hào),套題名,課程號(hào),添加時(shí)間)試卷
5、問(wèn)題(ID號(hào),問(wèn)題,題目類型,添加時(shí)間,課程號(hào),套題號(hào),選項(xiàng)A,選項(xiàng)B,選項(xiàng)C,選項(xiàng)D,答案,備注)成績(jī)(成績(jī)ID,學(xué)生ID,考試科目,單選題成績(jī),多選題成績(jī),總分,添加時(shí)間。)3.4數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的設(shè)計(jì)創(chuàng)建物理模型屬性。使用Power Designer設(shè)計(jì)的物理模型如下圖,可以通過(guò)物理模型導(dǎo)出數(shù)據(jù)庫(kù)的sql語(yǔ)句,簡(jiǎn)化數(shù)據(jù)庫(kù)的設(shè)計(jì)。第四章 數(shù)據(jù)庫(kù)表的設(shè)計(jì).1數(shù)據(jù)表的建立需要的表有:課程表,題目表, 成績(jī)表, 學(xué)生表,套題表,管理員表。/*=*/* 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 成績(jī)表 */*=*/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 學(xué)生表 */*=*/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數(shù)據(jù)數(shù)據(jù)類型 resTotal AS (resS
15、ingle + resMore),在成績(jī)表中使用了自定義數(shù)據(jù),就是計(jì)算成績(jī),計(jì)算單選和多選的成績(jī)。identity(1,1),使用了標(biāo)識(shí)列。identity(a,b),ab均為正整數(shù),a表示開始數(shù),b表示增幅,就像identity(1,1)意思就是該列自動(dòng)增長(zhǎng),由1開始每次增加是1。對(duì)數(shù)據(jù)進(jìn)行自動(dòng)編號(hào)。 .1.4.3索引的設(shè)計(jì)為數(shù)據(jù)庫(kù)中使用頻繁的表創(chuàng)建索引,并且每個(gè)表都創(chuàng)建一個(gè)聚集唯一索引。4.4完整性約束的設(shè)計(jì)根據(jù)數(shù)據(jù)庫(kù)的關(guān)系模式,給出了數(shù)據(jù)庫(kù)的完整性約束。1. 實(shí)體完整性約束問(wèn)題的主碼是問(wèn)題編號(hào)和所屬的套題編號(hào)。套題的的主碼是套題的標(biāo)號(hào)和所屬課程編號(hào)。成績(jī)的主碼是成績(jī)編號(hào),學(xué)
16、生編號(hào),和套題編號(hào)。2參照完整性約束 為每一張表設(shè)置主鍵同時(shí)為部分表添加外鍵。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數(shù)據(jù)約束的設(shè)計(jì)為數(shù)據(jù)庫(kù)中所有的表jointime的getdate創(chuàng)建約束分別是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(),這些代碼在創(chuàng)建表的時(shí)候就添加進(jìn)去了。第五章在線考試系統(tǒng)功能實(shí)現(xiàn)5.1數(shù)據(jù)庫(kù)的連接本次我講使用jdbc的方法的連接數(shù)據(jù)庫(kù)sql2008,在官網(wǎng)里面下載sql2008的驅(qū)動(dòng)包,講數(shù)據(jù)庫(kù)sql2008更改為sql身份驗(yàn)證模式,新建一個(gè)web
19、項(xiàng)目,并導(dǎo)入Sql2008數(shù)據(jù)庫(kù)需要的驅(qū)動(dòng)。由于在在線考試系統(tǒng)中我們需要多次使用到數(shù)據(jù)庫(kù),同時(shí)考慮面向?qū)ο蟮淖兂煞椒?。講數(shù)據(jù)庫(kù)的連接封裝。以下為數(shù)據(jù)封裝的詳細(xì)代碼。使用了一個(gè)java類來(lái)連接數(shù)據(jù)。經(jīng)過(guò)測(cè)試使用jdbc能成功的連接l2008數(shù)據(jù)庫(kù)。到此可以知道本應(yīng)用能夠成功的連接到數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行操作。5.2使用jsp,JavaScript和Struct框架進(jìn)行考生的登錄。由于使用的是Struct框架需要?jiǎng)?chuàng)建Actionfrom類,用于獲取和設(shè)置數(shù)據(jù)。在struct1中action包中功能的實(shí)現(xiàn)方法,dao包用來(lái)和數(shù)據(jù)庫(kù)層進(jìn)行數(shù)據(jù)的更新修改。5.3 選取用戶登錄和注冊(cè)來(lái)詳細(xì)講解。5.3
20、.1注冊(cè)流程首先是使用了一個(gè)跳轉(zhuǎn)當(dāng)點(diǎn)注冊(cè)的時(shí)候跳到注冊(cè)頁(yè)面。代碼如下<html:button property="button" value="注冊(cè)" onclick="window.location.href='register.jsp'"/>在注冊(cè)頁(yè)面中除了對(duì)數(shù)據(jù)進(jìn)行檢查為,最后要講用戶填寫的數(shù)據(jù)提交到數(shù)據(jù)庫(kù)中,這里使用了struct框架。<html:form action="/manage/student.do?action=studentAdd" method="
21、post" onsubmit="return checkForm(studentForm)">當(dāng)點(diǎn)擊保存的時(shí)候,首先使用JavaScript進(jìn)行數(shù)據(jù)的基本判斷,如有的信息不能為空,密碼長(zhǎng)度不能低于6位。兩次輸入的密碼必須一樣。當(dāng)數(shù)據(jù)沒有問(wèn)題后,使用action進(jìn)行數(shù)據(jù)的提交。如上action=studentAdd。在action包建一個(gè)student類。在student類中因?yàn)閍ction=studentAdd會(huì)調(diào)用考生注冊(cè)的方面。在考生注冊(cè)的方法中使用,使用了studentDAO.insert,講from表單的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。在insert中會(huì)返回一個(gè)字符
22、串falg用來(lái)判斷是否寫入成功。在action中會(huì)根據(jù)返回的值(falg)進(jìn)行判斷會(huì)返回一個(gè)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" />根據(jù)返回的值返回給用戶相對(duì)應(yīng)的界面。以下部分代碼和截圖。 在返回的錯(cuò)誤信息中使用設(shè)置request.setAttribute("error", "注冊(cè)
24、失??!");request.setAttribute("error", "您已經(jīng)注冊(cè),直接登錄即可!");來(lái)告訴用戶錯(cuò)誤的原因,主頁(yè)面進(jìn)入注冊(cè)頁(yè)面這里使用了JavaScript進(jìn)行表格中的數(shù)據(jù)檢驗(yàn)<script language="javascript">function checkForm(form) if(form.ID.value="")alert("請(qǐng)輸入考生考號(hào)!");.focus();return false;if(.valu
25、e="")alert("請(qǐng)輸入考生姓名!");.focus();return false;if(form.password1.value="")alert("請(qǐng)輸入登錄密碼!");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("請(qǐng)確認(rèn)登錄密碼!");form.password2.focus();return false;if(form.password1.value!=form.password2.value)alert("您兩次輸入的登錄密碼不一致,請(qǐng)重新輸入!");form.password1.focus();return false;</script>注冊(cè)成功后會(huì)填出注冊(cè)成功的對(duì)話框。以上就是注冊(cè)的全部流程。在注
27、冊(cè)完成后可以在數(shù)據(jù)庫(kù)中看到5.3.2登錄流程注冊(cè)完成后就需要進(jìn)行登錄,在登陸中需要對(duì)準(zhǔn)考證號(hào)和密碼與數(shù)據(jù)庫(kù)中的對(duì)比。判斷是否是合法用戶。 <script language="javascript">function check(form)if (.value="")alert("請(qǐng)輸入準(zhǔn)考證號(hào)!");.focus();return false;if (form.pwd.value="")alert("請(qǐng)輸入密碼!");form.pwd.focus(
28、);return false;</script>使用JavaScript判斷是否為空。登錄的時(shí)候準(zhǔn)考證號(hào)和密碼不允許為空。當(dāng)為空的時(shí)候?yàn)閺棾鎏嵝褜?duì)話框。當(dāng)用戶輸入非法的帳號(hào)和密碼的時(shí)候會(huì)跳到合法用法會(huì)跳到登錄成功主頁(yè)面用戶登錄其實(shí)是一個(gè)action動(dòng)作,action對(duì)應(yīng)的字符是login在execute中進(jìn)行查詢使用相對(duì)應(yīng)的方法。驗(yàn)證使用的login,返回的是return studentLogin(mapping,form,request,response)在執(zhí)行studentLogin中使用了studentDao,進(jìn)行數(shù)據(jù)庫(kù)的查詢。如上圖<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在登錄驗(yàn)證中使用的sql代碼為"SELECT * FROM student
30、 where ID='"+studentForm.getID()+ "'"從from中獲取學(xué)生的ID,和數(shù)據(jù)庫(kù)進(jìn)行匹配。檢查是否存在這樣一個(gè)用戶。存在或者不存在都會(huì)給action返回一個(gè)flag。在action中對(duì)flag進(jìn)行檢查就知道是否登錄成功。當(dāng)?shù)卿洺晒Ψ祷氐膕tudentLoginok不成功返回的error在Strus-config.xml中配置對(duì)應(yīng)的界面<action name="studentForm" path="/manage/student" scope="request" type="com.wgh.action.Student" validate="true"> <forward name="studentLoginok" path
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股東協(xié)議書-股東投票權(quán)及決策機(jī)制協(xié)議3篇
- 時(shí)代楷模先進(jìn)事跡在高中思政課教學(xué)中的應(yīng)用研究
- 投訴管理制度及處理流程
- 開啟自主學(xué)習(xí)的閘門
- 二零二五年度農(nóng)業(yè)高新技術(shù)田地租賃合作協(xié)議3篇
- 航空器材采購(gòu)招標(biāo)合同三篇
- 2025屆南通市海安高三語(yǔ)文上學(xué)期期末考試卷附答案解析
- 醫(yī)學(xué)美容科護(hù)士總結(jié)
- 專業(yè)化妝前臺(tái)接待員工作總結(jié)
- 二零二五年度戶外全彩顯示屏采購(gòu)合同5篇
- 2024屆武漢市部分學(xué)校中考一模數(shù)學(xué)試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術(shù)標(biāo)準(zhǔn)》
- 第19章 一次函數(shù) 單元整體教學(xué)設(shè)計(jì) 【 學(xué)情分析指導(dǎo) 】 人教版八年級(jí)數(shù)學(xué)下冊(cè)
- 電梯結(jié)構(gòu)與原理-第2版-全套課件
- 浙教版七年級(jí)下冊(cè)科學(xué)全冊(cè)課件
- 弧度制及弧度制與角度制的換算
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- 瓦楞紙箱計(jì)算公式測(cè)量方法
- 江蘇省中等職業(yè)學(xué)校學(xué)業(yè)水平考試商務(wù)營(yíng)銷類(營(yíng)銷方向)技能考試測(cè)試題
- DB32-T 4004-2021水質(zhì) 17種全氟化合物的測(cè)定 高效液相色譜串聯(lián)質(zhì)譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論