版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 目錄1</b></p><p><b> 1.前言1</b></p><p> 2.系統(tǒng)可行性研究3</p><p> 2.1技術(shù)可行性研究3</p><p> 2.
2、2 操作可行性研究3</p><p><b> 3.需求分析4</b></p><p><b> 3.1開發(fā)平臺4</b></p><p><b> 3.2使用平臺5</b></p><p><b> 4.系統(tǒng)分析6</b></p&
3、gt;<p> 4.1系統(tǒng)開發(fā)的意義6</p><p> 4.2系統(tǒng)概要設(shè)計(jì)6</p><p> 4.2.1設(shè)計(jì)思想6</p><p> 4.2.2設(shè)計(jì)原則6</p><p> 4.2.3功能需求7</p><p> 4.2.4性能需求9</p><p>
4、 4.3邏輯關(guān)系圖10</p><p> 4.3.1數(shù)據(jù)庫關(guān)系圖10</p><p> 4.3.2邏輯結(jié)構(gòu)設(shè)計(jì)11</p><p> 5.系統(tǒng)詳細(xì)設(shè)計(jì)13</p><p> 5.1系統(tǒng)功能結(jié)構(gòu)圖13</p><p> 5.1.1成績管理14</p><p> 5.1.2成
5、績分析16</p><p> 5.2代碼實(shí)現(xiàn)18</p><p> 5.2.1成績編輯18</p><p> 5.2.2成績分析22</p><p><b> 結(jié)論27</b></p><p><b> 致謝28</b></p><p
6、><b> 參考文獻(xiàn)29</b></p><p><b> 附件A30</b></p><p><b> 附件B31</b></p><p><b> 1.前言</b></p><p> 隨著各個(gè)學(xué)校的規(guī)模增大,有關(guān)學(xué)生管理工作所涉及
7、的數(shù)據(jù)量越來越大,各個(gè)學(xué)校的學(xué)生管理基本上都是靠手工進(jìn)行,有的學(xué)校不得不靠增加人力、物力來進(jìn)行學(xué)生管理。但手工管理具有效率底、,所以我想借本次畢業(yè)設(shè)計(jì)之際,開發(fā)一個(gè)不僅適用本校各系而且適用于其它各校的通用高校學(xué)生管理系統(tǒng)。學(xué)生管理系統(tǒng)已經(jīng)成為適應(yīng)我國高等教育擴(kuò)大規(guī)模和培養(yǎng)高等人才跨世紀(jì)工程的關(guān)鍵環(huán)節(jié),也是高等教育得以順利發(fā)展的基礎(chǔ)條件。建設(shè)相關(guān)的學(xué)生信息管理系統(tǒng),將會促進(jìn)高等教育的發(fā)展。</p><p> 學(xué)生
8、管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。</p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)生信息進(jìn)行管理,具有手工管理所無
9、法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。建立學(xué)生成績管理系統(tǒng),采用計(jì)算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實(shí)現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化、規(guī)范化和自動化。</p><p> 因此,開發(fā)這樣一套管理軟件成為很有必要的事情,在下面
10、的各章中我將以開發(fā)學(xué)生管理系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。</p><p><b> 2.系統(tǒng)可行性研究</b></p><p> 2.1技術(shù)可行性研究</p><p> 學(xué)生信息管理是高校管理的重要組成部分,是高等學(xué)校非常重要的一項(xiàng)數(shù)據(jù)資源,是一個(gè)教育單位不可缺少一部分。學(xué)生的穩(wěn)定是學(xué)??焖侔l(fā)展的有力保障,這不僅僅關(guān)
11、系到學(xué)生在校期間的表現(xiàn),在很大程度上度量了一個(gè)學(xué)生的跟蹤管理。學(xué)生管理的重要性不言而喻,但因?yàn)槠浒臄?shù)據(jù)量大,涉及的人員面廣,而且需要及時(shí)更新,所以學(xué)生管理在學(xué)校中是很繁瑣的,在每個(gè)系,每個(gè)學(xué)生都需要有對應(yīng)的檔案記錄。在學(xué)校各項(xiàng)管理中,學(xué)生管理牽涉到的其他管理內(nèi)容是最復(fù)雜的,它牽涉到了學(xué)生個(gè)人檔案管理、學(xué)籍管理、成績管理、課程管理等。所以在實(shí)際管理工作中,往往由于記錄的數(shù)量多、管理復(fù)雜、可連續(xù)性差,造成學(xué)生管理的混亂。對這一混亂,最好
12、的解決辦法就是借助計(jì)算機(jī)技術(shù)和數(shù)據(jù)庫管理系統(tǒng),對整個(gè)學(xué)生管理進(jìn)行記載,并實(shí)行電子化管理。本課題的目的就是開發(fā)“學(xué)生管理系統(tǒng)”,通過這一系統(tǒng)來掌握學(xué)生的管理情況,實(shí)現(xiàn)學(xué)生信息管理的電子化,提供一個(gè)電子化的學(xué)生管理平臺。</p><p> 以Windows為操作系統(tǒng),運(yùn)用SQL Server的數(shù)據(jù)庫技術(shù),開發(fā)以Windows為用戶的操作平臺,界面友善、功能齊全的《學(xué)生管理系統(tǒng)》。</p><p&
13、gt; 新系統(tǒng)的運(yùn)行硬件環(huán)境PC機(jī),當(dāng)用戶使用系統(tǒng)時(shí),通過正確的口令進(jìn)入系統(tǒng),進(jìn)行數(shù)據(jù)庫的維護(hù)操作和運(yùn)用。</p><p> 2.2 操作可行性研究</p><p> 本系統(tǒng)采用基于Windows的圖形用戶界面,而該系統(tǒng)是大家熟悉的操作系統(tǒng),對于那些有一般的計(jì)算機(jī)知識的人員就可以輕松上手。而整個(gè)管理系統(tǒng)采用最友好的交互界面,簡潔明了,不需要對數(shù)據(jù)庫進(jìn)行深入的了解。</p>
14、<p> 由此,該系統(tǒng)的操作是可行的,有必要開發(fā)該系統(tǒng)。</p><p> 綜合以上三方面,該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術(shù)上或者經(jīng)濟(jì)上還是操作上。因此,可以設(shè)計(jì)該系統(tǒng)的數(shù)據(jù)流程圖。</p><p><b> 3.需求分析</b></p><p><b> 3.1開發(fā)平臺</b></p&
15、gt;<p><b> 數(shù)據(jù)庫選擇</b></p><p><b> 表3- 1</b></p><p><b> 操作系統(tǒng)的選擇</b></p><p><b> 表3- 2</b></p><p> 而本系統(tǒng)選擇的開發(fā)平臺是&l
16、t;/p><p> 系統(tǒng):Microsoft Windows2003</p><p> 硬件:計(jì)算機(jī)(CPU 2.40GH、內(nèi)存 512MB、硬盤80G)</p><p> 軟件:Microsoft Visual Studio2005、SQL Server2000</p><p><b> 3.2使用平臺</b>&l
17、t;/p><p> 硬件配置主要包括客戶端硬件的選擇和服務(wù)器端硬件的選擇。學(xué)生管理系統(tǒng)的硬件配置根據(jù)用戶對系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量、系統(tǒng)的吞吐量以及用戶的維護(hù)水平來確定。給與參考:</p><p><b> 客戶端硬件選擇</b></p><p><b> 表3- 3</b></p><p>
18、<b> 服務(wù)器端硬件選擇</b></p><p><b> 表3- 4</b></p><p><b> 4.系統(tǒng)分析</b></p><p> 4.1系統(tǒng)開發(fā)的意義</p><p> 學(xué)生管理系統(tǒng)的建立是可以有效的節(jié)省人力資源提高管理效率的投資,其設(shè)計(jì)理念很簡單,
19、變?nèi)斯す芾韺W(xué)生信息為計(jì)算機(jī)自動化進(jìn)行學(xué)生信息的管理,既省時(shí)間又提高效率。因此在系統(tǒng)構(gòu)建時(shí),只要我們本著豐富學(xué)生管理的信息資源,為學(xué)生和教務(wù)管理員方便的快捷的學(xué)生信息查詢途徑和管理手段,去改變原有的效率低下的管理方式,那么學(xué)生管理系統(tǒng)是完全可行的.學(xué)生管理系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對于學(xué)校管理者來說是至關(guān)重要,所以學(xué)生管理系統(tǒng)應(yīng)該能夠?yàn)閷W(xué)校管理者提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理學(xué)生檔案,這種
20、管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間長了,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。</p><p> 隨著計(jì)算機(jī)科學(xué)技術(shù)的不斷研究與發(fā)展,計(jì)算機(jī)正日益廣泛地應(yīng)用到社會各大領(lǐng)域,他在人類社會各個(gè)領(lǐng)域發(fā)揮著越來越重要的作用,給人們的學(xué)習(xí)、工作、生活帶來了極大的便利,在教育系統(tǒng)領(lǐng)域亦是如此。</p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)
21、生信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高的效率,也是學(xué)??茖W(xué)化、正規(guī)化管理的重要條件。</p><p><b> 4.2系統(tǒng)概要設(shè)計(jì)</b></p><p><b> 4.2.1設(shè)計(jì)思想</b></p><p> 1
22、.系統(tǒng)分成幾個(gè)相對獨(dú)立的模塊,但這些模塊都進(jìn)行集中式管理。</p><p> 2.分層的模塊化程序設(shè)計(jì)思想,整個(gè)系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。</p><p> 3.合理的數(shù)據(jù)流設(shè)計(jì),在應(yīng)用系統(tǒng)設(shè)計(jì)中,相對獨(dú)立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運(yùn)行,提高系統(tǒng)安全性。</p><p><b> 4
23、.2.2設(shè)計(jì)原則</b></p><p> 為了使本系統(tǒng)功能齊全完備,操作簡便,最大限度的提高軟件的質(zhì)量,從而滿足用戶的實(shí)際需要,在設(shè)計(jì)開發(fā)過程中遵循了如下原則:</p><p> (1) 正確性原則:消息在不同系統(tǒng)平臺之間進(jìn)行傳遞和顯示時(shí)不會出現(xiàn)亂碼現(xiàn)象。</p><p> (2) 健壯性原則:能夠容納100-200人同時(shí)在線交流,服務(wù)器端程序連
24、續(xù)應(yīng)工作半年以上。</p><p> (3)可靠性原則:應(yīng)用程序異常退出及崩潰的機(jī)率小于等于5%。</p><p> (4)準(zhǔn)確性原則:對輸入的相關(guān)資料建立檢錯(cuò)機(jī)制,及時(shí)報(bào)錯(cuò),使用戶能夠及時(shí)準(zhǔn)確的輸入合法資料。</p><p> (5)源程序可讀性原則:為了便于其他人員設(shè)計(jì),維護(hù)人員讀懂代碼或以后的代碼修改,軟件升級維護(hù),盡可能地做好代碼注釋工作。</p
25、><p> (6)易操作原則:要求設(shè)計(jì)的系統(tǒng)功能齊全,界面友好,操作方便,必要的地方進(jìn)行提示。</p><p><b> 4.2.3功能需求</b></p><p> 本系統(tǒng)采用自定向下方法開發(fā),其功能模塊主要有如下幾個(gè)部分:系統(tǒng)主界面、基礎(chǔ)資料部分、學(xué)生管理部分、課程管理部分、成績管理部分。具體的功能描述如下:</p><
26、;p><b> 圖4- 1</b></p><p><b> 后臺管理:</b></p><p><b> 后臺管理用例圖:</b></p><p><b> 圖4- 2</b></p><p><b> ?。?)用戶登錄</
27、b></p><p> 根據(jù)用戶填寫的名稱和密碼,判斷該用戶是否為管理員。如果用戶名和密碼都正確,則轉(zhuǎn)到主界面,如果不正確,提示錯(cuò)誤信息。</p><p><b> 業(yè)務(wù)流程圖:</b></p><p><b> 圖4- 3</b></p><p> ?。?) 基礎(chǔ)資料設(shè)置</p&
28、gt;<p> 基礎(chǔ)資料設(shè)置包括院系設(shè)置、班級設(shè)置和學(xué)期設(shè)置等幾個(gè)方面。</p><p> 院系設(shè)置包括院系的添加、修改、查看、刪除。</p><p> 班級設(shè)置包括班級的添加、修改、查看、刪除。</p><p> 學(xué)期設(shè)置包括學(xué)期的添加、修改、查看、刪除。</p><p><b> ?。?)學(xué)生管理</
29、b></p><p> 學(xué)生管理包括學(xué)生檔案的管理編輯和學(xué)生學(xué)籍管理兩個(gè)方面。</p><p> 學(xué)生檔案管理編輯包括學(xué)生各種 資料 的添加、修改、查看、刪除。</p><p> 學(xué)生學(xué)籍管理包括學(xué)生院系和班級的變動以及學(xué)生離校的處理。</p><p><b> 檔案管理用例圖:</b></p>
30、<p><b> 圖4- 4 </b></p><p><b> (4)課程管理</b></p><p> 課程管理包括設(shè)置和班級選課兩個(gè)方面。</p><p> 課程的設(shè)置:用戶選擇添加,修改,刪除操作,系統(tǒng)執(zhí)行添加課程信息。</p><p> 班級選課:班級選課是以班級為
31、單位選擇在某個(gè)學(xué)期內(nèi)的所有課程,同時(shí)也為此班級內(nèi)的所有成員選擇了課程。因?yàn)槊恳话嗉壝恳粋€(gè)學(xué)期所學(xué)的課程名稱不能相同,所有選擇ListBox將所有課程名稱列出來,然后在選擇此課程的同時(shí),刪除顯示課程名稱ListBox中的此課程名稱。這樣在這個(gè)班的下個(gè)學(xué)期就不會再出現(xiàn)此課程了。同時(shí)根據(jù)選擇課程名稱創(chuàng)建表結(jié)構(gòu)。以便查詢所有學(xué)生的成績。</p><p><b> ?。?)成績管理</b></p
32、><p> 成績管理包括學(xué)生成績編輯和學(xué)生成績分析兩個(gè)方面。</p><p> 學(xué)生成績編輯包括學(xué)生成績錄入和學(xué)生成績修改。</p><p> 學(xué)生成績分析是用列表和圖形等方法給出某個(gè)班級某個(gè)科目的最高、最低、平均分統(tǒng)計(jì)和總體分?jǐn)?shù)分布圖。</p><p> 前臺用戶登錄:根據(jù)不同的身份(學(xué)生,老師)登錄,賦予用戶不同的權(quán)限。</p&
33、gt;<p> 以學(xué)生身份登錄:學(xué)生以姓名,學(xué)號登錄。登錄成功后,學(xué)生可以查看自己的學(xué)生學(xué)籍信息以及某個(gè)學(xué)期的所有成績。</p><p><b> 圖4- 5</b></p><p> 以老師身份登錄:老師以用戶名,密碼登錄。登錄成功后,老師可以查看想要查看的某系某班學(xué)生的所有學(xué)籍信息以及某學(xué)期的所有人的成績。或是某個(gè)任課老師想要查詢他所教的學(xué)科的
34、該班人的成績。</p><p><b> 圖4- 6</b></p><p><b> 4.2.4性能需求</b></p><p><b> 1.時(shí)間特性</b></p><p> 該管理系統(tǒng)軟件從啟動到進(jìn)入系統(tǒng)登錄界面的時(shí)間正常情況下應(yīng)少于5秒,錄入并更新數(shù)據(jù)的時(shí)間正
35、常情況下少于2秒。</p><p><b> 2.適用性</b></p><p> 該管理系統(tǒng)軟件適用于Windows 2000/xp及以上操作系統(tǒng)</p><p><b> 4.3邏輯關(guān)系圖</b></p><p> 4.3.1數(shù)據(jù)庫關(guān)系圖</p><p><
36、b> 圖4- 7</b></p><p> 4.3.2邏輯結(jié)構(gòu)設(shè)計(jì) </p><p> Department(院系信息表)</p><p><b> 表4- 1</b></p><p> Class(班級信息表)</p><p><b> 表4- 2<
37、/b></p><p> Course(課程信息表)</p><p><b> 表4- 3</b></p><p> Semester(學(xué)期信息表)</p><p><b> 表4- 4</b></p><p> Student(學(xué)生信息表)</p>
38、;<p><b> 表4- 5</b></p><p> SelectCourse(選課信息表)</p><p><b> 表4- 6</b></p><p> Score(成績信息表)</p><p><b> 表4- 7</b></p>
39、<p> UserInfo(用戶表)</p><p><b> 表4- 8</b></p><p><b> 5.系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> 5.1系統(tǒng)功能結(jié)構(gòu)圖</p><p> 學(xué)生管理系統(tǒng)提供:基礎(chǔ)設(shè)置,學(xué)生管理,課程管理,成績管理。</p>&
40、lt;p> 登錄界面如圖5.1所示:</p><p><b> 圖5- 1</b></p><p> 當(dāng)以老師身份登錄成功后,界面如圖5.2所示:</p><p><b> 圖5- 2</b></p><p><b> 5.1.1成績管理</b></p&g
41、t;<p> 成績管理包括學(xué)生成績編輯和學(xué)生成績分析兩個(gè)方面。</p><p> 學(xué)生成績編輯包括學(xué)生成績錄入和學(xué)生成績修改,其界面如圖5-3所示:</p><p><b> 圖5- 3</b></p><p> 當(dāng)窗體加載時(shí)二次確認(rèn)和修改按鈕禁用。當(dāng)選擇院系、班級、學(xué)期后點(diǎn)擊確認(rèn)按鈕后禁用解除,用戶可以在課程框中選擇課程
42、,點(diǎn)擊二次確認(rèn)按鈕數(shù)據(jù)加載成功。其界面如圖5-4所示:</p><p><b> 圖5- 4</b></p><p> 選擇所要修改的信息,按修改按鈕進(jìn)行修改,提示修改成功,其界面如圖5-5所示:</p><p><b> 圖5- 5</b></p><p><b> 修改完畢退出
43、。</b></p><p><b> 5.1.2成績分析</b></p><p> 學(xué)生成績分析是用列表和圖形等方法給出某個(gè)班級某個(gè)科目的最高、最低、平均分統(tǒng)計(jì)和總體分?jǐn)?shù)分布圖。成績列表情況,如圖5-6所示:</p><p><b> 圖5-6</b></p><p> 列表統(tǒng)計(jì)
44、情況,如圖5-7所示:</p><p><b> 圖5-7</b></p><p> 圖表分析情況,如圖5-8所示:</p><p><b> 圖5-8</b></p><p><b> 5.2代碼實(shí)現(xiàn)</b></p><p><b>
45、 5.2.1成績編輯</b></p><p> //確定院系、班級、學(xué)期以后 對選定課程的確認(rèn)</p><p> private void btnScoreCourseSure_Click(object sender, EventArgs e)</p><p><b> {</b></p><p>
46、 if (this.cmbCourse.Text == null || this.cmbCourse.Text == "")</p><p><b> {</b></p><p> MessageBox.Show("請選擇課程", "用戶提示");</p><p><b>
47、; }</b></p><p><b> else</b></p><p><b> {</b></p><p> String dispSql = "exec proc_v_studentScore '" + this.cmbDepartment.SelectedItem.
48、ToString() + "','" + this.cmbClass.SelectedItem.ToString() + "','" + this.cmbSemester.SelectedItem.ToString() + "','" + this.cmbCourse.SelectedItem.ToString() + "
49、;'";</p><p> dispDS = DBCon.getDataSet(dispSql);</p><p> if (dispDS.Tables[0].Rows.Count == 0)</p><p><b> {</b></p><p> this.dgScoreEdit.Enable
50、d = false;</p><p> this.btnScoreSubmit.Enabled = false;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p&g
51、t; this.dgScoreEdit.Enabled = true;</p><p> this.btnScoreSubmit.Enabled = true;</p><p> this.dgScoreEdit.DataSource = dispDS.Tables[0];</p><p><b> }</b></p>&
52、lt;p><b> }</b></p><p><b> }</b></p><p><b> //成績修改</b></p><p> private void btnScoreSubmit_Click(object sender, EventArgs e)</p><
53、;p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> for (int i = 0; i < dispDS.Tables[0].Rows.Count; i++)</p><p><
54、b> {</b></p><p> double score = Convert.ToDouble(dispDS.Tables[0].Rows[i][2]);</p><p> String studentid = dispDS.Tables[0].Rows[i][1].ToString();</p><p> String modSql
55、= "exec proc_update_v_studentScore "+score+",'"+studentid+"','" + this.cmbDepartment.SelectedItem.ToString() + "','" + this.cmbClass.SelectedItem.ToString() + &
56、quot;','" + this.cmbSemester.SelectedItem.ToString() + "','" + this.cmbCourse.SelectedItem.ToString() + "'";</p><p> DBCon.updateScore(modSql);</p><p&
57、gt; //this.label5.Text = score.ToString();</p><p> MessageBox.Show("成績修改成功", "用戶提示");</p><p> //更新stu_score</p><p> String up_Stuscore = "update stu_sco
58、re set" + this.cmbCourse.SelectedItem.ToString() + " =" + score + " where 班級='" + this.cmbClass.SelectedItem.ToString() + "' and 學(xué)號='" + studentid+"'";</p&g
59、t;<p><b> //</b></p><p> DBCon.Update_stu_score(up_Stuscore);</p><p><b> }</b></p><p> }catch(Exception ex)</p><p><b> {</b
60、></p><p> MessageBox.Show(ex.ToString());</p><p><b> }</b></p><p><b> }</b></p><p><b> //成績退出</b></p><p> priva
61、te void btnScoreExit_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> this.Close();</p><p><b> }</b></p><p><b> //窗體加載</b
62、></p><p> private void ScoreEdit_Load(object sender, EventArgs e)</p><p><b> {</b></p><p><b> //讀取所有院系</b></p><p> String departmentSql =
63、 "select DepartmentName from Department";</p><p> DataSet departmentDS = DBCon.getDataSet(departmentSql);</p><p> foreach (DataRow dr in departmentDS.Tables[0].Rows)</p><p
64、><b> {</b></p><p> this.cmbDepartment.Items.Add(dr["DepartmentName"].ToString());</p><p><b> }</b></p><p><b> }</b></p>&
65、lt;p> //選中某一院系 讀取 特定班級、有幾個(gè)學(xué)期</p><p> private void cmbDepartment_SelectedIndexChanged(object sender, EventArgs e)</p><p><b> {</b></p><p> this.cmbCourse.Items.Cle
66、ar();</p><p> this.cmbCourse.Text = "";</p><p><b> //班級</b></p><p> this.cmbClass.Items.Clear();</p><p> this.cmbClass.Text = "";<
67、;/p><p> String classSql = "exec proc_v_allClass '" + this.cmbDepartment.SelectedItem.ToString() + "'";</p><p> DataSet classDS = DBCon.getDataSet(classSql);</p>
68、<p> foreach (DataRow dr in classDS.Tables[0].Rows)</p><p><b> {</b></p><p> this.cmbClass.Items.Add(dr["ClassName"].ToString());</p><p><b> }
69、</b></p><p><b> //學(xué)期</b></p><p> this.cmbSemester.Items.Clear();</p><p> this.cmbSemester.Text = "";</p><p> String semesterSql = "
70、exec proc_v_allSemester '"+this.cmbDepartment.SelectedItem.ToString()+"'";</p><p> DataSet semesterDS = DBCon.getDataSet(semesterSql);</p><p> foreach (DataRow dr in sem
71、esterDS.Tables[0].Rows)</p><p><b> {</b></p><p> this.cmbSemester.Items.Add(dr["SemesterName"].ToString());</p><p><b> }</b></p><p>
72、;<b> }</b></p><p><b> 5.2.2成績分析</b></p><p><b> //窗體加載</b></p><p> private void ScoreFenxi_Load(object sender, EventArgs e)</p><p&g
73、t;<b> {</b></p><p><b> //讀取所有院系</b></p><p> String departmentSql = "select DepartmentName from Department";</p><p> DataSet departmentDS = DBCo
74、n.getDataSet(departmentSql);</p><p> foreach (DataRow dr in departmentDS.Tables[0].Rows)</p><p><b> {</b></p><p> this.cmbFXDepartment.Items.Add(dr["DepartmentNa
75、me"].ToString());</p><p><b> }</b></p><p> this.rvFenxi.RefreshReport();</p><p> this.rvFenxi.RefreshReport();</p><p><b> }</b></p&g
76、t;<p> //選中某一院系 讀取 特定班級、有幾個(gè)學(xué)期</p><p> private void cmbFXDepartment_SelectedIndexChanged(object sender, EventArgs e)</p><p><b> {</b></p><p> this.cmbFXClass.I
77、tems.Clear();</p><p> this.cmbFXClass.Text = "";</p><p> this.cmbFXCourse.Enabled = false;</p><p> this.btnCount.Enabled = false;</p><p> this.tabControl1
78、.Enabled = false;</p><p><b> //班級</b></p><p> this.cmbFXClass.Items.Clear();</p><p> this.cmbFXClass.Text = "";</p><p> String classSql = &quo
79、t;exec proc_v_allClass '" + this.cmbFXDepartment.SelectedItem.ToString() + "'";</p><p> DataSet classDS = DBCon.getDataSet(classSql);</p><p> foreach (DataRow dr in clas
80、sDS.Tables[0].Rows)</p><p><b> {</b></p><p> this.cmbFXClass.Items.Add(dr["ClassName"].ToString());</p><p><b> }</b></p><p><b&g
81、t; //學(xué)期</b></p><p> this.cmbFXSemester.Items.Clear();</p><p> this.cmbFXSemester.Text = "";</p><p> String semesterSql = "exec proc_v_allSemester '"
82、;+this.cmbFXDepartment.SelectedItem.ToString()+"'";</p><p> DataSet semesterDS = DBCon.getDataSet(semesterSql);</p><p> foreach (DataRow dr in semesterDS.Tables[0].Rows)</p>
83、;<p><b> {</b></p><p> this.cmbFXSemester.Items.Add(dr["SemesterName"].ToString());</p><p><b> }</b></p><p><b> }</b></p&
84、gt;<p><b> //開始統(tǒng)計(jì)</b></p><p> private void btnCount_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> if (this.cmbFXCourse.Text == null |
85、| this.cmbFXCourse.Text == "")</p><p><b> {</b></p><p> MessageBox.Show("請選擇課程", "用戶提示");</p><p><b> }</b></p><p&
86、gt;<b> else</b></p><p><b> {</b></p><p> String dispFXSql = "exec proc_v_studentScore '" + this.cmbFXDepartment.SelectedItem.ToString() + "',
87、9;" + this.cmbFXClass.SelectedItem.ToString() + "','" + this.cmbFXSemester.SelectedItem.ToString() + "','" + this.cmbFXCourse.SelectedItem.ToString() + "'";</p>
88、;<p> dispFXDS = DBCon.getDataSet(dispFXSql);</p><p> if (dispFXDS.Tables[0].Rows.Count == 0)</p><p><b> {</b></p><p> MessageBox.Show("沒有獲取數(shù)據(jù),相關(guān)控件將禁用&qu
89、ot;);</p><p> this.tabControl1.Enabled = false;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> this
90、.tabControl1.Enabled = true;</p><p> this.dgList.DataSource = dispFXDS.Tables[0];</p><p><b> }</b></p><p> } </p><p><b> }</b><
91、;/p><p> //用三種方式顯示數(shù)據(jù)</p><p> private void tabControl1_Selected(object sender, TabControlEventArgs e)</p><p><b> {</b></p><p> if (this.tabControl1.Selected
92、Index == 0)</p><p><b> {</b></p><p> this.dgList.DataSource = dispFXDS.Tables[0];</p><p><b> }</b></p><p> else if (this.tabControl1.Selecte
93、dIndex == 1)</p><p><b> {</b></p><p> this.lvCount.Clear();</p><p> this.lvCount.Columns.Add("統(tǒng)計(jì)項(xiàng)");</p><p> this.lvCount.Columns.Add("得分
94、");</p><p> double averageMark;//平均分</p><p> double maxMark = 0;//最高分</p><p> double minMark = 100;//最低分</p><p> double sum = 0;//總分</p><p> doub
95、le score;</p><p> for (int i = 0; i < dispFXDS.Tables[0].Rows.Count; i++)</p><p><b> {</b></p><p> score = Convert.ToDouble(dispFXDS.Tables[0].Rows[i][2]);</p&g
96、t;<p> if (maxMark < score)</p><p> maxMark = score;</p><p> if (minMark > score)</p><p> minMark = score;</p><p> sum = sum + score;</p><p
97、><b> }</b></p><p> averageMark = sum / (Convert.ToDouble(dispFXDS.Tables[0].Rows.Count));</p><p> //顯示平均分、最高分、最低分</p><p> ListViewItem lviAverage = new ListViewIt
98、em();</p><p> lviAverage.SubItems.Clear();</p><p> lviAverage.SubItems[0].Text = "平均分";</p><p> lviAverage.SubItems.Add(averageMark.ToString());</p><p> t
99、his.lvCount.Items.Add(lviAverage);</p><p> ListViewItem lviMax = new ListViewItem();</p><p> lviMax.SubItems.Clear();</p><p> lviMax.SubItems[0].Text = "最高分";</p>
100、<p> lviMax.SubItems.Add(maxMark.ToString());</p><p> this.lvCount.Items.Add(lviMax);</p><p> ListViewItem lviMin = new ListViewItem();</p><p> lviMin.SubItems.Clear();&l
101、t;/p><p> lviMin.SubItems[0].Text = "最低分";</p><p> lviMin.SubItems.Add(minMark.ToString());</p><p> this.lvCount.Items.Add(lviMin);</p><p><b> }</b&
102、gt;</p><p><b> else</b></p><p><b> {</b></p><p><b> //用圖表形式顯示</b></p><p> this.proc_v_studentScoreTableAdapter.Fill(this.dS_StuS
103、core.proc_v_studentScore,this.cmbFXDepartment.SelectedItem.ToString(),this.cmbFXClass.SelectedItem.ToString(),this.cmbFXSemester.SelectedItem.ToString(),this.cmbFXCourse.SelectedItem.ToString());</p><p> th
104、is.rvFenxi.RefreshReport();</p><p><b> }</b></p><p><b> }</b></p><p><b> 結(jié)論</b></p><p> 通過一個(gè)多月的設(shè)計(jì)和開發(fā),我們終于完成了學(xué)生管理系統(tǒng)。再此過程中使我學(xué)會了很多有
105、用的東西,受益匪淺。在編寫程序的過程中,我回顧了以前所學(xué)的知識,將學(xué)習(xí)到得知識在這個(gè)項(xiàng)目中得到了充分的應(yīng)用,達(dá)到了檢驗(yàn)自我的目的。并且通過和別人一起合作,學(xué)到了新的知識,積累了經(jīng)驗(yàn)。我感覺團(tuán)隊(duì)合作在軟件開發(fā)過程中十分重要,一個(gè)人是沒有辦法完成一個(gè)好的項(xiàng)目的。 </p><p> 我感覺系統(tǒng)的分析與設(shè)計(jì)是一項(xiàng)很辛苦的工作,但同時(shí)也是一個(gè)充滿樂趣的過程。在設(shè)計(jì)過程中我們不斷遇到新問題,經(jīng)過自己的努力和摸索,問題又不
106、斷得到了解決。努力和摸索的過程也是鍛煉自己耐心和毅力的過程,這其間的樂趣也只有親身實(shí)踐才能體會到。分析工作的深入與否直接影響到系統(tǒng)設(shè)計(jì)的質(zhì)量,我們在系統(tǒng)調(diào)試工作中深深體會到:越是早期的錯(cuò)誤,往往越難發(fā)現(xiàn),處理起來越困難。所以要非常重視早期的系統(tǒng)分析工作,決不能草率行事,否則一旦出現(xiàn)錯(cuò)誤,將使系統(tǒng)的開發(fā)工作大量返工,造成工期的延誤和人力物力的極大浪費(fèi)。</p><p> 在這次設(shè)計(jì)中我得到了老師和同學(xué)的指導(dǎo)和幫助
107、,使我們認(rèn)識到團(tuán)隊(duì)精神的重要性,因?yàn)橐粋€(gè)人所學(xué)的知識不可能面面俱到的,只有通過合作,發(fā)揮自己的優(yōu)點(diǎn),體現(xiàn)團(tuán)隊(duì)精神,才能使工作做得更為出色。通過這次設(shè)計(jì),我學(xué)到了許多書本上學(xué)不到的知識,增強(qiáng)了自己的動手能力和自信心。通過這次設(shè)計(jì)使我們能力有了很大的提高,為我們以走上工作崗位打下了扎實(shí)的基礎(chǔ)。</p><p><b> 致謝</b></p><p> 這次設(shè)計(jì)是對以前
108、所學(xué)知識的回顧和綜合運(yùn)用,使得我們對所學(xué)知識進(jìn)行了綜合應(yīng)用和拓展。在這次綜合實(shí)踐過程中,我掌握了一般系統(tǒng)設(shè)計(jì)的方法,同時(shí)也對我實(shí)踐應(yīng)用能力提出了更高的要求,開拓了視野,拓展了知識面。這次畢業(yè)設(shè)計(jì)使我受益匪淺。</p><p> 通過這次實(shí)踐使我們認(rèn)識到團(tuán)隊(duì)精神的重要性,因?yàn)橐粋€(gè)人所學(xué)的知識不可能面面俱到的,只有通過合作,發(fā)揮自己的優(yōu)點(diǎn),體現(xiàn)團(tuán)隊(duì)精神,才能使工作做得更為出色。通過這次設(shè)計(jì),我學(xué)到了許多書本上學(xué)不到
109、的知識,增強(qiáng)了自己的動手能力和自信心。</p><p> 在整個(gè)實(shí)習(xí)期間,曾得到了***老師以及同學(xué)的大力支持和幫助,在此表示衷心的感謝!</p><p><b> 參考文獻(xiàn)</b></p><p> [1]張奇、衛(wèi)建偉。Visual C#數(shù)據(jù)庫項(xiàng)目安全導(dǎo)航。北京:清華大學(xué)出版社;</p><p> [2]SQL
110、 Server數(shù)據(jù)庫設(shè)計(jì)和實(shí)現(xiàn)。 科學(xué)技術(shù)文獻(xiàn)出版社;</p><p> [3].NET企業(yè)應(yīng)用開發(fā)—ASP.NET & WebService 科學(xué)技術(shù)文獻(xiàn)出版社;</p><p> [4].NET 平臺和C#編程 科學(xué)技術(shù)文獻(xiàn)出版社;</p><p> [5]WinForms高級應(yīng)用開發(fā)
111、科學(xué)技術(shù)文獻(xiàn)出版社;</p><p><b> 附件A</b></p><p><b> 編程語言</b></p><p> 編寫計(jì)算機(jī)程序有兩種常用方法:面向過程的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)。</p><p> 面向?qū)ο蟮某绦蛟O(shè)計(jì)是面向過程程序設(shè)計(jì)的一種擴(kuò)展,在編寫程序時(shí)采用的方法有一些
112、不同,用面向?qū)ο蟮姆椒紤]問題,首先把程序元素看成是與現(xiàn)實(shí)世界中的具體對象相似的對象,然后對這些對象進(jìn)行操作以得到期望的結(jié)果。編寫面向?qū)ο蟮某绦虬▌?chuàng)建對象和創(chuàng)建使用這些對象的應(yīng)用程序。</p><p><b> 機(jī)器語言</b></p><p> 能被計(jì)算機(jī)操作系統(tǒng)直接運(yùn)行的計(jì)算機(jī)程序稱為可執(zhí)行程序??蓤?zhí)行程序是以機(jī)器碼的形勢表示的一系列非常簡單的指令。這些指令
113、對于不同計(jì)算機(jī)的CPU而言是特定的,它們與硬件有關(guān)。例如,英特爾“奔騰”處理器和Power PC微處理器芯片各自有不同的機(jī)器語言,要求用不同的代碼集來完成相同的任務(wù)。機(jī)器碼指令是從存儲單元取數(shù)據(jù),或?qū)蓚€(gè)存儲單元的內(nèi)容相加(通常在CPU的寄存器中進(jìn)行)。機(jī)器碼指令是二進(jìn)制的——比特序列(0和1)。由于這些數(shù)字令人難以理解,所以計(jì)算機(jī)指令通常不是用機(jī)器碼來寫的。</p><p><b> 匯編語言<
114、;/b></p><p> 與機(jī)器語言指令相比,匯編語言使用的命令較容易為程序員理解。每條機(jī)器語言指令在匯編語言中有等價(jià)的命令。例如,在匯編語言中,語句“MOV A,B”命令表示計(jì)算機(jī)把數(shù)據(jù)從一個(gè)單元復(fù)制到另一個(gè)單元,而及其代碼中同樣的指令是有一串16位的0和1組成的。一旦匯編語言程序編寫完畢,它就由另一個(gè)稱之為匯編起的程序轉(zhuǎn)換成機(jī)器語言程序。相對于機(jī)器語言而言,匯編語言速度快,功能強(qiáng)。可它仍然難以利用,
115、因?yàn)閰R編語言指令是有一系列抽象代碼組成的。另外,不同的CPU使用不同的機(jī)器語言,因此需要不同的匯編語言(程序)。有時(shí)為了執(zhí)行特殊的硬件任務(wù),或者為了加快高級語言程序的速度,匯編語言被插入到高級語言程序中。</p><p><b> 高級語言</b></p><p> 從機(jī)器語言進(jìn)步到匯編語言,是語言達(dá)到了更先進(jìn)的階段。同樣也正是這種進(jìn)步導(dǎo)致了高級語言的發(fā)展。如果計(jì)
116、算機(jī)能把簡便的符號翻譯成基本操作,為什么它就不能完成其他文字類型的編碼功能呢?</p><p> 現(xiàn)在讓我們來看看所期望的高級語言應(yīng)有的特點(diǎn),以及怎樣將它們與機(jī)器碼和匯編語言進(jìn)行比較。高級程序語言是這樣一種編程手段,它用規(guī)范化的術(shù)語來寫出一步步的程序步驟,執(zhí)行這些步驟時(shí)會用唯一確定的方式處理工作。高級語言經(jīng)常針對某類特殊的處理問題而設(shè)計(jì),例如,一些語言設(shè)計(jì)成適宜處理科學(xué)計(jì)算問題,另一些語言則更側(cè)重于文件處理的應(yīng)
117、用。</p><p><b> 面向?qū)ο缶幊陶Z言</b></p><p> 像C++這樣的面向?qū)ο蟪绦蛘Z言(OOP)是以傳統(tǒng)的高級語言為基礎(chǔ),但是它們能使程序員按照組合對象集方式而不是指令列表方式來進(jìn)行思考。對象有許多性質(zhì),以圓為例,就有圓的半徑以及把圓畫到計(jì)算機(jī)屏幕上的命令。對象的類可以從其他對象類那里繼承屬性。例如,一個(gè)定義正方形的類能從定義長方形的類那里繼承
118、諸如直角這樣的屬性。程序類的這種關(guān)系簡化了程序員的工作,從而導(dǎo)致更多既可靠又高效的程序產(chǎn)生。</p><p><b> 附件B</b></p><p> Programming Language</p><p> There are two popular approaches to writing computer programs:
119、procedural programming(面向過程的程序設(shè)計(jì)) and object-oriented programming(面向?qū)ο蟮某绦蛟O(shè)計(jì)).</p><p> Machine Language</p><p> Computer programs that can be run by a computer’s operating system are called exe
120、cutables(可執(zhí)行程序). An executable program is a sequence(序列) of(一系列的) extremely(非常地) simple instructions known as machine code. These instructions are specific to the individual computer’s CPU and associated(相關(guān)的) hardware; f
121、or example, Intel Pentium and Power PC microprocessor chips each have different machine languages and require different sets of codes to perform the same task. Machine code instructions are few in nu</p><p>
122、 Assembly Language匯編語言</p><p> Assembly language uses commands that are easier for programmers to understand than machine-language commands. Each machine language instruction has an equivalent(等價(jià)的) command
123、 in assembly language. For example, in assembly language, the statement “MOV A,B”instructs(命令) the computer to copy data from one location to another. The same instruction in machine code is a string of (一串)16 0s and 1s.
124、 Once an assembly-language program is written, it is converted to a machine-language program by another pr</p><p> High-Level Languages</p><p> The improvement of machine language to assembly
125、language set the stage for further advances. It was this improvement that led, in turn, to the development of high-level languages. If the computer could translate convenient symbols into basic operations, why couldn’t i
126、t also perform other clerical coding functions?</p><p> Let us now look at the features we would expect to find in a high-level language and how they compare with machine code and assembly language.[3] A hi
127、gh-level programming language is a means of data in a uniquely defined way. It may bear no relation to any given computer but does assume that a computer is going to be used. The high-level languagees are often oriented
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文----學(xué)生管理系統(tǒng)設(shè)計(jì)1
- 畢業(yè)論文——學(xué)生管理系統(tǒng)
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學(xué)生管理系統(tǒng)
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文 ----學(xué)生管理系統(tǒng)
- 學(xué)生管理系統(tǒng)-畢業(yè)論文
- 學(xué)生管理系統(tǒng)-畢業(yè)論文
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 學(xué)生管理系統(tǒng)畢業(yè)論文
- 學(xué)生管理管理系統(tǒng)畢業(yè)論文
- 學(xué)生成績管理系統(tǒng)畢業(yè)論文畢業(yè)論文
- 畢業(yè)論文--學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--學(xué)生考勤管理系統(tǒng)的設(shè)計(jì)
- 學(xué)生綜合管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學(xué)生排課管理系統(tǒng)
- 學(xué)生管理系統(tǒng)畢業(yè)論文 (2)
- 學(xué)生管理系統(tǒng)畢業(yè)論文 (2)
- 學(xué)生學(xué)籍管理系統(tǒng)畢業(yè)論文
評論
0/150
提交評論