學(xué)生選課系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p><b>  一 可行性分析1</b></p><p>  1.1 經(jīng)濟(jì)上的可行性1</p><p>  1.2 技術(shù)上的可行性2</p><p>  1.3 操作上的可行性2</p><p><b>

2、;  二 需求分析2</b></p><p><b>  2.1需求陳述2</b></p><p><b>  2.2分析建模2</b></p><p><b>  三 概要設(shè)計(jì)8</b></p><p>  3.1系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)8</p>

3、<p>  3.2.系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)14</p><p>  3.3系統(tǒng)軟件架構(gòu)設(shè)計(jì)16</p><p><b>  四 詳細(xì)設(shè)計(jì)17</b></p><p><b>  六 測(cè)試28</b></p><p>  6.1.測(cè)試方法28</p><p> 

4、 6.2測(cè)試用例28</p><p><b>  七 總結(jié)31</b></p><p>  7.1.小組總結(jié)31</p><p>  7.2.個(gè)人總結(jié)31</p><p><b>  一 可行性分析</b></p><p>  1.1 經(jīng)濟(jì)上的可行性 </p&g

5、t;<p>  界面友好,操作簡(jiǎn)單,系統(tǒng)實(shí)現(xiàn)可行,因此經(jīng)濟(jì)可行。該系統(tǒng)可以容易實(shí)現(xiàn)學(xué)生、老師和教學(xué)系統(tǒng)管理員與學(xué)校之間的聯(lián)系,在Internet上實(shí)現(xiàn)完成部分教務(wù)工作,提高辦事效率。</p><p>  1.2 技術(shù)上的可行性</p><p>  隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,越來(lái)越多的機(jī)構(gòu)將科研管理與Internet融合到一起,以方便個(gè)高校管理。在這樣一個(gè)社會(huì)背景下,基于Windo

6、ws和SQL Server 2005設(shè)計(jì)出數(shù)據(jù)庫(kù) ,運(yùn)用先進(jìn)的ASP.NET技術(shù)、先進(jìn)的C#語(yǔ)言,采用B/S模式開(kāi)發(fā)的大學(xué)生選修課管理系統(tǒng),將學(xué)生、老師、管理員有機(jī)地結(jié)合在一起,有效地提高管理水平和效率。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,基于以上的技術(shù)在現(xiàn)今比較容易實(shí)現(xiàn)。 </p><p>  1.3 操作上的可行性</p><p>  該系統(tǒng)操作方便,簡(jiǎn)單。 </p>

7、;<p><b>  二 需求分析</b></p><p><b>  2.1需求陳述</b></p><p>  系統(tǒng)功能模塊基本將本系統(tǒng)劃分為三大模塊,即學(xué)生選課模塊、教師開(kāi)課模塊以及管理員管理模塊。 </p><p> ?。?)學(xué)生選課模塊:在這個(gè)模塊中,允許學(xué)生修改個(gè)人信息,瀏覽基本的課程;并實(shí)現(xiàn)主要

8、的選課功能,包括填寫(xiě)選課信息、查看已選課程、修改選課等。</p><p>  (2)教師開(kāi)課模塊:這個(gè)模塊主要是讓教師申請(qǐng)教課,同時(shí)教師可以修改個(gè)人信息、瀏覽基本課程以及查看學(xué)生的選課情況等。</p><p>  (3)管理員管理模塊:這個(gè)模塊的功能比較多,主要包括創(chuàng)建課程的指定任課老師、設(shè)定課程人數(shù)、統(tǒng)計(jì)學(xué)生選課信息、發(fā)通知等等。</p><p> ?。?)通用功

9、能模塊:即用戶(hù)登錄、密碼修改等功能的實(shí)現(xiàn)。</p><p><b>  2.2分析建模</b></p><p><b>  根據(jù)系統(tǒng)需求</b></p><p>  角色確定,外部參與者如下:</p><p> ?、俟芾韱T:對(duì)學(xué)生和教師基本資料維護(hù),對(duì)課程基本資料進(jìn)行添加、 刪除、 更新或查詢(xún)等;&

10、lt;/p><p>  ②學(xué)生:進(jìn)行課程預(yù)覽,選課信息查詢(xún),進(jìn)行選課,成績(jī)查詢(xún)等;</p><p> ?、劢處煟翰樵?xún)課程,申請(qǐng)教課及課程報(bào)名人數(shù)情況,進(jìn)行成績(jī)?cè)u(píng)定等;</p><p><b>  確定用例</b></p><p>  與管理員有關(guān)的用例:</p><p>  發(fā)布通知、分配帳號(hào)密碼、注

11、銷(xiāo)或修改用戶(hù)狀態(tài)、創(chuàng)建課程,定任課老師、設(shè)定課程人數(shù)、統(tǒng)計(jì)學(xué)生選課信息;</p><p><b>  與學(xué)生有關(guān)的用例:</b></p><p>  修改個(gè)人信息、選課操作、修改選課、瀏覽課程、查詢(xún)成績(jī)</p><p><b>  與教師有關(guān)的用例:</b></p><p>  申請(qǐng)教課、瀏覽課題、

