JAVA程序設(shè)計與應(yīng)用開發(fā)_第1頁
JAVA程序設(shè)計與應(yīng)用開發(fā)_第2頁
JAVA程序設(shè)計與應(yīng)用開發(fā)_第3頁
JAVA程序設(shè)計與應(yīng)用開發(fā)_第4頁
JAVA程序設(shè)計與應(yīng)用開發(fā)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Javaee程序設(shè)計與應(yīng)用開發(fā)報告題目:基于WEB的在線考試系統(tǒng)姓名:梅李林學(xué)號:132208100145班級:網(wǎng)絡(luò)工程學(xué)院:數(shù)計學(xué)院第一章 系統(tǒng)概括 隨著計算機(jī)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,計算機(jī)在各行各業(yè)的應(yīng)用越來越重要。開發(fā)一個全新的網(wǎng)上在線考試系統(tǒng)已經(jīng)越來越重要了。在線考試系統(tǒng)數(shù)據(jù)庫部分通過Power Designer開發(fā),Power Designer是一個功能強(qiáng)大而使用簡單工具集,提供了一個復(fù)雜的交互環(huán)境,支持開發(fā)生命周期的所有階段,從處理流程建模到對象和組件的生成。Power Designer產(chǎn)生的模型和應(yīng)用可以不斷地增長,適應(yīng)并隨著你的組織的變化而變Power Designer不僅加速了

2、開發(fā)的過程,也向最終用戶提供管理和訪問項目的信息的一個有效的結(jié)構(gòu)。在線考試系統(tǒng)采取的現(xiàn)在比較流行的B/S開發(fā)模式。使用的Myeclipse10作為變成工具。使用的Web服務(wù)器是Tomcat。采取Struct1.2的框架。在網(wǎng)頁涉及部分使用比較流行的Macromedia Dreamweaver 8來進(jìn)行簡單的布局管理。第二章 需求分析2.1使用工具簡介在線考試系統(tǒng)的數(shù)據(jù)庫為本學(xué)期學(xué)習(xí)的SQL2008。操作系統(tǒng)是WINDOWS7X64。數(shù)據(jù)庫設(shè)計中主要使用了Power Designer、SQL2008等工具。在本系統(tǒng)的實現(xiàn)過程中使用了HTML標(biāo)簽,jsp,JavaScript,java等。2.2在

3、線考試系統(tǒng)全部流程在線考試系統(tǒng)考生管理員在線考試查詢成績修改個人資料推出系統(tǒng)管理員管理考生成績管理課程管理考試題目管理套題管理退出系統(tǒng) 2.3在線考試系統(tǒng)部分流程圖考生登錄功能選擇失敗成功輸出錯誤查詢成績修改資料考生登錄流程進(jìn)行考試注冊管理人員流程管理員登錄功能選擇輸出登錄失敗的信息。失敗成功管理員信息管理考生信息管理考生成績查詢課程試題管理第三章數(shù)據(jù)庫系統(tǒng)設(shè)計.1Power Designer的安裝PowerDesigner15.1安裝和普通軟件安裝差不多。安裝中選擇選項就選擇默認(rèn)的就行。軟件安裝成功這是軟件的工作的界面?;藥滋斓臅r間去了解PowerDesigner15.1的基

4、本功能和使用。3.2數(shù)據(jù)庫局部ER圖設(shè)計學(xué)生準(zhǔn)考證號密碼性別加入時間身份證號碼專業(yè)姓名管理員ID帳號密碼.1.3.2數(shù)據(jù)庫概念模型(CDM)的設(shè)計在線考試系統(tǒng)的ER圖。密碼在線考試系統(tǒng)ER圖(實體的部分屬性)管理員課程套題(類似AB卷)學(xué)生編號姓名密碼MMnmNNN1MnM通過Power Designer設(shè)計實體與實體之間的關(guān)系。設(shè)置完成后的圖如下 3.3數(shù)據(jù)庫邏輯模型的設(shè)計更具上面的ER圖和數(shù)據(jù)庫原理知識進(jìn)行關(guān)系設(shè)計。學(xué)生擁有(ID,姓名,密碼,性別,注冊時間,專業(yè),身份證)管理員有(ID,姓名,密碼)課程(課程號,課程名,添加時間)套題(套題號,套題名,課程號,添加時間)試卷

5、問題(ID號,問題,題目類型,添加時間,課程號,套題號,選項A,選項B,選項C,選項D,答案,備注)成績(成績ID,學(xué)生ID,考試科目,單選題成績,多選題成績,總分,添加時間。)3.4數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計創(chuàng)建物理模型屬性。使用Power Designer設(shè)計的物理模型如下圖,可以通過物理模型導(dǎo)出數(shù)據(jù)庫的sql語句,簡化數(shù)據(jù)庫的設(shè)計。第四章 數(shù)據(jù)庫表的設(shè)計.1數(shù)據(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 成績表 */*=*/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),在成績表中使用了自定義數(shù)據(jù),就是計算成績,計算單選和多選的成績。identity(1,1),使用了標(biāo)識列。identity(a,b),ab均為正整數(shù),a表示開始數(shù),b表示增幅,就像identity(1,1)意思就是該列自動增長,由1開始每次增加是1。對數(shù)據(jù)進(jìn)行自動編號。 .1.4.3索引的設(shè)計為數(shù)據(jù)庫中使用頻繁的表創(chuàng)建索引,并且每個表都創(chuàng)建一個聚集唯一索引。4.4完整性約束的設(shè)計根據(jù)數(shù)據(jù)庫的關(guān)系模式,給出了數(shù)據(jù)庫的完整性約束。1. 實體完整性約束問題的主碼是問題編號和所屬的套題編號。套題的的主碼是套題的標(biāo)號和所屬課程編號。成績的主碼是成績編號,學(xué)

