2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  蘭州理工大學</b></p><p><b>  計算機與通信學院</b></p><p><b>  2013年春季學期</b></p><p><b>  工程開發(fā)綜合訓練</b></p><p>  題 目:

2、 畢業(yè)設計管理系統(tǒng) </p><p>  專業(yè)班級: 10級軟件工程基地班 </p><p>  姓 名: *** </p><p>  學 號: *** </p><p>  指導教師: *** <

3、;/p><p>  成 績: </p><p><b>  摘 要</b></p><p>  該畢業(yè)設計管理系統(tǒng)采用的是B/S結構,以Sql Server 2008 + myeclipse + JSP作為開發(fā)工具。本系統(tǒng)借助了網(wǎng)絡平臺,不但使學生與老師進行有效的溝通,使學生可以及時的了解有關

4、畢業(yè)論文的相關事情,而且使論文的上傳查看、信息的管理、用戶的管理和數(shù)據(jù)庫的管理等工作更加容易,既提高了工作效率,也降低了成本。本系統(tǒng)主要針對于高校的畢業(yè)設計環(huán)節(jié)進行管理。</p><p>  本系統(tǒng)實現(xiàn)了管理員對系統(tǒng)用戶信息(管理員信息、教師信息、學生信息)、課題信息管理等;教師角色對個人信息的修改,課題的添加,查詢管理、選題管理,論文管理等;評審角色對個人信息的修改,課題的評審等;學生角色可以對個人信息修改,查

5、看成績、選題登記與查詢,論文提交與查看。</p><p>  關鍵詞:畢業(yè)論文選題;管理系統(tǒng);SQL Server;J2EE;GPMS</p><p><b>  目錄</b></p><p><b>  摘 要I</b></p><p><b>  目錄II</b><

6、;/p><p><b>  一、需求分析1</b></p><p>  1.1畢業(yè)論文管理的現(xiàn)狀1</p><p>  1.2畢業(yè)論文管理系統(tǒng)的優(yōu)勢1</p><p>  1.3 系統(tǒng)流程圖2</p><p>  1.4層次結構圖3</p><p>  1.5數(shù)據(jù)流程

7、圖6</p><p><b>  1.5數(shù)據(jù)字典7</b></p><p>  二、概念結構設計9</p><p>  2.1系統(tǒng)E-R圖9</p><p>  三、邏輯結構設計10</p><p>  3.1各個表的結構10</p><p><b>

8、  四、系統(tǒng)實現(xiàn)13</b></p><p>  4.1 建立數(shù)據(jù)庫13</p><p>  4.1.1數(shù)據(jù)庫創(chuàng)建流程13</p><p>  4.1.2數(shù)據(jù)庫關系13</p><p>  4.2 程序設計14</p><p>  4.2.1 工程目錄結構14</p><p&

9、gt;  4.2.2 核心技術說明14</p><p>  4.3 項目研發(fā)時間線20</p><p><b>  五、系統(tǒng)測試21</b></p><p>  5.1 測試方案21</p><p>  5.2 測試用例及結果21</p><p>  六、軟件使用說明書24</p

10、><p>  6.1 登陸界面24</p><p>  6.2 主界面24</p><p>  6.3 查看個人信息25</p><p>  6.4 修改密碼25</p><p>  6.5 維護個人信息26</p><p>  6.6 上報課題26</p><p&g

11、t;  6.7 課題查詢27</p><p>  6.8 未評題目查詢27</p><p>  6.9 題目評審28</p><p>  6.10 任務下派28</p><p>  6.11發(fā)布題目29</p><p>  6.12信息統(tǒng)計30</p><p>  6.13信息管理

12、30</p><p><b>  七、設計總結32</b></p><p><b>  八、致謝33</b></p><p><b>  九、參考文獻34</b></p><p><b>  一、需求分析</b></p><p&g

13、t;  1.1畢業(yè)論文管理的現(xiàn)狀</p><p>  目前,國內外畢業(yè)論文選題一般采用兩種方式:一種將畢業(yè)設計存在軟盤上交;另一種則存放到教師的電腦上的一個共享目錄內。但這兩種方法都有各自的弊端:前一種方法不方便攜帶、速度慢、容量小、易損壞;后一種方法雖然解決了軟盤容量小、容易壞的問題。但存在一個更致命的缺點:學生可以隨意的查看、更改和刪除其他同學的畢業(yè)設計,造成大量如抄襲畢業(yè)設計、惡意刪除或修改其他同學畢業(yè)設計

