C學(xué)生信息管理系統(tǒng)_第1頁(yè)
C學(xué)生信息管理系統(tǒng)_第2頁(yè)
C學(xué)生信息管理系統(tǒng)_第3頁(yè)
C學(xué)生信息管理系統(tǒng)_第4頁(yè)
C學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、洛陽(yáng)理工學(xué)院課程設(shè) 計(jì)報(bào)告課程名稱 高級(jí)語(yǔ)言C#I程設(shè)計(jì)設(shè)計(jì)題目學(xué)生信息管理系統(tǒng)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) B130506學(xué)號(hào)姓名H完成日期2015.12.31課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)教務(wù)員可以輸入學(xué)生、教師、班級(jí)、課程信息,一個(gè)班級(jí)只屬于一 個(gè)專業(yè),一個(gè)學(xué)生只屬于一個(gè)班級(jí)。教務(wù)員負(fù)責(zé)輸入每個(gè)專業(yè)、每個(gè)班 級(jí)需要學(xué)習(xí)哪些課程,指定課程的任課教師。一個(gè)教師可以教授多個(gè)班 的多門課程。教師可以查看學(xué)習(xí)該課程的學(xué)生名單。課程結(jié)束后,教師可以錄入 課程成績(jī)。課程分兩類,必修課和選修課。學(xué)生可以選修課程,每學(xué)期幾門。 學(xué)生可以查看自己各門課程的成績(jī)。學(xué)生還可以進(jìn)行評(píng)教,給老師打分。系統(tǒng)管

2、理員可以輸入教室信息,并結(jié)合班級(jí)、課程、教室信息實(shí)現(xiàn) 自動(dòng)排課。2015指導(dǎo)教師:張文學(xué)年12月27日課程設(shè)計(jì)評(píng)語(yǔ)成績(jī):指導(dǎo)教師:2015年12月31日目錄第1章需求和可行性分析1.1 需求分析1.1.1 功能需求1.1.2 性能需求1.2 可行性分析1.2.1 技術(shù)可行性1.2.2 經(jīng)濟(jì)可行性第2章系統(tǒng)設(shè)計(jì)概述2.1 整體設(shè)計(jì)概述2.1.1 設(shè)計(jì)程2.1.2 設(shè)計(jì)思路2.2 功能模塊介紹2.2.1 學(xué)生信息模塊2.2.2 教師模塊2.2.3 教務(wù)員模塊 2.2.4 管理員登錄第3章 數(shù)據(jù)庫(kù)的搭建和實(shí)現(xiàn) 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述3.2 E-R圖的設(shè)計(jì)3.3 數(shù)據(jù)庫(kù)表的創(chuàng)建3.3.1 學(xué)生表的創(chuàng)建

3、3.3.2 教師表的創(chuàng)建3.3.3 課程表的創(chuàng)建3.3.4 成績(jī)表的創(chuàng)建3.4 存儲(chǔ)過程的創(chuàng)建3.4.1 分配班級(jí)存儲(chǔ)過程3.4.2 班級(jí)信息的存儲(chǔ)過程 3.4.3 學(xué)生課程的存儲(chǔ)過程 3.4.4 學(xué)生成績(jī)存儲(chǔ)過程第4章C#高級(jí)語(yǔ)言的實(shí)現(xiàn) 4.1 概述4.2 數(shù)據(jù)庫(kù)的連接4.3 開始界面的設(shè)計(jì) 4.4 系統(tǒng)管理員4.4.1 登錄功能和界面4.4.2 管理員顯示界面4.5 學(xué)生功能介紹和實(shí)現(xiàn)4.5.1 登錄界面和功能實(shí)現(xiàn) 4.5.2 學(xué)生用戶界面第5章結(jié)論第6章謝辭參考文獻(xiàn)第1章需求和可行性分析1.1 需求分析學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于 學(xué)校的決策者和管理者來(lái)說(shuō)都

