數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)設(shè)計實(shí)現(xiàn)_第1頁
數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)設(shè)計實(shí)現(xiàn)_第2頁
數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)設(shè)計實(shí)現(xiàn)_第3頁
數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)設(shè)計實(shí)現(xiàn)_第4頁
數(shù)據(jù)庫學(xué)生學(xué)籍管理系統(tǒng)設(shè)計實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、存檔資料存檔資料 成績:成績: 課程設(shè)計報告書課程設(shè)計報告書課程名稱課程名稱 數(shù)據(jù)庫系統(tǒng)開發(fā)數(shù)據(jù)庫系統(tǒng)開發(fā) 題題 目目 學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計與實(shí)現(xiàn) 分分 院院 電信分院電信分院 專業(yè)班級專業(yè)班級 1111 電子商務(wù)電子商務(wù) 學(xué)學(xué)號號 2011021046023220110210460232 學(xué)生姓名學(xué)生姓名 袁世洲袁世洲 指導(dǎo)教師指導(dǎo)教師 付念付念 20142014 年年 1 1 月月 2 2 日日 課程設(shè)計評閱意見課程設(shè)計評閱意見等級序號項(xiàng) 目優(yōu)秀良好中等及格不及格1課程設(shè)計態(tài)度評價2出勤情況評價3任務(wù)難度評價4工作量飽滿評價5設(shè)計中創(chuàng)新性評價6論文書寫規(guī)范化評

2、價7綜合應(yīng)用能力評價評閱人_職稱_ 年 月 日目 錄摘要 .I一、 前 言 .1(一)系統(tǒng)開發(fā)的背景、目的和意義.11.系統(tǒng)開發(fā)的背景.12.系統(tǒng)開發(fā)的目的和意義.2(二)系統(tǒng)開發(fā)的工具和環(huán)境.2二 、 系統(tǒng)分析與設(shè)計 .4(一)系統(tǒng)的需求分析和可行性分析.41.系統(tǒng)的需求分析.42.可行性分析.4(二)學(xué)籍管理需求分析.51 系統(tǒng)登錄 .52.信息管理.53.成績管理.64.系統(tǒng)說明.65.注銷管理.7三、數(shù)據(jù)庫設(shè)計 .8(一)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計.8(二)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計.11四、系統(tǒng)設(shè)計 .15(一)登錄窗口的設(shè)計.15(二)建立應(yīng)用程序主窗口.17(三)菜單的設(shè)計.18(四)刪除用戶界

3、面的設(shè)計.18(五)學(xué)生信息錄入界面設(shè)計.23(六)學(xué)生信息查詢界面設(shè)計.32(七)修改學(xué)生信息界面設(shè)計.35五、結(jié)束語 .46致謝 .47參考文獻(xiàn) .48學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)摘要摘要當(dāng)今社會中,計算機(jī)的使用已經(jīng)深入到日常工作和生活的方方面面。Windows 系統(tǒng)的推出使電腦從高雅的學(xué)術(shù)殿堂走入了尋常百姓家,各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。我們都知道,對于學(xué)生的學(xué)籍管理是一個教育單位不可缺少的部

4、分, 它的內(nèi)容對學(xué)校的管理者來說至關(guān)重要,所以學(xué)生學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。而使用計算機(jī)對學(xué)生學(xué)籍信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、存儲量大、保密性好等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生管理的效率,也是學(xué)??茖W(xué)化、正規(guī)化管理的重要途徑。根據(jù)交大理工學(xué)院教務(wù)處加強(qiáng)學(xué)生學(xué)籍管理化的需要,結(jié)合目前管理系統(tǒng)的發(fā)展現(xiàn)狀和教務(wù)處的實(shí)際情況,對交大理工學(xué)院學(xué)生學(xué)籍管理系統(tǒng)進(jìn)

5、行了設(shè)計和開發(fā)。該系統(tǒng)根據(jù)學(xué)籍管理工作的內(nèi)容和特點(diǎn),在充分注重軟件操作的交互性、簡單性以及科學(xué)可視化原則的前提下,及時為學(xué)籍管理提供準(zhǔn)確、全面的數(shù)據(jù)和分析結(jié)果,能有效提高學(xué)校學(xué)籍管理的工作效率、質(zhì)量及管理決策的有效性、可靠性和實(shí)際性,實(shí)現(xiàn)學(xué)生學(xué)籍管理工作的計算機(jī)現(xiàn)代化管理。一、 前 言(一)系統(tǒng)開發(fā)的背景、目的和意義1.系統(tǒng)開發(fā)的背景長期以來,學(xué)校對學(xué)生學(xué)籍的管理都還使用著傳統(tǒng)的模式。在此模式下,人工的記錄學(xué)生信息、考試信息等等。而隨著現(xiàn)代素質(zhì)教育與時代的不斷發(fā)展這樣的模式已經(jīng)不能完全適應(yīng)現(xiàn)代的教育形勢。信息化時代的到來,使學(xué)校傳統(tǒng)的管理方法和辦學(xué)水平都受到了極大的挑戰(zhàn)。隨著Internet