14、的事情發(fā)生;老師在幫學生修改畢業(yè)設計時,也很容易弄不清楚畢業(yè)設計批改與否;畢業(yè)設計是誰的或是舊畢業(yè)設計沒刪除掉,跟新畢業(yè)設計搞混了等情況,雖然有些可以用嚴格的紀律來實現(xiàn)管理,但仍然會給學生和老師帶來很多的麻煩。而且,由于畢業(yè)設計是一個持續(xù)較長時間的過程,這其中需要同學和老師不斷的溝通,但是期間若是由于學生有事或身體不適等情況,就不得不中途請假,而這勢必會影響到畢業(yè)設計的順利完成。在當前的信息化時代中,任何學校,都需要一個實用的畢業(yè)論文選

15、題來規(guī)范畢業(yè)論文選題,這將會大大提高學校的管理水平,優(yōu)化資源,實現(xiàn)效益的最大化。</p><p>  現(xiàn)在國內外也有很多畢業(yè)論文選題的軟件,采用的技術也是多種多樣,如基于JSP、FTP模式,但大多數(shù)畢業(yè)論文選題主要用于網(wǎng)絡學院的遠程教學。至于校園內的正規(guī)教學,利用畢業(yè)論文選題組織管理教學活動的并不多。針對國內外對教學管理軟件的巨大需要和基本需要,一個好的教學管理軟件,必須功能齊全,操作簡便,向用戶展示友善的操作界

16、面。在完善功能的同時又必須兼顧系統(tǒng)的靈活性,安全性,健壯性。一個好的教學管理系統(tǒng),不管是計算機專業(yè)人員還是其他用戶都能很快上手,操作簡單,便于安裝,容易普及。</p><p>  1.2畢業(yè)論文管理系統(tǒng)的優(yōu)勢</p><p>  由于學校教學功能的特殊定位,致使教師和學生必須在除了簡單的師生區(qū)別外,還有合作意味的關系。學生上交畢業(yè)設計和老師批改畢業(yè)設計,這本身除了學習交流外,還是一個合作的

17、概念。所以,這其中的信息管理流程,需要以一個規(guī)范的MIS來管理。</p><p>  畢業(yè)論文管理系統(tǒng)的優(yōu)勢主要表現(xiàn)在三個方面:</p><p>  1、畢業(yè)設計無紙化,環(huán)保又方便。傳統(tǒng)的畢業(yè)設計上交方式,都是經(jīng)由學生科目代表統(tǒng)一收齊后,交到教師辦公室,然后教師抽取一個整段的時間,或是若干分時間段,一份一份地手工翻閱批改,然后再做好相關記錄。這種傳統(tǒng)的方式,一是會有很大的體力消耗,二是在精

18、力上也是不小的付出,而且這種辛苦在很多時候往往沒能得到滿意的回復。而無紙化畢業(yè)設計,只需在電腦前點點鼠標,在體力上幾乎沒有多大的消耗,而且在環(huán)保、效率、針對性教學指導方面做得要比傳統(tǒng)的畢業(yè)論文選題科學得多。</p><p>  2、科學管理,安全可靠。傳統(tǒng)的畢業(yè)論文選題方式,都是一份份獨立的畢業(yè)設計,一個學生對應一份,而這么一撂的設計,經(jīng)常會由于各種原因,丟失或是污損,給畢業(yè)論文選題和教學進程帶來很大的麻煩和不便

19、。而畢業(yè)論文選題的動作,只需做好系統(tǒng)數(shù)據(jù)庫的保護,以上問題可以迎刃而解了。</p><p>  3、簡化工作,促進其他方面的綜合發(fā)展。由于畢業(yè)論文選題的介入運行,可以使教師騰出更多的時間,做更多針對性的個性化教學服務,從而使每個學生都有機會在學業(yè)上有更大的進步。</p><p><b>  1.3 系統(tǒng)流程圖</b></p><p>  圖1-

20、1 系統(tǒng)流程圖</p><p><b>  1.4層次結構圖</b></p><p>  圖1-2 學生層次結構圖</p><p>  圖1-3 教師層次結構圖</p><p>  圖1-4 評審人層次結構圖</p><p>  圖1-5 管理員層次結構圖</p><p>

21、<b>  1.5數(shù)據(jù)流程圖</b></p><p>  圖1-6 系統(tǒng)數(shù)據(jù)流圖</p><p><b>  1.5數(shù)據(jù)字典 </b></p><p><b>  主要的數(shù)據(jù)字典:</b></p><p>  表1-1 管理員信息數(shù)據(jù)字典</p><p&g