4、至關(guān)重要。學(xué)校的管理人員可以通過電 腦對(duì)學(xué)生信息進(jìn)行有效的管理,避免了以往人工管理的復(fù)雜和耗時(shí)費(fèi) 力的勞動(dòng),也大大的能夠減少管理人員的工作量,可以有效的節(jié)約學(xué) 校的開支。1.1.1 功能需求作為一個(gè)學(xué)生的信息管理系統(tǒng),必須要有管理人員能夠進(jìn)行對(duì)學(xué)生的信息進(jìn) 行有效的管理,因此,系統(tǒng)必須預(yù)留一個(gè)管理員的登錄窗口和登錄之后所能進(jìn)行 的操作,在學(xué)生信息管理系統(tǒng)中,管理員具有最高的權(quán)限,可以對(duì)學(xué)生、老師、 班級(jí)、專業(yè)等等進(jìn)行添加、刪除、修改個(gè)查詢。除了擁有管理員之外,還應(yīng)該擁有教務(wù)處對(duì)學(xué)生進(jìn)行管理,例如:對(duì)學(xué)生課程,成績(jī)等等具有一定的權(quán)限。此外,還應(yīng)該有老師的一個(gè)權(quán)限,老師在帶完一門課之后可以對(duì)學(xué)生進(jìn)

5、行一個(gè)成績(jī)錄入和平時(shí)布置作業(yè)的功能。最后是學(xué)生自己擁有的功能,學(xué)生在考試結(jié)束后可以利用系統(tǒng)登錄自己的賬戶對(duì)成績(jī)進(jìn)行查詢。在學(xué)生信息管理系統(tǒng)中,要明確各類用戶所能擁有的最高權(quán)限,如果一旦權(quán)限的問題搞錯(cuò)以后,整個(gè)系統(tǒng)就會(huì)變得沒有價(jià)值。例如:學(xué)生只有對(duì)成績(jī)的查詢功能,而不能對(duì)成績(jī)擁有修改和刪除以及插入的功能。老師只能夠?qū)W(xué)生進(jìn)行成績(jī)的錄入和平時(shí)布置作業(yè),而不能刪除學(xué)生的個(gè)人信息等權(quán)限。要設(shè)立不同的異常機(jī)制,這樣不會(huì)因?yàn)橛脩舻腻e(cuò)誤的操作而使得系統(tǒng)瞬時(shí)奔潰。我們要在代碼中設(shè)置不同的異常拋出機(jī)制,這樣就可以使得用戶在進(jìn)行了錯(cuò) 誤的或者違反規(guī)則的操作之后,系統(tǒng)不會(huì)出現(xiàn)突然的停止運(yùn)轉(zhuǎn)。1.2 可行性分析隨著計(jì)

6、算機(jī)語(yǔ)言和數(shù)據(jù)服務(wù)的不斷發(fā)展,使得許多的現(xiàn)實(shí)問題都可以利用計(jì)算機(jī)來(lái)幫助人類實(shí)現(xiàn)輕巧,方便的管理。在教育上,學(xué)生是一個(gè)龐大的群體,因此技術(shù)人員早早就開始想辦法解決這個(gè)問題,因此,目前對(duì)于學(xué)生信息的管理各種語(yǔ)言都能夠編寫出一套完整的、可用的學(xué)生信息管理系統(tǒng)。1.2.1 技術(shù)可行性在這套系統(tǒng)的開發(fā)中,采用的是開發(fā)語(yǔ)言是C#,軟彳是Visio Studio2010 ,C黜微軟對(duì)問題白解決方案。C版一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它使得程 序員可以快速地編寫各種基于Microsoft?.NET 平臺(tái)的應(yīng)用程序, Microsoft .NET提供了一系列的工具和服務(wù)來(lái)最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。正是

7、由于C#S向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選-無(wú)論 是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#S言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語(yǔ)言在任何操作系統(tǒng)上通過 Internet 進(jìn)行調(diào)用。最重要的是,C#£彳4 C+取序員可以高效的開發(fā)程序,而絕不損失 C/C+®有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#f C/C+M有極大的相似性,熟悉類似語(yǔ)言的開發(fā)者可以很快的轉(zhuǎn)向C#。數(shù)據(jù)庫(kù)采用的是SQL Server2008R2,這個(gè)SQL數(shù)據(jù)庫(kù)版本是微軟公司推出的針對(duì)微軟用戶的一種關(guān)系型數(shù)據(jù)庫(kù),語(yǔ)言簡(jiǎn)單,實(shí)用。與 Visio St

