學生選課系統(tǒng)《軟件工程》課程設計_第1頁
已閱讀1頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  一、問題定義5</b></p><p>  1.1問題的定義5</p><p>  1.2 系統(tǒng)要解決的問題5</p><p><b>  二、可行性研究6</b></p><

2、;p><b>  2.1 引言6</b></p><p><b>  2.1.1目的6</b></p><p>  2.1.2背景及功能6</p><p>  2.1.3 參考資料6</p><p>  2.2 可行性研究的前提6</p><p>  2.2.

3、1 要求6</p><p>  2.2.2 目標7</p><p>  2.2.3 條件、假定和限制7</p><p>  2.2.4 進行可行性研究的方法7</p><p>  2.3 所建議的系統(tǒng)7</p><p>  2.3.1 對所建議系統(tǒng)的說明7</p><p>  2.3

4、.2 處理流程和數據流程8</p><p>  2.3.3 工作負荷9</p><p>  2.3.4技術條件方面的可行性9</p><p>  2.4 社會因素方面的可行性10</p><p>  2.4.1 法律方面的可行性10</p><p>  2.4.2 使用方面的可行性10</p>

5、<p>  2.5 經濟可行性10</p><p><b>  2.6 結論10</b></p><p>  三、項目開發(fā)計劃11</p><p><b>  3.1 引言11</b></p><p>  3.1.1 編寫目的11</p><p>  3

6、.1.2 背景11</p><p>  3.1.3 參考資料11</p><p>  3.2 項目概述11</p><p>  3.2.1 工作內容11</p><p>  3.2.2 產品12</p><p>  3.2.4 完成項目的最遲期限13</p><p>  3.2.5

7、關鍵問題及支持的系統(tǒng)條件13</p><p>  3.3 支持條件13</p><p><b>  四、需求分析14</b></p><p>  4.1 系統(tǒng)需求14</p><p>  4.2. 功能需求14</p><p>  4.3業(yè)務流程圖14</p><p

8、>  五、 概要設計16</p><p>  5.1 基本設計概念和處理流程16</p><p>  5.2. 系統(tǒng)層次模塊圖16</p><p>  5.3. 系統(tǒng)層次模塊圖16</p><p>  5.4. 模塊設計17</p><p>  六、數據庫設計19</p><p&g

9、t;<b>  6.1 引言19</b></p><p>  6.1.1 編寫目的19</p><p>  6.1.2 背景19</p><p>  6.1.3 定義19</p><p>  6.1.4 參考資料20</p><p>  6.2 外部設計21</p>&l

10、t;p>  6.2.1 標識符和狀態(tài)21</p><p>  6.2.2 使用它的程序21</p><p>  6.2.3 約定21</p><p>  6.2.4 專門指導21</p><p>  6.2.5 支持軟件21</p><p>  6.3 結構設計22</p><p&

11、gt;  6.4 運用設計26</p><p>  6.4.1 數據字典設計26</p><p>  6.4.2 安全保密設計27</p><p><b>  七、詳細設計27</b></p><p><b>  7.1 引言27</b></p><p>  7.1

12、.1 編寫目的27</p><p>  7.1.2 背景28</p><p>  7.1.3定義28</p><p>  7.1.4 參考資料28</p><p><b>  八、測試報告28</b></p><p><b>  8.1 引言28</b></

13、p><p>  8.1.1 編寫目的28</p><p>  8.1.2 定義29</p><p>  8.1.3 參考資料29</p><p>  8.2 測試概要29</p><p>  8.3 測試結果及發(fā)現(xiàn)32</p><p>  8.3.1 測試具體實施32</p>

14、<p>  8.4 對軟件功能的結論33</p><p>  8.4.1 用戶登錄模塊33</p><p>  8.5 分析摘要33</p><p>  8.5.1 能力33</p><p>  8.5.2 評價34</p><p>  8.6 測試資源消耗34</p><

15、p><b>  九、用戶手冊34</b></p><p><b>  9.1 引言34</b></p><p>  9.1.1 編寫目的34</p><p>  9.1.2 定義34</p><p>  9.1.3 參考資料34</p><p><b&g

16、t;  9.2 用途35</b></p><p>  9.2.1 功能35</p><p>  9.2.2 性能35</p><p>  9.2.3 安全保密36</p><p><b>  十、附錄38</b></p><p>  10.1 數據庫的封裝代碼DB.java

17、38</p><p>  10.2 選課系統(tǒng)登陸界面代碼Login.java39</p><p>  10.3 選課系統(tǒng)學生選課界面代碼Student.java43</p><p>  10.4 學生選課情況查詢代碼Query.java47</p><p>  10.5 學生用戶登錄密碼的修改代碼Modify.java50</p