22、t;  表1-2 教師信息數(shù)據(jù)字典</p><p>  表1-3 學生信息數(shù)據(jù)字典</p><p>  表1-4課題信息數(shù)據(jù)字典</p><p>  表1-5學生選題數(shù)據(jù)字典</p><p>  表1-6管理員分配答辯老師數(shù)據(jù)字典</p><p>  表1-7 學生成績信息數(shù)據(jù)字典</p><p&g

23、t;<b>  二、概念結構設計</b></p><p><b>  2.1系統(tǒng)E-R圖</b></p><p>  本系統(tǒng)涉及的實體主要由管理員、教師、學生、課題組成,主要有監(jiān)督、出題、審題、選題等幾個關系。各實體屬性和關系圖如下圖所示。</p><p>  圖2-1 系統(tǒng)E-R圖</p><p>

24、;<b>  三、邏輯結構設計</b></p><p><b>  3.1各個表的結構</b></p><p>  表3-1教師表(T_teacher)</p><p>  表3-2教師詳細信息表(T_teadetail)</p><p>  表3-3畢設題目表(T_topic)</p>

25、<p>  表3-4畢設題目臨時表(T_temptopictb)</p><p>  表3-5系(專業(yè))表(T_faculties)</p><p>  表 3-6-學院表(T_schools)</p><p><b>  四、系統(tǒng)實現(xiàn)</b></p><p><b>  4.1 建立數(shù)據(jù)庫<

26、;/b></p><p>  數(shù)據(jù)庫采用SqlServer2008,數(shù)據(jù)庫名稱為GPMS。</p><p>  4.1.1數(shù)據(jù)庫創(chuàng)建流程</p><p>  數(shù)據(jù)庫創(chuàng)建流程如下:</p><p>  圖4.1.1 數(shù)據(jù)庫創(chuàng)建流程</p><p>  4.1.2數(shù)據(jù)庫關系</p><p>&

27、lt;b>  數(shù)據(jù)庫關系圖如下:</b></p><p>  圖4.1.2 數(shù)據(jù)庫關系圖</p><p><b>  4.2 程序設計</b></p><p>  4.2.1 工程目錄結構</p><p>  4.2.2 核心技術說明</p><p>  1、J2EE中重量級框

28、架 </p><p>  我們采用Java Servlet + Java Server Pages (JSP) + Enterprise Java Bean (EJB )的J2EE中重量級框架,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規(guī)格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內部或外部難以互通的窘境。</p>

29、<p>  2、DAO(數(shù)據(jù)庫接口層)的封裝</p><p>  在核心J2EE模式中是這樣介紹DAO模式的:為了建立一個健壯的J2EE應用,應該將所有對數(shù)據(jù)源的訪問操作抽象封裝在一個公共API中。用程序設計的語言來說,就是建立一個接口,接口中定義了此應用程序中將會用到的所有事務方法。在這個應用程序中,當需要和數(shù)據(jù)源進行交互的時候則使用這個接口,并且編寫一個單獨的類來實現(xiàn)這個接口在邏輯上對應這個特定的

30、數(shù)據(jù)存儲。</p><p>  我們采用DAO的思想,將所有對數(shù)據(jù)源數(shù)據(jù)庫的訪問操作抽象封裝在幾個接口類中,使事務界限更加清晰,分離了業(yè)務邏輯和數(shù)據(jù)庫基礎操作,代碼結構也看起來非常清晰。還有一個好處是,數(shù)據(jù)庫的修改只要修改DAO層的訪問方式就可以了,不用整個項目都進行修改。</p><p>  3、Ajax技術異步刷新</p><p>  傳統(tǒng)的web應用允許用戶

31、填寫表單(form),當提交表單時就向web服務器發(fā)送一個請求。服務器接收并處理傳來的表單,然后返回一個新的網(wǎng)頁。這個做 法浪費了許多帶寬,因為在前后兩個頁面中的大部分HTML代碼往往是相同的。由于每次應用的交互都需要向服務器發(fā)送請求,應用的響應時間就依賴于服務器的響應時間。這導致了用戶界面的響應比本地應用慢得多。</p><p>  與此不同,AJAX應用可以僅向服務器發(fā)送并取回必需的數(shù)據(jù)(而不是返回整個頁面,

32、只是把從服務器端上取出的數(shù)據(jù)填充到div或span層上去而已,實現(xiàn)無刷新的效果),它使用SOAP或其它一些基于 XML的web service接口,并在客戶端采用JavaScript處理來自服務器的響應。因為在服務器和瀏覽器之間交換的數(shù)據(jù)大量減少,結果我們就能看到響應更快 的應用。同時很多的處理工作可以在發(fā)出請求的客戶端機器上完成,所以Web服務器的處理時間也減少了。</p><p>  使用Ajax的最大優(yōu)點,