8、udio 2010 結(jié) 合相對(duì)簡(jiǎn)單實(shí)用。1.2.2 經(jīng)濟(jì)可行性現(xiàn)在隨著互聯(lián)網(wǎng)絡(luò)、計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)字城市成為當(dāng)前熱點(diǎn)話題。同時(shí)在國(guó)家政策給予大力支持的條件下,這些技術(shù)熱點(diǎn)給社會(huì)產(chǎn)生了極大的影響,不僅給生活、學(xué)習(xí)和管理帶來(lái)了新的體驗(yàn),同時(shí)也帶動(dòng)了經(jīng)濟(jì)的增長(zhǎng)。學(xué)生管理系統(tǒng)使用比較簡(jiǎn)單的C#S言開發(fā),而且目前中國(guó)的學(xué)校和教育機(jī)構(gòu)眾多,許多的地方都需要用到這套學(xué)生信息管理系統(tǒng),因此學(xué)生信息管理系統(tǒng)具有廣闊的市場(chǎng)前景和發(fā)展動(dòng)力。第 2 章 系統(tǒng)設(shè)計(jì)概述2.1 整體設(shè)計(jì)概述這套學(xué)生信息管理系統(tǒng)旨在為用戶提供更加有效的、方便的和快捷的學(xué)生的管理系統(tǒng)。本套系統(tǒng)在結(jié)構(gòu)上由數(shù)據(jù)庫(kù)和高級(jí)語(yǔ)言兩部分組成,數(shù)據(jù)庫(kù)部分

9、負(fù)責(zé)此套系統(tǒng)所要用到的所有的數(shù)據(jù)庫(kù)的表的創(chuàng)建和所用到的存儲(chǔ)過程的創(chuàng)建。C#FB分是具體的設(shè)計(jì)UI 界面和具體的邏輯實(shí)現(xiàn),用戶可以通過在自己電腦上點(diǎn)擊UI上的控件進(jìn)行操作。2.1.1 設(shè)計(jì)流程圖1整體設(shè)計(jì)思路圖2.1.2 設(shè)計(jì)思路這套學(xué)生信息管理系統(tǒng)是由數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯層和UI層三部分構(gòu)成,用戶在UI層上進(jìn)行操作,數(shù)據(jù)通過業(yè)務(wù)邏輯層數(shù)據(jù)傳至數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行 修改,在用戶需要用到數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)從數(shù)據(jù)庫(kù)中提出經(jīng)過業(yè)務(wù)邏輯 層上傳至UI層,以供用戶查閱和進(jìn)行其他的操作。 業(yè)務(wù)邏輯層主要負(fù)責(zé)的工作就 是將UI傳來(lái)的數(shù)據(jù)進(jìn)行分析,并且做出判斷,然后根據(jù)判斷出的結(jié)果進(jìn)行對(duì)數(shù)據(jù) 庫(kù)的訪問

10、。數(shù)據(jù)庫(kù)的主要任務(wù)就是為系統(tǒng)提供數(shù)據(jù)的存儲(chǔ)。2.2 功能模塊介紹以下會(huì)對(duì)本套系統(tǒng)中的主要模塊做一個(gè)簡(jiǎn)單的介紹與分析。2.2.1 學(xué)生信息模塊學(xué)生模塊的主要功能是對(duì)自己的成績(jī)能夠有效的進(jìn)行查詢和能夠?qū)處熥龀?有效的評(píng)價(jià)在學(xué)期末。每個(gè)學(xué)生只能夠?qū)ψ约旱某煽?jī)進(jìn)行有效的查詢,在登錄自己的賬戶之后,其 他的同學(xué)的成績(jī)是不可見的,這樣也是起到了一種隱私的保護(hù)作用,而且學(xué)生在 登錄自己的賬戶之后沒有成績(jī)修改和添加以及刪除的功能??诙?student_show1=1。成緇查何選課字號(hào)課程名通課號(hào)學(xué)時(shí)卜B13050620計(jì)苴機(jī)科學(xué)與一一E1S050520appE13050620問由制作11-3030520嫌人