16、生編號,和套題編號。2參照完整性約束 為每一張表設(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è)計為數(shù)據(jù)庫中所有的表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)建表的時候就添加進(jìn)去了。第五章在線考試系統(tǒng)功能實現(xiàn)5.1數(shù)據(jù)庫的連接本次我講使用jdbc的方法的連接數(shù)據(jù)庫sql2008,在官網(wǎng)里面下載sql2008的驅(qū)動包,講數(shù)據(jù)庫sql2008更改為sql身份驗證模式,新建一個web

19、項目,并導(dǎo)入Sql2008數(shù)據(jù)庫需要的驅(qū)動。由于在在線考試系統(tǒng)中我們需要多次使用到數(shù)據(jù)庫,同時考慮面向?qū)ο蟮淖兂煞椒?。講數(shù)據(jù)庫的連接封裝。以下為數(shù)據(jù)封裝的詳細(xì)代碼。使用了一個java類來連接數(shù)據(jù)。經(jīng)過測試使用jdbc能成功的連接l2008數(shù)據(jù)庫。到此可以知道本應(yīng)用能夠成功的連接到數(shù)據(jù)庫,對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行操作。5.2使用jsp,JavaScript和Struct框架進(jìn)行考生的登錄。由于使用的是Struct框架需要創(chuàng)建Actionfrom類,用于獲取和設(shè)置數(shù)據(jù)。在struct1中action包中功能的實現(xiàn)方法,dao包用來和數(shù)據(jù)庫層進(jìn)行數(shù)據(jù)的更新修改。5.3 選取用戶登錄和注冊來詳細(xì)講解。5.3

20、.1注冊流程首先是使用了一個跳轉(zhuǎn)當(dāng)點注冊的時候跳到注冊頁面。代碼如下<html:button property="button" value="注冊" onclick="window.location.href='register.jsp'"/>在注冊頁面中除了對數(shù)據(jù)進(jìn)行檢查為,最后要講用戶填寫的數(shù)據(jù)提交到數(shù)據(jù)庫中,這里使用了struct框架。<html:form action="/manage/student.do?action=studentAdd" method="

21、post" onsubmit="return checkForm(studentForm)">當(dāng)點擊保存的時候,首先使用JavaScript進(jìn)行數(shù)據(jù)的基本判斷,如有的信息不能為空,密碼長度不能低于6位。兩次輸入的密碼必須一樣。當(dāng)數(shù)據(jù)沒有問題后,使用action進(jìn)行數(shù)據(jù)的提交。如上action=studentAdd。在action包建一個student類。在student類中因為action=studentAdd會調(diào)用考生注冊的方面。在考生注冊的方法中使用,使用了studentDAO.insert,講from表單的數(shù)據(jù)寫入數(shù)據(jù)庫。在insert中會返回一個字符

22、串falg用來判斷是否寫入成功。在action中會根據(jù)返回的值(falg)進(jìn)行判斷會返回一個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ù)返回的值返回給用戶相對應(yīng)的界面。以下部分代碼和截圖。 在返回的錯誤信息中使用設(shè)置request.setAttribute("error", "注冊

24、失??!");request.setAttribute("error", "您已經(jīng)注冊,直接登錄即可!");來告訴用戶錯誤的原因,主頁面進(jìn)入注冊頁面這里使用了JavaScript進(jìn)行表格中的數(shù)據(jù)檢驗<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("請確認(rèn)登錄密碼!");form.password2.focus();return false;if(form.password1.value!=form.password2.value)alert("您兩次輸入的登錄密碼不一致,請重新輸入!");form.password1.focus();return false;</script>注冊成功后會填出注冊成功的對話框。以上就是注冊的全部流程。在注

27、冊完成后可以在數(shù)據(jù)庫中看到5.3.2登錄流程注冊完成后就需要進(jìn)行登錄,在登陸中需要對準(zhǔn)考證號和密碼與數(shù)據(jù)庫中的對比。判斷是否是合法用戶。 <script language="javascript">function check(form)if (.value="")alert("請輸入準(zhǔn)考證號!");.focus();return false;if (form.pwd.value="")alert("請輸入密碼!");form.pwd.focus(

28、);return false;</script>使用JavaScript判斷是否為空。登錄的時候準(zhǔn)考證號和密碼不允許為空。當(dāng)為空的時候為彈出提醒對話框。當(dāng)用戶輸入非法的帳號和密碼的時候會跳到合法用法會跳到登錄成功主頁面用戶登錄其實是一個action動作,action對應(yīng)的字符是login在execute中進(jìn)行查詢使用相對應(yīng)的方法。驗證使用的login,返回的是return studentLogin(mapping,form,request,response)在執(zhí)行studentLogin中使用了studentDao,進(jìn)行數(shù)據(jù)庫的查詢。如上圖<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中獲取學(xué)生的ID,和數(shù)據(jù)庫進(jìn)行匹配。檢查是否存在這樣一個用戶。存在或者不存在都會給action返回一個flag。在action中對flag進(jìn)行檢查就知道是否登錄成功。當(dāng)?shù)卿洺晒Ψ祷氐膕tudentLoginok不成功返回的error在Strus-config.xml中配置對應(yīng)的界面<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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論