18、><p>  10.6 教師查詢學生選課的情況代碼Teacher.java53</p><p>  10.7 超級管理員查詢學生選課的情況代碼Administrator.java55</p><p><b>  一、問題定義 </b></p><p><b>  1.1問題的定義</b></

19、p><p>  學生選課系統(tǒng):也稱學生課程選修制,即允許學生對學校所開設的課程有一定的選擇自由,包括選擇課程、任課教師和上課時間,選擇適合自己的學習量和學習進程。對于習慣了中小學課程(所有的課程由學校統(tǒng)一安排,而且科目從小學到高中有連續(xù)性)的大學新生來說,大學的課程多得令他們眼花繚亂,課程分類也比較復雜,因此選課對他們而言還是一件新鮮而陌生的事物。但大學的學習與選課有莫大的關系,必須了解它,才能掌握主動權。而要了解選

20、課制,首先要對大學的課程設置有所認識。</p><p>  1.2 系統(tǒng)要解決的問題</p><p>  建立一個小型的學生選課系統(tǒng),用戶(學號,姓名,年齡,性別,系別,班級,出生年月)可以注冊成為會員,注冊的用戶可以選擇要選修的課程,也可以查詢已選修的課程(包含課程名、任課教師和上課時間,學分)等,老師(姓名,職位,所教課程)可以查看該門課程的選課人數及上課時間,管理員可以查看所有學生的

21、選課情況,查看各門課程的任課老師的信息,查看各門課程選課人數,查看注冊用戶信息。</p><p><b>  二、可行性研究</b></p><p><b>  2.1 引言</b></p><p><b>  2.1.1目的</b></p><p>  本項目開發(fā)計劃旨在明確

22、規(guī)范開發(fā)過程,保證項目質量,</p><p>  同時還作為項目通過評審的依據。并說明</p><p>  該軟件開發(fā)項目的實現(xiàn)在技術上、經濟上和社會因素上的可行性,評述為了合理</p><p>  地達到開發(fā)目標可供選擇的各種可能實施方案,說明并論證所選定實施方案的理</p><p><b>  由。</b></

23、p><p>  2.1.2背景及功能</p><p>  A、系統(tǒng)的名稱為學生選課系統(tǒng)(Java實現(xiàn));</p><p>  2.2 可行性研究的前提</p><p><b>  2.2.1 要求</b></p><p><b>  A、功能:</b></p>&l

24、t;p><b>  1) 普通用戶:</b></p><p>  登錄系統(tǒng)前用戶可以查看用戶選課的情況;用戶可以注冊;查找忘記的密碼;查看自己選課的一些相關信息。</p><p>  B、性能:查詢效率盡可能做到精準,信息維護做到簡單易用,不需要對用戶進行培訓;</p><p>  C、完成期限:到本學期的第21 周。</p>

25、<p><b>  2.2.2 目標</b></p><p>  系統(tǒng)應該盡量做到以下的目標:</p><p>  A、人力與設備費用的減少;</p><p>  B、采用現(xiàn)代程序設計技術;</p><p>  C、數據的處理速度提高;</p><p>  D、管理信息服務的改進;&

26、lt;/p><p>  E、人員利用率盡可能提高;</p><p>  F、結果應能清除地審查。</p><p>  2.2.3 條件、假定和限制</p><p>  本系統(tǒng)的條件、假定和所受到的限制有以下幾方面:</p><p>  A、所開發(fā)系統(tǒng)的運行壽命的最小值為3 年;</p><p>  

27、B、硬件、軟件、運行環(huán)境和開發(fā)環(huán)境方面的條件和限制:由于是個人電腦,</p><p>  所以硬件設施可能在性能上比較差;軟件全部是免費的,功能可能會受到相應的</p><p>  限制;對windows xp比較熟悉,所以開發(fā)主要是在這個平臺上進行的;</p><p>  C、可利用的信息和資源:沒有相應的軟件項目開發(fā)的經驗,所以能力還是</p>&

28、lt;p>  有限,收集的資料來源有限,故對信息的了解不夠全面;</p><p>  2.2.4 進行可行性研究的方法</p><p>  根據課本里面的相關知識、圖書館所借的書以及平時所積累的一些經驗,綜</p><p>  合本系統(tǒng)所要達到的目標進行分析而得到。</p><p>  2.3 所建議的系統(tǒng)</p><