12、查詢(xún)學(xué)生選課情況、成績(jī)?cè)u(píng)定</p><p><b>  建立系統(tǒng)用例圖</b></p><p>  此系統(tǒng)用例圖包括:學(xué)生選課系統(tǒng)的高層用例圖,管理員管理子系統(tǒng)用例圖,教師管理子系統(tǒng)用例圖以及學(xué)生選課子系統(tǒng)的用例圖。</p><p><b>  系統(tǒng)用例</b></p><p>  大學(xué)生選修課用例

13、描述</p><p>  管理員:管理員負(fù)責(zé)整個(gè)選修課系統(tǒng)的全面工作</p><p>  管理員使用子系統(tǒng)“選課管理”中的教學(xué)大綱信息和“科室分配管理”中的教師信息,制定選課表</p><p>  管理員點(diǎn)擊子系統(tǒng)“課程信息管理” 對(duì)學(xué)生和教師基本資料維護(hù),課程基本資料進(jìn)行添加、刪除、更新或查詢(xún)等相關(guān)操作</p><p>  學(xué)生:進(jìn)行課程預(yù)

14、覽,選課信息查詢(xún),進(jìn)行選課,成績(jī)查詢(xún)等;</p><p>  教師:查詢(xún)課程,申請(qǐng)教課及課程報(bào)名人數(shù)情況,進(jìn)行成績(jī)?cè)u(píng)定等;</p><p>  成績(jī)查詢(xún):登錄選課系統(tǒng)→選擇用戶(hù)“學(xué)生”→輸入密碼,提交→提示登錄成功或錯(cuò)誤信息→選擇“選修課成績(jī)查詢(xún)”,選擇學(xué)期→查到對(duì)應(yīng)成績(jī)。</p><p>  成績(jī)管理:教師進(jìn)行操作,包括教師錄入和維護(hù)學(xué)生的成績(jī),統(tǒng)計(jì)成績(jī)查詢(xún)成績(jī),

15、也可進(jìn)行學(xué)生成績(jī)的刪除和修改工作。</p><p><b>  詳細(xì)描述如下:</b></p><p>  登錄:通過(guò)用戶(hù)名及密碼登錄學(xué)生選課系統(tǒng)→驗(yàn)證當(dāng)前用戶(hù)權(quán)限。</p><p>  課程信息瀏覽:讓學(xué)生可以詳細(xì)的了解課程情況。</p><p>  選課:學(xué)生可以選擇要選修的課程 。選課概述:前提條件(正確登錄、同一

16、選課選修兩次第二次不計(jì)學(xué)分)→點(diǎn)擊選課項(xiàng)→提交按鈕→提示選課情況</p><p>  修改選課:由于主觀(guān)或客觀(guān)原因要求退課。修改選課概述:前提條件(限定的課程開(kāi)設(shè)人數(shù)已滿(mǎn),或是不足規(guī)定人數(shù)取消該課程安排的信息,以及個(gè)人在規(guī)定日期前可以修改選課等)</p><p>  成績(jī)查詢(xún):登錄選課系統(tǒng)→選擇用戶(hù)“學(xué)生”→輸入密碼,提交→提示登錄成功或錯(cuò)誤信息→選擇“選修課成績(jī)查詢(xún)”,選擇學(xué)期→查到對(duì)應(yīng)

17、成績(jī)。</p><p>  圖1 學(xué)生選課系統(tǒng)的高層用例圖</p><p><b>  管理子系統(tǒng)用例</b></p><p><b>  用戶(hù)登錄</b></p><p>  獲取用戶(hù)輸入的用戶(hù)名及密碼;</p><p>  若出現(xiàn)用戶(hù)名、密碼錯(cuò)誤或不匹配現(xiàn)象,反饋錯(cuò)誤提示

18、;</p><p>  在用戶(hù)名及密碼都正確的前提下,支持密碼修改。</p><p><b>  選課系統(tǒng)</b></p><p>  首先發(fā)布選課通知,即先對(duì)教師發(fā)出通知(教師得到通知后才可申請(qǐng)教課),然后對(duì)學(xué)生發(fā)出通知(此時(shí)已安排完有關(guān)選修課的所有信息)</p><p>  創(chuàng)建課程指定任課教師</p>

19、<p>  設(shè)定課程的人數(shù)和開(kāi)課時(shí)間安排</p><p>  分配賬號(hào)及密碼(由于是管理員操作此部分)。</p><p><b>  教師教課申請(qǐng)</b></p><p>  獲取教師申請(qǐng)教課的信息,包括教師信息及其所要教的課程課程信息;</p><p>  提供教師瀏覽課程的功能,即課程時(shí)間、教室等的安排;

20、并提供查詢(xún)學(xué)生選課情況的功能,即選此門(mén)課程的名單等;</p><p>  處理和統(tǒng)計(jì)教師對(duì)學(xué)生成績(jī)的評(píng)定。</p><p><b>  學(xué)生選課</b></p><p>  提供學(xué)生修改個(gè)人信息的功能;</p><p>  提供學(xué)生瀏覽全部選修課信息的功能,然后接受學(xué)生的選課操作;</p><p>

21、;  獲取學(xué)生及其所選課程的信息后,提供學(xué)生瀏覽自己所選課程的安排情況;</p><p>  得到選課系統(tǒng)的指令,在相應(yīng)時(shí)間內(nèi)可以讓學(xué)生修改自己的選課;</p><p>  將選課系統(tǒng)統(tǒng)計(jì)好的成績(jī)信息反饋給學(xué)生供其瀏覽。</p><p>  管理員管理子系統(tǒng)用例詳細(xì)描述如下:</p><p>  ①發(fā)放通知:此用例包含兩種情況,一是相對(duì)于教師

