




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 軟件工程課程實驗 綜 合 報 告實驗項目名稱: 學(xué)生信息管理系統(tǒng) 所屬院系名稱: 計算機科學(xué)與技術(shù)學(xué)院 所在專業(yè)班級: 軟件132003班 實驗小組成員: 實驗報告日期: 2015年7月5日 34學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計1第一章學(xué)生信息管理系統(tǒng)簡介11.1系統(tǒng)概述(編寫目的)11.2項目背景1第二章可行性研究22.1可行性分析的目的22.2可行性分析的內(nèi)容22.3可行性分析過程22.3.1條件假定和預(yù)定22.3.2可行性研究方法 22.3.3技術(shù)可行性32.3.4進(jìn)度分析32.3.5資源分析32.4可行性分析結(jié)果4第三章需求分析53.1編寫目的53.2系統(tǒng)功能53.2.1總目標(biāo)53.2.2具
2、體目標(biāo)63.2.3性能目標(biāo)63.2.4系統(tǒng)圖7第四章總體設(shè)計164.1總體設(shè)計的目的164.2總體設(shè)計的內(nèi)容164.3設(shè)計過程164.4總體設(shè)計的結(jié)果22第五章 詳細(xì)設(shè)計225.1詳細(xì)設(shè)計的目標(biāo)225.2詳細(xì)設(shè)計的內(nèi)容235.3設(shè)計過程235.4設(shè)計結(jié)果25第六章編碼實現(xiàn)266.1編碼實現(xiàn)的目的266.2編碼的工具266.3編碼過程26第七章代碼測試317.1代碼測試的目的317.2 測試工具(方法)317.3 測試過程317.4測試結(jié)果31第八章系統(tǒng)維護328.1 維護目的328.2 維護方法328.3 維護過程328.4 維護結(jié)果33 33 33第九章心得與體會349.1 收獲與體會349
3、.2 未來的展望34參考文獻(xiàn)34學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第一章學(xué)生信息管理系統(tǒng)簡介1.1系統(tǒng)概述(編寫目的)由于Excel的操作復(fù)雜,需要一定的軟件知識,所以導(dǎo)致學(xué)生信息管理隨著社會信息化的腳步加快,個人的信息也呈現(xiàn)出多樣性,這便給信息管理者造成了巨大的壓力和難度,也給傳統(tǒng)的文件信息管理模式提出了挑戰(zhàn)?,F(xiàn)有的學(xué)生信息(1)學(xué)生信息管理缺乏安全、便捷性。(2)工作效率低。(3)無法實現(xiàn)不同學(xué)院數(shù)據(jù)的復(fù)合使用。 為了提高學(xué)校學(xué)生信息管理的效率和準(zhǔn)確性,我們團隊決定開發(fā)一個學(xué)生信息管理系統(tǒng),希望通過信息化手段管理學(xué)生信息,實現(xiàn)提高效率和準(zhǔn)確性的目的。學(xué)生成績管理系統(tǒng)在提高學(xué)生成績信息處理的效率的同時
4、,又能為廣大師生提供及時準(zhǔn)備的學(xué)生成績信息。可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對教務(wù)、教學(xué)上的各項服務(wù)和信息進(jìn)行管理。同時,可以減少勞動力的使用,加快查詢速度以及國家各部門關(guān)于信息化的步伐,使各項管理更加規(guī)范化,提高了傳統(tǒng)教師的工作任務(wù)量。1.2項目背景開發(fā)軟件名稱:學(xué)生信息管理系統(tǒng)項目任務(wù)提出者:太原科技大學(xué)軟件工程系項目開發(fā)者:谷曉榮(組長)郝園園 王震軟件使用者:學(xué)校學(xué)生管理處開發(fā)環(huán)境:vc+6.0 Windows7 數(shù)據(jù)庫開發(fā)軟件等參考文獻(xiàn):軟件工程導(dǎo)論清華大學(xué)出版社第六版第二章可行性研究2.1可行性分析的目的該系統(tǒng)的目標(biāo)是在學(xué)生信息管理中,使用計算機的網(wǎng)絡(luò)技術(shù)、通訊技術(shù)和信息處
5、理技術(shù),是學(xué)生信息得以加工,依次傳達(dá)及保存。系統(tǒng)要對使用要求不相同的用戶群體設(shè)置不同的功能。管理員能有效地管理學(xué)生的信息,同事,學(xué)生可以隨時大量的檢索查詢多種信息。本系統(tǒng)為管理者提供了完整的管理平臺,其主要功能有:(1)通過已有的學(xué)生信息庫,管理學(xué)生的信息,還可以管理教師的信息,管理課程的信息,管理班級的信息;(2)可以修改學(xué)生的信息,選擇課程,檢索成績等;(3)修改教師的信息,檢索學(xué)生的成績,登記授課的學(xué)生情況。可行性分析就是為了確定該系統(tǒng)從各個方面確定該系統(tǒng)在經(jīng)濟上、技術(shù)上、法律上的可否實現(xiàn)。2.2可行性分析的內(nèi)容從技術(shù)可行性、資源分析、法律道德分析和效益分析來判分析一下學(xué)生信息管理系統(tǒng)能
6、否實現(xiàn)。2.3可行性分析過程2.3.1條件假定和預(yù)定A 建議開發(fā)軟件運行的最短壽命:五年B進(jìn)行系統(tǒng)方案選擇比較的期限:一周C經(jīng)費來源和使用限制:經(jīng)費來源由學(xué)校提供;使用時應(yīng)定期維護,防止系統(tǒng)出現(xiàn)高漏洞而帶來些復(fù)雜問題。D法律和政策方面的限制:此軟件設(shè)計合法,不存在于法律、政策相違背的現(xiàn)象。E硬件環(huán)境:若干臺計算機F工作站:每個部門至少有一臺作為工作站的PC機G操作系統(tǒng):windowswin7win8等操作系統(tǒng)H數(shù)據(jù)庫:SQLServer20052.3.2可行性研究方法1、初步分析,構(gòu)想所有必須完成的功能;2、初步需求分析:可行性分析報告、數(shù)據(jù)流圖、數(shù)據(jù)字典、可行性分析報告;3、建立系統(tǒng)原型:修
7、改規(guī)格說明;4、管理員,教師,學(xué)生,完善模型,明確功能和實現(xiàn)方法;5、系統(tǒng)的整體測試和修改完善。2.3.3技術(shù)可行性學(xué)生信息管理系統(tǒng)的開發(fā)需要對管理的需求進(jìn)行分析,最終通過簡單的界面按鈕操作實現(xiàn)對學(xué)生數(shù)據(jù)的增、刪、改和查詢操作,并將這些操作反應(yīng)到數(shù)據(jù)庫的操作。完成以上功能需要采用以下幾個關(guān)鍵的技術(shù):(1)數(shù)據(jù)庫數(shù)據(jù)顯示技術(shù)通過什么方式和形式把數(shù)據(jù)庫中的學(xué)生數(shù)據(jù)顯示到界面上供管理者查閱,目前的基本技術(shù)都是基于Sql語言的混合編程實現(xiàn)遍歷數(shù)據(jù)庫,對數(shù)據(jù)的提取,然后通過GUI編程在界面上顯示。目前的界面編程和Sql語言的混合編程已經(jīng)比較成熟,比如用于界面編程的有C、Java、Qt、C+等等,并且他們
8、基本都是開源的,不會存在侵權(quán)和成本的問題。(2)數(shù)據(jù)庫數(shù)據(jù)修改技術(shù)對數(shù)據(jù)庫的操作基本的還是離不開Sql語言的混合編程,主要是通過對按鈕事件的捕捉,通過對應(yīng)的Sql代碼實現(xiàn)對數(shù)據(jù)庫相關(guān)操作。(3)系統(tǒng)在運行和維護面臨的問題系統(tǒng)在運行過程中,系統(tǒng)的用戶主要是學(xué)校的信息管理人員,用戶對系統(tǒng)使用的熟練程度會影響系統(tǒng)應(yīng)用的效果,增加系統(tǒng)維護的壓力。這個問題可以通過一份簡單的管理人員使用說明文檔來解決。在系統(tǒng)運行的初級階段,可以由開發(fā)方的系統(tǒng)維護人員提供現(xiàn)場的使用指導(dǎo)。系統(tǒng)維護面臨的主要問題是系統(tǒng)存儲的學(xué)生數(shù)據(jù)量比較大,數(shù)據(jù)備份和數(shù)據(jù)安全十分重要。數(shù)據(jù)備份與恢復(fù)需要程序化、智能化。由于數(shù)據(jù)涉及到學(xué)生個人信
9、息秘密,數(shù)據(jù)備份與恢復(fù)工作需要有信息管理人員專職負(fù)責(zé)。 2.3.4進(jìn)度分析 根據(jù)軟件工程課程對學(xué)生信息管理系統(tǒng)期待提交運行的時間,開發(fā)小組的現(xiàn)有人力物力,以及隊員對開技術(shù)的掌握情況,可以在軟件工程課程要求的時間內(nèi)完成開發(fā)任務(wù),具體分析如下。時間段里程碑4月25日-5月1日項目啟動、需求分析5月4日-5月11日系統(tǒng)的概要設(shè)計5月-12日-5月17日系統(tǒng)詳細(xì)設(shè)計5月17日-5月24日編碼實現(xiàn)5月-24日-5月30日測試、使用2.3.5資源分析(1) 開發(fā)方開發(fā)方在人員上已經(jīng)做好準(zhǔn)備,為項目開發(fā)人員劃分了具體任務(wù),有具有項目管理經(jīng)驗的老師作為開發(fā)指導(dǎo),組成了具有開發(fā)人員和測試人員的開發(fā)和測試明確分工
10、的團隊。在技術(shù)、資源方面,開發(fā)團隊已經(jīng)具備數(shù)據(jù)庫、和基本開發(fā)工具(如VC)的相關(guān)知識,而且能夠從指導(dǎo)老師那獲取的全面技術(shù)指導(dǎo)和支持。2.3.6法律道德分析該項目為獨立開發(fā),開發(fā)環(huán)境和開發(fā)工具是使用開源的免費合法的工具,在法律方面不會存在侵犯專利權(quán)、侵犯版權(quán)等問題。2.3.7效益分析1.經(jīng)濟效益分析(1)提高管理者的工作效率后,使得信息管理人員需求的減少,減少了額外的開支。(2)提高信息管理的便捷性,降低信息管理的要求。2.社會效益分析(1)節(jié)省了管理者的時間,降低了勞動輸出量。(2)提高了學(xué)校信息化程度的形象。2.4可行性分析結(jié)果通過分析,在學(xué)生信息管理中,使用計算機的網(wǎng)絡(luò)技術(shù),通訊技術(shù)和信息
11、管理技術(shù),使學(xué)生的信息得以加工,依次傳達(dá)及保存。系統(tǒng)要對使用要求不相同的用戶群體設(shè)置不同的功能。 從必要性、技術(shù)、資源、時間、社會法律等幾角度的分析,學(xué)生信息管理系統(tǒng)項目是可行的,是可以設(shè)計的。學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第三章需求分析3.1編寫目的為學(xué)生管理系統(tǒng)的開發(fā)提供可行性分析的結(jié)論,為項目是否正式立項、啟動提供依據(jù),為項目啟動后的需求分析、設(shè)計、開發(fā)、測試等工作提供基礎(chǔ)依據(jù)。該系統(tǒng)的編寫目的是提高學(xué)生成績管理的工作效率,使人們從乏味的數(shù)據(jù)登記和統(tǒng)計工作中解脫出來,保證工作的準(zhǔn)確率,為老師及同學(xué)提供充足的信息和快捷的查詢手段。數(shù)據(jù)庫作為計算機應(yīng)用的一部分,對學(xué)生成績查詢進(jìn)行管理具有手工管理無
12、法比擬的優(yōu)點,例如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長等。這些優(yōu)點能夠極大地提高學(xué)生成績查詢和管理的效率。 學(xué)生管理系統(tǒng)在提高學(xué)生成信息處理的效率的同時,又能為廣大師生提供及時準(zhǔn)備的學(xué)生信息。可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對教務(wù)、教學(xué)上的各項服務(wù)和信息進(jìn)行管理。同時,可以減少勞動力的使用,加快查詢速度以及國家各部門關(guān)于信息化的步伐,使各項管理更加規(guī)范化,提高了傳統(tǒng)教師的工作任務(wù)量。學(xué)生管理系統(tǒng)的功能主要分為:前臺管理和后臺管理兩大功能。3.2系統(tǒng)功能學(xué)生管理系統(tǒng)的功能主要分為:前臺管理和后臺管理兩大功能。3.2.1總目標(biāo)l 實現(xiàn)學(xué)生信息進(jìn)入系統(tǒng)的自動化,提高學(xué)生信
13、息統(tǒng)計的實時性,減輕人工勞動強度從而節(jié)省人力成本。l 實現(xiàn)學(xué)生信息查詢的實時性,規(guī)避信息孤島。l 提高學(xué)生信息的暢通度,為學(xué)生以及教師提供方便。3.2.2具體目標(biāo)1)前臺管理系統(tǒng)必須具備以下功能:l 信息的錄入:根據(jù)學(xué)校的特點制定相關(guān)功能,可以通過唯一的學(xué)號將學(xué)生信息錄入,該功能可以充分保證各種電腦操作層次的人員均能通過學(xué)生管理系統(tǒng)快速的錄入該學(xué)生,并為后續(xù)的功能提供技術(shù)上的支持。l 信息的刪除:根據(jù)學(xué)校的相關(guān)條律,將輟學(xué)或者勸退的學(xué)生的信息從學(xué)生管理系統(tǒng)中刪除,該功能可以充分保證各種電腦操作層次的人員操作,同時也是達(dá)到系統(tǒng)空間的充分利用。l 信息的修改:根據(jù)學(xué)生在校期間的表現(xiàn),有些許掛科,重
14、修的科目,都會實時性的進(jìn)行更新,該功能必須充分保證各個電腦操作層次的人員都能進(jìn)行操作,達(dá)到學(xué)生信息更改的迅速的效率。l 信息的查詢:在學(xué)生需要知道自己的信息時,可以通過學(xué)生管理系統(tǒng),進(jìn)行查詢。如:成績,課程表,報名等等。2)后臺管理系統(tǒng)必須具備以下功能:l 人員管理:教師,學(xué)生,游客,管理員等基本信息的登記管理。該功能將不同階級的人分層,以便更好的管理,達(dá)到管理的高效率。l 權(quán)限管理:各個人員的權(quán)限是不同的,教師可以登記學(xué)生成績,學(xué)生可以瀏覽自己的信息或者修改一些基本信息,游客只能瀏覽信息,管理員可以修改各個信息。該功能充分保證了信息的安全性。3.2.3性能目標(biāo)l 系統(tǒng)的操作人員需要進(jìn)行一定的
15、培養(yǎng),不可盲目的修改,導(dǎo)致學(xué)生信息混亂。l 系統(tǒng)的運行的可靠性要求較高,必須保證信息不可輕易丟失,損害學(xué)生個人利益。l 系統(tǒng)必須可進(jìn)行實時性處理,其效率比人工處理效率要高出70%。3.2.4系統(tǒng)圖系統(tǒng)總體結(jié)構(gòu)學(xué)生管理系統(tǒng)前臺管理系統(tǒng)后臺管理系統(tǒng)信息錄入 成員權(quán)限管理成員信息管理信息刪除信息修改信息查詢信息錄入:信息錄入系統(tǒng)能夠準(zhǔn)確的錄入各種信息。信息錄入準(zhǔn)確錄入信息(1)關(guān)系圖(2)狀態(tài)轉(zhuǎn)換圖信息刪除:信息刪除系統(tǒng)能夠刪除不再在學(xué)校的學(xué)生及教師信息。信息刪除刪除離校師生信息(1)關(guān)系圖(2)狀態(tài)轉(zhuǎn)換圖信息修改:信息修改系統(tǒng)能夠根據(jù)學(xué)生的活動修改學(xué)生信息。信息修改修改師生信息(1)關(guān)系圖(2)狀
16、態(tài)轉(zhuǎn)換圖信息查詢:學(xué)生信息查詢系統(tǒng)能夠準(zhǔn)確的查詢某個學(xué)生的學(xué)生信息。信息查詢準(zhǔn)確查詢學(xué)生信息(1)關(guān)系圖(2)狀態(tài)轉(zhuǎn)換圖成員信息及權(quán)限管理:用戶進(jìn)入POS系統(tǒng)界面,輸入ID號碼,檢測是管理員,學(xué)生還是教師。如果是管理員,則有增加、刪除、修改、查詢信息的功能;如果是學(xué)生,則有查詢學(xué)生成績、修改基本信息的功能;如果是教師,則有登記授課學(xué)生情況,查詢學(xué)生成績,修改教師信息的功能。(1)關(guān)系圖(2)狀態(tài)轉(zhuǎn)換圖學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第四章總體設(shè)計4.1總體設(shè)計的目的本系統(tǒng)采用面向?qū)ο蠓椒ㄟM(jìn)行分析和設(shè)計,在SQL Server 2005數(shù)據(jù)庫上實現(xiàn)數(shù)據(jù)操作。使用純面向?qū)ο蟮腏AVA語言作為開發(fā)語言,使用
17、Windows 7作為開發(fā)平臺,能夠很好的實現(xiàn)系統(tǒng)的開發(fā)及測試。通過這個階段的設(shè)計將劃分出組成學(xué)生信息管理系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等,但是在這個過程中每個物理元素仍然處于黑盒子級。同時還要在這個階段設(shè)計軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中有那些模塊組成,以及模塊之間的關(guān)系。4.2總體設(shè)計的內(nèi)容(1) 設(shè)計并選取合適的實現(xiàn)學(xué)生信息管理系統(tǒng)的方法(2) 設(shè)計高效率的軟件結(jié)構(gòu)(3) 設(shè)計必要的數(shù)據(jù)庫(4) 書寫文檔(5) 制定測試計劃4.3設(shè)計過程(1) 選取合理的方案在SQL 2005的基礎(chǔ)上先建立一個學(xué)生數(shù)據(jù)庫,然后用c+程序設(shè)計語言嵌套SQL語言設(shè)計一個合理的軟件程序?qū)崿F(xiàn)對學(xué)
18、生數(shù)據(jù)庫的管理。最后要對操作界面進(jìn)行優(yōu)化,以及軟件的操作流程和軟件結(jié)構(gòu)進(jìn)行優(yōu)化。在后期我們還要配備專業(yè)的人士為此系統(tǒng)進(jìn)行長期的管理和維護。(2) 推薦最佳的方案省略(3) 功能分解學(xué)生信息管理系統(tǒng)”主要分為登錄、權(quán)限管理、學(xué)生信息管理、教師信息管理、課程信息管理、賬戶管理等6個模塊。系統(tǒng)主模塊功能樹如圖所示:系統(tǒng)概述圖(第一層)權(quán)限管理(管理員)模塊學(xué)生信息管理模塊 教師信息管理模塊課程信息管理模塊 賬戶管理模塊 課程信息更新模塊 學(xué)生信息更新模塊教師信息更新模塊(4) 設(shè)計軟件結(jié)構(gòu)(5) 設(shè)計數(shù)據(jù)庫 概念結(jié)構(gòu)設(shè)計就是E-R方法的分析與設(shè)計,概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。在此,將使用實體
19、聯(lián)系(E-R)模型來描述系統(tǒng)的概念結(jié)構(gòu),同時設(shè)計出能夠滿足用戶需求的的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這也實體包括各種具體的實際信息,通過相互之間的作用形成數(shù)據(jù)的流動。本程序根據(jù)上面的設(shè)計規(guī)劃出的實體有:學(xué)籍實體、班級實體、年級實體、課程實體與成績實體,學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫E-R模型,如下圖所示:(5.1)數(shù)據(jù)庫和數(shù)據(jù)表的建立學(xué)生信息表表名稱標(biāo)識:Student表數(shù)據(jù)來源:新生信息錄入模塊進(jìn)行錄入教師信息表表名稱標(biāo)示:teacher表教師信息錄入課程信息表表名標(biāo)示:course表課程信息錄入學(xué)生課程信息表表名稱標(biāo)識:Studentcourse表學(xué)生成績錄入表教師-
20、課程信息表表名稱標(biāo)示:teacher-course表教師和所授課程信息(6) 審查和復(fù)查省略4.4總體設(shè)計的結(jié)果通過本階段的設(shè)計,得到一個較為合理的軟件結(jié)構(gòu)。模塊化分的合適,同時本結(jié)構(gòu)有清晰的層次結(jié)構(gòu),各個層次的人士都能理解本軟件的結(jié)構(gòu)。各個模塊有較好的獨立性,軟件由一組完成相對獨立的子功能的模塊組成,這些模塊之間接口的關(guān)系較為簡單。我們運用了自頂向下逐步求精方法。同時我們運用在數(shù)據(jù)庫設(shè)計方面的知識,對我們需要的數(shù)據(jù)庫進(jìn)行了設(shè)計。設(shè)計步驟:(1)概念設(shè)計(2)邏輯設(shè)計(3)物理設(shè)計(4)數(shù)據(jù)庫實施。我們得到一個初步的學(xué)生信息關(guān)系系統(tǒng)的數(shù)據(jù)庫。學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第五章 詳細(xì)設(shè)計5.1詳細(xì)設(shè)
21、計的目標(biāo)詳細(xì)設(shè)計階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實現(xiàn)所要求的學(xué)生信息管理系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。詳細(xì)設(shè)計不是具體的編寫程序,而是要設(shè)計出程序的“藍(lán)圖”,以后程序員將要根據(jù)這個“藍(lán)圖”寫出實際的程序代碼。總體設(shè)計是面向數(shù)據(jù)流的設(shè)計方法,根據(jù)數(shù)據(jù)流確定軟件結(jié)構(gòu)的方法。為了使其系統(tǒng)結(jié)構(gòu)更加明確,采用詳細(xì)設(shè)計來更加具體的達(dá)到目的,即面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,根據(jù)數(shù)據(jù)結(jié)構(gòu)設(shè)計程序處理過程的方法。詳細(xì)設(shè)計的目標(biāo)不僅僅是邏輯上正確的地實現(xiàn)每個模塊的功能,更重要的是設(shè)計出的處理過程應(yīng)該盡可能的簡明
22、易懂。詳細(xì)設(shè)計的最總結(jié)果將影響程序代碼的質(zhì)量。結(jié)構(gòu)程序設(shè)計技術(shù)是實現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),因此是詳細(xì)設(shè)計的邏輯基礎(chǔ)。5.2詳細(xì)設(shè)計的內(nèi)容(1)設(shè)計并選取合適的實現(xiàn)學(xué)生信息管理系統(tǒng)的詳細(xì)設(shè)計方法(2)詳細(xì)設(shè)中運用到的工具(3)詳細(xì)設(shè)中運用到的設(shè)計方法5.3設(shè)計過程1:過程設(shè)計方法(1) 結(jié)構(gòu)程序設(shè)計:盡可能少的使用GO TO語句,最好僅在檢測出錯時才使用GoTO語句,一般采用順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)的一種程序設(shè)計方法。其中學(xué)生信息管理系統(tǒng)的設(shè)計也采用這三種最基本的結(jié)構(gòu)。(2) 人機界面設(shè)計:作為接口設(shè)計的一個重要組成部分,是一個迭代的過程,通常先創(chuàng)建設(shè)計模型,再用原型實現(xiàn)這個設(shè)計模型,并由用戶
23、試用和評估,然后根據(jù)用戶意見進(jìn)行修改。人機界面的設(shè)計質(zhì)量直接影響到用戶對軟件產(chǎn)品的評價,從而影響軟件產(chǎn)品的競爭力和壽命,必須對人機界面設(shè)計給予足夠重視。對于學(xué)生信息管理系統(tǒng)也要注意人機界面設(shè)計的過程。2:過程設(shè)計工具 描述程序處理過程的工具。(1) 程序流程圖:使用最廣泛的描述過程設(shè)計方法。 優(yōu)點:對控制流程的描繪很直觀,便于初學(xué)者掌握。 開始 頁面登陸 進(jìn)入登陸界面是否進(jìn)入學(xué)生信息管理系統(tǒng)你要實現(xiàn)的功能編號X,主菜單1:賬號管理 2:信息錄入 3:信息添加 4:信息查詢 5:信息修改 6:信息刪除 7:退出系統(tǒng)X=0&X=7賬號注冊,登陸注冊,輸入賬號,登陸界面 X=1 注冊成功 X=2學(xué)生
24、信息教師信息課程信息成績錄入 X=3學(xué)生信息教師信息課程信息成績添加 X=4學(xué)生信息教師信息課程信息成績查詢 X=5學(xué)生信息教師信息課程信息成績修改 X=6學(xué)生信息教師信息課程信息成績刪除 X=7 退出系統(tǒng)結(jié)束 學(xué)生信息管理系統(tǒng)程序流程圖缺點: (a)程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早的考慮 程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。(b)程序流程圖中用箭頭代表控制流,因此程序員不受任何拘束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。(c)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。5.4設(shè)計結(jié)果通過本階段的設(shè)計,利用程序流程圖將學(xué)生信息管理系統(tǒng)的過程明確的表示出來,為下一步編程提供了
25、一個明確的模版。學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第六章編碼實現(xiàn)6.1編碼實現(xiàn)的目的 編碼是將軟件設(shè)計結(jié)果翻譯成用某種程序設(shè)計語言書寫的程序,是對設(shè)計的進(jìn)一步具體化。編碼為計算機中的數(shù)據(jù)與實際處理的信息之間建立聯(lián)系,提高信息處理的效率。編碼風(fēng)格是指編程遵循的基本原則。良好的編碼風(fēng)格有利于彌補語言的缺陷,編寫出高質(zhì)量的軟件。包括程序內(nèi)部的文檔、數(shù)據(jù)說明、語句構(gòu)造、輸入/輸出、效率等方面的問題。 選擇一種編程語言的理論標(biāo)準(zhǔn):(這里選擇Java)1)有理想的模塊化機制;2)可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);3)便于調(diào)試和提高軟件可靠性;4)編譯程序發(fā)現(xiàn)程序錯誤的能力強;5)有良好的獨立編譯機制。 6.2編碼的工具
26、使用java編寫程序, Eclipse6.3編碼過程根據(jù)詳細(xì)設(shè)計中的程序流程圖分模塊編寫程序,然后再組裝起來。編碼過程中涉及到的類:SimpleStudentManager 主函數(shù)類DLFrame 登陸界面類 ManagerFrane 管理員界面類 StudentFrame 學(xué)生界面類 SM 學(xué)生信息管理的類 SAdd 用于學(xué)生信息管理中增加或修改某條記錄的界面的類 SSelect 用于學(xué)生基本信息管理中查詢時輸入學(xué)號的界面的類(1)登錄界面模塊:學(xué)生信息管理系統(tǒng)可由管理員和學(xué)生兩種身份的人使用。管理員和學(xué)生身份登錄所能操作的功能有很大的區(qū)別。mport javax.swing.*;impor
27、t java.awt.*;import java.awt.event.*;import java.sql.*;class DLFrame extends JFrame implements ActionListener, ItemListener / 登錄界面JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel(用戶:);JTextField txtUser = new JTextField();JLabel password = new JLabel(密碼:);JPasswordFiel
28、d txtPwd = new JPasswordField(6);JLabel role = new JLabel(角色:);JComboBox cbrole = new JComboBox();JButton btnLogin = new JButton(登錄);JButton btncz = new JButton(重置);JButton btnCancel = new JButton(取消);JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection
29、con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;public DLFrame() / 構(gòu)造方法super(登錄界面);p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem(管理員);cbrole.addItem(學(xué)生);image = new ImageIcon(picturest.jpg);imageLabel = new JLabel(image);p1.add(imageLabel);this.setLayout(new
30、 FlowLayout();this.setBounds(100, 100, 246, 345);p2.setLayout(new GridLayout(4, 2);p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDef
31、aultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);public void connDB() / 連接數(shù)據(jù)庫try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundExceptio
32、n e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();p
33、ublic void itemStateChanged(ItemEvent e) if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();qxian = jcb.getSelectedIndex();public void actionPerformed(ActionEvent e) Object source = e.getSource();String un = null;String pw = null;boolean success = false;/ 用于判斷是否登錄
34、成功if (source = btnLogin) if (txtUser.getText().equals() | txtPwd.getText().equals() / 判斷是否輸入了用戶名和密碼JOptionPane.showMessageDialog(null, 登錄名和密碼不能為空!); else this.connDB();try rs = stmt.executeQuery(select * from unpw where qx=+ qxian);while (rs.next() un = rs.getString(un).trim();pw = rs.getString(pw).
35、trim();if (txtUser.getText().equals(un) if (txtPwd.getText().equals(pw) actionCode = OK;this.setVisible(false);if (qxian = 0) new ManagerFrane();/ 進(jìn)入管理員界面if (qxian = 1) new StudentFrame();/ 進(jìn)入學(xué)生界面success = true;break; else JOptionPane.showMessageDialog(null, 密碼錯誤!);txtPwd.setText();success = true;if
36、 (!success) JOptionPane.showMessageDialog(null, 登錄名錯誤!);txtUser.setText();txtPwd.setText(); catch (SQLException e1) e1.printStackTrace(); else if (source = btncz) txtUser.setText();txtPwd.setText(); else if (source = btnCancel) System.exit(0);(2)學(xué)生信息管理模塊編碼:import javax.swing.*;import java.awt.*;impo
37、rt java.awt.event.*;import java.sql.*;class SAdd extends JFrame implements ActionListener, ItemListener / 用于學(xué)生信息管理中增加或修改某條記錄的界面JLabel lsno = new JLabel(學(xué)號:);JLabel lsname = new JLabel(姓名:);JLabel lssex = new JLabel(性別:);JLabel lsage = new JLabel(年齡:);JLabel lsdept = new JLabel(院系:);JTextField tsno =
38、 new JTextField(14);JTextField tsname = new JTextField(14);JComboBox cbssex = new JComboBox();JTextField tsage = new JTextField(14);JComboBox cbsdept = new JComboBox();JButton btnOK = new JButton( 確 定 );JButton btnCancel = new JButton( 取 消 );JPanel p = new JPanel();Connection con = null;Statement st
39、mt = null;ResultSet rs = null;String xb = 男;String yx = 計科系;boolean isNewsm = true;/ 用于判斷是否顯示學(xué)生管理的界面public SAdd(String xb, String yx) / 構(gòu)造方法this.xb = xb;this.yx = yx;this.setTitle(增加);this.setBounds(200, 200, 220, 210);if (xb.trim().equals(男) cbssex.addItem(男);cbssex.addItem(女); else cbssex.addItem(
40、女);cbssex.addItem(男);if (yx.trim().equals(計科系) cbsdept.addItem(計科系);cbsdept.addItem(物理系);cbsdept.addItem(數(shù)學(xué)系);cbsdept.addItem(外語系);if (yx.trim().equals(物理系) cbsdept.addItem(物理系);cbsdept.addItem(計科系);cbsdept.addItem(數(shù)學(xué)系);cbsdept.addItem(外語系);if (yx.trim().equals(外語系) cbsdept.addItem(外語系);cbsdept.addI
41、tem(計科系);cbsdept.addItem(物理系);cbsdept.addItem(數(shù)學(xué)系);if (yx.trim().equals(數(shù)學(xué)系) cbsdept.addItem(數(shù)學(xué)系);cbsdept.addItem(計科系);cbsdept.addItem(物理系);cbsdept.addItem(外語系);p.setLayout(new FlowLayout(FlowLayout.LEFT);p.add(lsno);p.add(tsno);p.add(lsname);p.add(tsname);p.add(lsage);p.add(tsage);p.add(lssex);p.ad
42、d(cbssex);p.add(lsdept);p.add(cbsdept);p.add(btnOK);p.add(btnCancel);this.add(p);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);cbssex.addItemListener(this);cbsdept.addItemListener(this);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();public void connDB() / 連接數(shù)據(jù)庫try
43、Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433; DatabaseName=student,sa, 123);stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void c
44、loseDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void insertst() / 插入記錄String xh = null;String xm = null;int nl = 0;xh = tsno.getText();xm = tsname.getText();try nl = Integer.parseInt(String) tsage.getText();if (this.getTitle() = 修改) / 如果是修改記錄,先刪除再增加try
45、this.connDB();int rs1 = stmt.executeUpdate(delete from s where sno=+ xh + ); catch (SQLException e) e.printStackTrace();String str = insert into s values( + xh + , + xm + , + nl+ , + xb + , + yx + );this.connDB();/ 連接數(shù)據(jù)庫try stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle()
46、+ 成功!,提示, JOptionPane.INFORMATION_MESSAGE, new ImageIcon(menu4.gif);this.setVisible(false); catch (SQLException e) JOptionPane.showMessageDialog(null, 學(xué)號已存在!);tsno.setText(); catch (NumberFormatException e) / 判斷年齡是否為數(shù)字JOptionPane.showMessageDialog(null, 年齡必須是整數(shù)!);tsage.setText();isNewsm = false;if (
47、this.getTitle() = 增加) / 如果是增加記錄,對應(yīng)的用戶表中也增加一條記錄try stmt.executeUpdate(insert into unpw values( + xh + ,+ xh + , + 1 + ); catch (NullPointerException e) catch (SQLException e) / e.printStackTrace();public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 確 定 ) this.insertst();if (isNewsm)
48、 new SM().display();isNewsm = true;if (e.getActionCommand() = 取 消 ) this.setVisible(false);new SM().display();public void itemStateChanged(ItemEvent e) / 下拉框的監(jiān)聽if (e.getStateChange() = ItemEvent.SELECTED) JComboBox jcb = (JComboBox) e.getSource();if (jcb.getSelectedItem() = 男)| (jcb.getSelectedItem() = 女) xb = (String) jcb.getSelectedItem(); else yx = (String) jcb.getSelectedItem();學(xué)生信息管理系統(tǒng)詳細(xì)設(shè)計第七章代碼測試7.1代碼測試的目的測試階段的根本目標(biāo)是盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯誤,最終把一
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游艇租賃服務(wù)合同
- 食品購銷合同細(xì)則
- 農(nóng)業(yè)項目投資合作購銷合同范本
- 銅門生產(chǎn)線技術(shù)改造合同
- 生命科學(xué)領(lǐng)域股權(quán)收購與轉(zhuǎn)讓合同
- 股票期權(quán)激勵計劃實施與員工權(quán)益保障合同
- 股權(quán)擔(dān)保合同示范文本(私募基金)
- 購車補貼政策專項合同
- 航空航天設(shè)備抵押貸款合同模板
- 生態(tài)農(nóng)業(yè)園區(qū)場地租賃分成及綠色產(chǎn)品銷售合同
- 復(fù)方口服避孕藥臨床應(yīng)用中國專家共識
- 代收工程款授權(quán)委托書
- 國家開放大學(xué)專科《辦公室管理》期末紙質(zhì)考試第五大題案例分析總題庫2025版
- 人教版五年級數(shù)學(xué)上冊解決問題分類練習(xí)及答案
- 2024年天津農(nóng)墾宏達(dá)有限公司招聘筆試沖刺題(帶答案解析)
- 關(guān)于開展基層治理小馬拉大車整治工作方案
- 四年級四年級下冊閱讀理解20篇(附帶答案解析)經(jīng)典
- 西藏自治區(qū)昌都市2021-2022學(xué)年七下期末數(shù)學(xué)試題(原卷版)
- 《胎膜早破教案》課件
- 2024年陜西西安財金投資管理有限公司招聘筆試參考題庫含答案解析
- FBS-GC-001-分布式光伏施工日志
評論
0/150
提交評論