29、;p>  2.3.1 對所建議系統(tǒng)的說明</p><p>  本系統(tǒng)是運用Java制作的一個小型學生選課系統(tǒng)系統(tǒng),包括用戶注冊,選課查詢。實現(xiàn)這個系統(tǒng)將用到以下幾種技術:</p><p>  1) Java主要是用來處理各種業(yè)務;</p><p>  2) 數據庫系統(tǒng)技術。</p><p>  2.3.2 處理流程和數據流程</p

30、><p>  系統(tǒng)的處理流程圖見下圖所示:</p><p>  學生登錄及選課情況:</p><p>  教師登錄及查看信息:</p><p>  管理員登錄及管理信息:</p><p>  2.3.3 工作負荷</p><p>  現(xiàn)有系統(tǒng)所承擔的工作及工作量:</p><p&

31、gt;<b>  1)系統(tǒng)功能:</b></p><p>  (1) 登錄、注冊,修改密碼等功能.</p><p><b>  (2) 選課功能</b></p><p><b>  (3) 查詢功能</b></p><p>  2)由于現(xiàn)有開發(fā)的系統(tǒng)比較小,只涉及小量的數據,所

32、以工作量小。</p><p>  2.3.4技術條件方面的可行性</p><p>  2.4 社會因素方面的可行性</p><p>  2.4.1 法律方面的可行性</p><p>  2.4.2 使用方面的可行性</p><p>  本系統(tǒng)一經制作完成,可以在windows系統(tǒng)中運行,加之本系統(tǒng)操作上面不存在技術性,

33、所以可以達到易操作性。</p><p><b>  2.5 經濟可行性</b></p><p><b>  三、項目開發(fā)計劃</b></p><p><b>  3.1 引言</b></p><p>  3.1.1 編寫目的</p><p><b&

34、gt;  3.1.2 背景</b></p><p><b>  說明:</b></p><p>  待開發(fā)的軟件系統(tǒng)的名稱:學生選課系統(tǒng);</p><p><b>  3.2 項目概述</b></p><p>  3.2.1 工作內容</p><p>  本項目的

35、內容包括技術和非技術兩大部分:技術上需要進行數據庫開發(fā)和java技術的基本使用。非技術部分包括:人力資源的充分利用。</p><p><b>  3.2.2 產品</b></p><p>  3.2.2.1 程序</p><p>  3.2.2.2 文件</p><p>  3.2.2.3 服務</p>&

36、lt;p>  A、用戶方面:可以登錄、注冊、查詢等;</p><p>  B、系統(tǒng)方面:查看注冊用戶信息、管理系統(tǒng)的各種信息、查看系統(tǒng)的信息。</p><p>  C、老師方面:查看學生選課情況、</p><p>  3.2.3 驗收標準</p><p>  3.2.4 完成項目的最遲期限</p><p>  3

37、.2.5 關鍵問題及支持的系統(tǒng)條件</p><p>  本項目用到了Java程序設計和數據庫系統(tǒng)技術應用等開源的框架,所以對學生選課系統(tǒng)的功能的實現(xiàn)可能欠缺。</p><p><b>  3.3 支持條件</b></p><p>  A、運行該軟件系統(tǒng)所需要的硬設備包括服務器和客戶機,要求滿足(最低</p><p>&l

38、t;b>  配置):</b></p><p>  1) 1G Hz 以上處理器,內存不少于256M。</p><p>  2) 3G 以上空余硬盤空間。</p><p>  3) 客戶機為普通電腦。 </p><p>  B、本系統(tǒng)是運用Ja

39、va制作的一個小型學生選課系統(tǒng)系統(tǒng),包括用戶注冊,選課查詢。實現(xiàn)這個系統(tǒng)將用到以下幾種技術:</p><p>  1) Java主要是用來處理各種業(yè)務;</p><p>  2) 數據庫系統(tǒng)技術(采用mysql數據庫實現(xiàn)該系統(tǒng))。</p><p><b>  四、需求分析</b></p><p><b>  4

40、.1 系統(tǒng)需求</b></p><p>  用戶的需求具體體現(xiàn)在各種學習成績的提供、保存、更新和查詢方面,這就要求數據庫結構能充分滿足各種信息的輸入和輸出。收集基本數據、數據結構及數據處理的流程,組成一份詳盡數據字典,為后面的具體設計打下基礎。</p><p><b>  4.2. 功能需求</b></p><p>  通過系統(tǒng)功能

