數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告Team 7_第1頁
數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告Team 7_第2頁
數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告Team 7_第3頁
數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告Team 7_第4頁
數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告Team 7_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告項目名稱:在線選擇題測試系統(tǒng)小組成員姓名及學(xué)號:馬培1143041159符陽1143041324盧松1143041172小組長:符陽小組:Team7完成時間:2013年12月16號目錄1.項目背景和意義 22.項目目的與分工 23.總體設(shè)計 33.1.?dāng)?shù)據(jù)庫設(shè)計 33.1.1概念結(jié)構(gòu)設(shè)計 33.1.2邏輯結(jié)構(gòu)設(shè)計 43.2應(yīng)用設(shè)計 63.2.1系統(tǒng)功能分析 63.2.2執(zhí)行流程描述 63.2.3系統(tǒng)結(jié)構(gòu)描述 74.技術(shù)路線 85.關(guān)鍵技術(shù)及特色技術(shù) 96.結(jié)果分析 97.總結(jié) 141.項目背景和意義在現(xiàn)在的大學(xué)教課過程中,由于課程數(shù)目比較多老師講課的時候?qū)W生的接受能力有一定下降,加上很多學(xué)生不去上課、上課玩手機、上課睡覺等情況使得現(xiàn)在的大學(xué)生掌握專業(yè)基礎(chǔ)知識的能力下降很多,而很多老師并不會布置作業(yè),導(dǎo)致在課下學(xué)生不去復(fù)習(xí),更加難以提高成績。如果建立一個在線答題系統(tǒng),可以給老師和同學(xué)之間建立一個溝通的平臺。學(xué)生通過此系統(tǒng)可以學(xué)習(xí)老師講課時沒有掌握的內(nèi)容,而老師也可以通過此系統(tǒng)來查看教學(xué)結(jié)果并且能知道學(xué)生的答題情況。2.項目目的與分工本系統(tǒng)目標在于建立考生和任課教師之間的課下聯(lián)系。使沒有掌握好老師上課內(nèi)容的學(xué)生可以在答題的過程中鞏固和學(xué)習(xí)沒掌握好的知識,同時老師可以根據(jù)考生的答題情況來考察學(xué)生對知識的掌握情況,以便在后期的答題課中有側(cè)重點的講解。馬培:主要負責(zé)數(shù)據(jù)庫的設(shè)計和編寫、文檔編寫、測試等工作符陽:主要負責(zé)servlet,jsp部分的編寫、文檔編寫、測試等工作盧松:主要界面設(shè)計和文檔類的編寫和測試等工作3.總體設(shè)計3.1.?dāng)?shù)據(jù)庫設(shè)計3.1.1概念結(jié)構(gòu)設(shè)計圖1數(shù)據(jù)庫E-R圖在線選擇題測試系統(tǒng)的數(shù)據(jù)庫E-R圖如圖1所示,其中:實體:教師teacher(教職工號tid,教師姓名tname,密碼tpasswd)課程course(課程號cid,課程名稱cname,開課學(xué)院cdep)學(xué)生student(學(xué)號sid,學(xué)生姓名sname,密碼spasswd)題組question_group(題組號gid,題目數(shù)量question_num,創(chuàng)建教師的教職工號tid,所屬課程的課程號cid,題組名稱gcontext)題目question(題組號gid,題號qno,回答正確人數(shù)right_num,總回答人數(shù)stu_num,題面qcontext,單選標志issingle)正確答案right_answer(正確答案序號rans,題組號rgid,題目號rqno)候選答案candidate(答案內(nèi)容answers,答案編號answer_no,題組號gid,題目號qno)聯(lián)系:教課<教師,課程>:N:N部分參與/全參與上課<學(xué)生,課程>:N:N部分參與/部分參與出題<教師,題組>:1:N部分參與/全參與課題關(guān)聯(lián)<課程,題組>:1:N部分參與/全參與做題記錄<學(xué)生,題組>:1:N部分參與/全參與,正確個數(shù)rights組題關(guān)聯(lián)<題組,題目>:1:N全參與/全參與題目答案<題目,候選答案>:1:N全參與/全參與候選正確<正確答案,候選答案>:1:1全參與/部分參與3.1.2邏輯結(jié)構(gòu)設(shè)計由E-R轉(zhuǎn)化為邏輯結(jié)構(gòu)的方法,借助工具獲得邏輯結(jié)構(gòu)設(shè)計。系統(tǒng)結(jié)構(gòu)較為簡單,不需要優(yōu)化。表:.teacher( tidchar(15),tnamevarchar(15),tpasswdvarchar(15), CONSTRAINTpk_teacherPRIMARYKEY(tid));student( sidchar(20),snamevarchar(15),spasswdvarchar(15), CONSTRAINTpk_studentPRIMARYKEY(sid));question_group(gidchar(20), question_numinteger,tidchar(15),cidchar(15), CONSTRAINTpk_groupPRIMARYKEY(gid));question( gidchar(20),qnointeger, right_numint8,stu_numint8, qcontextvarchar(100), issingleintegerDEFAULT1, CONSTRAINTpk_questionPRIMARYKEY(gid,qno));candidate(answersvarchar(100),answer_nosmallint, gidchar(20), qnointeger, CONSTRAINTpk_answersPRIMARYKEY(gid,qno,answer_no));course(cidchar(15),cnamevarchar(20), cdepvarchar(15), CONSTRAINTpk_coursePRIMARYKEY(cid));tc(tid_teacherchar(15), cid_coursechar(15), CONSTRAINTtc_pkPRIMARYKEY(tid_teacher,cid_course));sc(sid_studentchar(20), cid_coursechar(15), CONSTRAINTsc_pkPRIMARYKEY(sid_student,cid_course));right_anwser( ranssmallint,rgidchar(20),rqnointeger, CONSTRAINTpk_raPRIMARYKEY(rans,rgid,rqno));sg(gid_question_groupchar(20),sid_studentchar(20), CONSTRAINTsg_pkPRIMARYKEY(gid_question_group,sid_student));外碼約束:tcADDCONSTRAINTteacher_fkFOREIGNKEY(tid_teacher)REFERENCESpublic.teacher(tid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;tcADDCONSTRAINTcourse_fkFOREIGNKEY(cid_course)REFERENCESpublic.course(cid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;scADDCONSTRAINTstudent_fkFOREIGNKEY(sid_student)REFERENCESpublic.student(sid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;scADDCONSTRAINTcourse_fkFOREIGNKEY(cid_course)REFERENCESpublic.course(cid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;sgADDCONSTRAINTquestion_group_fkFOREIGNKEY(gid_question_group)REFERENCESpublic.question_group(gid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;sgADDCONSTRAINTstudent_fkFOREIGNKEY(sid_student)REFERENCESpublic.student(sid)MATCHFULLONDELETERESTRICTONUPDATECASCADENOTDEFERRABLE;question_groupADDCONSTRAINTfk_tid_question_groupFOREIGNKEY(tid)REFERENCESpublic.teacher(tid)MATCHFULLONDELETENOACTIONONUPDATENOACTIONNOTDEFERRABLE;question_groupADDCONSTRAINTfk_cid_groupFOREIGNKEY(cid)REFERENCESpublic.course(cid)MATCHFULLONDELETENOACTIONONUPDATENOACTIONNOTDEFERRABLE;questionADDCONSTRAINTfk_questionFOREIGNKEY(gid)REFERENCESpublic.question_group(gid)MATCHFULLONDELETENOACTIONONUPDATENOACTIONNOTDEFERRABLE;candidateADDCONSTRAINTfk_answerFOREIGNKEY(gid,qno)REFERENCESpublic.question(gid,qno)MATCHFULLONDELETENOACTIONONUPDATENOACTIONNOTDEFERRABLE;right_anwserADDCONSTRAINTfk_raFOREIGNKEY(rgid,rqno)REFERENCESpublic.question(gid,qno)MATCHFULLONDELETENOACTIONONUPDATENOACTIONNOTDEFERRABLE;3.2應(yīng)用設(shè)計3.2.1系統(tǒng)功能分析系統(tǒng)功能結(jié)構(gòu)如下圖所示:圖23.2.2執(zhí)行流程描述教師:index->loginservlet->refreshMainservlet->tea_main以下進入分支:(添加課程)->searchcourse->searchcourseservlet->addcourse->[createcourse->createcourseservlet->]addcourservlet->addcourseresult->tea_main(選擇課程)->viewqglistservlet->t_qglist (添加題組)->t_addqg->createquestiongroupservlet->addqg_result->tea_main (刪除題組)->deleteqgservlet->deleteresult->tea_main學(xué)生:index->loginservlet->refreshservlet->stu_main以下進入功能分支:(添加課程)->searchcourse->searchcourseservlet->addcourse->addcourservlet->addcourseresult->stu_main(選擇課程)->viewqglistservlet->s_qglist (選擇題組開始測試)->testservlet->s_qgtest->testcheckservlet->testresult->stu_main (刪除課程)->deletecourseservlet->deleteresult->stu_main3.2.3系統(tǒng)結(jié)構(gòu)描述系統(tǒng)采用MVC架構(gòu),數(shù)據(jù)庫讀寫由postgresql的jdbc以及esql.jar支持。對數(shù)據(jù)庫的操作封裝為DAO接口,具體為:CandidateDao,CourseDao,QuestionDao,QuestionGroupDao,RightAnswerDao,StudentDao,TeacherDao而DAO接口的實現(xiàn)為對應(yīng)的Impl類,其具體實例,由DaoManager可以獲得。com.web.servlet.Launcher負責(zé)系統(tǒng)在tomcat中的初始化。Servlet負責(zé)對用戶請求進行處理,調(diào)用action來或許數(shù)據(jù),然后將數(shù)據(jù)交由jsp頁面顯示。Servlet功能描述如下:AddCourseServlet學(xué)生/教師添加課程CreateCourseServlet教師創(chuàng)建課程CreateQuestionGroupServlet接收教師創(chuàng)建題組的請求,處理后交由action生成,然后將結(jié)果交由頁面顯示DeleteCourseServlet學(xué)生/教師刪除課程DeleteQuestionGroupServlet刪除已創(chuàng)建的題組LoginServlet用戶登錄處理RefreshMainPageServlet刷新主界面RegisterServlet注冊請求處理SearchCourseServlet課程檢索請求處理TestCheckServlet處理做題結(jié)果,將判定結(jié)果交由頁面顯示TestServlet根據(jù)請求獲取相應(yīng)的題目,傳給頁面ViewQgListServlet顯示題組列表ViewQuestionServlet顯示單個題目正答信息Action是將從功能角度對Dao進行封裝,其具體功能如下:AddCourseAction為學(xué)生/教師添加課程CreateCourseAction創(chuàng)建課程CreateQuestionGroupAction創(chuàng)建題組DeleteCourseAction刪除課程GetQuestionAction獲取相應(yīng)題組的題目列表LoginAction判定登錄情況ObtainQuestionGroupAction獲取題組列表RegisterAction注冊用戶SearchCourseAction搜索課程返回相應(yīng)列表TestCheckAction判斷測試結(jié)果TestGenerateAction測試列表生辰顯示頁面的功能在執(zhí)行流程中已有簡單敘述,不再進行更多描述。4.技術(shù)路線本系統(tǒng)主要使用了postgres數(shù)據(jù)庫,MVC架構(gòu)(帶有ESQL功能),jsp和javascript技術(shù)。postgres數(shù)據(jù)庫存儲學(xué)生表,教師表,選課表,授課表,題號表,題目表,答案表等等表數(shù)據(jù),在javabean中也有相關(guān)表的類和基本方法,通過對jdbc進行分裝后的ESQL對Web數(shù)據(jù)庫訪問,如list,query,update實現(xiàn)增刪改查功能。使用esql,使我們操作數(shù)據(jù)庫的效率增加,減少了繁瑣的變量設(shè)置以及結(jié)果的類型轉(zhuǎn)換,大大降低了工作量,也減少了錯誤出現(xiàn)的概率。Dao隱藏數(shù)據(jù)源細節(jié),實現(xiàn)Java對象與數(shù)據(jù)庫記錄的轉(zhuǎn)換,避免了上層代碼直接操縱數(shù)據(jù)庫,降低了數(shù)據(jù)庫變動所造成的影響。并實現(xiàn)PostgreSQL接口。如本系統(tǒng)中的StudentDao,TeacherDao繼承BaseDao內(nèi)部有增加用戶修改信息等很多PostgreSQL接口,實現(xiàn)對數(shù)據(jù)庫的訪問和修改。在開發(fā)過程中曾對由工具直接生成的過長表名many_student_has_many_course進行修改,變?yōu)閟c,只需要修改StudentDao即可完成,不需要對其他地方進行修改。servlet得到用戶提交信息后采取相應(yīng)的動作action修改后臺數(shù)據(jù),通過dao接口來連接數(shù)據(jù)庫使用esql語句來實現(xiàn)基本數(shù)據(jù)庫增刪改查操作,保證數(shù)據(jù)的一致性。引入action使系統(tǒng)的結(jié)構(gòu)更加清晰,代碼的可讀性增加。例如在學(xué)生做題過程中,servlet通過表單得到某一學(xué)生做題信息然后使用相應(yīng)action來調(diào)用StudentDao中的接口來修改數(shù)據(jù)庫信息。Action設(shè)計相應(yīng)的接口,調(diào)用下面的dao接口中的方法實現(xiàn)數(shù)據(jù)庫的訪問修改。Action封裝好后,可以給servlet調(diào)用。這樣使得處理過程模塊化,減小了下層處理方式改變所造成的影響。html和jsp用于顯示界面學(xué)生選課,做題和老師查看題目結(jié)果等信息,并還可以與用戶交互,還可以嵌套javascript處理一些用戶操作,例如檢查學(xué)生是否做完全部題目和處理老師添加題目等等,最后將用戶的操作主要以表單形式提交給servlet處理。使用原生的jsp,與java更加接近,利用已有的知識,掌握效率更高,節(jié)省了學(xué)習(xí)時間,為開發(fā)贏得了時間。5.關(guān)鍵技術(shù)及特色技術(shù)使用esql減少工作量,增強代碼可讀性。利用mvc架構(gòu)降低模塊之間的相互影響。具體分析參見4技術(shù)路線。單選題多選題有區(qū)分的生成,判定結(jié)果時,可以完美判斷單多選題的答案,同時可以統(tǒng)計正確題目數(shù)量,顯示錯誤題目的答案,為考生提供方便,也會為教師顯示正答情況。判定題目正確時,獲取數(shù)據(jù)庫內(nèi)該題目的所有答案,然后對傳入的答案列表進行掃描,判定是否存在不在正確答案中的內(nèi)容,然后對答案個數(shù)進行核對,保證判斷的正確性。同時,將數(shù)據(jù)庫中題目的right_num和stu_num進行更新,將錯誤的題目及其答案存入列表以供顯示。Javascript動態(tài)表單生成。在教師創(chuàng)建題組時,可以一次性動態(tài)添加所有題目,避免了頁面跳轉(zhuǎn)導(dǎo)致教師對上下文的遺忘,而產(chǎn)生重復(fù)或者錯誤操作。通過學(xué)習(xí)javascript,分析html標簽節(jié)點關(guān)系,子節(jié)點父節(jié)點以及它們之間聯(lián)系,在標簽中動態(tài)添加標簽得到一個子節(jié)點并用新的ID標識,然后把所有信息放在一個表單中全部提交給servlet處理,servlet中通過動態(tài)生成的ID獲取標簽相應(yīng)的信息,來訪問修改數(shù)據(jù)庫。教師輸入題目時另一個特色就是題目的選項不需要多余的點擊,只需要一個回車就可以增加一個選項,減少教師鼠標與鍵盤之間的交換次數(shù)。技術(shù)實現(xiàn)時,只需將文本域中的字符串以換行符為標志,進行切分,然后設(shè)置相同的題目編號,一次放入數(shù)據(jù)庫中即可。Javascript用于檢測不合要求的表單并進行異常處理。學(xué)生在做題過程中,如果漏選題目,沒有發(fā)現(xiàn),則在提交的時候,瀏覽器會檢測所有題目是否完成,如果出現(xiàn)未完成,則提示學(xué)生第一個未完成題目的題號,不對結(jié)果進行提交。具體實現(xiàn)上,就是在點擊提交按鈕時,瀏覽器會檢查所有的單選以及復(fù)選框,對于同一name屬性的單選或復(fù)選框,如果檢測時標志變量沒有改變則說明該選項組為被選擇過,那么就將當(dāng)前的題目序號傳給警告框顯示。6.結(jié)果分析用戶登錄(此為修改后的界面)開始的時候太過簡略。老師或者學(xué)生根據(jù)自己的注冊名稱登錄系統(tǒng),老師和學(xué)生看到的界面不同。用戶注冊界面(課上沒有展示)當(dāng)學(xué)生或者老師沒有注冊時點擊登錄界面的注冊,進入注冊界面,輸入相應(yīng)的信息進行注冊。教師登錄成功,登錄成功后可以看到選課信息界面,可以進行課程的添加和刪除書目。如果添加不成功,則在界面顯示添加課程失敗。添加題組的同時也可以查看之前的題組信息輸入題組信息,題目要一個一個添加,支持單選和多選查看答題結(jié)果,以便在后期進行相應(yīng)的講解學(xué)生登錄搜索課程,可以根據(jù)課程號或者課程名或者一起查詢課程在相應(yīng)輸入框內(nèi)輸入想要搜索的東西查詢結(jié)果進入題組查看題目并進行答題查看結(jié)果項目完成情況分析:根據(jù)不同身份登錄到不同的界面實現(xiàn)了,注冊也實現(xiàn)了,同時搜素課程、添加題組、添加課程、刪除課程、刪除題組、查看答題情況、學(xué)生搜索課程、學(xué)生查看題組、學(xué)生答題、學(xué)生查看答題結(jié)果等功能都按照預(yù)期實現(xiàn)。但是,根據(jù)之前的構(gòu)想我們本來準備在添加題目的時候可以直接導(dǎo)入Doc或者Txt文件添加題

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論