6、技術(shù)持續(xù)迅猛的發(fā)展,給傳統(tǒng)的辦學(xué)模式提出了新的要求。進(jìn)入新世紀(jì),從世界各國教育信息化的進(jìn)程來看,不但競爭異常激烈,而且無論是在教育信息基礎(chǔ)設(shè)施和資源建設(shè)上,還是在普及的程度上,中國與西方發(fā)達(dá)國家甚至某些發(fā)展中國家相比,都存在著較大的差距。新的世紀(jì)里,如果中國不能很好地利用互聯(lián)網(wǎng)的平臺和以較低的成本對推動教育信息化缺乏明確的方向,勢必偏離信息化的軌道,進(jìn)而阻礙社會信息化的進(jìn)程和整個國民經(jīng)濟(jì)的發(fā)展。因此,實(shí)施教育的信息化已經(jīng)刻不容緩、迫在眉睫,而其中的學(xué)生學(xué)籍管理是其中一個不可或缺的環(huán)節(jié)。較之傳統(tǒng)的管理方式,筆者開發(fā)的學(xué)生學(xué)籍管理系統(tǒng)的優(yōu)勢有:一方面可以實(shí)現(xiàn)數(shù)據(jù)共享,又能像使用單機(jī)系統(tǒng)一樣,進(jìn)行便

7、捷地各種數(shù)據(jù)添加、修改、刪除、查詢和統(tǒng)計等操作,并且具有相當(dāng)?shù)陌踩院涂煽啃浴?;另一方面,檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生學(xué)籍管理的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與社會接軌的重要條件。2.系統(tǒng)開發(fā)的目的和意義20 世紀(jì)末,隨著我國計劃生育的不斷普及和深入,入校人數(shù)正逐步下降,而各個學(xué)校的規(guī)模卻在不斷擴(kuò)大,校與校之間的合并規(guī)模也越來越大,而此時計算機(jī)在各學(xué)校也開始普及,一些學(xué)校開始將計算機(jī)應(yīng)用到學(xué)生信息的管理中去,為學(xué)生管理信息系統(tǒng)的形成打下了堅實(shí)的基礎(chǔ)。而此時的應(yīng)用計算機(jī)的功能還僅限于記錄學(xué)生的基本信息,以供需要時查詢,數(shù)據(jù)

8、庫是比較流行的 FoxPro。在新生入校時將學(xué)生的基本信息記錄輸入FoxPro,并集中報到教務(wù)處,以備查閱。在遇到榮譽(yù)稱號、違紀(jì)處分等學(xué)生管理工作時也是如此,所以計算機(jī)的功能僅僅是代替了手寫工作,并沒有發(fā)揮其在信息處理方面的優(yōu)點(diǎn)。但是,對于學(xué)生管理工作來說,這已經(jīng)是一個質(zhì)的飛躍。由于將數(shù)據(jù)錄入 FoxPro 的工作是學(xué)校工作人員直接對 FoxPro 數(shù)據(jù)庫的操作,而隨著各學(xué)校的合并后的人數(shù)的變化導(dǎo)致了管理的復(fù)雜性,所以一些學(xué)校就自己開發(fā)了學(xué)生信息管理系統(tǒng),這就是最初的學(xué)生管理信息系統(tǒng)。這種初級的學(xué)生管理信息系統(tǒng)的主要功能是:為學(xué)校管理工作人員輸入大量數(shù)據(jù)提供一個操作簡單、使用方便的友好界面;在

9、已有的數(shù)據(jù)中作簡單的查詢和統(tǒng)計。(二)系統(tǒng)開發(fā)的工具和環(huán)境Visual Studio 2010 提供了一種面向?qū)ο蟮拈_發(fā)環(huán)境。C#吸收了 C+、Visual Basic、Delphi、Java 等語言的優(yōu)點(diǎn),繼承了 C 語言的語法風(fēng)格,同時有繼承了 C+的面向?qū)ο蟮奶匦?。Microsoft SQL Server 是微軟公司于 1997 年開始推出的數(shù)據(jù)庫管理系統(tǒng)。它主要以 NT Server 為運(yùn)作平臺。并以其強(qiáng)大、靈活、易于使用等優(yōu)點(diǎn)雄居業(yè)界前列。Microsoft SQL Server 是作為一個組織內(nèi)部的全部數(shù)據(jù)的中心存儲來設(shè)計的數(shù)據(jù)庫系統(tǒng),是在成熟和強(qiáng)大的關(guān)系模型中建立的。它是客戶/服