41、分析,針對一般的網上選課系統(tǒng),總結出如下的需求信息:</p><p>  (1) 學生的需求:網上選課、選課情況查詢包括該門課程的老師信息,上課時間以及該門課程的學分,修改密碼等;</p><p>  (2) 本系統(tǒng)主要實現(xiàn)學生信息管理和選課查詢。</p><p>  學生信息包括學號,姓名,年齡,性別,系別,班級,出生年月;</p><p>

42、;  課程信息包括課程名,上課時間,成績,學分,學時數;</p><p>  老師信息包括姓名,職位,所教課程;</p><p>  管理員信息包括用戶名和密碼,能夠查詢所有學生的選課情況及信息;</p><p><b>  4.3業(yè)務流程圖</b></p><p>  學生登錄及選課情況:</p><

43、;p>  教師登錄及查看信息:</p><p>  管理員登錄及管理信息:</p><p><b>  五、 概要設計</b></p><p>  5.1 基本設計概念和處理流程</p><p>  互聯(lián)網技術的飛速發(fā)展,Java等設計工具的方便實用,以及數據庫技術的發(fā)展給本系統(tǒng)的設計和實現(xiàn)提供了技術上的支持。&l

44、t;/p><p>  系統(tǒng)基本的流程是:用戶登錄->主界面->選擇各項子系統(tǒng)(選課)</p><p>  老師登錄 ->主界面->選擇各項子系統(tǒng)(查看學生選課情況)</p><p>  管理員登錄->主界面->選擇各項子系統(tǒng)(管理學生選課)</p><p>  5.2. 系統(tǒng)層次模塊圖</p>&

45、lt;p>  5.3. 系統(tǒng)層次模塊圖</p><p><b>  5.4. 模塊設計</b></p><p>  (1) 用戶注冊模塊:填寫用戶名、密碼、確認密碼</p><p>  (2) 用戶登錄模塊:填寫已注冊的用戶名稱,填寫正確的密碼,進入主控制頁面。</p><p>  (3) 用戶選課模塊:從所有課程

46、中選擇自己要選修的課程。</p><p>  (4) 用戶查詢模塊:可以進行查看所選課程的操作。</p><p><b>  六、數據庫設計</b></p><p><b>  6.1 引言</b></p><p>  6.1.1 編寫目的</p><p><b>

47、  6.1.2 背景</b></p><p><b>  6.1.3 定義</b></p><p>  文件中用到的專門術語的定義和外文的首字母組詞的原詞組如下:</p><p>  A、B/S:B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。

48、在這種結構下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層3-tier結構。相對于C/S結構屬于“胖”客戶端,需要在使用者電腦上安裝相應的操作軟件來說,B/S結構是屬于一種“瘦”客戶端,大多數或主要的業(yè)務邏輯都存在在服務器端,因此,B/S結構的系統(tǒng)不需要安裝客戶端軟件,它運行在客戶端的瀏覽器之上,系統(tǒng)升級或維護時只需更新服務器端軟件即可,

49、這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。B/S結構系統(tǒng)的產生為系統(tǒng)面對無限未知用戶提供了可能。當然,與C/S結構相比,B/S結構也存在著系統(tǒng)運行速度較慢,訪問系統(tǒng)的用戶不可控的弱點;</p><p>  B、DBMS:英文全程:DataBase Management System ,翻譯為中文就是“數據庫管理系統(tǒng)”,是位于用戶和操作系統(tǒng)之間的一層數據庫管

50、理軟件。數據庫管理系統(tǒng)和操作系統(tǒng)一樣是計算機的基礎軟件,也是一個大型復雜的軟件系統(tǒng)。它的主要功能包括一下幾個方面:1.數據定義功能。2.數據組織,存儲和管理;3.數據操作功能。4.數據庫的事物管理和運行管理。5.數據庫的建立和維護功能。6.其他功能;</p><p>  C、SQL語言:SQL(Structured Query Language)結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢

51、、更新和管理關系數據庫系統(tǒng)。同時也是數據庫</p><p><b>  6.2 外部設計</b></p><p>  6.2.1 標識符和狀態(tài)</p><p>  數據庫軟件:Mysql</p><p>  系統(tǒng)要求建立的數據庫名稱:sc</p><p>  6.2.2 使用它的程序</p&

52、gt;<p><b>  6.2.3 約定</b></p><p>  6.2.4 專門指導</p><p>  系統(tǒng)使用Hibernate實現(xiàn)與數據庫的接口,該接口基于Hibernate方法生成</p><p>  的CLASS文件對數據庫的建立和控制,是應用程序與數據庫的橋梁。最終是對</p><p>