11、式薇米正選結(jié)果,評(píng)分用戶:胤3050 62 口田肖|T|*圖2學(xué)生用戶登錄2.2.2 教師模塊教師在使用該系統(tǒng)時(shí),主要的任務(wù)是向?qū)W生下達(dá)作業(yè)任務(wù)和在期末考試結(jié)束 之后給給學(xué)生錄入成績(jī),使得學(xué)生能夠通過自己的賬戶登錄該系統(tǒng)之后能夠看到 自己的成績(jī)。在錄入成績(jī)之后不能對(duì)學(xué)生的成績(jī)進(jìn)行修改。P 3mj 回 IM'課程:計(jì)苴機(jī)科學(xué)與書 萱看名單錄入成續(xù)圖3教師用戶登錄2.2.3教務(wù)員模塊教務(wù)員使用該套系統(tǒng)的主要目的是對(duì)教室進(jìn)行管理,以及能夠根據(jù)各個(gè)班級(jí) 的具體課程情況對(duì)班級(jí)進(jìn)行排課。圖4教務(wù)員登錄管理員是此套系統(tǒng)的擁有最高的權(quán)限,他可以添加學(xué)生、老師和教務(wù)員的信 息,以及進(jìn)行修改和刪除等等。圖

12、5管理員登錄第3章 數(shù)據(jù)庫(kù)的搭建和實(shí)現(xiàn)3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)在現(xiàn)代的系統(tǒng)的開發(fā)中,起到了非常重要的作用。數(shù)據(jù)庫(kù)可以對(duì)數(shù)據(jù) 起到一種長(zhǎng)期保存的效果,而且可以利用終端隨時(shí)隨地的通過網(wǎng)絡(luò)來(lái)訪問服務(wù)器, 進(jìn)而訪問數(shù)據(jù)庫(kù),找到自己想要的數(shù)據(jù)和信息。3.2 E-R圖的設(shè)計(jì)ER圖在設(shè)計(jì)數(shù)據(jù)圖的時(shí)候起到了非常關(guān)鍵的作用, 可以從ER圖中清晰的看到 各個(gè)對(duì)象之間的關(guān)系和它具有的屬性,因此,在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候會(huì)更加的方便 和得心應(yīng)手。圖6學(xué)生的ER圖 圖7教師的ER圖 圖8教務(wù)員ER圖圖11課程ER圖圖12成績(jī)ER圖3.3 數(shù)據(jù)庫(kù)表的創(chuàng)建數(shù)據(jù)庫(kù)中的數(shù)據(jù)都是通過表來(lái)進(jìn)行存儲(chǔ)的,因此,要將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,

13、必須將表的結(jié)構(gòu)進(jìn)行合理化的設(shè)計(jì),ER圖為表的創(chuàng)建提供了良好的理論支撐,現(xiàn) 在在建表的時(shí)候要考慮的是數(shù)據(jù)的存儲(chǔ)大小,我們現(xiàn)在采用可以變換大小的 varchar ()類型進(jìn)行存儲(chǔ),這樣不會(huì)導(dǎo)致內(nèi)存的無(wú)故浪費(fèi)。圖13整體表的創(chuàng)建學(xué)生表中主要是學(xué)生的一些屬性,例如學(xué)生的學(xué)號(hào),姓名,年齡和性別等等, 在學(xué)生管理系統(tǒng)中,學(xué)號(hào)作為該表的主鍵,設(shè)計(jì)如下:圖14學(xué)生表的創(chuàng)建3.3.2 教師表的創(chuàng)建教師表中也是教師的一些屬性,例如教工號(hào)、姓名和教室名等等,教工號(hào)為主鍵 , 設(shè)計(jì)如下:圖 15 教師表的創(chuàng)建3.3.3 課程表的創(chuàng)建在課程表中,屬性是關(guān)于課程的一些信息,例如課程號(hào)、課程名和該課程的學(xué)時(shí)和學(xué)分。課程號(hào)是