10、務(wù)器系統(tǒng)的一個完美的實(shí)例,它提供了安裝到服務(wù)器系統(tǒng)上的服務(wù)器軟件和一些安裝到客戶系統(tǒng)上的客戶軟件,并提供了一些應(yīng)用程序工具來進(jìn)行數(shù)據(jù)庫的管理和訪問。選擇 Microsoft IIS 作為 WWW 服務(wù)器的一個原因是它支持與 Microsoft SQL Server配合的很好。選擇 IIS 的另一個主要原因是 IIS3.0 以上的版本都支持 Microsoft 的Active Server Pages(ASP)應(yīng)用程序環(huán)境。二 、 系統(tǒng)分析與設(shè)計(一)系統(tǒng)的需求分析和可行性分析1.系統(tǒng)的需求分析學(xué)生學(xué)籍管理系統(tǒng)是基于學(xué)校的工作需求而設(shè)定,圍繞這一明確的工作需求,根據(jù)高校人員結(jié)構(gòu)分析,在項(xiàng)目開發(fā)前

11、期的需求分析工程中,學(xué)生學(xué)籍管理系統(tǒng)的應(yīng)用應(yīng)包括系統(tǒng)設(shè)置、學(xué)生信息管理、學(xué)生成績管理以及系統(tǒng)說明等部分。系統(tǒng)應(yīng)具有學(xué)生學(xué)籍信息輸入、刪除和修改的功能,學(xué)生成績信息亦是如此。系統(tǒng)的查詢功能應(yīng)較為完備,不同的用戶將登錄到不同的主界面,進(jìn)行不同的界面操作功能。能方便快捷地進(jìn)行相應(yīng)數(shù)據(jù)的簡單查詢和任意字段組合的復(fù)合查詢,改變以前只有專門人員才能進(jìn)行數(shù)據(jù)查詢的情況。系統(tǒng)應(yīng)有學(xué)生數(shù)據(jù)安全保密措施,由于身份不同將登錄到不同的主界面,高級的用戶可以操作低級用戶的信息,而低級用戶之間互不能操作,保持了信息的安全性。但在需要時可由系統(tǒng)維護(hù)人員通過添加用戶并授權(quán)來設(shè)置相應(yīng)權(quán)限。在系統(tǒng)程序設(shè)計中應(yīng)充分利用數(shù)據(jù)庫服務(wù)器

12、的處理能力,降低網(wǎng)絡(luò)通信量,盡可能減少數(shù)據(jù)修改沖突,以最大程度地提高系統(tǒng)的執(zhí)行速度和可靠性,真正起到提高工作效率的作用。2.可行性分析系統(tǒng)可行性主要包括 3 個方面:技術(shù)上的可行性、經(jīng)濟(jì)上的可行性和管理上的可行性。a、系統(tǒng)在技術(shù)上無論是硬件性能要求(包括外圍設(shè)備) ,還是軟件性能要求(包括Win2000 操作系統(tǒng)、Winxp 操作系統(tǒng)、Powerbuilder、SQL server,程序設(shè)計,軟件開發(fā)工具) ,均可行。b、從開發(fā)項(xiàng)目的成本與效益來看,系統(tǒng)開發(fā)的設(shè)備費(fèi)用、運(yùn)行費(fèi)用、培訓(xùn)費(fèi)用并不大,而通過系統(tǒng)的實(shí)施,一方面,提高了工作效率,將帶來更多的經(jīng)濟(jì)效益;另一方面,系統(tǒng)所產(chǎn)生的間接效益也不容

13、忽視。工作效率的提高可以節(jié)省人力資源,減輕了有關(guān)業(yè)務(wù)人員手工處理的工作負(fù)擔(dān),及時提供決策信息,促進(jìn)業(yè)務(wù)的規(guī)范化、系統(tǒng)化、條理化和程序化。c、科學(xué)的管理是建立管理信息系統(tǒng)的前提。管理人員支持本系統(tǒng)的研發(fā)運(yùn)行,相應(yīng)的管理制度改革的時機(jī)已經(jīng)成熟,規(guī)章制度已經(jīng)齊全,原始數(shù)據(jù)正確。隨著時代的發(fā)展,人員素質(zhì)已經(jīng)逐步提高,不論是對于電腦系統(tǒng)的基本操作還是對于系統(tǒng)的維護(hù)都有了一定的基礎(chǔ)。同時還可以配置專業(yè)的電腦維護(hù)人員來維護(hù)電腦,不必?fù)?dān)心電腦故障問題。(二)學(xué)籍管理需求分析1 系統(tǒng)登錄學(xué)籍管理系統(tǒng)系統(tǒng)登錄模塊,面對的用戶是系統(tǒng)管理員、教師以及學(xué)生。主要功能是:(1)系統(tǒng)分三種登錄模式,各模式登錄成功后將進(jìn)入不

