




已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
*實(shí)踐教學(xué)* 蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院 2013年春季學(xué)期工程開(kāi)發(fā)綜合訓(xùn)練題 目: 畢業(yè)設(shè)計(jì)管理系統(tǒng) 專業(yè)班級(jí): 10級(jí)軟件工程基地班 姓 名: * 學(xué) 號(hào): * 指導(dǎo)教師: * 成 績(jī): - 1 -摘 要該畢業(yè)設(shè)計(jì)管理系統(tǒng)采用的是B/S結(jié)構(gòu),以Sql Server 2008 + myeclipse + JSP作為開(kāi)發(fā)工具。本系統(tǒng)借助了網(wǎng)絡(luò)平臺(tái),不但使學(xué)生與老師進(jìn)行有效的溝通,使學(xué)生可以及時(shí)的了解有關(guān)畢業(yè)論文的相關(guān)事情,而且使論文的上傳查看、信息的管理、用戶的管理和數(shù)據(jù)庫(kù)的管理等工作更加容易,既提高了工作效率,也降低了成本。本系統(tǒng)主要針對(duì)于高校的畢業(yè)設(shè)計(jì)環(huán)節(jié)進(jìn)行管理。本系統(tǒng)實(shí)現(xiàn)了管理員對(duì)系統(tǒng)用戶信息(管理員信息、教師信息、學(xué)生信息)、課題信息管理等;教師角色對(duì)個(gè)人信息的修改,課題的添加,查詢管理、選題管理,論文管理等;評(píng)審角色對(duì)個(gè)人信息的修改,課題的評(píng)審等;學(xué)生角色可以對(duì)個(gè)人信息修改,查看成績(jī)、選題登記與查詢,論文提交與查看。關(guān)鍵詞:畢業(yè)論文選題;管理系統(tǒng);SQL Server;J2EE;GPMS目錄摘 要I目錄II一、需求分析11.1畢業(yè)論文管理的現(xiàn)狀11.2畢業(yè)論文管理系統(tǒng)的優(yōu)勢(shì)11.3 系統(tǒng)流程圖21.4層次結(jié)構(gòu)圖31.5數(shù)據(jù)流程圖61.5數(shù)據(jù)字典7二、概念結(jié)構(gòu)設(shè)計(jì)92.1系統(tǒng)E-R圖9三、邏輯結(jié)構(gòu)設(shè)計(jì)103.1各個(gè)表的結(jié)構(gòu)10四、系統(tǒng)實(shí)現(xiàn)134.1 建立數(shù)據(jù)庫(kù)134.1.1數(shù)據(jù)庫(kù)創(chuàng)建流程134.1.2數(shù)據(jù)庫(kù)關(guān)系134.2 程序設(shè)計(jì)144.2.1 工程目錄結(jié)構(gòu)144.2.2 核心技術(shù)說(shuō)明144.3 項(xiàng)目研發(fā)時(shí)間線20五、系統(tǒng)測(cè)試215.1 測(cè)試方案215.2 測(cè)試用例及結(jié)果21六、軟件使用說(shuō)明書(shū)246.1 登陸界面246.2 主界面246.3 查看個(gè)人信息256.4 修改密碼256.5 維護(hù)個(gè)人信息266.6 上報(bào)課題266.7 課題查詢276.8 未評(píng)題目查詢276.9 題目評(píng)審286.10 任務(wù)下派286.11發(fā)布題目296.12信息統(tǒng)計(jì)306.13信息管理30七、設(shè)計(jì)總結(jié)32八、致謝33九、參考文獻(xiàn)34一、需求分析1.1畢業(yè)論文管理的現(xiàn)狀目前,國(guó)內(nèi)外畢業(yè)論文選題一般采用兩種方式:一種將畢業(yè)設(shè)計(jì)存在軟盤(pán)上交;另一種則存放到教師的電腦上的一個(gè)共享目錄內(nèi)。但這兩種方法都有各自的弊端:前一種方法不方便攜帶、速度慢、容量小、易損壞;后一種方法雖然解決了軟盤(pán)容量小、容易壞的問(wèn)題。但存在一個(gè)更致命的缺點(diǎn):學(xué)生可以隨意的查看、更改和刪除其他同學(xué)的畢業(yè)設(shè)計(jì),造成大量如抄襲畢業(yè)設(shè)計(jì)、惡意刪除或修改其他同學(xué)畢業(yè)設(shè)計(jì)的事情發(fā)生;老師在幫學(xué)生修改畢業(yè)設(shè)計(jì)時(shí),也很容易弄不清楚畢業(yè)設(shè)計(jì)批改與否;畢業(yè)設(shè)計(jì)是誰(shuí)的或是舊畢業(yè)設(shè)計(jì)沒(méi)刪除掉,跟新畢業(yè)設(shè)計(jì)搞混了等情況,雖然有些可以用嚴(yán)格的紀(jì)律來(lái)實(shí)現(xiàn)管理,但仍然會(huì)給學(xué)生和老師帶來(lái)很多的麻煩。而且,由于畢業(yè)設(shè)計(jì)是一個(gè)持續(xù)較長(zhǎng)時(shí)間的過(guò)程,這其中需要同學(xué)和老師不斷的溝通,但是期間若是由于學(xué)生有事或身體不適等情況,就不得不中途請(qǐng)假,而這勢(shì)必會(huì)影響到畢業(yè)設(shè)計(jì)的順利完成。在當(dāng)前的信息化時(shí)代中,任何學(xué)校,都需要一個(gè)實(shí)用的畢業(yè)論文選題來(lái)規(guī)范畢業(yè)論文選題,這將會(huì)大大提高學(xué)校的管理水平,優(yōu)化資源,實(shí)現(xiàn)效益的最大化。現(xiàn)在國(guó)內(nèi)外也有很多畢業(yè)論文選題的軟件,采用的技術(shù)也是多種多樣,如基于JSP、FTP模式,但大多數(shù)畢業(yè)論文選題主要用于網(wǎng)絡(luò)學(xué)院的遠(yuǎn)程教學(xué)。至于校園內(nèi)的正規(guī)教學(xué),利用畢業(yè)論文選題組織管理教學(xué)活動(dòng)的并不多。針對(duì)國(guó)內(nèi)外對(duì)教學(xué)管理軟件的巨大需要和基本需要,一個(gè)好的教學(xué)管理軟件,必須功能齊全,操作簡(jiǎn)便,向用戶展示友善的操作界面。在完善功能的同時(shí)又必須兼顧系統(tǒng)的靈活性,安全性,健壯性。一個(gè)好的教學(xué)管理系統(tǒng),不管是計(jì)算機(jī)專業(yè)人員還是其他用戶都能很快上手,操作簡(jiǎn)單,便于安裝,容易普及。1.2畢業(yè)論文管理系統(tǒng)的優(yōu)勢(shì)由于學(xué)校教學(xué)功能的特殊定位,致使教師和學(xué)生必須在除了簡(jiǎn)單的師生區(qū)別外,還有合作意味的關(guān)系。學(xué)生上交畢業(yè)設(shè)計(jì)和老師批改畢業(yè)設(shè)計(jì),這本身除了學(xué)習(xí)交流外,還是一個(gè)合作的概念。所以,這其中的信息管理流程,需要以一個(gè)規(guī)范的MIS來(lái)管理。畢業(yè)論文管理系統(tǒng)的優(yōu)勢(shì)主要表現(xiàn)在三個(gè)方面:1、畢業(yè)設(shè)計(jì)無(wú)紙化,環(huán)保又方便。傳統(tǒng)的畢業(yè)設(shè)計(jì)上交方式,都是經(jīng)由學(xué)生科目代表統(tǒng)一收齊后,交到教師辦公室,然后教師抽取一個(gè)整段的時(shí)間,或是若干分時(shí)間段,一份一份地手工翻閱批改,然后再做好相關(guān)記錄。這種傳統(tǒng)的方式,一是會(huì)有很大的體力消耗,二是在精力上也是不小的付出,而且這種辛苦在很多時(shí)候往往沒(méi)能得到滿意的回復(fù)。而無(wú)紙化畢業(yè)設(shè)計(jì),只需在電腦前點(diǎn)點(diǎn)鼠標(biāo),在體力上幾乎沒(méi)有多大的消耗,而且在環(huán)保、效率、針對(duì)性教學(xué)指導(dǎo)方面做得要比傳統(tǒng)的畢業(yè)論文選題科學(xué)得多。2、科學(xué)管理,安全可靠。傳統(tǒng)的畢業(yè)論文選題方式,都是一份份獨(dú)立的畢業(yè)設(shè)計(jì),一個(gè)學(xué)生對(duì)應(yīng)一份,而這么一撂的設(shè)計(jì),經(jīng)常會(huì)由于各種原因,丟失或是污損,給畢業(yè)論文選題和教學(xué)進(jìn)程帶來(lái)很大的麻煩和不便。而畢業(yè)論文選題的動(dòng)作,只需做好系統(tǒng)數(shù)據(jù)庫(kù)的保護(hù),以上問(wèn)題可以迎刃而解了。3、簡(jiǎn)化工作,促進(jìn)其他方面的綜合發(fā)展。由于畢業(yè)論文選題的介入運(yùn)行,可以使教師騰出更多的時(shí)間,做更多針對(duì)性的個(gè)性化教學(xué)服務(wù),從而使每個(gè)學(xué)生都有機(jī)會(huì)在學(xué)業(yè)上有更大的進(jìn)步。1.3 系統(tǒng)流程圖登錄失敗登陸成功登陸者的身份學(xué)生登錄界面主界面學(xué)生模塊教師模塊評(píng)審人模塊管理員模塊教師管理評(píng)審人圖1-1 系統(tǒng)流程圖351.4層次結(jié)構(gòu)圖圖1-2 學(xué)生層次結(jié)構(gòu)圖圖1-3 教師層次結(jié)構(gòu)圖圖1-4 評(píng)審人層次結(jié)構(gòu)圖圖1-5 管理員層次結(jié)構(gòu)圖1.5數(shù)據(jù)流程圖圖1-6 系統(tǒng)數(shù)據(jù)流圖1.5數(shù)據(jù)字典 主要的數(shù)據(jù)字典:表1-1 管理員信息數(shù)據(jù)字典名字:管理員信息別名:administrator描述:管理員的相關(guān)信息定義:管理員信息=管理員id+管理員name+管理員password位置:存于數(shù)據(jù)庫(kù)表1-2 教師信息數(shù)據(jù)字典名字:教師信息別名:teacher描述:教師的相關(guān)信息定義:教師信息=教師id+教師密碼+教師姓名+教師職稱+教師性別+教師工作地點(diǎn)+教師QQ+教師電話位置:存于數(shù)據(jù)庫(kù)表1-3 學(xué)生信息數(shù)據(jù)字典名字:學(xué)生信息別名:student描述:學(xué)生的相關(guān)信息定義:學(xué)生信息=學(xué)生id+學(xué)生姓名+學(xué)生性別+學(xué)生系別+學(xué)生專業(yè)+學(xué)生年級(jí)+學(xué)生班級(jí)+學(xué)生成績(jī)+學(xué)生電話+學(xué)生密碼位置:存于數(shù)據(jù)庫(kù)表1-4課題信息數(shù)據(jù)字典名字:課題信息別名:topic描述:課題的相關(guān)信息定義:課題信息=課題id+課題名+出題教師+課題類別+所屬專業(yè)+需求人數(shù)+課題要求+課題內(nèi)容位置:存于數(shù)據(jù)庫(kù)表1-5學(xué)生選題數(shù)據(jù)字典名字:學(xué)生選題信息別名:choosetopic描述:學(xué)生和已選的課題的對(duì)應(yīng)關(guān)系定義:學(xué)生選題信息=學(xué)生id+課題id位置:存于數(shù)據(jù)庫(kù),在選題時(shí)應(yīng)用表1-6管理員分配答辯老師數(shù)據(jù)字典名字:管理員分配答辯老師別名:answer描述:管理員為每一個(gè)課題分配5位答辯老師,其中一名為答辯組長(zhǎng)。定義:管理員分配答辯老師=答辯題目id+答辯題目+答辯組長(zhǎng)+答辯老師1+答辯老師2+答辯老師3+答辯老師4+答辯時(shí)間+答辯教室位置:存于數(shù)據(jù)庫(kù),在答辯時(shí)應(yīng)用表1-7 學(xué)生成績(jī)信息數(shù)據(jù)字典名字:學(xué)生成績(jī)信息別名:score描述:學(xué)生成績(jī)的相關(guān)信息定義:學(xué)生成績(jī)信息=成績(jī)id+學(xué)生名字+實(shí)習(xí)成績(jī)+指導(dǎo)成績(jī)+評(píng)閱成績(jī)+答辯成績(jī)位置:存于數(shù)據(jù)庫(kù),在歸檔時(shí)應(yīng)用二、概念結(jié)構(gòu)設(shè)計(jì)2.1系統(tǒng)E-R圖本系統(tǒng)涉及的實(shí)體主要由管理員、教師、學(xué)生、課題組成,主要有監(jiān)督、出題、審題、選題等幾個(gè)關(guān)系。各實(shí)體屬性和關(guān)系圖如下圖所示。管理員姓名密碼教師職稱學(xué)歷密碼性別教研室姓名電話專業(yè)監(jiān)督監(jiān)督監(jiān)督學(xué)生密碼班級(jí)電話性別姓名課題專業(yè)班級(jí)評(píng)題人出題人名稱管理員學(xué)生教師課題審題出題選題1n1n1nnn11n圖2-1 系統(tǒng)E-R圖三、邏輯結(jié)構(gòu)設(shè)計(jì)3.1各個(gè)表的結(jié)構(gòu)表3-1教師表(T_teacher)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1Tidint20是否教工號(hào)2Tnamevachar20姓名3Tpasswordvarchar32否密碼MD5加密表3-2教師詳細(xì)信息表(T_teadetail)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1TidInt是否教工號(hào)外鍵(T_teacher:Tid)2TnameVachar20姓名3Tsexchar2性別4Schidtinyint學(xué)院號(hào)外鍵(T_schools:Schid)5Tphonebigint電話6Tqqbigintqq7Tmailvarchar50郵箱8Tworkplacevarchar30辦公地點(diǎn)9Ttitlevarchar10職稱表3-3畢設(shè)題目表(T_topic)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1Topidint是否題目編號(hào)2Topnamevarchar50否題目名稱3Toppropertychar8題目性質(zhì)理論研究,生產(chǎn)實(shí)踐, 科學(xué)實(shí)驗(yàn)4Toptypechar10題目類型工程設(shè)計(jì)型,工程技術(shù)型,實(shí)驗(yàn)研究型,軟件開(kāi)發(fā)型5Topsourcevarchar50題目來(lái)源6Topcontenttext題目?jī)?nèi)容7Toptimedatetime否getdate()發(fā)布日期8Topselectbit0是否已被選1為是;0為否9Tidint否教師編號(hào)外鍵(T_teacher:Tid)表3-4畢設(shè)題目臨時(shí)表(T_temptopictb)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1Topidint是否題目編號(hào)2Topnamevarchar50否題目名稱3Toppropertychar8題目性質(zhì)理論研究,生產(chǎn)實(shí)踐, 科學(xué)實(shí)驗(yàn)4Toptypechar10題目類型工程設(shè)計(jì)型,工程技術(shù)型,實(shí)驗(yàn)研究型,軟件開(kāi)發(fā)型5Topsourcevarchar50題目來(lái)源6Topcontenttext題目?jī)?nèi)容7Toptimedatetime否getdate()上報(bào)日期8Tidint教師編號(hào)外鍵(T_teacher:Tid)9Ridint0評(píng)審編號(hào)外鍵(T_reviewer:Rid)表3-5系(專業(yè))表(T_faculties)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1Fidtinyint是否系編號(hào)2Fnamevarchar30否系名稱表 3-6-學(xué)院表(T_schools)序號(hào)列號(hào)數(shù)據(jù)類型長(zhǎng)度小數(shù)標(biāo)識(shí)主鍵允許空默認(rèn)值示意說(shuō)明1Schidtinyint是否學(xué)院編號(hào)2Schnamevarchar30否學(xué)院名稱四、系統(tǒng)實(shí)現(xiàn)4.1 建立數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)采用SqlServer2008,數(shù)據(jù)庫(kù)名稱為GPMS。4.1.1數(shù)據(jù)庫(kù)創(chuàng)建流程數(shù)據(jù)庫(kù)創(chuàng)建流程如下:圖4.1.1 數(shù)據(jù)庫(kù)創(chuàng)建流程4.1.2數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)關(guān)系圖如下:圖4.1.2 數(shù)據(jù)庫(kù)關(guān)系圖4.2 程序設(shè)計(jì)4.2.1 工程目錄結(jié)構(gòu)4.2.2 核心技術(shù)說(shuō)明1、J2EE中重量級(jí)框架 我們采用Java Servlet + Java Server Pages (JSP) + Enterprise Java Bean (EJB )的J2EE中重量級(jí)框架,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過(guò)去企業(yè)后端使用的信息產(chǎn)品彼此之間無(wú)法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。2、DAO(數(shù)據(jù)庫(kù)接口層)的封裝在核心J2EE模式中是這樣介紹DAO模式的:為了建立一個(gè)健壯的J2EE應(yīng)用,應(yīng)該將所有對(duì)數(shù)據(jù)源的訪問(wèn)操作抽象封裝在一個(gè)公共API中。用程序設(shè)計(jì)的語(yǔ)言來(lái)說(shuō),就是建立一個(gè)接口,接口中定義了此應(yīng)用程序中將會(huì)用到的所有事務(wù)方法。在這個(gè)應(yīng)用程序中,當(dāng)需要和數(shù)據(jù)源進(jìn)行交互的時(shí)候則使用這個(gè)接口,并且編寫(xiě)一個(gè)單獨(dú)的類來(lái)實(shí)現(xiàn)這個(gè)接口在邏輯上對(duì)應(yīng)這個(gè)特定的數(shù)據(jù)存儲(chǔ)。我們采用DAO的思想,將所有對(duì)數(shù)據(jù)源數(shù)據(jù)庫(kù)的訪問(wèn)操作抽象封裝在幾個(gè)接口類中,使事務(wù)界限更加清晰,分離了業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)基礎(chǔ)操作,代碼結(jié)構(gòu)也看起來(lái)非常清晰。還有一個(gè)好處是,數(shù)據(jù)庫(kù)的修改只要修改DAO層的訪問(wèn)方式就可以了,不用整個(gè)項(xiàng)目都進(jìn)行修改。3、Ajax技術(shù)異步刷新傳統(tǒng)的web應(yīng)用允許用戶填寫(xiě)表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然后返回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做 法浪費(fèi)了許多帶寬,因?yàn)樵谇昂髢蓚€(gè)頁(yè)面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù)(而不是返回整個(gè)頁(yè)面,只是把從服務(wù)器端上取出的數(shù)據(jù)填充到div或span層上去而已,實(shí)現(xiàn)無(wú)刷新的效果),它使用SOAP或其它一些基于 XML的web service接口,并在客戶端采用JavaScript處理來(lái)自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快 的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。使用Ajax的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為 迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒(méi)有改變過(guò)的信息。Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。4、數(shù)據(jù)庫(kù)連接池在傳統(tǒng)的兩層結(jié)構(gòu)中,客戶端程序在啟動(dòng)時(shí)打開(kāi)數(shù)據(jù)庫(kù)連接,在退出程序時(shí)關(guān)閉數(shù)據(jù)庫(kù)連接。這樣,在整個(gè)程序運(yùn)行中,每個(gè)客戶端始終占用一個(gè)數(shù)據(jù)庫(kù)連接,即使在大量沒(méi)有數(shù)據(jù)庫(kù)操作的空閑時(shí)間,如用戶輸入數(shù)據(jù)時(shí),從而造成數(shù)據(jù)庫(kù)連接的使用效率低下。 在三層結(jié)構(gòu)模式中,數(shù)據(jù)庫(kù)連接通過(guò)中間層的連接池管理。只有當(dāng)用戶真正需要進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),中間層才從連接池申請(qǐng)一個(gè)連接,數(shù)據(jù)庫(kù)操作完畢,連接立即釋放到連接池中,以供其他用戶使用。這樣,不僅大大提高了數(shù)據(jù)庫(kù)連接的使用效率,使得大量用戶可以共享較少的數(shù)據(jù)庫(kù)連接,而且省去了建立連接的時(shí)間。 我們以Tomcat7數(shù)據(jù)庫(kù)連接池配置sqlserver2008。Tomcat JDBC連接池提供對(duì)多種數(shù)據(jù)庫(kù)的支持。前提要修改tomcat服務(wù)器目錄下面的conf中的Context.xml配置文件和程序中的 Web.xml文件,代碼中以如下方式實(shí)現(xiàn): Contextc=newInitialContext();DataSourceds=(DataSource)c.lookup(java:comp/env/jdbc/books);conn=ds.getConnection();5、動(dòng)態(tài)頁(yè)面的實(shí)現(xiàn)(CSS+動(dòng)態(tài)js腳本)JS的作用是制作動(dòng).態(tài)網(wǎng)頁(yè)效果等,是提高用戶體驗(yàn)的利器!而CSS是定義網(wǎng)頁(yè)樣式,讓網(wǎng)頁(yè)元素更好的表現(xiàn)給用戶,好的的網(wǎng)頁(yè)表現(xiàn)形式也能提高用戶體驗(yàn)!js可以使網(wǎng)頁(yè)的功能更加豐富,給網(wǎng)頁(yè)添加更多實(shí)時(shí)的、動(dòng)態(tài)的、交互的內(nèi)容。當(dāng)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證時(shí),使用javascript可以在客戶端驗(yàn)證數(shù)據(jù),不需要把數(shù)據(jù)傳到服務(wù)器端再傳回來(lái),比較節(jié)省時(shí)間。你可以把網(wǎng)頁(yè)里的內(nèi)容隱藏起來(lái),然后當(dāng)鼠標(biāo)放到某個(gè)地方的時(shí)候把隱藏的內(nèi)容顯示出來(lái),就像這個(gè)頁(yè)面右上角的”我的知道“那個(gè)菜單做的事情。網(wǎng)頁(yè)里的下拉菜單基本上都使用js完成。當(dāng)你查看表格的時(shí)候,表格的內(nèi)容很多,你可以使用js給每一行數(shù)據(jù)設(shè)置不同的顏色以示區(qū)分,也可以用js完成鼠標(biāo)指到表格上表格就變色的功能。6、批量信息圖表統(tǒng)計(jì)程序以javascript實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中動(dòng)態(tài)數(shù)據(jù)以圖表形式顯示在頁(yè)面上,利用ajax將實(shí)現(xiàn)更好的用戶體驗(yàn)。這樣做減輕了服務(wù)端的壓力。不過(guò),這種方式的確定是客戶端變得龐大。而且其實(shí)現(xiàn)原理很復(fù)雜,基本是div實(shí)現(xiàn)點(diǎn)陣字原理(一點(diǎn)點(diǎn)畫(huà)上去的)來(lái)實(shí)現(xiàn)的。效率就顯得不夠快。和原來(lái)用jfreechart比較,感覺(jué)jfreechart不好的地方是他總是先生成圖。然后利用src來(lái)顯示,其效率也不怎么高。不過(guò)服務(wù)器好的話,客戶端就輕松。7、中文字符串相似度檢測(cè)的實(shí)現(xiàn)Levenshtein 距離,又稱編輯距離,指的是兩個(gè)字符串之間,由一個(gè)轉(zhuǎn)換成另一個(gè)所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個(gè)字符替換成另一個(gè)字符,插入一個(gè)字符,刪除一個(gè)字符。編輯距離的算法是首先由俄國(guó)科學(xué)家Levenshtein提出的,故又叫Levenshtein Distance算法。在程序中,為實(shí)現(xiàn)題目相似度匹配功能,我采用了Levenshtein Distance算法和最長(zhǎng)公共子序列算法LCS(Longest Common Subsequence)相結(jié)合的方式,計(jì)算預(yù)上報(bào)題目名稱和已發(fā)布題目的相似百分度。經(jīng)過(guò)大量數(shù)據(jù)測(cè)試,發(fā)現(xiàn)計(jì)算結(jié)果大于60%題目存在較為明顯的相似,故將結(jié)果定為相似度大于60%無(wú)法上報(bào)。核心代碼如下: /LCS algorithm 最長(zhǎng)公共子序列算法 private static int longestCommonSubstringLength(String S1, String S2) return longestCommonSubstrings(S1, S2, 0).toString().length(); private static Collection longestCommonSubstrings(String S1, String S2, int minimumLength) Collection indexes = new ArrayList(); int Max = minimumLength; for (int i = 0; i S1.length(); i+) for (int j = 0; j S2.length(); j+) int x = 0; int y = Math.min(S1.length()-i,S2.length()-j); while (x Max) Max = x; indexes = new ArrayList(); indexes.add(i); else if (x = Max) indexes.add(i); Collection results = new HashSet(); for (Integer i : indexes) results.add(S1.substring(i, (i + Max); return results; /Levenshtein Distance 算法實(shí)現(xiàn) public static double getEditDistance(String s, String t) int d; / matrix int n; / length of s int m; / length of t int i; / iterates through s int j; / iterates through t char s_i; / ith character of s char t_j; / jth character of t int cost; / cost int distance; /edit distance double similarity; / Step 1 n = s.length(); m = t.length(); String ss = s+s; int len = longestCommonSubstringLength(ss,t); if(lens.length() len=s.length(); len *= 2; / Prevent 100% similarity between a string and its / cyclically shifted version (e.g. aircon and conair) if (len = s.length() + t.length() & s.length()=t.length() len-; similarity = len/(s.length()+t.length()*1.0)*100; return similarity; else if (n = 0) return m; if (m = 0) return n; d = new intn + 1m + 1; / Step 2 for (i = 0; i = n; i+) di0 = i; for (j = 0; j = m; j+) d0j = j; / Step 3 for (i = 1; i = n; i+) s_i = s.charAt(i - 1); / Step 4 for (j = 1; j = m; j+) t_j = t.charAt(j - 1); / Step 5 if (s_i = t_j) cost = 0; else cost = 1; / Step 6 dij = Minimum(di - 1j + 1, dij - 1 + 1, di - 1j - 1 + cost); distance = dnm; similarity = (1-distance/(s.length()+t.length()*1.0)*100; return similarity; 8、美觀高效驗(yàn)證碼的實(shí)現(xiàn)驗(yàn)證碼一般是防止有人利用機(jī)器人自動(dòng)批量注冊(cè)、對(duì)特定的注冊(cè)用戶用特定程序暴力破解方式進(jìn)行不斷的登陸、灌水。因?yàn)轵?yàn)證碼是一個(gè)混合了數(shù)字或符號(hào)的圖片,人眼看起來(lái)都費(fèi)勁,機(jī)器識(shí)別起來(lái)就更困難。我們的圖片驗(yàn)證碼經(jīng)過(guò)多次測(cè)試檢驗(yàn),采用數(shù)字“0-9”和字母“a-z”“A-Z”,排除易混淆的字母和數(shù)字,不區(qū)分大小寫(xiě)。通過(guò)測(cè)試,乳白色底字碼更易識(shí)別,隨機(jī)干擾線和隨機(jī)干擾點(diǎn)20條左右最合適。/定義驗(yàn)證碼圖像的緩沖流BufferedImage buffImg = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); /產(chǎn)生圖形上下文Graphics2D g = buffImg.createGraphics(); /創(chuàng)建隨機(jī)數(shù)產(chǎn)生函數(shù)Random random = new Random(); /將驗(yàn)證碼圖像背景填充為白色g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); /創(chuàng)建字體格式,字體的大小則根據(jù)驗(yàn)證碼圖片的高度來(lái)設(shè)定。Font font = new Font(Fixedsys,Font.BOLD, fontHeight); /設(shè)置字體。g.setFont(font); /為驗(yàn)證碼圖片畫(huà)邊框,為一個(gè)像素。g.setColor(Color.GRAY); g.drawRect(0, 0, width - 1, height - 1); /隨機(jī)生產(chǎn)22跳圖片干擾線條,使驗(yàn)證碼圖片中的字符不被輕易識(shí)別g.setColor(Color.LIGHT_GRAY); for(int i = 0; i22; i+) int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); /randomCode保存隨機(jī)產(chǎn)生的驗(yàn)證碼StringBuffer randomCode = new StringBuffer(); /定義顏色三素int red = 0, green = 0, blue = 0; /隨機(jī)生產(chǎn)codeNum個(gè)數(shù)字驗(yàn)證碼for (int i = 0; icodeNum; i+) /得到隨機(jī)產(chǎn)生的驗(yàn)證碼String strRand = String.valueOf(codesrandom.nextInt(codes.length); /使用隨機(jī)函數(shù)產(chǎn)生隨機(jī)的顏色分量來(lái)構(gòu)造顏色值,這樣輸出的每位數(shù)字的顏色值都將不同。red = random.nextInt(255); green = random.nextInt(255); blue = random.nextInt(255); /隨即生成驗(yàn)證碼字符的水平偏移量 int w = 0; int x = (i + 1) % 2; if (x = random.nextInt(2) w = codeY - random.nextInt(7); else w = codeY + random.nextInt(7); /用隨機(jī)產(chǎn)生的顏色將驗(yàn)證碼繪制到圖像中。g.setColor(new Color(red, green, blue); g.drawString(strRand, fontHeight*i+10, codeY); /將產(chǎn)生的四個(gè)隨機(jī)數(shù)組合在一起。randomCode.append(strRand);9、用戶密碼MD5加密及異常登錄的預(yù)防我們采用用戶密碼MD5加密技術(shù),這樣既能防止數(shù)據(jù)庫(kù)管理員盜取用戶數(shù)據(jù)非法操作,就算有人得到數(shù)據(jù)庫(kù),找到的也是MD5加密后的一段亂碼,破解是能破解,但是很費(fèi)工夫的。所以基本上可以說(shuō)是安全的。以前MD5被認(rèn)為是不可逆的,不過(guò)現(xiàn)在被破解了,不過(guò)還是比較安全的。Filter可以使用通配符用來(lái)過(guò)濾一個(gè)、多個(gè)url,或者過(guò)濾一個(gè)、多個(gè)的Servlet。我們使用Filter過(guò)濾一些成功操作界面,防止非法用戶繞過(guò)登錄頁(yè)面直接進(jìn)入到成功頁(yè)面。對(duì)用戶的異常訪問(wèn),用error.jsp頁(yè)面攔截,并在5秒后強(qiáng)行跳回登陸頁(yè)面,使用戶先登錄系統(tǒng)。4.3 項(xiàng)目研發(fā)時(shí)間線圖4.3.1 項(xiàng)目研發(fā)時(shí)間線五、系統(tǒng)測(cè)試5.1 測(cè)試方案黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用,在測(cè)試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試者在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。黑盒法是窮舉輸入測(cè)試,只有把所有可能的輸入都作為測(cè)試情況使用,才能以這種方法查出程序中所有的錯(cuò)誤。實(shí)際上測(cè)試情況有無(wú)窮多個(gè),人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但是可能的輸入進(jìn)行測(cè)試。白盒測(cè)試按照程序內(nèi)部的邏輯對(duì)程序進(jìn)行測(cè)試,檢查程序中的每條通路是否能按預(yù)定要求正確工作。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試。在這里主要采用的是黑盒測(cè)試,并以白盒測(cè)試為輔助測(cè)試。5.2 測(cè)試用例及結(jié)果1登錄時(shí),輸入正確的和錯(cuò)誤的用戶ID和密碼,轉(zhuǎn)向是否正確1)正確的用戶名和密碼:輸入:用戶名:10240001,密碼:10240001預(yù)期輸出:登陸到教師模塊主頁(yè)。2)錯(cuò)誤的用戶名和密碼:輸入:用戶名:12345,密碼:345預(yù)期輸出:跳轉(zhuǎn)到教師登陸頁(yè)面。 以上測(cè)試用例經(jīng)過(guò)驗(yàn)證是正確的。2教師登錄成功后,是否可以上報(bào)課題。圖5-1 添加課題測(cè)試3是否可以修改個(gè)人信息。圖5-2 修改個(gè)人信息測(cè)試4是否可以修改課題信息。圖5-3修改課題信息測(cè)試六、軟件使用說(shuō)明書(shū)6.1 登陸界面教師輸入正確的用戶名和密碼,就可以進(jìn)入到畢業(yè)設(shè)計(jì)管理系統(tǒng),初始密碼與用戶名一致,登陸界面如圖6-1所示 圖6-1 登陸界面6.2 主界面 登陸驗(yàn)證若正確的話,進(jìn)入主界面,如圖6-2所示:圖6-2 主界面6.3 查看個(gè)人信息點(diǎn)擊菜單欄“個(gè)人信息”欄目,進(jìn)入個(gè)人詳細(xì)信息表單,如下圖所示:圖6-3 個(gè)人信息查詢6.4 修改密碼點(diǎn)擊菜單欄“修改密碼”欄目,進(jìn)入密碼修改界面:圖6-4 修改密碼6.5 維護(hù)個(gè)人信息點(diǎn)擊菜單欄“信息維護(hù)”欄目,進(jìn)入個(gè)人信息維護(hù)界面:圖6-5 維護(hù)個(gè)人信息6.6 上報(bào)課題點(diǎn)擊菜單欄“上報(bào)課題”欄目,進(jìn)入上報(bào)課題界面,這里自動(dòng)進(jìn)行字符串的匹配,即題目相似度的檢測(cè),點(diǎn)擊添加按鈕,即可向數(shù)據(jù)庫(kù)中填入一條畢設(shè)題目,界面如下圖所示:圖6-6 上報(bào)課題6.7 課題查詢點(diǎn)擊菜單欄“課題查詢”欄目,進(jìn)入課題查詢界面: 圖6-7 課題查詢6.8 未評(píng)題目查詢點(diǎn)擊菜單欄“查詢未評(píng)題目”欄目,可以查看未評(píng)題目的列表,再點(diǎn)擊右側(cè)評(píng)審按鈕進(jìn)入題目評(píng)審界面,如下圖所示:圖6-8 未評(píng)題目查詢6.9 題目評(píng)審題目評(píng)審界面如下圖所示,點(diǎn)擊評(píng)審按鈕提交對(duì)該題目的詳細(xì)評(píng)審意見(jiàn),并由管理員最終審核發(fā)布。圖6-9 題目評(píng)審6.10 任務(wù)下派由管理員查詢每道題目的評(píng)審意見(jiàn),并選出任務(wù)數(shù)相對(duì)較少的評(píng)審
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)審員考試試題及答案 (三)
- 海洋數(shù)字金融服務(wù)創(chuàng)新
- 2025年上海松江區(qū)天馬山學(xué)校招聘教師考試筆試試題(含答案)
- 老班長(zhǎng)介紹課件
- 老年疼痛患者護(hù)理課件
- 老年護(hù)理課件模板
- 老年護(hù)理圖文課件
- 老年人心理健康咨詢課件
- 老師的視頻課件制作
- 《建筑項(xiàng)目合同約定場(chǎng)地估值爭(zhēng)議處理協(xié)議》
- 工程總承包管理制度
- 2025年云南新華印刷五廠有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 汽車實(shí)訓(xùn)室安全課件
- 臨時(shí)施工出入口交通疏導(dǎo)方案
- 《OPPLE歐普照明》課件
- 國(guó)家開(kāi)放大學(xué)電大??啤督ㄖこ添?xiàng)目管理》期末試題及答案
- 醫(yī)療設(shè)備器材供貨安裝、調(diào)試及售后服務(wù)方案
- 部編版語(yǔ)文三年級(jí)上冊(cè)第四單元教材解讀大單元集體備課
- 10kV小區(qū)供配電設(shè)計(jì)、采購(gòu)、施工EPC 投標(biāo)方案(技術(shù)方案)
- 2024-2025學(xué)年初中物理八年級(jí)下冊(cè)蘇科版(2024)教學(xué)設(shè)計(jì)合集
- 中外廣告史(第三版) 課件全套 何玉杰 第0-11章 緒論、中國(guó)古代廣告的發(fā)展- 日本廣告的發(fā)展
評(píng)論
0/150
提交評(píng)論