53、  class文件操作來實現(xiàn)對數據庫的管理(一般是一個數據表對應一個CLASS文</p><p><b>  件)。</b></p><p>  6.2.5 支持軟件</p><p>  Mysql提供了核心的引擎,為支持本系統(tǒng)的數據庫BBS需要使用到Mysql</p><p><b>  的幾個組件,包括:&

54、lt;/b></p><p>  A、圖形管理工具MySQL Administrator 和MySQL Query Browser;</p><p>  B、MySQL-front。提供了解決MySQL中插入中文亂碼的問題;</p><p>  C、Navicat Lite for MySQL??梢杂脕砜焖俳祿?,可拖拉式的MySQL插件。</p&g

55、t;<p><b>  6.3 結構設計</b></p><p><b>  6.4 運用設計</b></p><p>  6.4.1 數據字典設計</p><p>  數據項名:username</p><p><b>  說明: 用戶登入名</b></p

56、><p><b>  別名: 無</b></p><p>  數據類型:varchar</p><p><b>  長度: 3-10</b></p><p><b>  位置:用戶信息表</b></p><p>  數據項名:password</p&g

57、t;<p>  說明: 用戶登入密碼</p><p><b>  別名: 無</b></p><p>  數據類型:varchar</p><p><b>  長度: 3-10</b></p><p><b>  位置:用戶信息表</b></p>&

58、lt;p><b>  數據項名:name</b></p><p><b>  說明: 用戶登入名</b></p><p><b>  別名: 無</b></p><p>  數據類型:varchar</p><p><b>  長度: 3-10</b>

59、;</p><p><b>  位置:用戶信息表</b></p><p><b>  數據項名:dept</b></p><p>  說明: 用戶所在學院</p><p><b>  別名: 無</b></p><p>  數據類型:varchar<

60、;/p><p><b>  長度: 3-10</b></p><p><b>  位置:用戶信息表</b></p><p>  數據項名:banji</p><p>  說明: 用戶所在班級</p><p><b>  別名: 無</b></p>

61、<p>  數據類型:varchar</p><p><b>  長度: 3-10</b></p><p><b>  位置:用戶信息表</b></p><p>  數據項名:lessons</p><p>  說明: 用戶所選課程</p><p><b&

62、gt;  別名: 無</b></p><p>  數據類型:varchar</p><p><b>  長度: 3-10</b></p><p><b>  位置:用戶信息表</b></p><p>  6.4.2 安全保密設計</p><p>  一個系統(tǒng),它的

63、安全性是很重要的,尤其是數據庫的安全性能,每當用戶發(fā)出存取數據庫的操作請求后,DBMS查找數據字典,根據安全規(guī)則進行合法權限檢查,若用戶的操作請求超出了定義的權限,系統(tǒng)將拒絕執(zhí)行此操作。為了讓某些合法的用戶得到一定的權限,數據庫管理員可以授權給讓他們。在一些敏感的數據上面采用了MD5算法進行加密,比如用戶的登入密碼,就算是數據泄漏,用戶也不知道怎么登錄系統(tǒng)。</p><p><b>  七、詳細設計&l

64、t;/b></p><p><b>  7.1 引言</b></p><p>  7.1.1 編寫目的</p><p><b>  7.1.2 背景</b></p><p><b>  7.1.3定義</b></p><p>  JVM:Java

65、Virtual Machine(Java 虛擬機),它是一個虛構出來的計算</p><p>  機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java 虛擬</p><p>  機有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系</p><p><b>  統(tǒng)。</b></p><p>&l

66、t;b>  八、測試報告</b></p><p><b>  8.1 引言</b></p><p>  8.1.1 編寫目的</p><p><b>  8.1.2 定義</b></p><p>  A、白盒測試:白盒測試也稱結構測試或邏輯驅動測試,它是按照程序內部的結構測試程序,

67、通過測試來檢測產品內部動作是否按照設計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。這一方法是把測試對象看作一個打開的盒子,測試人員依據程序內部邏輯結構相關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預期的狀態(tài)一致。</p><p>  B、黑盒測試:黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把

68、程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。</p><p>  8.1.3 參考資料</p><p><b>  .</b><

69、;/p><p><b>  8.2 測試概要</b></p><p>  表8-1 測試本系統(tǒng)的模塊計劃</p><p><b>  1)學生登錄時</b></p><p><b>  用戶名和密碼都為空</b></p><p>  B.學生用戶名和密碼有一

70、個為空</p><p>  C.學生用戶名和密碼不匹配</p><p><b>  2)教師登錄時</b></p><p><b>  用戶名和密碼都為空</b></p><p>  B.學生用戶名和密碼有一個為空</p><p>  C.學生用戶名和密碼不匹配</p&