14、主鍵, 設(shè)計(jì)如下:圖 16 課程表的創(chuàng)建在創(chuàng)建完學(xué)生表和課程表之后,需要一個(gè)成績(jī)表來(lái)顯示學(xué)生的成績(jī)信息,成績(jī)要與學(xué)生個(gè)人和課程能夠匹配上,在這里,需要設(shè)置學(xué)號(hào)和課程號(hào)為主鍵,而學(xué)生表中的學(xué)號(hào)和課程表中的課程號(hào)都是外鍵,設(shè)計(jì)如下:圖 17 成績(jī)表的創(chuàng)建3.4 存儲(chǔ)過程的創(chuàng)建在使用數(shù)據(jù)庫(kù)的時(shí)候有時(shí)候不是一個(gè)表所能完成的一項(xiàng)任務(wù),我們往往會(huì)采用存儲(chǔ)過程進(jìn)行多表的結(jié)合使用,例如:要查詢某個(gè)專業(yè)下的某個(gè)年級(jí)的某個(gè)班的一位同學(xué)的信息并且把這些信息顯示出來(lái),這樣就會(huì)涉及到專業(yè)表、年級(jí)表、班級(jí)表和學(xué)生表。因此,在這個(gè)時(shí)候我們需要將多表進(jìn)行結(jié)合使用,這里就會(huì)使用到存儲(chǔ)過程。 在本套系統(tǒng)中, 我采用了幾個(gè)存儲(chǔ)過程

15、來(lái)對(duì)學(xué)生的信息進(jìn)行管理。圖 18 整體的存儲(chǔ)過程3.4.2 分配班級(jí)存儲(chǔ)過程在分配班級(jí)的時(shí)候要用到班級(jí)和專業(yè)兩個(gè)表,因此要通過這兩個(gè)表進(jìn)行分配,從而確定某一個(gè)班是屬于哪一個(gè)專業(yè),代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE dbo.CLASS_CHOOSEpro varchar(20), cla varchar(20)asselect professional. 專業(yè)名 ,class. 班級(jí)號(hào) ,course. 課程名 ,course.課時(shí)數(shù) ,course. 學(xué)分fro

16、m professional,course,classwhere professional. 專業(yè)號(hào) = class. 專業(yè)號(hào) and professional. 專業(yè)名 = pro and class. 班級(jí)號(hào) = cla3.4.3 班級(jí)信息的存儲(chǔ)過程查詢某一個(gè)班級(jí)信息的功能,這個(gè)功能函數(shù)既可以在數(shù)據(jù)庫(kù)中用存儲(chǔ)過程實(shí)現(xiàn)也可以在C#通過語(yǔ)言的邏輯來(lái)實(shí)現(xiàn),在這套系統(tǒng)中,我采用的是利用在數(shù)據(jù) 庫(kù)中建立了一般班級(jí)信息的存儲(chǔ)過程來(lái)實(shí)現(xiàn)的,在C鼾通過調(diào)用該存儲(chǔ)過程,然后向其中傳遞一個(gè)參數(shù)就可以實(shí)現(xiàn)。代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED

17、_IDENTIFIER ONGOALTER procedure dbo.class_messageclassno varchar(20)asselect 班級(jí)號(hào) , 專業(yè)名 , 班主任 , 班長(zhǎng) , 人數(shù)from classwhere 班級(jí)號(hào) = classno3.4.4 學(xué)生課程的存儲(chǔ)過程學(xué)生的課程信息不僅僅包含了學(xué)生類,而且還包含了課程類,我們需要將這兩個(gè)表進(jìn)行有效的結(jié)合進(jìn)行使用,在這套系統(tǒng)中我采用的是利用在數(shù)據(jù)庫(kù)中建立一個(gè)學(xué)生課程的存儲(chǔ)過程來(lái)顯示學(xué)生的課程信息,預(yù)留一個(gè)輸入?yún)?shù)學(xué)生的學(xué)號(hào),可以利用學(xué)號(hào)就可以查詢到該學(xué)生的課程信息。代碼如下:USE student_adminGOSET A