22、的,二是相對(duì)于學(xué)生的。相對(duì)于教師,即對(duì)于選課信息錄入后發(fā)放給教師的通知,相對(duì)于學(xué)生即是在安排完選課相應(yīng)的教師、選課限定人數(shù)等規(guī)則后發(fā)放給學(xué)生的通知。</p><p> ?、趯W(xué)生及教師列表:對(duì)于學(xué)生的個(gè)人信息、選課信息,教師的個(gè)人信息、對(duì)應(yīng)教受的課程信息等的查詢(xún)、刪除、修改等操作。</p><p>  ③可選課程列表:在限定人數(shù)已滿(mǎn)或是人數(shù)不夠不進(jìn)行課程開(kāi)設(shè)等情況下對(duì)于課程選擇的限定。<

23、;/p><p> ?、軐W(xué)生已選課程列表:在課程修完教師評(píng)定相應(yīng)成績(jī)后,對(duì)于學(xué)生已選課程的成績(jī)統(tǒng)計(jì)以及錄入發(fā)放。</p><p>  管理員添加及密碼修改:根據(jù)實(shí)際情況進(jìn)行添加、修改等。</p><p>  管理員管理子系統(tǒng)用例圖如下:</p><p>  圖2 管理員管理子系統(tǒng)用例圖</p><p>  教師進(jìn)行查詢(xún)課程,

24、申請(qǐng)教課及課程報(bào)名人數(shù)情況,進(jìn)行成績(jī)?cè)u(píng)定等工作。詳細(xì)見(jiàn)頂層用例圖。</p><p>  圖3教師管理子系統(tǒng)用例圖</p><p><b>  主要是學(xué)生選課操作</b></p><p>  提供學(xué)生修改個(gè)人信息的功能;</p><p>  提供學(xué)生瀏覽全部選修課信息的功能,然后接受學(xué)生的選課操作;</p>

25、<p>  獲取學(xué)生及其所選課程的信息后,提供學(xué)生瀏覽自己所選課程的安排情況;</p><p>  得到選課系統(tǒng)的指令,在相應(yīng)時(shí)間內(nèi)可以讓學(xué)生修改自己的選課。</p><p>  圖4學(xué)生選課子系統(tǒng)用例圖</p><p><b>  三 概要設(shè)計(jì)</b></p><p>  3.1系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)</p&

26、gt;<p>  首先輸入用戶(hù)名和密碼登錄系統(tǒng),系統(tǒng)給出提示,若登錄成功后則進(jìn)行課程信息查詢(xún)。</p><p>  然后對(duì)信息進(jìn)行詳細(xì)查看,例如選課時(shí)間安排、教師安排、人數(shù)安排等,之后可點(diǎn)擊選擇課程并提交確認(rèn),此時(shí)系統(tǒng)也會(huì)給出提示,若成功選擇給出課程詳細(xì)信息,否則將提示人數(shù)已滿(mǎn)的限制信息。</p><p>  修改所選課程,也必須找到自己已選課程列表并進(jìn)行刪除,然后再按相同方

27、法進(jìn)行選課,最終完成選課。當(dāng)然修改課程過(guò)程中,也要注意修改時(shí)間的限定,因?yàn)楣芾韱T也要統(tǒng)計(jì)學(xué)生及其所選課程的信息,所以必須在規(guī)定時(shí)間進(jìn)行修改。</p><p>  經(jīng)過(guò)活動(dòng)圖的可視化效果,可更清楚了解此過(guò)程。</p><p>  圖5 學(xué)生選課操作的活動(dòng)圖</p><p><b>  順序圖</b></p><p>  學(xué)

28、生選課操作的順序圖及管理員管理操作的子系統(tǒng)分別如圖6和圖7所示。</p><p>  圖6 學(xué)生選課操作順序圖</p><p>  圖7 管理員管理操作子系統(tǒng)順序圖4.4.協(xié)作圖</p><p>  圖8 學(xué)生選課操作的協(xié)作圖</p><p>  圖9描述了管理員管理操作時(shí)的協(xié)作圖。參與交互的對(duì)象有課程信息模塊、課程安排模塊及面向教師、學(xué)生。

29、此圖主要考慮通過(guò)對(duì)象之間的交互共同完成選課操作的過(guò)程,各信息流向及標(biāo)明的順序更好詮釋出管理員進(jìn)行管理時(shí)所需對(duì)象及時(shí)間上的配合。管理員管理操作的協(xié)作圖如下所示:</p><p>  圖9 管理員管理操作的協(xié)作圖</p><p>  參與的交互對(duì)象有課程信息模塊、成績(jī)?cè)u(píng)定模塊、成績(jī)管理模塊以及學(xué)生。</p><p>  首先教師進(jìn)入課程信息模塊,選擇自已所教授的選修課,