33、就是能在不更新整個頁面的前提下維護數(shù)據(jù)。這使得Web應用程序更為 迅捷地回應用戶動作,并避免了在網(wǎng)絡上發(fā)送那些沒有改變過的信息。</p><p>  Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。</p><p><b>  4、數(shù)據(jù)庫連接池</b></p><p>  在傳統(tǒng)的兩層結構中,客戶端程序在啟動時

34、打開數(shù)據(jù)庫連接,在退出程序時關閉數(shù)據(jù)庫連接。這樣,在整個程序運行中,每個客戶端始終占用一個數(shù)據(jù)庫連接,即使在大量沒有數(shù)據(jù)庫操作的空閑時間,如用戶輸入數(shù)據(jù)時,從而造成數(shù)據(jù)庫連接的使用效率低下。 </p><p>  在三層結構模式中,數(shù)據(jù)庫連接通過中間層的連接池管理。只有當用戶真正需要進行數(shù)據(jù)庫操作時,中間層才從連接池申請一個連接,數(shù)據(jù)庫操作完畢,連接立即釋放到連接池中,以供其他用戶使用。這樣,不僅大大提高了數(shù)據(jù)庫

35、連接的使用效率,使得大量用戶可以共享較少的數(shù)據(jù)庫連接,而且省去了建立連接的時間。 </p><p>  我們以Tomcat7數(shù)據(jù)庫連接池配置sqlserver2008。Tomcat JDBC連接池提供對多種數(shù)據(jù)庫的支持。前提要修改tomcat服務器目錄下面的conf中的Context.xml配置文件和程序中的 Web.xml文件,代碼中以如下方式實現(xiàn): </p><p>  Context

36、 c = new InitialContext();DataSource ds = (DataSource)c.lookup("java:comp/env/jdbc/books");conn = ds.getConnection();</p><p>  5、動態(tài)頁面的實現(xiàn)(CSS+動態(tài)js腳本)&

37、lt;/p><p>  JS的作用是制作動.態(tài)網(wǎng)頁效果等,是提高用戶體驗的利器!而CSS是定義網(wǎng)頁樣式,讓網(wǎng)頁元素更好的表現(xiàn)給用戶,好的的網(wǎng)頁表現(xiàn)形式也能提高用戶體驗!js可以使網(wǎng)頁的功能更加豐富,給網(wǎng)頁添加更多實時的、動態(tài)的、交互的內容。當服務端需要對數(shù)據(jù)進行驗證時,使用javascript可以在客戶端驗證數(shù)據(jù),不需要把數(shù)據(jù)傳到服務器端再傳回來,比較節(jié)省時間。你可以把網(wǎng)頁里的內容隱藏起來,然后當鼠標放到某個地方的時

38、候把隱藏的內容顯示出來,就像這個頁面右上角的”我的知道“那個菜單做的事情。網(wǎng)頁里的下拉菜單基本上都使用js完成。當你查看表格的時候,表格的內容很多,你可以使用js給每一行數(shù)據(jù)設置不同的顏色以示區(qū)分,也可以用js完成鼠標指到表格上表格就變色的功能。</p><p>  6、批量信息圖表統(tǒng)計</p><p>  程序以javascript實現(xiàn)將數(shù)據(jù)庫中動態(tài)數(shù)據(jù)以圖表形式顯示在頁面上,利用aj

39、ax將實現(xiàn)更好的用戶體驗。這樣做減輕了服務端的壓力。不過,這種方式的確定是客戶端變得龐大。而且其實現(xiàn)原理很復雜,基本是div實現(xiàn)點陣字原理(一點點畫上去的)來實現(xiàn)的。效率就顯得不夠快。和原來用jfreechart比較,感覺jfreechart不好的地方是他總是先生成圖。然后利用src來顯示,其效率也不怎么高。不過服務器好的話,客戶端就輕松。</p><p>  7、中文字符串相似度檢測的實現(xiàn)</p>

