版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)概要設計6</p><p> 4.2.1設計思想6</p><p> 4.2.2設計原則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)設計11</p><p> 5.系統(tǒng)詳細設計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代碼實現(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> 參考文獻29</b></p><p><b> 附件A30</b></p><p><b> 附件B31</b></p><p><b> 1.摘要</b></p><p> 隨著各個學校的規(guī)模增大,有關(guān)學生管理工作所涉及
7、的數(shù)據(jù)量越來越大,各個學校的學生管理基本上都是靠手工進行,有的學校不得不靠增加人力、物力來進行學生管理。但手工管理具有效率底、,所以我想借本次畢業(yè)設計之際,開發(fā)一個不僅適用本校各系而且適用于其它各校的通用高校學生管理系統(tǒng)。學生管理系統(tǒng)已經(jīng)成為適應我國高等教育擴大規(guī)模和培養(yǎng)高等人才跨世紀工程的關(guān)鍵環(huán)節(jié),也是高等教育得以順利發(fā)展的基礎條件。建設相關(guān)的學生信息管理系統(tǒng),將會促進高等教育的發(fā)展。</p><p> 學生
8、管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要,所以學生管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。</p><p> 作為計算機應用的一部分,使用計算機對學生信息進行管理,具有手工管理所無
9、法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。建立學生成績管理系統(tǒng),采用計算機對學生成績進行管理,進一步提高辦學效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實現(xiàn)學生成績信息管理工作流程的系統(tǒng)化、規(guī)范化和自動化。</p><p> 因此,開發(fā)這樣一套管理軟件成為很有必要的事情,在下面
10、的各章中我將以開發(fā)學生管理系統(tǒng)為例,談談其開發(fā)過程和所涉及到的問題及解決方法。</p><p><b> 2.系統(tǒng)可行性研究</b></p><p> 2.1技術(shù)可行性研究</p><p> 學生信息管理是高校管理的重要組成部分,是高等學校非常重要的一項數(shù)據(jù)資源,是一個教育單位不可缺少一部分。學生的穩(wěn)定是學校快速發(fā)展的有力保障,這不僅僅關(guān)
11、系到學生在校期間的表現(xiàn),在很大程度上度量了一個學生的跟蹤管理。學生管理的重要性不言而喻,但因為其包含的數(shù)據(jù)量大,涉及的人員面廣,而且需要及時更新,所以學生管理在學校中是很繁瑣的,在每個系,每個學生都需要有對應的檔案記錄。在學校各項管理中,學生管理牽涉到的其他管理內(nèi)容是最復雜的,它牽涉到了學生個人檔案管理、學籍管理、成績管理、課程管理等。所以在實際管理工作中,往往由于記錄的數(shù)量多、管理復雜、可連續(xù)性差,造成學生管理的混亂。對這一混亂,最好
12、的解決辦法就是借助計算機技術(shù)和數(shù)據(jù)庫管理系統(tǒng),對整個學生管理進行記載,并實行電子化管理。本課題的目的就是開發(fā)“學生管理系統(tǒng)”,通過這一系統(tǒng)來掌握學生的管理情況,實現(xiàn)學生信息管理的電子化,提供一個電子化的學生管理平臺。</p><p> 以Windows為操作系統(tǒng),運用SQL Server的數(shù)據(jù)庫技術(shù),開發(fā)以Windows為用戶的操作平臺,界面友善、功能齊全的《學生管理系統(tǒng)》。</p><p&
13、gt; 新系統(tǒng)的運行硬件環(huán)境PC機,當用戶使用系統(tǒng)時,通過正確的口令進入系統(tǒng),進行數(shù)據(jù)庫的維護操作和運用。</p><p> 2.2 操作可行性研究</p><p> 本系統(tǒng)采用基于Windows的圖形用戶界面,而該系統(tǒng)是大家熟悉的操作系統(tǒng),對于那些有一般的計算機知識的人員就可以輕松上手。而整個管理系統(tǒng)采用最友好的交互界面,簡潔明了,不需要對數(shù)據(jù)庫進行深入的了解。</p>
14、<p> 由此,該系統(tǒng)的操作是可行的,有必要開發(fā)該系統(tǒng)。</p><p> 綜合以上三方面,該系統(tǒng)具有很高的開發(fā)可行性,無論是從技術(shù)上或者經(jīng)濟上還是操作上。因此,可以設計該系統(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> 硬件:計算機(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> 硬件配置主要包括客戶端硬件的選擇和服務器端硬件的選擇。學生管理系統(tǒng)的硬件配置根據(jù)用戶對系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量、系統(tǒng)的吞吐量以及用戶的維護水平來確定。給與參考:</p><p><b> 客戶端硬件選擇</b></p><p><b> 表3- 3</b></p><p>
18、<b> 服務器端硬件選擇</b></p><p><b> 表3- 4</b></p><p><b> 4.系統(tǒng)分析</b></p><p> 4.1系統(tǒng)開發(fā)的意義</p><p> 學生管理系統(tǒng)的建立是可以有效的節(jié)省人力資源提高管理效率的投資,其設計理念很簡單,
19、變?nèi)斯す芾韺W生信息為計算機自動化進行學生信息的管理,既省時間又提高效率。因此在系統(tǒng)構(gòu)建時,只要我們本著豐富學生管理的信息資源,為學生和教務管理員方便的快捷的學生信息查詢途徑和管理手段,去改變原有的效率低下的管理方式,那么學生管理系統(tǒng)是完全可行的.學生管理系統(tǒng)是一個學校不可缺少的部分,它的內(nèi)容對于學校管理者來說是至關(guān)重要,所以學生管理系統(tǒng)應該能夠為學校管理者提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理學生檔案,這種
20、管理方式存在著許多缺點,如:效率低、保密性差,另外時間長了,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。</p><p> 隨著計算機科學技術(shù)的不斷研究與發(fā)展,計算機正日益廣泛地應用到社會各大領(lǐng)域,他在人類社會各個領(lǐng)域發(fā)揮著越來越重要的作用,給人們的學習、工作、生活帶來了極大的便利,在教育系統(tǒng)領(lǐng)域亦是如此。</p><p> 作為計算機應用的一部分,使用計算機對學
21、生信息進行管理,具有手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高的效率,也是學校科學化、正規(guī)化管理的重要條件。</p><p><b> 4.2系統(tǒng)概要設計</b></p><p><b> 4.2.1設計思想</b></p><p> 1
22、.系統(tǒng)分成幾個相對獨立的模塊,但這些模塊都進行集中式管理。</p><p> 2.分層的模塊化程序設計思想,整個系統(tǒng)采用模塊化結(jié)構(gòu)設計。作為應用程序有較強的可操作性和擴展性。</p><p> 3.合理的數(shù)據(jù)流設計,在應用系統(tǒng)設計中,相對獨立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運行,提高系統(tǒng)安全性。</p><p><b> 4
23、.2.2設計原則</b></p><p> 為了使本系統(tǒng)功能齊全完備,操作簡便,最大限度的提高軟件的質(zhì)量,從而滿足用戶的實際需要,在設計開發(fā)過程中遵循了如下原則:</p><p> (1) 正確性原則:消息在不同系統(tǒng)平臺之間進行傳遞和顯示時不會出現(xiàn)亂碼現(xiàn)象。</p><p> (2) 健壯性原則:能夠容納100-200人同時在線交流,服務器端程序連
24、續(xù)應工作半年以上。</p><p> (3)可靠性原則:應用程序異常退出及崩潰的機率小于等于5%。</p><p> (4)準確性原則:對輸入的相關(guān)資料建立檢錯機制,及時報錯,使用戶能夠及時準確的輸入合法資料。</p><p> (5)源程序可讀性原則:為了便于其他人員設計,維護人員讀懂代碼或以后的代碼修改,軟件升級維護,盡可能地做好代碼注釋工作。</p
25、><p> (6)易操作原則:要求設計的系統(tǒng)功能齊全,界面友好,操作方便,必要的地方進行提示。</p><p><b> 4.2.3功能需求</b></p><p> 本系統(tǒng)采用自定向下方法開發(fā),其功能模塊主要有如下幾個部分:系統(tǒng)主界面、基礎資料部分、學生管理部分、課程管理部分、成績管理部分。具體的功能描述如下:</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)到主界面,如果不正確,提示錯誤信息。</p><p><b> 業(yè)務流程圖:</b></p><p><b> 圖4- 3</b></p><p> ?。?) 基礎資料設置</p&
28、gt;<p> 基礎資料設置包括院系設置、班級設置和學期設置等幾個方面。</p><p> 院系設置包括院系的添加、修改、查看、刪除。</p><p> 班級設置包括班級的添加、修改、查看、刪除。</p><p> 學期設置包括學期的添加、修改、查看、刪除。</p><p><b> (3)學生管理</
29、b></p><p> 學生管理包括學生檔案的管理編輯和學生學籍管理兩個方面。</p><p> 學生檔案管理編輯包括學生各種 資料 的添加、修改、查看、刪除。</p><p> 學生學籍管理包括學生院系和班級的變動以及學生離校的處理。</p><p><b> 檔案管理用例圖:</b></p>
30、<p><b> 圖4- 4 </b></p><p><b> ?。?)課程管理</b></p><p> 課程管理包括設置和班級選課兩個方面。</p><p> 課程的設置:用戶選擇添加,修改,刪除操作,系統(tǒng)執(zhí)行添加課程信息。</p><p> 班級選課:班級選課是以班級為
31、單位選擇在某個學期內(nèi)的所有課程,同時也為此班級內(nèi)的所有成員選擇了課程。因為每一班級每一個學期所學的課程名稱不能相同,所有選擇ListBox將所有課程名稱列出來,然后在選擇此課程的同時,刪除顯示課程名稱ListBox中的此課程名稱。這樣在這個班的下個學期就不會再出現(xiàn)此課程了。同時根據(jù)選擇課程名稱創(chuàng)建表結(jié)構(gòu)。以便查詢所有學生的成績。</p><p><b> ?。?)成績管理</b></p
32、><p> 成績管理包括學生成績編輯和學生成績分析兩個方面。</p><p> 學生成績編輯包括學生成績錄入和學生成績修改。</p><p> 學生成績分析是用列表和圖形等方法給出某個班級某個科目的最高、最低、平均分統(tǒng)計和總體分數(shù)分布圖。</p><p> 前臺用戶登錄:根據(jù)不同的身份(學生,老師)登錄,賦予用戶不同的權(quán)限。</p&
33、gt;<p> 以學生身份登錄:學生以姓名,學號登錄。登錄成功后,學生可以查看自己的學生學籍信息以及某個學期的所有成績。</p><p><b> 圖4- 5</b></p><p> 以老師身份登錄:老師以用戶名,密碼登錄。登錄成功后,老師可以查看想要查看的某系某班學生的所有學籍信息以及某學期的所有人的成績。或是某個任課老師想要查詢他所教的學科的
34、該班人的成績。</p><p><b> 圖4- 6</b></p><p><b> 4.2.4性能需求</b></p><p><b> 1.時間特性</b></p><p> 該管理系統(tǒng)軟件從啟動到進入系統(tǒng)登錄界面的時間正常情況下應少于5秒,錄入并更新數(shù)據(jù)的時間正
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)設計 </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(學期信息表)</p><p><b> 表4- 4</b></p><p> Student(學生信息表)</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)詳細設計</b></p><p> 5.1系統(tǒng)功能結(jié)構(gòu)圖</p><p> 學生管理系統(tǒng)提供:基礎設置,學生管理,課程管理,成績管理。</p>&
40、lt;p> 登錄界面如圖5.1所示:</p><p><b> 圖5- 1</b></p><p> 當以老師身份登錄成功后,界面如圖5.2所示:</p><p><b> 圖5- 2</b></p><p><b> 5.1.1成績管理</b></p&g
41、t;<p> 成績管理包括學生成績編輯和學生成績分析兩個方面。</p><p> 學生成績編輯包括學生成績錄入和學生成績修改,其界面如圖5-3所示:</p><p><b> 圖5- 3</b></p><p> 當窗體加載時二次確認和修改按鈕禁用。當選擇院系、班級、學期后點擊確認按鈕后禁用解除,用戶可以在課程框中選擇課程
42、,點擊二次確認按鈕數(shù)據(jù)加載成功。其界面如圖5-4所示:</p><p><b> 圖5- 4</b></p><p> 選擇所要修改的信息,按修改按鈕進行修改,提示修改成功,其界面如圖5-5所示:</p><p><b> 圖5- 5</b></p><p><b> 修改完畢退出
43、。</b></p><p><b> 5.1.2成績分析</b></p><p> 學生成績分析是用列表和圖形等方法給出某個班級某個科目的最高、最低、平均分統(tǒng)計和總體分數(shù)分布圖。成績列表情況,如圖5-6所示:</p><p><b> 圖5-6</b></p><p> 列表統(tǒng)計
44、情況,如圖5-7所示:</p><p><b> 圖5-7</b></p><p> 圖表分析情況,如圖5-8所示:</p><p><b> 圖5-8</b></p><p><b> 5.2代碼實現(xiàn)</b></p><p><b>
45、 5.2.1成績編輯</b></p><p> //確定院系、班級、學期以后 對選定課程的確認</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 學號='" + 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> //選中某一院系 讀取 特定班級、有幾個學期</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> //學期</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> //選中某一院系 讀取 特定班級、有幾個學期</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; //學期</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)計</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)計項");</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> 通過一個多月的設計和開發(fā),我們終于完成了學生管理系統(tǒng)。再此過程中使我學會了很多有
105、用的東西,受益匪淺。在編寫程序的過程中,我回顧了以前所學的知識,將學習到得知識在這個項目中得到了充分的應用,達到了檢驗自我的目的。并且通過和別人一起合作,學到了新的知識,積累了經(jīng)驗。我感覺團隊合作在軟件開發(fā)過程中十分重要,一個人是沒有辦法完成一個好的項目的。 </p><p> 我感覺系統(tǒng)的分析與設計是一項很辛苦的工作,但同時也是一個充滿樂趣的過程。在設計過程中我們不斷遇到新問題,經(jīng)過自己的努力和摸索,問題又不
106、斷得到了解決。努力和摸索的過程也是鍛煉自己耐心和毅力的過程,這其間的樂趣也只有親身實踐才能體會到。分析工作的深入與否直接影響到系統(tǒng)設計的質(zhì)量,我們在系統(tǒng)調(diào)試工作中深深體會到:越是早期的錯誤,往往越難發(fā)現(xiàn),處理起來越困難。所以要非常重視早期的系統(tǒng)分析工作,決不能草率行事,否則一旦出現(xiàn)錯誤,將使系統(tǒng)的開發(fā)工作大量返工,造成工期的延誤和人力物力的極大浪費。</p><p> 在這次設計中我得到了老師和同學的指導和幫助
107、,使我們認識到團隊精神的重要性,因為一個人所學的知識不可能面面俱到的,只有通過合作,發(fā)揮自己的優(yōu)點,體現(xiàn)團隊精神,才能使工作做得更為出色。通過這次設計,我學到了許多書本上學不到的知識,增強了自己的動手能力和自信心。通過這次設計使我們能力有了很大的提高,為我們以走上工作崗位打下了扎實的基礎。</p><p><b> 致謝</b></p><p> 這次設計是對以前
108、所學知識的回顧和綜合運用,使得我們對所學知識進行了綜合應用和拓展。在這次綜合實踐過程中,我掌握了一般系統(tǒng)設計的方法,同時也對我實踐應用能力提出了更高的要求,開拓了視野,拓展了知識面。這次畢業(yè)設計使我受益匪淺。</p><p> 通過這次實踐使我們認識到團隊精神的重要性,因為一個人所學的知識不可能面面俱到的,只有通過合作,發(fā)揮自己的優(yōu)點,體現(xiàn)團隊精神,才能使工作做得更為出色。通過這次設計,我學到了許多書本上學不到
109、的知識,增強了自己的動手能力和自信心。</p><p> 在整個實習期間,曾得到了***老師以及同學的大力支持和幫助,在此表示衷心的感謝!</p><p><b> 參考文獻</b></p><p> [1]張奇、衛(wèi)建偉。Visual C#數(shù)據(jù)庫項目安全導航。北京:清華大學出版社;</p><p> [2]SQL
110、 Server數(shù)據(jù)庫設計和實現(xiàn)。 科學技術(shù)文獻出版社;</p><p> [3].NET企業(yè)應用開發(fā)—ASP.NET & WebService 科學技術(shù)文獻出版社;</p><p> [4].NET 平臺和C#編程 科學技術(shù)文獻出版社;</p><p> [5]WinForms高級應用開發(fā)
111、科學技術(shù)文獻出版社;</p><p><b> 附件A</b></p><p><b> 編程語言</b></p><p> 編寫計算機程序有兩種常用方法:面向過程的程序設計和面向?qū)ο蟮某绦蛟O計。</p><p> 面向?qū)ο蟮某绦蛟O計是面向過程程序設計的一種擴展,在編寫程序時采用的方法有一些
112、不同,用面向?qū)ο蟮姆椒紤]問題,首先把程序元素看成是與現(xiàn)實世界中的具體對象相似的對象,然后對這些對象進行操作以得到期望的結(jié)果。編寫面向?qū)ο蟮某绦虬▌?chuàng)建對象和創(chuàng)建使用這些對象的應用程序。</p><p><b> 機器語言</b></p><p> 能被計算機操作系統(tǒng)直接運行的計算機程序稱為可執(zhí)行程序。可執(zhí)行程序是以機器碼的形勢表示的一系列非常簡單的指令。這些指令
113、對于不同計算機的CPU而言是特定的,它們與硬件有關(guān)。例如,英特爾“奔騰”處理器和Power PC微處理器芯片各自有不同的機器語言,要求用不同的代碼集來完成相同的任務。機器碼指令是從存儲單元取數(shù)據(jù),或?qū)蓚€存儲單元的內(nèi)容相加(通常在CPU的寄存器中進行)。機器碼指令是二進制的——比特序列(0和1)。由于這些數(shù)字令人難以理解,所以計算機指令通常不是用機器碼來寫的。</p><p><b> 匯編語言<
114、;/b></p><p> 與機器語言指令相比,匯編語言使用的命令較容易為程序員理解。每條機器語言指令在匯編語言中有等價的命令。例如,在匯編語言中,語句“MOV A,B”命令表示計算機把數(shù)據(jù)從一個單元復制到另一個單元,而及其代碼中同樣的指令是有一串16位的0和1組成的。一旦匯編語言程序編寫完畢,它就由另一個稱之為匯編起的程序轉(zhuǎn)換成機器語言程序。相對于機器語言而言,匯編語言速度快,功能強??伤匀浑y以利用,
115、因為匯編語言指令是有一系列抽象代碼組成的。另外,不同的CPU使用不同的機器語言,因此需要不同的匯編語言(程序)。有時為了執(zhí)行特殊的硬件任務,或者為了加快高級語言程序的速度,匯編語言被插入到高級語言程序中。</p><p><b> 高級語言</b></p><p> 從機器語言進步到匯編語言,是語言達到了更先進的階段。同樣也正是這種進步導致了高級語言的發(fā)展。如果計
116、算機能把簡便的符號翻譯成基本操作,為什么它就不能完成其他文字類型的編碼功能呢?</p><p> 現(xiàn)在讓我們來看看所期望的高級語言應有的特點,以及怎樣將它們與機器碼和匯編語言進行比較。高級程序語言是這樣一種編程手段,它用規(guī)范化的術(shù)語來寫出一步步的程序步驟,執(zhí)行這些步驟時會用唯一確定的方式處理工作。高級語言經(jīng)常針對某類特殊的處理問題而設計,例如,一些語言設計成適宜處理科學計算問題,另一些語言則更側(cè)重于文件處理的應
117、用。</p><p><b> 面向?qū)ο缶幊陶Z言</b></p><p> 像C++這樣的面向?qū)ο蟪绦蛘Z言(OOP)是以傳統(tǒng)的高級語言為基礎,但是它們能使程序員按照組合對象集方式而不是指令列表方式來進行思考。對象有許多性質(zhì),以圓為例,就有圓的半徑以及把圓畫到計算機屏幕上的命令。對象的類可以從其他對象類那里繼承屬性。例如,一個定義正方形的類能從定義長方形的類那里繼承
118、諸如直角這樣的屬性。程序類的這種關(guān)系簡化了程序員的工作,從而導致更多既可靠又高效的程序產(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(面向過程的程序設計) and object-oriented programming(面向?qū)ο蟮某绦蛟O計).</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(等價的) 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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文----學生管理系統(tǒng)設計
- 學生成績管理系統(tǒng)畢業(yè)論文1
- 畢業(yè)論文——學生管理系統(tǒng)
- 學生管理系統(tǒng)畢業(yè)論文
- 學生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學生管理系統(tǒng)
- 學生管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文 ----學生管理系統(tǒng)
- 學生管理系統(tǒng)-畢業(yè)論文
- 學生管理系統(tǒng)-畢業(yè)論文
- 學生管理系統(tǒng)畢業(yè)論文
- 學生管理系統(tǒng)畢業(yè)論文
- 學生管理管理系統(tǒng)畢業(yè)論文
- 學生成績管理系統(tǒng)畢業(yè)論文畢業(yè)論文
- 畢業(yè)論文--學生信息管理系統(tǒng)設計
- 畢業(yè)論文--學生考勤管理系統(tǒng)的設計
- 學生綜合管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學生排課管理系統(tǒng)
- 學生管理系統(tǒng)畢業(yè)論文 (2)
- 學生管理系統(tǒng)畢業(yè)論文 (2)
評論
0/150
提交評論