14、同的主界面。(2)教師登錄需使用教師姓名和教師的工號,學(xué)生登錄需使用學(xué)生姓名和學(xué)號。2.信息管理學(xué)籍管理系統(tǒng)信息管理模塊,主要面對的用戶是學(xué)校的管理人員。其主要職責(zé):(1)學(xué)生信息的錄入。學(xué)生在入校后,學(xué)校將為每一位學(xué)生分配一個學(xué)號,根據(jù)學(xué)生所屬系部,所選專業(yè)給學(xué)生分配班級,學(xué)校將根據(jù)學(xué)生的學(xué)號和姓名將學(xué)生的所有信息錄入學(xué)生學(xué)籍管理系統(tǒng),以便對學(xué)生進(jìn)行統(tǒng)一管理。(2)學(xué)生信息的查詢。系統(tǒng)管理員、教師以及學(xué)生本人都可以進(jìn)行信息查詢,獲取學(xué)生信息;對于學(xué)生而言,學(xué)生需提供學(xué)號和姓名進(jìn)行查詢,目的是為了避免除學(xué)生本身以外的其他學(xué)生盜取信息,進(jìn)行非法行為。(3)學(xué)生信息的修改。此模塊只有系統(tǒng)管理員和教

15、師可以操作,學(xué)生沒有權(quán)限。3.成績管理學(xué)籍管理系統(tǒng)成績管理模塊,主要面對的用戶是系統(tǒng)管理員和教師,學(xué)生只有查詢信息的功能。其主要職責(zé)是:(1)成績錄入。每個學(xué)生在考試后都有一個成績,教師根據(jù)每個人的考試結(jié)果,將成績錄入成績管理中,以便學(xué)生查詢和期末匯總。(2)成績查詢。管理員、教師和學(xué)生都可以通過此模塊查詢成績,教師可以查詢整個班級的學(xué)生成績,但學(xué)生只能查詢自己的成績。(3)成績修改。如有學(xué)生成績錄入出錯時,教師可找到學(xué)生成績信息,并進(jìn)行修改。4.系統(tǒng)說明學(xué)籍管理系統(tǒng)系統(tǒng)說明模塊,主要對本系統(tǒng)進(jìn)行說明,方便用戶操作使用。5.注銷管理學(xué)籍管理系統(tǒng)注銷管理模塊,主要功能是:(1)注銷用戶。用戶需要

16、更換登陸用戶時,可通過注銷,重新從登陸界面登陸到系統(tǒng)。(2)關(guān)閉。退出整個應(yīng)用系統(tǒng)。三、數(shù)據(jù)庫設(shè)計(一)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計室在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實(shí)體,以及他們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這個階段不用考慮所采用的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)類型、機(jī)器類型等問題。這階段可用的工具很多。用的最多的是 E-R 圖(Entity-Relation,實(shí)體關(guān)系圖) ,另外還有許多計算機(jī)輔助工具可以幫助進(jìn)行設(shè)計。本系統(tǒng)采用了 E-R 圖的方法進(jìn)行數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計。E-R 圖是描述數(shù)據(jù)庫實(shí)體關(guān)系的一種直觀工具。這種圖中有:實(shí)體。用方框表示。方框內(nèi)為實(shí)體的

17、名稱。實(shí)體的各種屬性。用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和相應(yīng)的實(shí)體連接起來。實(shí)體之間的關(guān)系。用菱形表示,菱形內(nèi)為聯(lián)系的名稱。實(shí)體和實(shí)體之間的聯(lián)系較多,比較常見的聯(lián)系有 1:1,1:N 和 M:N 這三種。根據(jù)對人事管理信息系統(tǒng)情況的掌握,繪制了相應(yīng)的 E-R 圖。由于數(shù)據(jù)庫中的信息太多,只取部分示例:1、管理員登錄信息表管理員登錄信息表管理員登錄編號用戶名問題答案2、教師登錄信息表教師登錄信息表3、學(xué)生登錄信息表學(xué)生登錄信息表4、學(xué)生信息表學(xué)生信息表5、班級信息表班級信息表學(xué)生信息性別出生籍貫姓名學(xué)號班級編號班級信息班級名稱專業(yè)編號班級編號教師登錄編號用戶名問題答案學(xué)生登錄學(xué)號用戶名

18、問題答案6、專業(yè)信息表專業(yè)信息表7、系部信息表系部信息表8、課程信息表課程信息表專業(yè)信息專業(yè)名稱系部編號專業(yè)編號系部信息系部名稱系部編號課程信息課程類別學(xué)時學(xué)分課程名稱課程編號專業(yè)編號課程信息平時成績作業(yè)成績考試成績課程編號學(xué)號最后得分9、成績信息表成績信息表(二)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)是獨(dú)立于實(shí)際數(shù)據(jù)模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫應(yīng)用設(shè)計。也就是要將概念上的結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型。第一種轉(zhuǎn)化是將實(shí)體轉(zhuǎn)化為關(guān)系表。這種轉(zhuǎn)化較簡單,需要將實(shí)體的屬性定義為表的屬性即可。第二種轉(zhuǎn)化時聯(lián)系的轉(zhuǎn)化。即將各個實(shí)體之間的聯(lián)系轉(zhuǎn)化為表格之間的關(guān)系,如外部鍵的定義。