30、進(jìn)而得到所有學(xué)生信息。然后通過(guò)反饋的信息及自己記錄的考勤情況(如特定安排取消的課時(shí)等)進(jìn)入成績(jī)?cè)u(píng)定模塊。一般是將所有學(xué)生進(jìn)行統(tǒng)一打分,若不是統(tǒng)一的情況或是有修改等情況都可進(jìn)入成績(jī)管理模塊進(jìn)行相應(yīng)操作。在規(guī)定日期前上交評(píng)定成績(jī)信息后再反饋給學(xué)生。</p><p>  圖10 教師評(píng)定成績(jī)的協(xié)作圖</p><p>  學(xué)生在選課操作中其生存周期中所處的不同狀態(tài)、轉(zhuǎn)換時(shí)的條件,雖然看似較為簡(jiǎn)單,

31、但并不可忽視。對(duì)于此信息的詳細(xì)設(shè)計(jì),可進(jìn)一步用于用類(lèi)狀態(tài)的設(shè)計(jì)和編制類(lèi)。</p><p>  圖11 學(xué)生登錄選課的狀態(tài)圖</p><p>  3.2.系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)</p><p>  類(lèi)模型是面向?qū)ο蠓椒ǖ暮诵?,?lèi)模型從對(duì)象的角度描述系統(tǒng)的組成,描述對(duì)象及相互間的關(guān)系。系統(tǒng)已在前面進(jìn)行過(guò)簡(jiǎn)單描述,通過(guò)檢查問(wèn)題陳述中的所有名詞短語(yǔ)和代詞,得到初始類(lèi):</p

32、><p>  學(xué)生 教師 管理員 選課操作 選課管理 申請(qǐng)教課</p><p>  成績(jī)管理 成績(jī)查詢(xún) 用戶(hù)管理 課程信息 可選課程 學(xué)生已選課程</p><p>  經(jīng)過(guò)分析最后得到教師、學(xué)生、管理員、課程信息及系統(tǒng)維護(hù)這幾個(gè)類(lèi)。并標(biāo)識(shí)出類(lèi)的名稱(chēng)及屬性。如下圖所示:</p><p>&

33、lt;b> ?。?)數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  本系統(tǒng)設(shè)計(jì)的是一個(gè)以班級(jí)為單位的選課數(shù)據(jù)庫(kù),能夠?qū)崿F(xiàn)學(xué)生自主選課功能,并能實(shí)現(xiàn)學(xué)生信息、課程信息、學(xué)生選課信息、教室信息、授課教師信息等的創(chuàng)建、更新、刪除、修改,數(shù)據(jù)庫(kù)完整性檢查、沖突檢測(cè)、查詢(xún)優(yōu)化以及數(shù)據(jù)庫(kù)角色、權(quán)限的分配,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份等事務(wù)處理以保證數(shù)據(jù)的完整性、一致性、安全性、可靠性。</p><p>

34、  圖4-1 學(xué)生選課系統(tǒng)總E-R圖</p><p>  3.3系統(tǒng)軟件架構(gòu)設(shè)計(jì) </p><p><b>  3.1功能要求:</b></p><p>  (1) 設(shè)計(jì)數(shù)據(jù)對(duì)象(表、視圖、規(guī)則、函數(shù)等),完成學(xué)生自主選課,實(shí)現(xiàn)對(duì)于數(shù)據(jù)庫(kù)完整性的檢查; </p><p>  (2) 根據(jù)用戶(hù)不同,指派不同權(quán)利:管理員

35、具有dbo權(quán)限,學(xué)生具有插入選課表、退課表權(quán)限,查詢(xún)課程表權(quán)限,確保數(shù)據(jù)庫(kù)的安全性; </p><p>  (3) 能夠?qū)崿F(xiàn)對(duì)于學(xué)生選課信息、課程信息、授課教師信息、教室使用信息的查詢(xún); </p><p>  (4) 設(shè)計(jì)觸發(fā)器/存儲(chǔ)過(guò)程,優(yōu)化數(shù)據(jù)庫(kù)查詢(xún)、沖突檢測(cè)、擴(kuò)展數(shù)據(jù)庫(kù)完整性和數(shù)據(jù)操縱功能; </p><p>  (5) 設(shè)計(jì)選課時(shí)間段,在指定時(shí)間段內(nèi),

36、允許選課、退課。</p><p>  (6) 完成數(shù)據(jù)庫(kù)的備份等事務(wù)處理,保證數(shù)據(jù)庫(kù)的一致性,可靠性。</p><p><b>  3.2 實(shí)現(xiàn)要求</b></p><p>  (1) 根據(jù)系統(tǒng)的功能要求,建立了概念模型,設(shè)計(jì)各功能塊的E-R圖,對(duì)其合并,形成系統(tǒng)總E-R圖, 如圖3-1所示。</p><p>  (2)

37、 利用T-SQL實(shí)現(xiàn)數(shù)據(jù)庫(kù),關(guān)系表,視圖,數(shù)據(jù)類(lèi)型,存儲(chǔ)過(guò)程及其他數(shù)據(jù)對(duì)象的建立、更新、修改及數(shù)據(jù)庫(kù)完整性檢查。</p><p>  (3) 利用企業(yè)管理器實(shí)現(xiàn)角色及用戶(hù)權(quán)利的定義。</p><p><b>  四 詳細(xì)設(shè)計(jì)</b></p><p><b>  蔡忠文設(shè)計(jì)內(nèi)容:</b></p><p&g