71、gt;<p><b>  3)管理員登錄時</b></p><p><b>  用戶名和密碼都為空</b></p><p>  B.學生用戶名和密碼有一個為空</p><p>  C.學生用戶名和密碼不匹配</p><p><b>  4)學生修改密碼時</b>&

72、lt;/p><p>  用戶名、原密碼、新密碼都至少有一個為空</p><p>  B.新密碼兩次輸入不同</p><p>  C.學生用戶名和密碼不匹配</p><p><b>  D.修改密碼成功</b></p><p>  8.3 測試結果及發(fā)現(xiàn)</p><p>  8.

73、3.1 測試具體實施</p><p>  A、用戶登錄模塊測試。該算法用例表見表8-2 所示。</p><p>  下圖是用戶登錄流程圖:</p><p>  8.4 對軟件功能的結論</p><p>  8.4.1 用戶登錄模塊</p><p>  這個模塊可以防止用戶未輸入用戶名,未輸入密碼的時候登入到權限以外的系

74、統(tǒng)。</p><p><b>  8.5 分析摘要</b></p><p><b>  8.5.1 能力</b></p><p><b>  8.5.2 評價</b></p><p><b>  九、用戶手冊</b></p><p>

75、;<b>  9.1 引言</b></p><p>  9.1.1 編寫目的</p><p>  本手冊主要對學生選課系統(tǒng)進行詳細描述和講解,讓用戶可以順利的使用本系統(tǒng)以及更好的管理本系統(tǒng)。</p><p><b>  9.1.2 定義</b></p><p>  MD5:Message Diges

76、t Algorithm MD5(中文名為消息摘要算法第五版)為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護。</p><p>  9.1.3 參考資料</p><p><b>  9.2 用途</b></p><p><b>  9.2.1 功能</b></p><p>  此系統(tǒng)

77、的功能層次圖如圖9-1 所示:</p><p><b>  9.2.2 性能</b></p><p>  9.2.2.1 時間特性</p><p>  本軟件由于數據庫較小,相應時間、更新處理時間、數據傳送、轉換時間、計算時間等都非常迅速,如下:</p><p>  A、響應時間:響應時間為5 秒內;</p>

78、<p>  B、更新處理時間:由系統(tǒng)運行狀態(tài)決定;</p><p>  C、數據的轉換和傳輸時間:能夠在5 秒鐘內完成。</p><p>  9.2.2.2 靈活性</p><p>  對于信息的查找,本軟件提供了模糊查詢的方法,這樣最大的滿足用戶的要求,方便用戶的使用。</p><p>  9.2.3 安全保密</p&g

79、t;<p>  一個系統(tǒng),它的安全性是很重要的,尤其是數據庫的安全性能,每當用戶發(fā)出存取數據庫的操作請求后,DBMS查找數據字典,根據安全規(guī)則進行合法權限檢查,若用戶的操作請求超出了定義的權限,系統(tǒng)將拒絕執(zhí)行此操作。為了讓某些合法的用戶得到一定的權限,數據庫管理員可以授權給讓他們。在一些敏感的數據上面采用了MD5算法進行加密,比如用戶的登入密碼,就算是數據泄漏,用戶也不知道怎么登錄系統(tǒng)。</p><p&