19、在系統(tǒng)分析及數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計的基礎(chǔ)上,將系統(tǒng) E-R 圖轉(zhuǎn)換成關(guān)系模型的邏輯結(jié)構(gòu),并根據(jù)選用的數(shù)據(jù)庫管理系統(tǒng) SQL Server 作了適當(dāng)?shù)男薷?,同時考慮到學(xué)生學(xué)籍管理系統(tǒng)的實(shí)際情況,在上面工作的基礎(chǔ)上歸納出學(xué)籍管理數(shù)據(jù)庫表格的組成、列的屬性、表格之間的聯(lián)系等待,得到了如下的關(guān)系數(shù)據(jù)庫表。同時該數(shù)據(jù)庫系統(tǒng)具有以下方面的特點(diǎn):結(jié)構(gòu)合理,對一個學(xué)生建立多條記錄。所建立的數(shù)據(jù)冗余度小,獨(dú)立性強(qiáng)。建檔、修改、查詢、統(tǒng)計快而準(zhǔn)確。保密性好、可靠性好。(1)管理員登錄信息表,表名為 T_Administrator_user,主鍵為 Num。字段名 字段類型 能否為空 含義Id int not null

20、 編號Num char(9) not null 管理員工號Name nvarchar(50) not null 管理員名稱Question nvarchar(50) null 問題Answer nvarchar(50) null 答案(2)學(xué)生登錄信息表,表名為 T_Student_user,主鍵為 Num。字段名 字段類型 能否為空 含義Id int not null 編號Num char(9) not null 學(xué)號Name nvarchar(50) not null 學(xué)生姓名Question nvarchar(50) null 問題Answer nvarchar(50) null 答案(

21、3)教師登錄信息表,表名為 T_Teacher_user,主鍵為 Num。字段名 字段類型 能否為空 含義Id int not null 編號Num char(9) not null 教師工號Name nvarchar(50) not null 教師姓名Question nvarchar(50) null 問題Answer nvarchar(50) null 答案(4)學(xué)生信息表,表名為 T_Student,主鍵為 Num。字段名 字段類型 能否為空 含義Num char(9) not null 學(xué)號Name nvarchar(8) not null 姓名Sex nchar(2) null 性

22、別Birthday smalldatetime null 出生Address nvarchar(100) null 籍貫 classID char(10) null 班級編號 (5)班級信息表,表名為 T_Class,主鍵為 classID。字段名 字段類型 能否為空 含義classID char(10) not null 班級編號className nvarchar(50) null 班級名稱majorID char(10) null 專業(yè)編號(6)專業(yè)信息表,表名為 T_Major,主鍵為 majorID。字段名 字段類型 能否為空 含義majorID char(10) not null

23、專業(yè)編號majorName nvarchar(50) null 專業(yè)名稱departmentID char(10) null 系部編號(7)系部信息表,表名為 T_Department,主鍵為 departmentID。字段名 字段類型 能否為空 含義departmentID char(10) not null 系部編號departmentName nvarchar(50) null 系部名稱(8)課程信息表,表名為 T_Course,主鍵為 CourseID。字段名 字段類型 能否為空 含義CourseID char(5) not null 課程編號CourseName nvarchar(5

24、0) not null 課程名稱Category char(10) null 課程類別Period smallint null 學(xué)時Credit tinyint null 學(xué)分majorID nchar(10) null 專業(yè)編號(9)成績信息表,表名為 T_Grade,主鍵為 Num 和 CourseID。字段名 字段類型 能否為空 含義Num char(10) not null 學(xué)號CourseID char(5) not null 課程編號DailyGrade decimal(5, 1) null 平時成績PracticeGrade decimal(5, 1) null 作業(yè)成績Test

25、Grade decimal(5, 1) null 考試成績Grade decimal(5, 1) null 最終得分上述 9 表是學(xué)生學(xué)籍管理系統(tǒng)中比較重要的,在建立該數(shù)據(jù)庫表時要考慮以下幾方面的特點(diǎn):(1)結(jié)構(gòu)合理,對一個人員建立多條記錄。所建立的數(shù)據(jù)冗余度小,獨(dú)立性強(qiáng)。(2)建檔、修改、查詢、統(tǒng)計快而準(zhǔn)確。保密性好、可靠性好。 四、系統(tǒng)設(shè)計四、系統(tǒng)設(shè)計(一)登錄窗口的設(shè)計登錄窗口放置了三個 label、兩個 TextBox、一個 ComboBox 和兩個 Button,其中TextBox 是用來接收用戶鍵入的用戶名和密碼,ComboBox 是用來選擇登錄身份,通過按鈕“登陸”執(zhí)行代碼,通過

26、查詢后臺數(shù)據(jù)庫信息,查出是否有此用戶,從而決定用戶是否被允許進(jìn)入主系統(tǒng),通過按鈕“退出”執(zhí)行代碼退出真?zhèn)€系統(tǒng)。如圖:管理員登錄賬戶和密碼都是 admin,教師登錄賬戶和密碼都是 teacher。實(shí)現(xiàn)代碼如下:public static string Num; public static string Person; private void btnLogin_Click(object sender, EventArgs e) string Name = txtUserName.Text.Trim(); Num = txtUserPwd.Text.Trim(); string sql=; swi