40、<p>  Levenshtein 距離,又稱編輯距離,指的是兩個字符串之間,由一個轉換成另一個所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。編輯距離的算法是首先由俄國科學家Levenshtein提出的,故又叫Levenshtein Distance算法。</p><p>  在程序中,為實現(xiàn)題目相似度匹配功能,我采用了Levenshtein Di

41、stance算法和最長公共子序列算法LCS(Longest Common Subsequence)相結合的方式,計算預上報題目名稱和已發(fā)布題目的相似百分度。經(jīng)過大量數(shù)據(jù)測試,發(fā)現(xiàn)計算結果大于60%題目存在較為明顯的相似,故將結果定為相似度大于60%無法上報。核心代碼如下:</p><p>  //LCS algorithm 最長公共子序列算法</p><p>  private stati

42、c int longestCommonSubstringLength(String S1, String S2){</p><p>  return longestCommonSubstrings(S1, S2, 0).toString().length();</p><p><b>  }</b></p><p>  private stat

43、ic Collection<String> longestCommonSubstrings(String S1, String S2, int minimumLength){</p><p>  Collection<Integer> indexes = new ArrayList<Integer>();</p><p>  int Max = mini

44、mumLength;</p><p>  for (int i = 0; i < S1.length(); i++){</p><p>  for (int j = 0; j < S2.length(); j++){</p><p>  int x = 0;</p><p>  int y = Math.min(S1.length

45、()-i,S2.length()-j);</p><p>  while (x < y && (S1.charAt(i + x) == S2.charAt(j + x) )){</p><p><b>  x++;</b></p><p><b>  }</b></p><p>

46、;  if (x > Max){</p><p><b>  Max = x;</b></p><p>  indexes = new ArrayList<Integer>();</p><p>  indexes.add(i);</p><p>  }else if (x == Max){</p

47、><p>  indexes.add(i);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  Collection<String> results = n

48、ew HashSet<String>();</p><p>  for (Integer i : indexes){</p><p>  results.add(S1.substring(i, (i + Max)));</p><p><b>  }</b></p><p>  return results;

49、</p><p><b>  }</b></p><p>  //Levenshtein Distance 算法實現(xiàn)</p><p>  public static double getEditDistance(String s, String t) {</p><p>  int d[][]; // matrix<

50、;/p><p>  int n; // length of s</p><p>  int m; // length of t</p><p>  int i; // iterates through s</p><p>  int j; // iterates through t</p><p>  char s_i;

51、// ith character of s</p><p>  char t_j; // jth character of t</p><p>  int cost; // cost</p><p>  int distance; //edit distance</p><p>  double similarity;</p>

52、<p><b>  // Step 1</b></p><p>  n = s.length();</p><p>  m = t.length();</p><p>  String ss = s+s;</p><p>  int len = longestCommonSubstringLength(ss,t

53、);</p><p>  if(len>s.length()) len=s.length();</p><p><b>  len *= 2;</b></p><p>  // Prevent 100% similarity between a string and its</p><p>  // cyclica

54、lly shifted version (e.g. "aircon" and "conair")</p><p>  if (len == s.length() + t.length() && s.length()==t.length()){</p><p><b>  len--;</b></p>

55、<p>  similarity = len/((s.length()+t.length())*1.0)*100;</p><p>  return similarity;</p><p><b>  }else{</b></p><p>  if (n == 0) {</p><p><b>  

56、return m;</b></p><p><b>  }</b></p><p>  if (m == 0) {</p><p><b>  return n;</b></p><p><b>  }</b></p><p>  d = n

57、ew int[n + 1][m + 1];</p><p><b>  // Step 2</b></p><p>  for (i = 0; i <= n; i++) {</p><p>  d[i][0] = i;</p><p><b>  }</b></p><p&

58、gt;  for (j = 0; j <= m; j++) {</p><p>  d[0][j] = j;</p><p><b>  }</b></p><p><b>  // Step 3</b></p><p>  for (i = 1; i <= n; i++) {</

59、p><p>  s_i = s.charAt(i - 1);</p><p><b>  // Step 4</b></p><p>  for (j = 1; j <= m; j++) {</p><p>  t_j = t.charAt(j - 1);</p><p><b>  

60、// Step 5</b></p><p>  if (s_i == t_j) {</p><p><b>  cost = 0;</b></p><p><b>  } else {</b></p><p><b>  cost = 1;</b></p>

61、;<p><b>  }</b></p><p><b>  // Step 6</b></p><p>  d[i][j] = Minimum(d[i - 1][j] + 1, d[i][j - 1] + 1,</p><p>  d[i - 1][j - 1] + cost);</p>&l

62、t;p><b>  }</b></p><p><b>  }</b></p><p>  distance = d[n][m];</p><p>  similarity = (1-distance/((s.length()+t.length())*1.0))*100;</p><p>  