18、NSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.student_coursecourseno varchar(20)asselect student. 學(xué)號(hào) ,student. 姓名 ,student. 班級(jí)號(hào) ,course. 課程名 ,grade. 分?jǐn)?shù)from student,course,gradewhere student. 學(xué)號(hào) = grade. 學(xué)號(hào) and course. 課程號(hào) = grade. 課程號(hào) and 課程名 = courseno在學(xué)生管理系統(tǒng)中,非常重要的一環(huán)就是學(xué)生可以查看自己的成績(jī),在這套

19、系統(tǒng)中,采用的也是在數(shù)據(jù)庫(kù)中建立一個(gè)關(guān)于學(xué)生的存儲(chǔ)過程,是按照學(xué)號(hào)進(jìn)行查詢的,在C#,調(diào)用該存儲(chǔ)過程,輸入一個(gè)學(xué)號(hào)的參數(shù),便可以查詢?cè)搶W(xué)生的成績(jī)信息,防止查詢了其他人成績(jī),起到隱私保護(hù)的作用。代碼如下:USE student_adminGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.student_gradestudent_id varchar(20)asselect student. 學(xué) 號(hào) ,student. 姓名 ,course. 課程名 ,grade. 分?jǐn)?shù) ,choose. 選課名 ,grade.

20、選修分?jǐn)?shù)from student,course,grade,choosewhere student. 學(xué)號(hào) = grade. 學(xué)號(hào) and choose. 選課號(hào) = grade. 選課號(hào) and student. 學(xué)號(hào) = student_id第4章C#高級(jí)語(yǔ)言的實(shí)現(xiàn)4.1 概述在數(shù)據(jù)庫(kù)進(jìn)行完設(shè)計(jì)之后,就要使用 C鉆種高級(jí)語(yǔ)言將他真正的能夠和用戶 產(chǎn)生聯(lián)系,用戶接觸到的是 UI層面,因此我們的任務(wù)就是通過 UI層進(jìn)行數(shù)據(jù)傳 遞到業(yè)務(wù)邏輯層然后進(jìn)行數(shù)據(jù)的轉(zhuǎn)化和業(yè)務(wù)邏輯的實(shí)現(xiàn)。4.2 數(shù)據(jù)庫(kù)的連接在本套系統(tǒng)中,連接數(shù)據(jù)庫(kù)我采用的是利用數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù),這樣就可 以將連接數(shù)據(jù)庫(kù)的字符串和comm

21、odTB封裝在數(shù)據(jù)源中,為每個(gè)表都創(chuàng)建好數(shù)據(jù)源 和數(shù)據(jù)適配器,這樣可以減少代碼量,而且也會(huì)使得程序變得簡(jiǎn)潔明了,在使用 一個(gè)數(shù)據(jù)庫(kù)中的某一個(gè)表的時(shí)候只需要?jiǎng)?chuàng)建一個(gè)該表的數(shù)據(jù)適配器和一個(gè)共有的 dataset即可。關(guān)系圖如下:1電業(yè); 田 p r9*i m>oti ><ti bi<a,diphtf /A Fai.6eC«u i與一且0>雄11:降前 工魅ttjff中中 fiEsls國(guó) 席.li但 Fll#C IL eM.Q 電 940H| fil 6MfateOM 旭n-田 HUGffg 酒皿薩荷weH gwrMTiMvMiFiv T圖19數(shù)據(jù)源圖示4.3