38、t;<b>  老師操作模塊:</b></p><p><b>  1)增加老師</b></p><p>  2)根據(jù)教師號(hào)碼修改教師信息</p><p>  3)根據(jù)教師號(hào)碼刪除教師信息</p><p>  4)根據(jù)教師號(hào)碼查詢(xún)教師的信息</p><p>  5)查詢(xún)所有教

39、師的信息</p><p><b>  李梓郡設(shè)計(jì)內(nèi)容:</b></p><p><b>  學(xué)生操作模塊</b></p><p><b>  1)增加學(xué)生</b></p><p>  2)根據(jù)學(xué)號(hào)修改學(xué)生信息</p><p>  3)根據(jù)學(xué)號(hào)刪除學(xué)生信息

40、</p><p>  4)根據(jù)學(xué)號(hào)查詢(xún)學(xué)生信息</p><p>  5)查詢(xún)所有學(xué)生信息</p><p><b>  王超設(shè)計(jì)內(nèi)容:</b></p><p><b>  課程操作模塊</b></p><p><b>  1)增加課程</b></p&

41、gt;<p>  2)根據(jù)課程號(hào)修改課程信息</p><p>  3)根據(jù)課程號(hào)刪除課程的信息</p><p>  4根據(jù)課程號(hào)查詢(xún)課程的信息</p><p><b>  5)查詢(xún)所有課程</b></p><p><b>  張暢設(shè)計(jì)內(nèi)容:</b></p><p&g

42、t;<b>  系統(tǒng)的數(shù)據(jù)字典:</b></p><p>  教師號(hào)T-teacher</p><p>  課程表t-course</p><p>  成績(jī)表t-score</p><p>  學(xué)生表t-student</p><p>  管理員t-manager</p><p

43、><b>  系表</b></p><p><b>  五 實(shí)現(xiàn)</b></p><p>  1.管理員底層代碼:</p><p>  package xiangmu.dao;</p><p>  import java.util.List;</p><p>  imp

44、ort xiangmu.po.course;</p><p>  import xiangmu.po.manager;</p><p>  import xiangmu.po.student;</p><p>  import xiangmu.po.teacher;</p><p>  public interface ManagerDao

45、{</p><p><b>  //管理員登錄</b></p><p>  public boolean inToSystem(manager m);</p><p><b>  //增加學(xué)生</b></p><p>  public boolean addStudentforManager(stu

46、dent s);</p><p>  //根據(jù)學(xué)生的學(xué)號(hào)修改學(xué)生的信息</p><p>  public boolean updateStudentforManager(String sno,student s);</p><p>  //根據(jù)學(xué)號(hào)刪除學(xué)生的全部信息</p><p>  public boolean deleteStudent

47、forManager(String sno);</p><p>  //根據(jù)學(xué)號(hào)查詢(xún)學(xué)生的信息</p><p>  public student selectStudentforManager(String sno);</p><p>  //查詢(xún)所有學(xué)生的信息</p><p>  public List<student> sel

48、ectAllStudent();</p><p><b>  //增加老師</b></p><p>  public boolean addTeacherforManager(teacher t);</p><p>  //根據(jù)教師號(hào)修改教師的信息</p><p>  public boolean updateTeach

49、erforManager(String tno,teacher t);</p><p>  //根據(jù)教師號(hào)刪除教師的信息</p><p>  public boolean deleteTeacherforManager(String tno);</p><p>  //根據(jù)教師號(hào)查詢(xún)教師的信息</p><p>  public teacher

50、 selectTeacherforManager(String tno);</p><p>  //查詢(xún)所有教師的信息</p><p>  public List<teacher> selectAllTeacher();</p><p><b>  //增加課程</b></p><p>  public bo

51、olean addCourseforManager(course c);</p><p>  //根據(jù)課程號(hào)修改課程的信息</p><p>  public boolean updateCourseforManager(String cno,course c);</p><p>  //根據(jù)課程號(hào)刪除課程的信息</p><p>  publi

52、c boolean deleteCourseforManager(String cno);</p><p>  //根據(jù)課程號(hào)查詢(xún)課程的信息</p><p>  public course selectCourseforManager(String cno);</p><p>  //查詢(xún)所有課程的信息</p><p>  public Li

53、st<course> selectAllCourse();</p><p><b>  //退出系統(tǒng)</b></p><p>  public void backSystem();</p><p><b>  }</b></p><p>  2.學(xué)生模塊底層代碼:</p>

54、<p>  package xiangmu.dao;</p><p>  import java.util.List;</p><p>  import xiangmu.po.StuChengJi;</p><p>  import xiangmu.po.course;</p><p>  import xiangmu.po.sco

55、re;</p><p>  import xiangmu.po.student;</p><p>  public interface StudentDao {</p><p><b>  //登錄系統(tǒng)</b></p><p>  public boolean inToSystembyStudent(String sno

56、,String spassword);</p><p><b>  //選課</b></p><p>  public boolean xunKebyStudent(String sno,String cno); </p><p>  //查詢(xún)所有已選課程</p><p>  public List<StuChen

57、gJi> xunAllKeChengbyStudent(String sno);</p><p><b>  //查詢(xún)自身的信息</b></p><p>  public student xunStudent(String sno);</p><p>  //查詢(xún)所選課程的成績(jī)</p><p>  public L

58、ist<score> xunChengJibyStudent(String sno,score s);</p><p><b>  //退課</b></p><p>  public boolean deleteCoursebyStudent(String sno,course c);</p><p><b>  //退出