63、return similarity;</p><p><b>  }</b></p><p><b>  }</b></p><p>  8、美觀高效驗證碼的實現(xiàn)</p><p>  驗證碼一般是防止有人利用機器人自動批量注冊、對特定的注冊用戶用特定程序暴力破解方式進行不斷的登陸、灌水。因為驗證碼

64、是一個混合了數(shù)字或符號的圖片,人眼看起來都費勁,機器識別起來就更困難。</p><p>  我們的圖片驗證碼經(jīng)過多次測試檢驗,采用數(shù)字“0-9”和字母“a-z”“A-Z”,排除易混淆的字母和數(shù)字,不區(qū)分大小寫。通過測試,乳白色底字碼更易識別,隨機干擾線和隨機干擾點20條左右最合適。</p><p>  //定義驗證碼圖像的緩沖流</p><p>  Buffered

65、Image buffImg = new BufferedImage(</p><p>  width, height,BufferedImage.TYPE_INT_RGB); </p><p><b>  //產(chǎn)生圖形上下文</b></p><p>  Graphics2D g = buffImg.createGraphics(); </

66、p><p>  //創(chuàng)建隨機數(shù)產(chǎn)生函數(shù)</p><p>  Random random = new Random(); </p><p>  //將驗證碼圖像背景填充為白色</p><p>  g.setColor(Color.WHITE); </p><p>  g.fillRect(0, 0, width, heigh

67、t); </p><p>  //創(chuàng)建字體格式,字體的大小則根據(jù)驗證碼圖片的高度來設定。</p><p>  Font font = new Font("Fixedsys",Font.BOLD, fontHeight); </p><p><b>  //設置字體。</b></p><p>  g.s

68、etFont(font); </p><p>  //為驗證碼圖片畫邊框,為一個像素。</p><p>  g.setColor(Color.GRAY); </p><p>  g.drawRect(0, 0, width - 1, height - 1); </p><p>  //隨機生產(chǎn)22跳圖片干擾線條,使驗證碼圖片中的字符不被輕易識

69、別</p><p>  g.setColor(Color.LIGHT_GRAY); </p><p>  for(int i = 0; i<22; i++) </p><p><b>  {</b></p><p>  int x = random.nextInt(width); </p><p

70、>  int y = random.nextInt(height); </p><p>  int xl = random.nextInt(12); </p><p>  int yl = random.nextInt(12); </p><p>  g.drawLine(x, y, x + xl, y + yl); </p><p>

71、<b>  }</b></p><p>  //randomCode保存隨機產(chǎn)生的驗證碼</p><p>  StringBuffer randomCode = new StringBuffer(); </p><p><b>  //定義顏色三素</b></p><p>  int red = 0

72、, green = 0, blue = 0; </p><p>  //隨機生產(chǎn)codeNum個數(shù)字驗證碼</p><p>  for (int i = 0; i<codeNum; i++) {</p><p>  //得到隨機產(chǎn)生的驗證碼</p><p>  String strRand = String.valueOf(codes[

73、random.nextInt(codes.length)]); </p><p>  //使用隨機函數(shù)產(chǎn)生隨機的顏色分量來構造顏色值,這樣輸出的每位數(shù)字的顏色值都將不同。</p><p>  red = random.nextInt(255); </p><p>  green = random.nextInt(255); </p><p>

74、  blue = random.nextInt(255); </p><p>  //隨即生成驗證碼字符的水平偏移量</p><p>  int w = 0;</p><p>  int x = (i + 1) % 2;</p><p>  if (x == random.nextInt(2)) {</p><p> 

75、 w = codeY - random.nextInt(7);</p><p><b>  } else {</b></p><p>  w = codeY + random.nextInt(7);</p><p><b>  }</b></p><p>  //用隨機產(chǎn)生的顏色將驗證碼繪制到圖像中

76、。</p><p>  g.setColor(new Color(red, green, blue)); </p><p>  g.drawString(strRand, fontHeight*i+10, codeY); </p><p>  //將產(chǎn)生的四個隨機數(shù)組合在一起。</p><p>  randomCode.append(strR