80、gt;<b>  十、附錄</b></p><p>  10.1 數據庫的封裝代碼DB.java</p><p>  import java.sql.*;</p><p>  public class DB {</p><p>  public static Connection getConn() {</p>

81、;<p>  Connection conn = null;</p><p><b>  try {</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  conn = DriverManager.getConnection("

82、jdbc:mysql://localhost/sc", "root", "root");</p><p>  } catch (ClassNotFoundException e) {</p><p>  e.printStackTrace();</p><p>  } catch (SQLException e) {

83、</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p>  return conn;</p><p><b>  }</b></p><p>  public static Statement getState

84、(Connection conn) {</p><p>  Statement stmt = null;</p><p><b>  try {</b></p><p>  if(conn != null) {</p><p>  stmt = conn.createStatement();</p><

85、;p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p>  return stmt;</p><p>

86、<b>  }</b></p><p>  public static ResultSet getResultSet(Statement stmt, String sql) {</p><p>  ResultSet rs = null;</p><p><b>  try{</b></p><p>

87、;  rs = stmt.executeQuery(sql);</p><p>  } catch(SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return rs;</p><p>&

88、lt;b>  }</b></p><p>  public static void close(Connection conn) {</p><p><b>  try {</b></p><p>  if(conn !=null){</p><p>  conn.close();</p>

89、<p>  conn = null;</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><

90、;p><b>  }</b></p><p>  public static void close(Statement stmt) {</p><p><b>  try {</b></p><p>  if(stmt !=null){</p><p>  stmt.close();</

91、p><p>  stmt = null;</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

92、;<p><b>  }</b></p><p>  public static void close(ResultSet rs) {</p><p><b>  try {</b></p><p>  if(rs !=null){</p><p>  rs.close();</

93、p><p>  rs = null;</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

94、<p><b>  }</b></p><p><b>  }</b></p><p>  10.2 選課系統(tǒng)登陸界面代碼Login.java</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p>

95、;<p>  import java.sql.*;</p><p>  import javax.swing.*;</p><p>  public class Login extends Frame implements ActionListener {</p><p>  Label useName, passWord, l1;</p>

96、<p>  TextField tf1, tf2;</p><p>  Checkbox ck1, ck2, ck3;</p><p>  Button b1, b2;</p><p>  CheckboxGroup group;</p><p>  String str;</p><p>  publi

97、c void setStr(String str) {</p><p>  this.str = str;</p><p><b>  }</b></p><p>  Connection conn = null;</p><p>  Statement stmt = null;</p><p>

98、  ResultSet rs = null;</p><p>  public void lauchFrame() {</p><p>  this.setTitle("學生選課登錄");</p><p>  setLayout(null);</p><p>  useName = new Label("用戶名

99、稱 :");</p><p>  passWord = new Label("用戶密碼 :");</p><p>  tf1 = new TextField();</p><p>  tf2 = new TextField();</p><p>  l1 = new Label("學生選課系統(tǒng)---登錄

100、/Login");</p><p>  str = tf1.getText();</p><p>  group = new CheckboxGroup();</p><p>  ck1 = new Checkbox("管理員",false , group);</p><p>  ck2 = new Checkb

101、ox("學生", true, group);</p><p>  ck3 = new Checkbox("教師", false, group);</p><p>  b1 = new Button("確定");</p><p>  b2 = new Button("重置");</p

102、><p>  add(useName);</p><p>  add(passWord);</p><p><b>  add(l1);</b></p><p><b>  add(tf1);</b></p><p><b>  add(tf2);</b>&

103、lt;/p><p><b>  add(ck1);</b></p><p><b>  add(ck2);</b></p><p><b>  add(ck3);</b></p><p><b>  add(b1);</b></p><p&

104、gt;<b>  add(b2);</b></p><p>  l1.setBounds(new Rectangle(350, 150, 200, 50));</p><p>  useName.setBounds(new Rectangle(300, 200, 60, 50));</p><p>  passWord.setBounds(ne

105、w Rectangle(300, 250, 60, 50));</p><p>  tf1.setBounds(new Rectangle(370, 210, 200, 25));</p><p>  tf2.setBounds(new Rectangle(370, 260, 200, 25));</p><p>  ck1.setBounds(new Rectan

106、gle(350, 280, 50, 50));</p><p>  ck2.setBounds(new Rectangle(410, 280, 50, 50));</p><p>  ck3.setBounds(new Rectangle(470, 280, 50, 50));</p><p>  b1.setBounds(new Rectangle(320, 33

107、0, 40, 25));</p><p>  b2.setBounds(new Rectangle(400, 330, 40, 25));</p><p>  b1.addActionListener(this);</p><p>  b2.addActionListener(this);</p><p>  tf2.setEchoChar(

108、'*');</p><p>  setBounds(100,50,800,700);</p><p>  setVisible(true);</p><p>  setResizable(false);</p><p>  this.addWindowListener(new WindowAdapter() {</p&g

109、t;<p><b>  @Override</b></p><p>  public void windowClosing(WindowEvent e) {</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b&g

110、t;  });</b></p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if (e.getSource() == b1 && ck2.getState()) { // 確定</p>

111、<p>  if (tf1.getText().equals("") || tf2.getText().equals("")) {</p><p>  JOptionPane.showMessageDialog(null, "學生用戶名和密碼輸入不能為空!");</p><p><b>  } else {

112、</b></p><p>  conn = DB.getConn();</p><p>  stmt = DB.getState(conn);</p><p>  String sql = "select * from login";</p><p>  rs = DB.getResultSet(stmt, s

113、ql);</p><p>  boolean check = false;</p><p><b>  try {</b></p><p>  while (rs.next()) {</p><p>  String userName = rs.getString(1); // 獲得數據庫第一列</p>&

114、lt;p>  String passWord = rs.getString(2); // 獲得數據庫第二列</p><p>  if (tf1.getText().equals(userName)</p><p>  && tf2.getText().equals(passWord)) { // 判斷語句</p><p>  check = t

115、rue;</p><p>  this.dispose();</p><p>  str = tf1.getText();</p><p>  new Student(str);</p><p><b>  }</b></p><p>  }if (check == false) {</p&

116、gt;<p>  JOptionPane.showMessageDialog(null, "登陸失敗,請重新輸入學生用戶名和密碼!");</p><p><b>  }</b></p><p>  } catch (SQLException el) {</p><p>  el.printStackT

117、race();</p><p>  } finally {</p><p>  DB.close(rs);</p><p>  DB.close(stmt);</p><p>  DB.close(conn);</p><p><b>  }</b></p><p><

118、;b>  }</b></p><p>  } else if (e.getSource() == b1 && ck1.getState()) { </p><p>  if (tf1.getText().equals("") || tf2.getText().equals("")) {</p>

119、<p>  JOptionPane.showMessageDialog(null, "請輸入管理員用戶名和密碼!");</p><p><b>  } else {</b></p><p>  conn = DB.getConn();</p><p>  stmt = DB.getState(conn);</

120、p><p>  String sql = "select * from administrator";</p><p>  rs = DB.getResultSet(stmt, sql);</p><p>  boolean check = false;</p><p><b>  try {<

121、/b></p><p>  while (rs.next()) {</p><p>  String userName = rs.getString(1); // 獲得數據庫第一列</p><p>  String passWord = rs.getString(2); // 獲得數據庫第二列</p><p>  if (tf1.get

122、Text().equals(userName)</p><p>  && tf2.getText().equals(passWord)) { // 判斷語句</p><p>  check = true;</p><p>  this.dispose();</p><p>  new Administrator();<

123、/p><p><b>  }</b></p><p>  }if (check == false) {</p><p>  JOptionPane.showMessageDialog(null, "登陸失敗,請重新輸入管理員用戶名和密碼!");</p><p><b>  }</

124、b></p><p>  } catch (SQLException el) {</p><p>  el.printStackTrace();</p><p>  } finally {</p><p>  DB.close(rs);</p><p>  DB.close(stmt);</p>&

125、lt;p>  DB.close(conn);</p><p><b>  }</b></p><p><b>  }</b></p><p>  } else if (e.getSource() == b1 && ck3.getState()) { </p><p>  if

126、 (tf1.getText().equals("") || tf2.getText().equals("")) {</p><p>  JOptionPane.showMessageDialog(null, "請輸入教師用戶名和密碼!");</p><p><b>  } else {</b></p&g

127、t;<p>  conn = DB.getConn();</p><p>  stmt = DB.getState(conn);</p><p>  String sql = "select * from teacher";</p><p>  rs = DB.getResultSet(stmt, sql);<

128、/p><p>  boolean check = false;</p><p><b>  try {</b></p><p>  while (rs.next()) {</p><p>  String userName = rs.getString(1); // 獲得數據庫第一列</p><p>

129、  String passWord = rs.getString(2); // 獲得數據庫第二列</p><p>  if (tf1.getText().equals(userName)</p><p>  && tf2.getText().equals(passWord)) { // 判斷語句</p><p>  check = true;<

130、/p><p>  this.dispose();</p><p>  new Teacher();</p><p><b>  }</b></p><p>  }if (check == false) {</p><p>  JOptionPane.showMessageDialog(nu

131、ll, "登陸失敗,請重新輸入教師用戶名和密碼!");</p><p><b>  }</b></p><p>  } catch (SQLException el) {</p><p>  el.printStackTrace();</p><p>  } finally {</p&

132、gt;<p>  DB.close(rs);</p><p>  DB.close(stmt);</p><p>  DB.close(conn);</p><p><b>  }</b></p><p><b>  }</b></p><p>  } e

133、lse if (e.getSource() == b2) {</p><p>  tf1.setText(""); //把用戶名和密碼設置為空</p><p>  tf2.setText("");</p><p><b>  }</b></p><p><b>

134、  }</b></p><p>  public static void main(String[] args) {</p><p>  new Login().lauchFrame();</p><p><b>  }</b></p><p><b>  }</b></p>

135、;<p>  10.3 選課系統(tǒng)學生選課界面代碼Student.java</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.sql.*;</p><p>  import java.util.*;</p

136、><p>  public class Student extends Frame implements ActionListener, ItemListener {</p><p>  Label l1, l2, l3, l4, l5, l6;</p><p>  Label field1, field2, field3, field4;</p>&l

溫馨提示

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

評論

0/150

提交評論