59、系統(tǒng)</b></p><p>  public void backSystembyStudent();</p><p><b>  }</b></p><p>  3.老師模塊底層代碼:</p><p>  package xiangmu.dao;</p><p>  import j

60、ava.util.List;</p><p>  import xiangmu.po.student;</p><p>  import xiangmu.po.teacher;</p><p>  public interface TeacherDao {</p><p><b>  //登錄系統(tǒng)</b></p&g

61、t;<p>  public boolean inToSystembyTeacher(String tno,String tpassword);</p><p>  //查詢(xún)所有自身所帶課程的所有學(xué)生的信息</p><p>  public List<student> xunAllStudentbyStudent(String tno);</p>&

62、lt;p>  //輸入成績(jī)(在上一步的結(jié)果上,輸入成績(jī))</p><p>  public boolean chengjibyTeacher(String sno,String sscore,String cno);</p><p><b>  //查詢(xún)自身的信息</b></p><p>  public teacher xunTeach

63、erbyTeacher(String tno);</p><p><b>  //退出系統(tǒng)</b></p><p><b>  }</b></p><p>  5.主界面的servlet代碼如下:</p><p>  package xiangmu.gongneng;</p><

64、p>  import java.io.IOException;</p><p>  import java.io.PrintWriter;</p><p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServlet;</p>&l

65、t;p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletResponse;</p><p>  public class main extends HttpServlet{</p><p>  private stati

66、c final long serialVersionUID = 1L;</p><p><b>  @Override</b></p><p>  protected void doGet(HttpServletRequest req, HttpServletResponse resp)</p><p>  throws ServletExce

67、ption, IOException {</p><p>  req.setCharacterEncoding("utf-8");</p><p>  resp.setContentType("text/html;charset=utf-8");</p><p>  PrintWriter out = resp.getWrit

68、er();</p><p>  String username = req.getParameter("username");</p><p>  String password = req.getParameter("password");</p><p>  String yonghu = req.getParameter

69、("yonghu");</p><p>  if(yonghu.equals("student")){</p><p>  req.getRequestDispatcher("/studentcaozuo").forward(req, resp);</p><p>  }else if(yonghu.equ

70、als("teacher")){</p><p>  req.getRequestDispatcher("/teachercaozuo").forward(req, resp);</p><p>  }else if(yonghu.equals("manager")){</p><p>  req.getR

71、equestDispatcher("/managercaozuo").forward(req, resp);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  @Override</b></p><p&g

72、t;  protected void doPost(HttpServletRequest req, HttpServletResponse resp)</p><p>  throws ServletException, IOException {</p><p>  this.doGet(req, resp);</p><p><b>  }</b

73、></p><p><b>  }</b></p><p><b>  管理員界面的代碼:</b></p><p>  package xiangmu.gongneng;</p><p>  import java.io.IOException;</p><p>  i

74、mport java.io.PrintWriter;</p><p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServlet;</p><p>  import javax.servlet.http.HttpServletRequest;<

75、/p><p>  import javax.servlet.http.HttpServletResponse;</p><p>  import xiangmu.daoimpl.ManagerDaoimpl;</p><p>  import xiangmu.po.manager;</p><p>  public class managerca

76、ozuo extends HttpServlet {</p><p>  private static final long serialVersionUID = 1L;</p><p>  public void doGet(HttpServletRequest request, HttpServletResponse response)</p><p>  th

77、rows ServletException, IOException {</p><p>  this.doPost(request, response);</p><p><b>  }</b></p><p>  public void doPost(HttpServletRequest request, HttpServletRespon

78、se response)</p><p>  throws ServletException, IOException {</p><p>  PrintWriter out = response.getWriter();</p><p>  String username = request.getParameter("username");&

79、lt;/p><p>  String password = request.getParameter("password");</p><p>  manager m = new manager(username,password);</p><p>  ManagerDaoimpl mipml = new ManagerDaoimpl();<

80、/p><p>  if(mipml.inToSystem(m)){</p><p>  request.getRequestDispatcher("managergongneng.jsp").forward(request, response);</p><p><b>  }else{</b></p><p

81、>  request.getRequestDispatcher("/managerdengluerror").forward(request, response);</p><p><b>  }</b></p><p>  out.println(username);</p><p>  out.println(pa

82、ssword);</p><p><b>  }</b></p><p><b>  }</b></p><p>  7.學(xué)生模塊界面的代碼:</p><p>  package xiangmu.gongneng;</p><p>  import java.io.IOExc

83、eption;</p><p>  import java.io.PrintWriter;</p><p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServlet;</p><p>  import javax.servl

84、et.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletResponse;</p><p>  import javax.servlet.http.HttpSession;</p><p>  import xiangmu.daoimpl.StudentDaoimpl;&l

85、t;/p><p>  public class studentcaozuo extends HttpServlet {</p><p>  private static final long serialVersionUID = 1L;</p><p>  public void doGet(HttpServletRequest request, HttpServlet

86、Response response)</p><p>  throws ServletException, IOException {</p><p>  this.doPost(request, response);</p><p><b>  }</b></p><p>  public void doPost(Ht

87、tpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  PrintWriter out = response.getWriter();</p><p>  String sno = reques

88、t.getParameter("username");</p><p>  String spassword = request.getParameter("password");</p><p>  StudentDaoimpl simpl = new StudentDaoimpl();</p><p>  String s

89、name = simpl.chaSnameforSno(sno);</p><p>  HttpSession sessionsno = request.getSession();</p><p>  HttpSession sessionsname = request.getSession();</p><p>  sessionsno.setAttribute(

90、"sno", sno);</p><p>  sessionsname.setAttribute("sname", sname);</p><p>  if(simpl.inToSystembyStudent(sno, spassword)){</p><p>  request.getRequestDispatcher(&q

91、uot;student/studentgongneng.jsp").forward(request, response);</p><p><b>  }else{</b></p><p>  request.getRequestDispatcher("/managerdengluerror").forward(request, resp

92、onse);</p><p><b>  }</b></p><p>  out.println(sno);</p><p>  out.println(spassword);</p><p><b>  }</b></p><p><b>  }</b>

93、;</p><p>  8.老師界面的servlet代碼:</p><p>  package xiangmu.gongneng;</p><p>  import java.io.IOException;</p><p>  import java.io.PrintWriter;</p><p>  import j

94、avax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServlet;</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpServletR

95、esponse;</p><p>  import xiangmu.daoimpl.TeacherDaoimpl;</p><p>  public class teachercaozuo extends HttpServlet {</p><p>  private static final long serialVersionUID = 1L;</p>

96、;<p>  public void doGet(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  this.doPost(request, response);</p><

97、p><b>  }</b></p><p>  public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  PrintWrite

98、r out = response.getWriter();</p><p>  String tno = request.getParameter("username");</p><p>  String tpassword = request.getParameter("password");</p><p>  Teac

99、herDaoimpl timpl = new TeacherDaoimpl();</p><p>  String tname = timpl.chaTnameforTno(tno);</p><p>  if(timpl.inToSystembyTeacher(tno, tpassword)){</p><p>  request.getRequestDispat

100、cher("teacher/teachergongneng.jsp?tname="+tname+"").forward(request, response);</p><p><b>  }else{</b></p><p>  request.getRequestDispatcher("/managerdenglue

101、rror").forward(request, response);</p><p><b>  }</b></p><p>  out.println(tno);</p><p>  out.println(tpassword);</p><p>  out.flush();</p><p

102、>  out.close(); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  數(shù)據(jù)庫(kù)設(shè)計(jì)的代碼:</b></p><p><b>  //創(chuàng)建課程表</b></p>

103、<p>  create table t_course(</p><p>  cno varchar(10) primary key ,</p><p>  cname varchar(10) ,</p><p>  cscore varchar(5) ,</p><p>  dno varchar(10) foreign K

104、EY (dno) REFERENCES t_dept(dno)</p><p><b>  )</b></p><p><b>  //創(chuàng)建系表</b></p><p>  create table t_dept(</p><p>  dno varchar(10) primary key,<

105、;/p><p>  dname varchar(10)</p><p><b>  )</b></p><p><b>  //創(chuàng)建學(xué)生表</b></p><p>  create table t_student(</p><p>  sno varchar(10) primar

106、y key,</p><p>  spassword varchar(10),</p><p>  sname varchar(10),</p><p>  ssex varchar(5),</p><p>  sage int ,</p><p>  dno varchar(10) foreign KEY (dno

107、) REFERENCES t_dept(dno),</p><p><b>  )</b></p><p><b>  //創(chuàng)建教師表</b></p><p>  create table t_teacher(</p><p>  tno varchar(10) primary key,</

108、p><p>  tpassword varchar(10) ,</p><p>  tname varchar(10),</p><p>  tsex varchar(5) ,</p><p>  dno varchar(10) foreign KEY(dno) REFERENCES t_dept(dno),</p><p&g

109、t;  cno varchar(10) foreign KEY(cno) REFERENCES t_course(cno)</p><p><b>  )</b></p><p><b>  //創(chuàng)建成績(jī)表</b></p><p>  create table t_score(</p><p>  

110、cno varchar(10) foreign KEY(cno) REFERENCES t_course(cno),</p><p>  sno varchar(10) foreign KEY(sno) REFERENCES t_student(sno),</p><p>  sscore varchar(5),</p><p>  primary KEY(sno,

111、cno)</p><p><b>  )</b></p><p><b>  //創(chuàng)建管理員表</b></p><p>  create table t_manager(</p><p>  managerid varchar(10) primary KEY,</p><p>

112、;  managerpassword varchar(10) </p><p><b>  )</b></p><p><b>  程序的部分界面:</b></p><p><b>  1.學(xué)生界面:</b></p><p>  2.老師操作界面的部分截圖:</p>

113、<p>  3.管理員操作界面的部分截圖:</p><p><b>  六 測(cè)試</b></p><p><b>  6.1.測(cè)試方法</b></p><p><b>  黑盒測(cè)試</b></p><p>  選取測(cè)試用例的原則:</p><p

114、>  1、所設(shè)計(jì)出的測(cè)試用例能夠減少為達(dá)到合理測(cè)試所需要設(shè)計(jì)的附加測(cè)試用例數(shù)目</p><p>  2、所設(shè)計(jì)出的測(cè)試用例能夠告訴我們,是否存在某些類(lèi)型的錯(cuò)誤,而不是僅僅指出與特定測(cè)試相關(guān)的錯(cuò)誤是否存在</p><p>  3、正確的劃分等價(jià)類(lèi),已根據(jù)等價(jià)類(lèi)設(shè)計(jì)測(cè)試方案,以滿(mǎn)足所有的測(cè)試都能追溯到用戶(hù)需求</p><p>  盡量避免含糊的測(cè)試用例。</

115、p><p>  盡量將具有相類(lèi)似功能的測(cè)試用例抽象并歸類(lèi)。</p><p>  盡量避免冗長(zhǎng)和復(fù)雜的測(cè)試用例。</p><p><b>  6.2測(cè)試用例</b></p><p><b>  學(xué)生部分測(cè)試:</b></p><p><b>  教師部分測(cè)試:</b

116、></p><p><b>  課程部分測(cè)試:</b></p><p><b>  七 總結(jié) </b></p><p><b>  7.1.小組總結(jié)</b></p><p>  這次的UML信息系統(tǒng)分析課程設(shè)計(jì),我們做的是“大學(xué)生選修課管理系統(tǒng)”,通過(guò)幾個(gè)星期對(duì)其各階段任

117、務(wù)的分析實(shí)驗(yàn)操作(確定課題、可行性研究與計(jì)劃、需求分析、設(shè)計(jì)等),使我們對(duì)這門(mén)課程有了更深層次的了解,同時(shí)也學(xué)到了很多東西。</p><p><b>  7.2.個(gè)人總結(jié)</b></p><p>  我們剛學(xué)過(guò)軟件工程課程,此次項(xiàng)目當(dāng)中我也用到了軟件工程過(guò)程的思想。首先確定項(xiàng)目課題,弄清選題依據(jù)后,進(jìn)行了可行性研究,可行性研究的主要任務(wù)不是具體解決系統(tǒng)中實(shí)現(xiàn)問(wèn)題,而是

118、以最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否值得解決,是否能夠解決,因此我考慮了項(xiàng)目的進(jìn)度、質(zhì)量,范圍以及風(fēng)險(xiǎn)等內(nèi)容。</p><p>  從UML建模思想與操作技術(shù)上的可行方面。接著是需求分析工作流階段,分析工作六階段,但是這部分任務(wù)用了較長(zhǎng)的時(shí)間,因?yàn)槌擞脗鹘y(tǒng)的結(jié)構(gòu)化分析方法學(xué)外,還用了我們學(xué)過(guò)的課程信息系統(tǒng)面向?qū)ο蟮姆治龇椒椒▽W(xué)。剛開(kāi)始用結(jié)構(gòu)化的方法時(shí),由于對(duì)系統(tǒng)的了解程度不夠,項(xiàng)目即將面臨癱瘓,認(rèn)為做不下