77、and);</p><p>  9、用戶密碼MD5加密及異常登錄的預防</p><p>  我們采用用戶密碼MD5加密技術,這樣既能防止數(shù)據(jù)庫管理員盜取用戶數(shù)據(jù)非法操作,就算有人得到數(shù)據(jù)庫,找到的也是MD5加密后的一段亂碼,破解是能破解,但是很費工夫的。所以基本上可以說是安全的。以前MD5被認為是不可逆的,不過現(xiàn)在被破解了,不過還是比較安全的。</p><p> 

78、 Filter可以使用通配符用來過濾一個、多個url,或者過濾一個、多個的Servlet。</p><p>  我們使用Filter過濾一些成功操作界面,防止非法用戶繞過登錄頁面直接進入到成功頁面。對用戶的異常訪問,用error.jsp頁面攔截,并在5秒后強行跳回登陸頁面,使用戶先登錄系統(tǒng)。</p><p>  4.3 項目研發(fā)時間線</p><p>  圖4.3.

79、1 項目研發(fā)時間線</p><p><b>  五、系統(tǒng)測試</b></p><p><b>  5.1 測試方案</b></p><p>  黑盒測試也稱功能測試或數(shù)據(jù)驅動測試,它是在已知產(chǎn)品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特

80、性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。</p><p>  "黑盒"法著眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試。"黑盒"法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程

81、序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。</p><p>  白盒測試按照程序內部的邏輯對程序進行測試,檢查程序中的每條通路是否能按預定要求正確工作。白盒測試又稱為結構測試。</p><p>  在這里主要采用的是黑盒測試,并以白盒測試為輔助測試。</p><p>  5.2 測試用例及結果

82、</p><p>  1.登錄時,輸入正確的和錯誤的用戶ID和密碼,轉向是否正確</p><p>  1)正確的用戶名和密碼:</p><p>  輸入:用戶名:10240001,密碼:10240001</p><p>  預期輸出:登陸到教師模塊主頁。</p><p>  2)錯誤的用戶名和密碼:</p>

83、<p>  輸入:用戶名:12345,密碼:345</p><p>  預期輸出:跳轉到教師登陸頁面。</p><p>  以上測試用例經(jīng)過驗證是正確的。</p><p>  2.教師登錄成功后,是否可以上報課題。</p><p>  圖5-1 添加課題測試</p><p>  3.是否可以修改個人信息。

84、</p><p>  圖5-2 修改個人信息測試</p><p>  4.是否可以修改課題信息。</p><p>  圖5-3修改課題信息測試</p><p><b>  六、軟件使用說明書</b></p><p><b>  6.1 登陸界面</b></p>

85、<p>  教師輸入正確的用戶名和密碼,就可以進入到畢業(yè)設計管理系統(tǒng),初始密碼與用戶名一致,登陸界面如圖6-1所示 </p><p><b>  圖6-1 登陸界面</b></p><p><b>  6.2 主界面</b></p><p>  登陸驗證若正確的話,進入主界面,如圖6-2所示:</p>

86、;<p><b>  圖6-2 主界面</b></p><p>  6.3 查看個人信息</p><p>  點擊菜單欄“個人信息”欄目,進入個人詳細信息表單,如下圖所示:</p><p>  圖6-3 個人信息查詢</p><p><b>  6.4 修改密碼</b></p&g

87、t;<p>  點擊菜單欄“修改密碼”欄目,進入密碼修改界面:</p><p><b>  圖6-4 修改密碼</b></p><p>  6.5 維護個人信息</p><p>  點擊菜單欄“信息維護”欄目,進入個人信息維護界面:</p><p>  圖6-5 維護個人信息</p><

88、p><b>  6.6 上報課題</b></p><p>  點擊菜單欄“上報課題”欄目,進入上報課題界面,這里自動進行字符串的匹配,即題目相似度的檢測,點擊添加按鈕,即可向數(shù)據(jù)庫中填入一條畢設題目,界面如下圖所示:</p><p><b>  圖6-6 上報課題</b></p><p><b>  6.7

89、 課題查詢</b></p><p>  點擊菜單欄“課題查詢”欄目,進入課題查詢界面:</p><p><b>  圖6-7 課題查詢</b></p><p>  6.8 未評題目查詢</p><p>  點擊菜單欄“查詢未評題目”欄目,可以查看未評題目的列表,再點擊右側評審按鈕進入題目評審界面,如下圖所示:

