


版權(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#課程設(shè)計(jì)設(shè)計(jì)題目 學(xué)生信息管理系統(tǒng)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí) B130506學(xué)號(hào) B13050624姓名張葵完成日期 課程設(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)排課。指導(dǎo)教師:張文學(xué)2015年12月27日課程設(shè)計(jì)評(píng)語(yǔ)成績(jī):指導(dǎo)教師:2015年12月31日目錄第1章需求和可行性分析31.1需求分析31.1.1 功能需求3性能需求31.2可行性分析41.2.1 技術(shù)可行性41.2.2 經(jīng)濟(jì)可行性4第2章系統(tǒng)設(shè)計(jì)概述52.1整體設(shè)計(jì)概述5設(shè)計(jì)流程5設(shè)計(jì)思路62.2功能模塊介紹6學(xué)生信息模塊6教師模塊7教務(wù)員模塊 8管理員登錄 9第3章 數(shù)據(jù)庫(kù)的搭建和實(shí)現(xiàn) 103.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述 103.2 E-R圖的設(shè)計(jì)103.3數(shù)據(jù)庫(kù)表的創(chuàng)建12學(xué)生表的創(chuàng)建123.3.2 教師表的創(chuàng)建133.3.3 課程表的創(chuàng)建
3、13成績(jī)表的創(chuàng)建143.4存儲(chǔ)過(guò)程的創(chuàng)建143.4.1 分配班級(jí)存儲(chǔ)過(guò)程 143.4.2 班級(jí)信息的存儲(chǔ)過(guò)程 153.4.3 學(xué)生課程的存儲(chǔ)過(guò)程 15學(xué)生成績(jī)存儲(chǔ)過(guò)程 16第4章C#高級(jí)語(yǔ)言的實(shí)現(xiàn) 174.1概述174.2數(shù)據(jù)庫(kù)的連接174.3開始界面的設(shè)計(jì) 184.4系統(tǒng)管理員184.4.1 登錄功能和界面184.4.2 管理員顯示界面214.5學(xué)生功能介紹和實(shí)現(xiàn) 264.5.1 登錄界面和功能實(shí)現(xiàn) 264.5.2 學(xué)生用戶界面27第5章結(jié)論29第6章謝辭30參考文獻(xiàn)31第1章需求和可行性分析1.1需求分析學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于 學(xué)校的決策者和管理者來(lái)說(shuō)都
4、至關(guān)重要。學(xué)校的管理人員可以通過(guò)電 腦對(duì)學(xué)生信息進(jìn)行有效的管理,避免了以往人工管理的復(fù)雜和耗時(shí)費(fèi) 力的勞動(dòng),也大大的能夠減少管理人員的工作量,可以有效的節(jié)約學(xué) 校的開支。功能需求作為一個(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)行一個(gè)成
5、績(jī)錄入 和平時(shí)布置作業(yè)的功能。最后是學(xué)生自己擁有的功能,學(xué)生在考試結(jié)束后可以利 用系統(tǒng)登錄自己的賬戶對(duì)成績(jī)進(jìn)行查詢。性能需求在學(xué)生信息管理系統(tǒng)中,要明確各類用戶所能擁有的最高權(quán)限,如果一旦權(quán) 限的問(wèn)題搞錯(cuò)以后,整個(gè)系統(tǒng)就會(huì)變得沒(méi)有價(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可行性
6、分析隨著計(jì)算機(jī)語(yǔ)言和數(shù)據(jù)服務(wù)的不斷發(fā)展,使得許多的現(xiàn)實(shí)問(wèn)題都可以利用計(jì) 算機(jī)來(lái)幫助人類實(shí)現(xiàn)輕巧,方便的管理。在教育上,學(xué)生是一個(gè)龐大的群體,因 此技術(shù)人員早早就開始想辦法解決這個(gè)問(wèn)題,因此,目前對(duì)于學(xué)生信息的管理各 種語(yǔ)言都能夠編寫出一套完整的、可用的學(xué)生信息管理系統(tǒng)。技術(shù)可行性在這套系統(tǒng)的開發(fā)中,采用的是開發(fā)語(yǔ)言是C#,軟件是Visio Studio2010, C#是微軟對(duì)問(wèn)題的解決方案。C#是一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它使得程序 員可以快速地編寫各種基于 Microsoft .NET平臺(tái)的應(yīng)用程序,Microsoft .NET提供 了一系列的工具和服務(wù)來(lái)最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)
7、域。正是由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為構(gòu)建各類組件的理想之選-無(wú)論 是高級(jí)的商業(yè)對(duì)象還是系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語(yǔ)言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語(yǔ)言在任何操作系統(tǒng)上 通過(guò)In ternet進(jìn)行調(diào)用。最重要的是,C#使得C+程序員可以高效的開發(fā)程序,而絕不損失C/C+原有的強(qiáng)大的功能。因?yàn)檫@種繼承關(guān)系,C#與 C/C+具有極大的相似性,熟悉類似 語(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 Studio 2010
8、結(jié)合相對(duì)簡(jiǎn)單實(shí)用。經(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#語(yǔ)言開發(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ù)部分負(fù)責(zé) 此套系統(tǒng)所要用到的所有的數(shù)據(jù)
9、庫(kù)的表的創(chuàng)建和所用到的存儲(chǔ)過(guò)程的創(chuàng)建。C#部分是具體的設(shè)計(jì)UI界面和具體的邏輯實(shí)現(xiàn),用戶可以通過(guò)在自己電腦上點(diǎn)擊UI上的控件進(jìn)行操作。設(shè)計(jì)流程圖1整體設(shè)計(jì)思路圖設(shè)計(jì)思路這套學(xué)生信息管理系統(tǒng)是由數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯層和UI層三部分構(gòu)成,用戶在UI層上進(jìn)行操作,數(shù)據(jù)通過(guò)業(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)過(guò)業(yè)務(wù)邏輯 層上傳至UI層,以供用戶查閱和進(jìn)行其他的操作。 業(yè)務(wù)邏輯層主要負(fù)責(zé)的工作就 是將UI傳來(lái)的數(shù)據(jù)進(jìn)行分析,并且做出判斷,然后根據(jù)判斷出的結(jié)果進(jìn)行對(duì)數(shù)據(jù) 庫(kù)的訪問(wèn)。數(shù)據(jù)庫(kù)的主要任務(wù)就是為系統(tǒng)提供數(shù)據(jù)的存儲(chǔ)。2.2功能模塊介
10、紹以下會(huì)對(duì)本套系統(tǒng)中的主要模塊做一個(gè)簡(jiǎn)單的介紹與分析。學(xué)生信息模塊學(xué)生模塊的主要功能是對(duì)自己的成績(jī)能夠有效的進(jìn)行查詢和能夠?qū)處熥龀?有效的評(píng)價(jià)在學(xué)期末。每個(gè)學(xué)生只能夠?qū)ψ约旱某煽?jī)進(jìn)行有效的查詢,在登錄自己的賬戶之后,其 他的同學(xué)的成績(jī)是不可見(jiàn)的,這樣也是起到了一種隱私的保護(hù)作用,而且學(xué)生在 登錄自己的賬戶之后沒(méi)有成績(jī)修改和添加以及刪除的功能。圖2學(xué)生用戶登錄教師模塊教師在使用該系統(tǒng)時(shí),主要的任務(wù)是向?qū)W生下達(dá)作業(yè)任務(wù)和在期末考試結(jié)束 之后給給學(xué)生錄入成績(jī),使得學(xué)生能夠通過(guò)自己的賬戶登錄該系統(tǒng)之后能夠看到 自己的成績(jī)。在錄入成績(jī)之后不能對(duì)學(xué)生的成績(jī)進(jìn)行修改。9 tea chershow1 r 回
11、課琨:計(jì)算機(jī)科學(xué)與申杳看名單錄入成績(jī)圖3教師用戶登錄223教務(wù)員模塊教務(wù)員使用該套系統(tǒng)的主要目的是對(duì)教室進(jìn)行管理,以及能夠根據(jù)各個(gè)班級(jí)的具體課程情況對(duì)班級(jí)進(jìn)行排課。圖4教務(wù)員登錄224管理員登錄管理員是此套系統(tǒng)的擁有最高的權(quán)限,他可以添加學(xué)生、老師和教務(wù)員的信 息,以及進(jìn)行修改和刪除等等。圖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í)隨地的通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)服務(wù)器, 進(jìn)而訪問(wèn)數(shù)據(jù)庫(kù),找到自己想要的數(shù)據(jù)和信息。3.2 E-R圖的設(shè)計(jì)ER圖在設(shè)計(jì)數(shù)據(jù)圖的時(shí)候起到了非常關(guān)鍵的作用
12、,可以從 ER圖中清晰的看 到各個(gè)對(duì)象之間的關(guān)系和它具有的屬性,因此,在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候會(huì)更加的方 便和得心應(yīng)手。圖6學(xué)生的ER圖課程圖11課程ER圖成績(jī)3.3數(shù)據(jù)庫(kù)表的創(chuàng)建數(shù)據(jù)庫(kù)中的數(shù)據(jù)都是通過(guò)表來(lái)進(jìn)行存儲(chǔ)的,因此,要將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中, 必須將表的結(jié)構(gòu)進(jìn)行合理化的設(shè)計(jì),ER圖為表的創(chuàng)建提供了良好的理論支撐, 在在建表的時(shí)候要考慮的是數(shù)據(jù)的存儲(chǔ)大小,我們現(xiàn)在采用可以變換大小的 varchar()類型進(jìn)行存儲(chǔ),這樣不會(huì)導(dǎo)致內(nèi)存的無(wú)故浪費(fèi)。J 7tudent_adimin+i _ dbo.scde-mic +1 二 dbo.admin *i _ dboxhaose +i _ dbQ,d可吊*+
13、j 一 dbo.e&ur +1 _3 dboievaluate+1dt>o.g占討己ti _ dboprofessional+1 3 dbo.student+i _3 dbo.teacherF i_j USSLL LJ面女詞千I可扁程性L |_j Service Broker(f LJ WSi J荽鋰圖13整體表的創(chuàng)建學(xué)生表的創(chuàng)建學(xué)生表中主要是學(xué)生的一些屬性,例如學(xué)生的學(xué)號(hào),姓名,年齡和性別等等, 在學(xué)生管理系統(tǒng)中,學(xué)號(hào)作為該表的主鍵,設(shè)計(jì)如下:vardiar(20)姓屯vardiar(15性別vsirchar(2)ntvardiar(lB)也話vardiar(lb)varcha
14、r(20)varchar(20>vorchar(20j圖14學(xué)生表的創(chuàng)建332教師表的創(chuàng)建教師表中也是教師的一些屬性,例如教工號(hào)、姓名和教室名等等,教工號(hào)為 主鍵,設(shè)計(jì)如下:vanchar(2O)warcharCiOi期帀名varcharflb)ffl更稱varchar2O團(tuán)主修varcharC2O)7圖15教師表的創(chuàng)建課程表的創(chuàng)建在課程表中,屬性是關(guān)于課程的一些信息,例如課程號(hào)、課程名和該課程的學(xué)時(shí)和學(xué)分。課程號(hào)是主鍵,設(shè)計(jì)如下:瀘代能瘁矢迄/uur num IBvarchaf20)B課程名varrhsrfSO)int學(xué)分int®l n圖16課程表的創(chuàng)建334成績(jī)表的創(chuàng)建在創(chuàng)
15、建完學(xué)生表和課程表之后,需要一個(gè)成績(jī)表來(lái)顯示學(xué)生的成績(jī)信息,成 績(jī)要與學(xué)生個(gè)人和課程能夠匹配上,在這里,需要設(shè)置學(xué)號(hào)和課程號(hào)為主鍵,而 學(xué)生表中的學(xué)號(hào)和課程表中的課程號(hào)都是外鍵,設(shè)計(jì)如下:vardiar(20) |9 課HEvardiar(2Q)Q?選課號(hào)varcharfO)' |分裁intH選修分?jǐn)?shù)intW圖17成績(jī)表的創(chuàng)建3.4存儲(chǔ)過(guò)程的創(chuàng)建在使用數(shù)據(jù)庫(kù)的時(shí)候有時(shí)候不是一個(gè)表所能完成的一項(xiàng)任務(wù),我們往往會(huì)采 用存儲(chǔ)過(guò)程進(jìn)行多表的結(jié)合使用,例如:要查詢某個(gè)專業(yè)下的某個(gè)年級(jí)的某個(gè)班 的一位同學(xué)的信息并且把這些信息顯示出來(lái),這樣就會(huì)涉及到專業(yè)表、年級(jí)表、 班級(jí)表和學(xué)生表。因此,在這個(gè)時(shí)候
16、我們需要將多表進(jìn)行結(jié)合使用,這里就會(huì)使 用到存儲(chǔ)過(guò)程。在本套系統(tǒng)中,我采用了幾個(gè)存儲(chǔ)過(guò)程來(lái)對(duì)學(xué)生的信息進(jìn)行管理dbo,CLASS_CHOOSE+ B dbo.das5_messdge 田 圍 dbo.5tude-nt_course + 自 dbo.圖18整體的存儲(chǔ)過(guò)程分配班級(jí)存儲(chǔ)過(guò)程在分配班級(jí)的時(shí)候要用到班級(jí)和專業(yè)兩個(gè)表,因此要通過(guò)這兩個(gè)表進(jìn)行分配, 從而確定某一個(gè)班是屬于哪一個(gè)專業(yè),代碼如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE dbo.CLASS_CHOOSEpro
17、 varchar(20), cla varchar(20)asselect professi on al.專業(yè)名,class.班級(jí)號(hào) course.課程名 course.課時(shí)數(shù) course.學(xué)分from professi on al,course,classwhere professi on al.專業(yè)號(hào) =class.專業(yè)號(hào) and professi on al.專業(yè)名 =pro and class.班級(jí) 號(hào)=cla班級(jí)信息的存儲(chǔ)過(guò)程查詢某一個(gè)班級(jí)信息的功能,這個(gè)功能函數(shù)既可以在數(shù)據(jù)庫(kù)中用存儲(chǔ)過(guò)程實(shí) 現(xiàn)也可以在C#中通過(guò)語(yǔ)言的邏輯來(lái)實(shí)現(xiàn),在這套系統(tǒng)中,我采用的是利用在數(shù)據(jù) 庫(kù)中建立了一般班
18、級(jí)信息的存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)的,在C#中通過(guò)調(diào)用該存儲(chǔ)過(guò)程,然后向其中傳遞一個(gè)參數(shù)就可以實(shí)現(xiàn)。代碼如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.class_messageclass no varchar(20)asselect班級(jí)號(hào),專業(yè)名,班主任,班長(zhǎng),人數(shù)from classwhere 班級(jí)號(hào)=classno學(xué)生課程的存儲(chǔ)過(guò)程學(xué)生的課程信息不僅僅包含了學(xué)生類,而且還包含了課程類,我們需要將這 兩個(gè)表進(jìn)行有效的結(jié)合進(jìn)行使用,在這套系統(tǒng)中我采用的是利用在數(shù)據(jù)庫(kù)中建立 一
19、個(gè)學(xué)生課程的存儲(chǔ)過(guò)程來(lái)顯示學(xué)生的課程信息,預(yù)留一個(gè)輸入?yún)?shù)一學(xué)生的學(xué)號(hào),可以利用學(xué)號(hào)就可以查詢到該學(xué)生的課程信息。代碼如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.stude nt_coursecourse no varchar(20)asselect student.學(xué)號(hào),student.姓名,student.班級(jí)號(hào),course課程名,grade.分?jǐn)?shù)from stude nt,course,gradewhere student.學(xué)號(hào) =grade.學(xué)號(hào) an
20、d course.課程號(hào) =grade.課程號(hào) and 課程名 =course no學(xué)生成績(jī)存儲(chǔ)過(guò)程在學(xué)生管理系統(tǒng)中,非常重要的一環(huán)就是學(xué)生可以查看自己的成績(jī),在這套 系統(tǒng)中,采用的也是在數(shù)據(jù)庫(kù)中建立一個(gè)關(guān)于學(xué)生的存儲(chǔ)過(guò)程,是按照學(xué)號(hào)進(jìn)行 查詢的,在C#中,調(diào)用該存儲(chǔ)過(guò)程,輸入一個(gè)學(xué)號(hào)的參數(shù),便可以查詢?cè)搶W(xué)生的 成績(jī)信息,防止查詢了其他人成績(jī),起到隱私保護(hù)的作用。代碼如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.stude nt_gradestude nt_id
21、varchar(20)asselect student.學(xué)號(hào),student.姓名,course.課程名,grade.分?jǐn)?shù),choose選課名,grade選修分?jǐn)?shù) from stude nt,course,grade,choosewhere student.學(xué)號(hào) =grade.學(xué)號(hào) and choose.選課號(hào) =grade.選課號(hào) and student.學(xué)號(hào) = stude nt_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ù)就是通過(guò) UI層進(jìn)行數(shù)據(jù)傳 遞到業(yè)務(wù)邏輯層然后進(jìn)行數(shù)
22、據(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ù)的字符串和commod都封裝在數(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)系圖如下:紅汙3M4-«radaajTmaHrinv O0S»no)$ 斤iQ圖19數(shù)據(jù)源圖示4.3開始界面的設(shè)計(jì)開始界面主要是讓用戶選擇自己的身份類型進(jìn)行系統(tǒng)的登錄。如果用戶選擇 的是系統(tǒng)管理員的登錄方式,系統(tǒng)會(huì)自動(dòng)的進(jìn)行
23、頁(yè)面的跳轉(zhuǎn),跳轉(zhuǎn)到系統(tǒng)管理員 的登錄界面。圖20登錄類型選擇4.4系統(tǒng)管理員441登錄功能和界面登錄界面主要是讓用戶輸入賬號(hào)和密碼進(jìn)行登錄,界面的風(fēng)格是一致的,只 是通過(guò)調(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 void butt on 1_Click(object sen der. Even tArgs e)/登 1?錄?到 i?管 '
24、1理 Oa員?0的?界?面 ?stri ng n ame = n ull;stri ng pass = n ull;StringBuilder sname = new StringBuilder(” 管'1理 Oa賬?號(hào)?='");sn ame.Appe nd(comboBox1.Text);sname.Append(""');if (comboBox1.Text !="")try DataRow row = table1.Select(sname.ToString();row1 = row0;n ame = row10
25、.ToStri ng(); pass = row12.ToStri ng();catch (Excepti on ex) MessageBox.Show(ex.Message);if (n ame = comboBox1.Text)萌sffl31*耶«就萍斗申 =MessageBox.show(name)八 if (CDxsoxl .Texf HH pass)宀vBTATf.直 si?nn.7n>7s adminlshow a H new adminlshowo八a.showo八if (checkBOX.canFOCUS) 宀ifmCD.EXisfsaxu) 宀s=ringu
26、ss"name- pass 乂 Fi-e.wriCDA=Lines(txL ss)八 e-se 宀Fi-e.creaCD(txf)八e-se宀SMn呂 ss H=八 Fi-e.wriCDA=Lines(txL ss)八e-se宀MessageBox.show(=7M7Djt 4 磕 £e_se 二<$舟一.偉7> 7宀MessageBox.show(=w747諂 77grud八 -_abe_4.Texf H =w744na商養(yǎng) 7孑7 冃童rur 必逋?遵 7 鴦 e-se宀MessageBox.show(=ilfr7鴦 算747£442管理員顯示界面
27、在管理員登錄自己的賬號(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é),管理員可以查詢到該生之后將該生信息進(jìn)行 刪除。如果有一個(gè)老師的登錄密碼忘記了,管理員可以登錄系統(tǒng)進(jìn)行對(duì)該教師密 碼的一個(gè)重置。圖22管理員查詢學(xué)生信息按照學(xué)號(hào)查詢學(xué)生信息的代碼如下:privat
28、e void butt on 3_Click(object sen der, Even tArgs e)/按???學(xué)?1號(hào)?查T找“/Stri ngBuilder stri ngBuilder = new Stri ngBuilder();if (comboBox1.Text.Le ngth!=O)DataRow row = dataset.Tables"student".Select(” 學(xué)?i 號(hào)?='" + comboBox1.Text.Trim()+""');trydatarowl = row0;textBox5.Tex
29、t = datarow10.ToStri ng(); textBox6.Text = datarow11.ToStri ng(); textBox7.Text = datarow12.ToStri ng(); textBox8.Text = datarow13.ToStri ng(); textBox9.Text = datarow14.ToStri ng(); textBox10.Text = datarow15.ToStri ng(); textBox11.Text = datarow16.ToStri ng(); textBox12.Text = datarow17.ToStri ng(
30、); textBox13.Text = datarow18.ToStri ng();catch(Exceptio n ex)MessageBox.Show(ex.Message);按照姓名查詢學(xué)生信息的代碼如下:private void butt on 4_Click(object sen der, Even tArgs e) II按??姓?名?查找“if (textBoxl.TextLength != 0)StringBuilder name = new StringBuilder(” 姓?名?='");n ame.Appe nd(textBoxl.Text);name.A
31、ppend(""');DataRow row = st_table.Select( name.ToStri ng(); tryStri ng str = row0.ToStri ng();II DataRow row = dataset.Tables"admin".Select("姓?名?=" + textBox8.Text).ToStri ng();datarowl = row0;textBox5.Text = datarow10.ToStri ng(); textBox6.Text = datarow11.ToStri n
32、g(); textBox7.Text = datarow12.ToStri ng(); textBox8.Text = datarow13.ToStri ng(); textBox9.Text = datarow14.ToStri ng();textBoxIO.Text = datarow15.ToStri ng();textBoxll.Text = datarow16.ToStri ng();textBox12.Text = datarow17.ToStri ng(); textBox13.Text = datarow18.ToStri ng();catch (Excepti on ex)
33、MessageBox.Show(ex.Message);添加學(xué)生信息代碼:private void butt on 5_Click(object sen der, Even tArgs e) /添? a加?DataRow row = st_table.NewRow();if (textBox5.Text ="")row0 = DBNull.Value;elserow0 = textBox5.Text.Trim();if (textBox6.Text ="")row1 = DBNull.Value;elserow1 = textBox6.Text.Trim
34、(); if (textBox7.Text ="")row2 = DBNull.Value;elserow2 = textBox7.Text.Trim();if (textBox8.Text ="")row3 = DBNull.Value;elserow3 = textBox8.Text.Trim(); if (textBox9.Text ="")row4 = DBNull.Value;elserow4 = textBox9.Text.Trim(); if (textBox10.Text ="")row5 = DB
35、Null.Value;row5 = textBox10.Text.Trim();if (textBoxll.Text = ”)row6 = DBNull.Value;elserow6 = textBox11.Text.Trim();if (textBox12.Text = ”)row7 = DBNull.Value;elserow7 = textBox12.Text.Trim();if (textBox13.Text = ”)row8 = DBNull.Value;elserow8 = textBox13.Text.Trim();tryst_table.Rows.Add(row);catch
36、(Excepti on ex) MessageBox.Show(ex.Message);修改學(xué)生信息代碼如下:private void butt on 6_Click(object sen der, Even tArgs e)/修T改?tryif (textBox5.Text ="")datarow10 = DBNull.Value;elsedatarow10 = textBox5.Text.Trim(); if (textBox6.Text = ”)datarow11 = DBNull.Value; elsedatarow11 = textBox6.Text.Trim()
37、; if (textBox7.Text ="")datarow12 = DBNull.Value;elsedatarow12 = textBox7.Text.Trim(); if (textBox8.Text = ”)datarow13 = DBNull.Value; elsedatarow13 = textBox8.Text.Trim(); if (textBox9.Text = ”)datarow14 = DBNull.Value;elsedatarow14 = textBox9.Text.Trim(); if (textBoxIO.Text =""
38、)datarow15 = DBNull.Value;elsedatarow15 = textBox10.Text.Trim(); if (textBoxll.Text ="")datarow16 = DBNull.Value;elsedatarow16 = textBox11.Text.Trim(); if (textBox12.Text ="")datarow17 = DBNull.Value;elsedatarow17 = textBox12.Text.Trim(); if (textBox13.Text ="")datarow1
39、8 = DBNull.Value;elsedatarow18 = textBox13.Text.Trim();catch (Excepti on ex)MessageBox.Show(ex.Message);刪除學(xué)生信息代碼如下:private void butt on 7_Click(object sen der, Even tArgs e) 刪I?除yDataView view = new DataView(dataset.Tables"student"); Strin gBuilder bulid = new Stri ngBuilder(” 學(xué)?i號(hào) ?='
40、");trybulid.Appe nd(datarow10);bulid.Append("'");view.RowFilter = bulid.ToStri ng();view.Delete(0);view.E ndl nit();ds1.Tables0.Rows.Remove(row4);catch (Excepti on ex)MessageBox.Show(” 沒(méi)?有?D 此??學(xué)?1生 | '2 + ex.Message,"提?示 o?", MessageBoxButt on s.OK, MessageBoxIc on.ln formati on);textBox5.Text =""textBox6.Text =""textBox7.Text =""textBox8.Text =""textBox9.Text =""textBox10.Text =""textBox11.Text =""textBox12.Text =""textBox13.Text =&q
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 院校講師勞動(dòng)合同書
- 結(jié)腸癌的健康教育
- 腎移植患者的個(gè)案護(hù)理
- 租賃服務(wù)合同范文
- 技術(shù)服務(wù)采購(gòu)合同
- 行業(yè)標(biāo)桿勞務(wù)合同集錦
- 標(biāo)準(zhǔn)個(gè)人汽車租賃合同模板
- 特種設(shè)備維修與保養(yǎng)合同標(biāo)準(zhǔn)文本
- 品牌宣傳合作合同
- 辦公場(chǎng)地出租合同模板
- 公共部門人力資源管理概論課件
- 六年級(jí)下冊(cè)科學(xué)第一單元質(zhì)量檢測(cè)卷粵教版(含答案)
- 【計(jì)算機(jī)應(yīng)用基礎(chǔ)試題】韓山師范大學(xué)2022年練習(xí)題匯總(附答案解析)
- 2022年江蘇對(duì)口單招市場(chǎng)營(yíng)銷試卷剖析
- 愛(ài)愛(ài)醫(yī)資源-生理學(xué)-122排卵、黃體形成與月經(jīng)周期
- 科技小巨人工程驗(yàn)收培訓(xùn)
- 大班繪本教案《月亮冰激凌》
- 關(guān)鍵過(guò)程(工序)和特殊過(guò)程(工序)管理辦法
- 火力發(fā)電廠運(yùn)煤設(shè)計(jì)規(guī)程
- 01-第一章--粉末的制取霧化法
- 3D打印學(xué)習(xí)教案
評(píng)論
0/150
提交評(píng)論