119、來(lái)這個(gè)項(xiàng)目,實(shí)施過(guò)程中出現(xiàn)這樣那樣一系列的風(fēng)險(xiǎn)問(wèn)題,搞得我弄得暈頭轉(zhuǎn)向,好多好多的困難。最后我決定從最基本的數(shù)據(jù)流圖著手,一步一步的來(lái),縮小項(xiàng)目的范圍。按照“自定而下,逐層分解”的總原則劃分,逐層到每一層的復(fù)雜度。</p><p>  比較有難度的就是用面向?qū)ο蟮姆椒ǚ治隽耍@種方法以前自己沒(méi)有使用過(guò),只是通過(guò)課程來(lái)了解其含義,理解起來(lái)也很空洞。一開(kāi)始我就覺(jué)得很難上手,在建立用例模型的時(shí)候,也遇到好多困難。比如,

120、用例的擴(kuò)展和包含,我們書(shū)上是include和extend。在Visio軟件中,沒(méi)有這內(nèi)容,這令人比較糾結(jié),還有如何確定執(zhí)行者、用例、用例之間的具體關(guān)系;在建立動(dòng)態(tài)模型的時(shí)候,</p><p>  如何分析確定類(lèi)、確定類(lèi)與類(lèi)之間的關(guān)系等等都阻礙著分析的前行。為了解決這些問(wèn)題,我也不乏做了很多工作,比如把書(shū)上的各小節(jié)的例子與案例分析都仔細(xì)的研究了幾遍,尤其是我們講的Osbert Oglesby案例進(jìn)行了研究。然后通過(guò)

121、借鑒其它書(shū)本及網(wǎng)上搜索的資料,</p><p>  我花了一個(gè)周時(shí)間進(jìn)行設(shè)計(jì)階段的工作,這部分我熟悉了一個(gè)軟件開(kāi)發(fā)工具——Visio。當(dāng)然了,考慮用word來(lái)畫(huà)模型圖還是比較復(fù)雜,至少說(shuō)很花時(shí)間的,而用Visio工具大大節(jié)約了時(shí)間并且減少了出錯(cuò)率,同時(shí)也使得我們對(duì)UML建模有了一個(gè)專(zhuān)業(yè)上的認(rèn)知。之后根據(jù)需要對(duì)系統(tǒng)進(jìn)行了數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),這部分內(nèi)容比較簡(jiǎn)潔,因?yàn)槲覀冊(cè)瓉?lái)就學(xué)過(guò)SQL數(shù)據(jù)庫(kù)應(yīng)用知識(shí),曾經(jīng)也做過(guò)有關(guān)數(shù)據(jù)庫(kù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論