22、 開始界面的設(shè)計(jì)開始界面主要是讓用戶選擇自己的身份類型進(jìn)行系統(tǒng)的登錄。如果用戶選擇的是系統(tǒng)管理員的登錄方式,系統(tǒng)會(huì)自動(dòng)的進(jìn)行頁(yè)面的跳轉(zhuǎn),跳轉(zhuǎn)到系統(tǒng)管理員的登錄界面。圖 20 登錄類型選擇4.4 系統(tǒng)管理員4.4.1 登錄功能和界面登錄界面主要是讓用戶輸入賬號(hào)和密碼進(jìn)行登錄,界面的風(fēng)格是一致的,只是通過調(diào)用不同的數(shù)據(jù)庫(kù)的信息進(jìn)行不同的登錄。圖 21 登錄界面用戶在輸入賬號(hào)和密碼的時(shí)候,系統(tǒng)會(huì)調(diào)用數(shù)據(jù)中的相應(yīng)的表進(jìn)行查看是否與表中的數(shù)據(jù)匹配,如果匹配則能夠登錄成功,否則不成功。如果登錄成功,該賬號(hào)和密碼會(huì)被記錄到本地的文件中進(jìn)行存儲(chǔ),以此達(dá)到下次登錄時(shí)的快捷和方便,代碼如下:private voi