90、</p><p>  圖6-8 未評題目查詢</p><p><b>  6.9 題目評審</b></p><p>  題目評審界面如下圖所示,點擊評審按鈕提交對該題目的詳細評審意見,并由管理員最終審核發(fā)布。</p><p><b>  圖6-9 題目評審</b></p><p&

91、gt;<b>  6.10 任務下派</b></p><p>  由管理員查詢每道題目的評審意見,并選出任務數(shù)相對較少的評審人,將任務發(fā)布給該評審人,實現(xiàn)任務下派功能,界面如下:</p><p>  圖6-10 任務下派</p><p><b>  6.11發(fā)布題目</b></p><p>  點擊

92、發(fā)布按鈕將題目信息錄入正式庫中,即可實現(xiàn)題目發(fā)布功能,具體操作界面如下圖:</p><p>  圖6-11 發(fā)布題目</p><p><b>  6.12信息統(tǒng)計</b></p><p>  管理員有權限記錄和查看學生信息的統(tǒng)計、教師信息統(tǒng)計以及評審人信息統(tǒng)計的詳情,由圖表形式呈現(xiàn),如下圖:</p><p>  圖6-1

93、2 學生信息統(tǒng)計</p><p>  圖6-13 教師信息統(tǒng)計</p><p><b>  6.13信息管理</b></p><p>  信息管理模塊分為學生、老師、評審人和管理員的信息管理,具體界面如下,可實現(xiàn)各角色信息的增、刪、改、查:</p><p>  圖6-14 學生信息管理</p><p&

94、gt;<b>  七、設計總結</b></p><p>  本次工程開發(fā)綜合訓練歷時3個月左右的時間,終于在我們小組的共同努力下完成了。期間,遇到過很多或大或小的問題,幸運的是在我們全組的通力合作和老師的耐心指導下,都一一解決了。</p><p>  3個月的時間轉瞬即逝,但我不會忘記曾多少個夜里我們通宵調試代碼,多少次會議我們激烈爭辯發(fā)表改進意見。3個月里不僅在我們

95、大家的通力合作下完成了任務,更讓我見證了團隊之間深深的友情。作為團隊的小組長,我在一開始感到了巨大的壓力,但在團隊首次會議開過之后,我知道我的擔心是多余的,例會上組員們各抒己見激烈辯論的情景讓我欣慰,也讓我感受到我們的團隊真的很優(yōu)秀。十周左右的時間,鍛煉了我的團隊領導能力,加強了我的專業(yè)技能,提升了我對J2EE框架的深入理解,更重要的是讓我感受到了深深的團隊友情,這讓我對未來步入社會崗位充滿了憧憬和期望。</p><

96、p>  在本次設計中,我感覺自身的能力有了很大的提高。在這次訓練中我們小組的每個人都負責完成系統(tǒng)的一個模塊,當遇到問題時,都會先去百度或者google上查,查不到的話,再去圖書館借書,總之,基本上遇到的難題都可以自行解決,在解決問題的同時,我在認真做著總結,從中受益匪淺。</p><p><b>  八、致謝</b></p><p>  感謝這一學期給我們教授j

97、avaEE課程和指導我們進行工程開發(fā)綜合訓練的***老師,在他的耐心教授下,我熟悉了javaEE這一規(guī)范,掌握了一些開發(fā)JSP頁面的技巧,這為本次的工程開發(fā)綜合訓練奠定了基礎,再通過*老師的耐心指導,我們小組基本上完成了本次設計。在此,再一次向*老師表示感謝!同時,我想將這份謝意獻給我們團隊的每一位成員,感謝你們這數(shù)十周來積極提議,辛苦編碼。感謝大家!</p><p><b>  九、參考文獻</

98、b></p><p>  1. 趙艷鐸等(譯). 數(shù)據(jù)庫原理(第5版) [M]. 清華大學出版社, 2011 </p><p>  2. 楊冬青等(譯). 數(shù)據(jù)庫系統(tǒng)概念(第6版) [M]. 機械工業(yè)出版社, 2012</p><p>  3. 金名等(譯). 數(shù)據(jù)庫系統(tǒng)設計、實現(xiàn)與管理(第8版) [M]. 清華大學出版社, 2012</p>&

99、lt;p>  4. 劉智勇. SQL Server 2008寶典[M]. 電子工業(yè)出版社,2010</p><p>  5. 蘇金國等(譯). Oracle Database 9i/10g/11g編程藝術[M]. 人民郵電出版社, 2011</p><p>  6.張躍平等. JSP程序設計[M]. 清華大學出版社, 2009,8</p><p>  7.吳長

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論