27、tch (cbPerson.SelectedIndex) case 0: Person = cbPerson.Text; sql = select * from T_Administrator_user where Num= + Num + ; break; case 1: Person = cbPerson.Text; sql = select * from T_Teacher_user where Num= + Num + ; break; case 2: Person = cbPerson.Text; sql = select * from T_Student_user where Nu

28、m= + Num + ; break; SqlDataReader sdr = dataOperate.getRow(sql); if (sdr.Read() if (Name = sdrName.ToString() txtUserPwd.Text = ; this.Visible = false; if (Person = Administrator | Person = Teacher) AdminTeacherManagementSystem atms = new AdminTeacherManagementSystem(); atms.Show(); if (Person = Stu

29、dent) StudentManagementSystem x = new StudentManagementSystem(); x.Show(); else MessageBox.Show(用戶名錯誤,請重新輸入!); else MessageBox.Show(對不起,用戶不存在!); return; private void btnExit_Click(object sender, EventArgs e) Application.Exit(); /注冊 private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClic

30、kedEventArgs e) AddUser Add = new AddUser(); Add.Show(); (二)建立應(yīng)用程序主窗口本系統(tǒng)的主窗口如圖:(三)菜單的設(shè)計系統(tǒng)主界面系統(tǒng)設(shè)置面添加用戶刪除用戶信息管理信息錄入信息查詢 (四)刪除用戶界面的設(shè)計刪除用戶窗口界面如圖:信息修改成績管理成績錄入成績查詢成績修改系統(tǒng)說明注銷注銷關(guān)閉頁面加載時,通過訪問數(shù)據(jù)庫,加載學(xué)生姓名信息并綁定到學(xué)生姓名;由于考慮重名的問題,可通過姓名查詢學(xué)生的學(xué)號,再根據(jù)學(xué)號查尋具體學(xué)生的信息;通過刪除按鈕,用戶可刪除當(dāng)前用戶的信息。實(shí)現(xiàn)代碼如下:private SqlConnection con; privat

31、e SqlDataAdapter sdapt; private DataSet ds,ds1; private void DeleteUser_Load(object sender, EventArgs e) /加載系部信息 string sql = select * from T_Department; ds1 = dataOperate.getDataSet(sql,T_Department); cbDepartment.DataSource = ds1.Tables0; cbDepartment.DisplayMember = departmentName; private void b

32、tnLeftAll_Click(object sender, EventArgs e) this.BindingContextds, T_Student.Position = 0; btnLeftAll.Enabled = false; btnLeft.Enabled = false; btnRight.Enabled = true; btnRightAll.Enabled = true; private void btnLeft_Click(object sender, EventArgs e) if (this.BindingContextds, T_Student.Position 0)

33、 this.BindingContextds, T_Student.Position-; if (this.BindingContextds, T_Student.Position = 0) btnLeftAll.Enabled = false; btnLeft.Enabled = false; btnRight.Enabled = true; btnRightAll.Enabled = true; private void btnRight_Click(object sender, EventArgs e) if (this.BindingContextds, T_Student.Posit

34、ion this.BindingContextds, T_Student.Count - 1) this.BindingContextds, T_Student.Position+; if (this.BindingContextds, T_Student.Position = this.BindingContextds, T_Student.Count - 1) btnRight.Enabled = false; btnRightAll.Enabled = false; btnLeft.Enabled = true; btnLeftAll.Enabled = true; private vo

35、id btnRightAll_Click(object sender, EventArgs e) this.BindingContextds, T_Student.Position = this.BindingContextds, T_Student.Count - 1; btnLeft.Enabled = true; btnLeftAll.Enabled = true; btnRight.Enabled = false; btnRightAll.Enabled = false; private void btnDelete_Click(object sender, EventArgs e)

36、/刪除學(xué)生賬戶信息 int i= this.BindingContextds, T_Student.Position; string Num = ds.TablesT_Student.Rowsi0.ToString(); string sql = delete from T_Student_user where Num= + Num + ; bool flag = dataOperate.execSQL(sql); if (flag) /刪除 T_Student 表中的數(shù)據(jù) sql = delete from T_Student where Num=+Num+; bool flag1 = da

37、taOperate.execSQL(sql); if (flag1) MessageBox.Show(刪除成功!); getInfo(); else MessageBox.Show(刪除用戶信息失??!); return; /int rowID = this.BindingContextds, T_Student.Position; /ds.TablesT_Student.RowsrowID.Delete(); /sdapt.Update(ds, T_Student); /this.BindingContextds, T_Student.Position = 0; /btnLeft.Enable

38、d = false; /btnLeftAll.Enabled = false; /btnRight.Enabled = true; /btnRightAll.Enabled = true; else MessageBox.Show(刪除用戶賬戶失??!); return; private void btnClose_Click(object sender, EventArgs e) this.Close(); private void cbDepartment_SelectedIndexChanged(object sender, EventArgs e) string sql = select

39、 mr.majorName from T_Major as mr,T_Department as dt where dt.departmentName= + cbDepartment.Text + and mr.departmentID=dt.departmentID; ds1 = dataOperate.getDataSet(sql, T_Major); cbMajor.DataSource = ds1.Tables0; cbMajor.DisplayMember = majorName; private void cbMajor_SelectedIndexChanged(object se

40、nder, EventArgs e) string sql = select cs.className from T_Class as cs,T_Major as mr where mr.majorName= + cbMajor.Text + and cs.majorID=mr.majorID; ds1 = dataOperate.getDataSet(sql, T_Class); cbClass.DataSource = ds1.Tables0; cbClass.DisplayMember = className; private void cbClass_SelectedIndexChan

41、ged(object sender, EventArgs e) getInfo(); public void getInfo() con = dataOperate.createConnection(); con.Open(); string sql = select st.Num as 學(xué)號,st.Name as 姓名,st.Sex as 性別,st.Birthday as 出生,st.Address as 籍貫 from T_Student as st,T_Class as cs where cs.className= + cbClass.Text + and st.classID=cs.

42、classID; sdapt = new SqlDataAdapter(sql, con); ds = new DataSet(); sdapt.Fill(ds, T_Student); dataGridView1.DataSource = ds; dataGridView1.DataMember = T_Student; dataGridView1.ReadOnly = true; (五)學(xué)生信息錄入界面設(shè)計其窗口界面如下圖:這里只能對學(xué)生進(jìn)行添加,即身份只能選擇 Student。實(shí)現(xiàn)代碼如下:private static string sql = ; public static strin

43、g Num = ; public static string Name = ; private void cbShenFen_SelectedIndexChanged(object sender, EventArgs e) Num = txtNum.Text; Name = txtUserName.Text; switch (cbShenFen.SelectedIndex) case 0: sql = select * from T_Administrator_user where Num= + Num + ; break; case 1: sql = select * from T_Teac

44、her_user where Num= + Num + ; break; case 2: sql = select * from T_Student_user where Num= + Num + ; break; bool flag = dataOperate.seleSQL(sql); if (flag) MessageBox.Show(對不起,此用戶已經(jīng)存在!); return; private void btnOk_Click(object sender, EventArgs e) /判斷用戶名是否已經(jīng)存在 bool flag = dataOperate.seleSQL(sql); i

45、f (flag) MessageBox.Show(對不起,此用戶已經(jīng)存在!); return; /如果前兩次都沒有錯誤,就將新用戶信息寫入數(shù)據(jù)庫 switch (cbShenFen.SelectedIndex) case 0: sql = insert into T_Administrator_user values( + txtNum.Text + , + txtUserName.Text + , + txtQuestion.Text + , + txtAnswer.Text + ); break; case 1: sql = insert into T_Teacher_user value

46、s( + txtNum.Text + , + txtUserName.Text + , + txtQuestion.Text + , + txtAnswer.Text + ); break; case 2: sql = insert into T_Student_user values( + txtNum.Text + , + txtUserName.Text + , + txtQuestion.Text + , + txtAnswer.Text + ); break; flag = dataOperate.execSQL(sql); if (flag) MessageBox.Show(注冊/

47、添加用戶成功!); if (cbShenFen.SelectedIndex=2) InsertInfo II = new InsertInfo(); II.Show(); this.Close(); else MessageBox.Show(注冊/添加用戶失?。?; private void btnReset_Click(object sender, EventArgs e) txtNum.Text = ; txtNum.Focus(); txtUserName.Text = ; txtQuestion.Text = ; txtAnswer.Text = ; private void AddU

48、ser_Load(object sender, EventArgs e) txtNum.Focus(); 添加詳細(xì)信息添加詳細(xì)信息當(dāng)點(diǎn)擊信息錄入界面或添加用戶時,系統(tǒng)自動轉(zhuǎn)入添加用戶界面,當(dāng)添加用戶成功后,繼而進(jìn)入學(xué)生詳細(xì)信息添加界面,完成學(xué)生用戶以及詳細(xì)信息的添加。實(shí)現(xiàn)代碼如下:private void InsertInfo_Load(object sender, EventArgs e) txtNum.Text = AddUser.Num; txtName.Text = AddUser.Name; string sql = select * from T_Department; DataS

49、et ds = dataOperate.getDataSet(sql, T_Department); cbDepartment.DataSource = ds.TablesT_Department; cbDepartment.DisplayMember = departmentName; private void cbDepartment_SelectedIndexChanged(object sender, EventArgs e) /根據(jù)系部名稱查詢系部編號 string sql = select departmentID from T_Department where departmen

50、tName=+cbDepartment.Text+; SqlDataReader sdr = dataOperate.getRow(sql); if (sdr.Read() string departmentID=sdrdepartmentID.ToString(); /根據(jù)系部編號查詢專業(yè)信息 sql = select * from T_Major where departmentID= + departmentID + ; DataSet ds = dataOperate.getDataSet(sql, T_Major); cbMajor.DataSource = ds.TablesT_M

51、ajor; cbMajor.DisplayMember = majorName; private void cbMajor_SelectedIndexChanged(object sender, EventArgs e) /根據(jù)專業(yè)名稱查詢專業(yè)編號 string sql = select majorID from T_Major where majorName= + cbMajor.Text + ; SqlDataReader sdr = dataOperate.getRow(sql); if (sdr.Read() string majorID=sdrmajorID.ToString();

52、/根據(jù)專業(yè)編號查詢班級信息 sql = select * from T_Class where majorID= + majorID + ; DataSet ds = dataOperate.getDataSet(sql, T_Class); cbClass.DataSource = ds.TablesT_Class; cbClass.DisplayMember = className; private void btnSubmit_Click(object sender, EventArgs e) string Sex=; if(rbtnMan.Checked) Sex=男; if(rbtn

53、Women.Checked) Sex=女; SqlConnection con = dataOperate.createConnection(); con.Open(); /根據(jù)班級名稱查詢班級編號 string classID=; string sql=select classID from T_Class where className=+cbClass.Text+; SqlDataReader sdr=dataOperate.getRow(sql); if(sdr.Read() classID=sdrclassID.ToString(); sql = insert into T_Stud

54、ent values(+txtNum.Text+,+txtName.Text+,+Sex+,+txtBirthday.Text+,+txtAddress.Text+,+classID+); bool flag= dataOperate.execSQL(sql); if (flag) MessageBox.Show(成功添加信息!); /往學(xué)生成績表中添加學(xué)生信息 /sql = insert into T_Grade(Num) values(+AddUser.Num+); /dataOperate.execSQL(sql); AddUser au = new AddUser(); au.Show

55、(); this.Visible = false; else MessageBox.Show(添加信息失??!); return; private void btnReset_Click(object sender, EventArgs e) Reset(); public void Reset() txtBirthday.Text = ; txtAddress.Text = ; (六)學(xué)生信息查詢界面設(shè)計其窗口界面如下:窗體加載時,通過查詢數(shù)據(jù)庫中系部信息,將系部信息填充到系部;當(dāng)系部的值發(fā)生改變時,將通過系部值查找專業(yè)信息,并填充到專業(yè);當(dāng)專業(yè)的值發(fā)生改變時,將通過專業(yè)的值查找班級信息,并填

56、充到班級;最后通過班級值查找該班級中所有學(xué)生的信息。實(shí)現(xiàn)代碼如下:private void AdminTeacherSelectInfo_Load(object sender, EventArgs e) string sql = select departmentName from T_Department; DataSet ds = dataOperate.getDataSet(sql, T_Department); cbDepartment.DataSource = ds.TablesT_Department; cbDepartment.DisplayMember = department

57、Name; private void cbDepartment_SelectedIndexChanged(object sender, EventArgs e) string sql = select majorName from T_Department as d,T_Major as m where departmentName= + cbDepartment.Text + and d.departmentID=m.departmentID; DataSet ds = dataOperate.getDataSet(sql, T_Major); cbMajor.DataSource = ds

58、.TablesT_Major; cbMajor.DisplayMember = majorName; private void cbMajor_SelectedIndexChanged(object sender, EventArgs e) string sql = select className from T_Major as m,T_Class as c where majorName= + cbMajor.Text + and m.majorID=c.majorID; DataSet ds = dataOperate.getDataSet(sql, T_Class); cbClass.

59、DataSource = ds.TablesT_Class; cbClass.DisplayMember = className; private void cbClass_SelectedIndexChanged(object sender, EventArgs e) string sql = select s.Num as 學(xué)號,s.Name as 姓名,s.Sex as 性別,s.Birthday as 出生,s.Address as 地址 from T_Student as s,T_Class as c where className= + cbClass.Text + and c.c

60、lassID=s.classID; DataSet ds = dataOperate.getDataSet(sql, T_Student); dgvStuInfo.DataSource = ds; dgvStuInfo.DataMember = T_Student; (七)修改學(xué)生信息界面設(shè)計其窗口界面如下:通過學(xué)號和姓名,查找出具體學(xué)生的信息,經(jīng)確認(rèn)可以修改后,點(diǎn)擊查詢按鈕,將查詢出該條件下的用戶的信息;此時,按鈕的文本值將變成“修改” ,點(diǎn)擊“修改” ,基本信息將從不可編輯變成可編輯狀態(tài),并且,按鈕的文本又變成“保存” ;將要修改的值修改好后,點(diǎn)擊保存,數(shù)據(jù)庫將根據(jù)提交的數(shù)據(jù)修改用戶信息;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論