23、d button1_Click(object sender, EventArgs e)/ 登i ?錄到1?管1理?!皢T?a的i ?界面?string name = null;string pass = null;StringBuilder sname = new StringBuilder("管 1 理O " a 賬?號(hào)?='");sname.Append(comboBox1.Text);sname.Append("'");if (comboBox1.Text != "")tryrowDataRowtable

24、1.Select(sname.ToString();row1 = row0;name = row10.ToString();pass = row12.ToString();catch (Exception ex)MessageBox.Show(ex.Message);if (name = comboBox1.Text)/ MessageBox.Show(name);if (textBox1.Text = pass)/進(jìn)?入?管i理員?a的i?后?§admin_show a = new admin_show();a.Show();if (File.Exists(txt) String

25、ss = name, pass ;File.WriteAllLines(txt, ss);elseFile.Create(txt);elseString ss = "", "" ;File.WriteAllLines(txt, ss);elseMessageBox.Show("沒?有?D 止匕??管"1 理O " a 員?");else /學(xué)? i生| r進(jìn)?入?MessageBox.Show("賬?號(hào)?和a 密 1 碼?不?匹£。配?");/ label4.Text="賬?

26、號(hào)?和a密1 碼?不?匹£。配?,6?請(qǐng)重?新?輸o?入?”;elseMessageBox.Show("請(qǐng)?輸 o?入?賬?號(hào)?)4.4.2 管理員顯示界面在管理員登錄自己的賬號(hào)之后,可以對(duì)學(xué)生、老師、課程和班級(jí)進(jìn)行查詢,添加、刪除、修改和保存。這套系統(tǒng)中,可以根據(jù)學(xué)號(hào)和姓名進(jìn)行查找,輸入學(xué)號(hào)或者姓名,會(huì)進(jìn)一步的調(diào)用數(shù)據(jù)庫(kù)進(jìn)行查詢,如果數(shù)據(jù)庫(kù)中有該成員的信息,則會(huì)被現(xiàn)實(shí)在右邊的顯示框中,在datagaridview 中顯示的是該類成員所有的數(shù)據(jù)信息。在管理員查到成員信息之后,可以根據(jù)現(xiàn)在的情況進(jìn)行對(duì)成員的信息進(jìn)行相應(yīng)的操作,例如:有一個(gè)學(xué)生退學(xué),管理員可以查詢到該生之后將該

27、生信息進(jìn)行刪除。如果有一個(gè)老師的登錄密碼忘記了,管理員可以登錄系統(tǒng)進(jìn)行對(duì)該教師密碼的一個(gè)重置。圖 22 管理員查詢學(xué)生信息按照學(xué)號(hào)查詢學(xué)生信息的代碼如下:private void button3_Click(object sender, EventArgs e)/按??學(xué)? i號(hào)?查 |找一new/StringBuilderstringBuilderStringBuilder();trydatarow1 = row0;textBox5.Textdatarow10.ToString();textBox6.Textdatarow11.ToString();textBox7.Textdatarow1

28、2.ToString();textBox8.Textdatarow13.ToString();textBox9.Textdatarow14.ToString();datarow15.ToString();textBox11.Textdatarow16.ToString();textBox12.Textdatarow17.ToString();textBox13.Textdatarow18.ToString();catch(Exception ex)MessageBox.Show(ex.Message);按照姓名查詢學(xué)生信息的代碼如下:private void button4_Click(obj

29、ect sender, EventArgs e)/按??姓?名?查. |找一if (textBox1.TextLength != 0)StringBuildername = new StringBuilder(" 姓名 ?='");name.Append(textBox1.Text);name.Append("'");DataRowrow=st_table.Select(name.ToString(); try String str = row0.ToString();/DataRowrow=dataset.Tables"adm

30、in".Select("姓 ? 名 ?="+textBox8.Text).ToString();datarow1 = row0;textBox5.Text = datarow10.ToString();textBox6.Text = datarow11.ToString();textBox7.Text = datarow12.ToString();textBox8.Text = datarow13.ToString();textBox9.Text = datarow14.ToString();textBox10.Text = datarow15.ToString(

31、);textBox11.Text = datarow16.ToString();textBox12.Text = datarow17.ToString();textBox13.Text = datarow18.ToString();catch (Exception ex)MessageBox.Show(ex.Message);添加學(xué)生信息代碼:private void button5_Click(object sender, EventArgs e)/ 添?a力口?DataRow row = st_table.NewRow();if (textBox5.Text = "")

32、row0 = DBNull.Value;elseif (textBox6.Text = "")row1 = DBNull.Value;elseif (textBox7.Text = "")row2 = DBNull.Value;elseif (textBox8.Text = "")row3 = DBNull.Value;elseif (textBox9.Text = "")row4 = DBNull.Value;elseif (textBox10.Text = "")row5 = DBNull.

33、Value;elseif (textBox11.Text = "")row6 = DBNull.Value;elseif (textBox12.Text = "")row7 = DBNull.Value;elseif (textBox13.Text = "")row8 = DBNull.Value;elsetrycatch (Exception ex)MessageBox.Show(ex.Message);修改學(xué)生信息代碼如下:private void button6_Click(object sender, EventArgs e)

34、/ 修 T 改 ?tryif (textBox5.Text = "")datarow10 = DBNull.Value;elseif (textBox6.Text = "")datarow11 = DBNull.Value;elseif (textBox7.Text = "")datarow12 = DBNull.Value; elseif (textBox8.Text = "")datarow13 = DBNull.Value;elseif (textBox9.Text = "")dataro

35、w14 = DBNull.Value; elseif (textBox10.Text = "")datarow15 = DBNull.Value;else if (textBox11.Text = "")datarow16 = DBNull.Value;elseif (textBox12.Text = "")datarow17 = DBNull.Value;elseif (textBox13.Text = "")datarow18 = DBNull.Value;elsecatch (Exception ex)Mes

36、sageBox.Show(ex.Message);刪除學(xué)生信息代碼如下:private void button7_Click(object sender, EventArgs e)/ 刪|?除yDataViewview=newDataView(dataset.Tables"student");StringBuilderbulidnew StringBuilder(" 學(xué)? i號(hào)?='");try bulid.Append(datarow10);bulid.Append("'");view.RowFilter = bul

37、id.ToString();view.Delete(0);view.EndInit();/ds1.Tables0.Rows.Remove(row4);catch (Exception ex) MessageBox.Show("沒?有?D 止匕?學(xué)? i 生l 匕” +ex.Message, "提?。示 o?", MessageBoxButtons.OK, MessageBoxIcon.Information);textBox5.Text = ""textBox6.Text = ""textBox7.Text = ""textBox8.Text = ""textBox9.Text = ""textBox10.Text = "" textBox11.Text = ""textBox12.Text = ""textBox13.Text = ""/ textBox14.Text = ""保存學(xué)生信息代碼如下:private void button8_Click(object sender, Eve

溫馨提示

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

評(píng)論

0/150

提交評(píng)論