學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要隨著信息技術(shù)在管理上越來(lái)越深入而廣泛的應(yīng)用加上計(jì)算機(jī)技術(shù)的飛速發(fā)展,管理信息系統(tǒng)的實(shí)施在信息上逐步成熟,各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。學(xué)校也不例外,由于近年來(lái)學(xué)生數(shù)量的急劇增加,導(dǎo)致學(xué)校學(xué)生成績(jī)管理的工作量空前增加。為了能高效,準(zhǔn)確,快速完成的解決這一問(wèn)題,就必須借助成績(jī)管理系統(tǒng)來(lái)實(shí)現(xiàn),從而達(dá)到規(guī)范管理,減少人工操作,提高工作效益,科學(xué)統(tǒng)計(jì)的目的。該系統(tǒng)利用C/S結(jié)構(gòu),界面是wpf界面庫(kù),數(shù)據(jù)庫(kù)是SqlServer.首先利用管理信息系統(tǒng)的理論來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù),然后在sqlserver2008實(shí)現(xiàn)所設(shè)計(jì)好的表和結(jié)構(gòu)。再利用visualstudio建wpf應(yīng)用程序設(shè)計(jì)wpf界面,Ado.Net來(lái)實(shí)現(xiàn)數(shù)據(jù)和界面的交道并實(shí)現(xiàn)所需的功能。本系統(tǒng)界面漂亮,操作簡(jiǎn)單,具有人性化的學(xué)生成績(jī)管理系統(tǒng)。并給出了本系統(tǒng)所使用數(shù)據(jù)庫(kù)設(shè)計(jì)具體設(shè)計(jì),詳細(xì)設(shè)計(jì)部分介紹了系統(tǒng)主要模塊和功能點(diǎn)的代碼設(shè)計(jì)實(shí)現(xiàn)以及相應(yīng)的系統(tǒng)運(yùn)行效果,并對(duì)系統(tǒng)部署和轉(zhuǎn)換進(jìn)行了簡(jiǎn)單的說(shuō)明。關(guān)鍵詞:管理信息;C/S結(jié)構(gòu);教學(xué)管理;成績(jī)管理系統(tǒng)AbstractAsinformationtechnologymoreandmorein-depthinthemanagementandwidespreadapplication,andcoupledwiththerapiddevelopmentofcomputertechnology,theimplementofmanagementinformationservicematuresoninformationprogressivelyandvariousindustrieshavebeenwidelypopularizedandusedoncomputertechnologyapplications.Theschoolsarealsonoexception.Inrecentyears,duetothesharpincreaseofnumberofstudents,theworkloadofschools’studentachievementmanagementisunprecedentedincreased.ThesystemusesC/Sstructure,theinterfaceiswpfinterfacelibrary,thedatabaseisSqlServer.Firstly,usemanagementinformationsystemstheorytodesignadatabase,andthenachievedesignedtableandstructureinsqlserver2008.Re-usevisualstudiotobuiltwpfapplicationtodesignwpfinterface,Ado.ThroughNettoimplementthedealingsofthedataandinterfaceandachievethedesiredfunction.Thisstudent’sthestudentachievementmanagementsystemiscompletedunderthesupportoftheoryanddatabasetechnologyofmanagementinformationservice.Thisstudentachievementmanagementsystemabletocompletestudentachievemententry、score-inquiry、achievementsmodify、delete、printandalsohaveotherfunctions.Thissystemwithfriendlyinterfacecansimpletooperate,quickandeasytomanage.KeyWords:Managementinformation;Studentachievement;Resultsquery;目錄第一章緒論 第一章緒論系統(tǒng)開(kāi)發(fā)背景在以前,學(xué)校對(duì)于學(xué)生成績(jī)的管理工作都處在手工操作,隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,Internet的進(jìn)一步發(fā)展,作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)管理信息進(jìn)行管理,具有手工管理所無(wú)法比擬的有點(diǎn)。因此,開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)很有必要。網(wǎng)絡(luò)發(fā)展前景無(wú)限,及早與網(wǎng)絡(luò)結(jié)合,與信息時(shí)代同步,與高科技匯合,定會(huì)給社會(huì)各行各業(yè)的發(fā)展注入新鮮的活力。系統(tǒng)開(kāi)發(fā)意義成績(jī)管理已經(jīng)成為學(xué)校教學(xué)中十分重要的工作之一,也是一項(xiàng)比較復(fù)雜的項(xiàng)目。傳統(tǒng)的成績(jī)管理工作一般采用手工管理,這樣的管理方式存在很多缺點(diǎn)。如:沒(méi)有保密性,效率不高。一方面導(dǎo)致教師的工作量,時(shí)間一長(zhǎng),將會(huì)產(chǎn)生大量數(shù)據(jù)和文件,這對(duì)成績(jī)的查找,核對(duì)都帶來(lái)很多困難。需要大量勞動(dòng)力,難以避免誤差的產(chǎn)生。單純的利用手工處理不僅費(fèi)勞力而且不符合教育和管理要求。而用計(jì)算機(jī)來(lái)處理這一問(wèn)題達(dá)到一定計(jì)算率的同時(shí)也會(huì)帶來(lái)很多方便。因此,為了達(dá)到學(xué)校信息工作的高效與流暢,有必要設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)。這不但能使教務(wù)人員從復(fù)雜的成績(jī)管理中解脫出來(lái),而且對(duì)于推動(dòng)教學(xué)的發(fā)展也起到非常重要的作用。相關(guān)技術(shù)介紹該成績(jī)管理系統(tǒng)開(kāi)發(fā)的主要工具是SQL

Server

2008和VisualStudio2010。利用C#語(yǔ)言,wpf來(lái)做UI,三層框架來(lái)實(shí)現(xiàn)。SQLserver2008簡(jiǎn)介SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988年推出了第一個(gè)OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專(zhuān)注于開(kāi)發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專(zhuān)注于SQLServer在UNⅨ

操作系統(tǒng)上的應(yīng)用。

SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng),該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。這個(gè)平臺(tái)有以下特點(diǎn):

1.可信任的——使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來(lái)運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序。

2.高效的——使得公司可以降低開(kāi)發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本。

3.智能的——提供了一個(gè)全面的平臺(tái),可以在你的用戶(hù)需要的時(shí)候給他發(fā)送觀(guān)察和信息。三層架構(gòu)介紹所謂三層體系結(jié)構(gòu)3,是在客戶(hù)端與數(shù)據(jù)庫(kù)之間加入了一個(gè)中間層,也叫組件層。這里所說(shuō)的三層體系,不是指物理上的三層,不是簡(jiǎn)單地放置三臺(tái)機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪(fǎng)問(wèn)、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。通常情況下,客戶(hù)端不直接與數(shù)據(jù)庫(kù)進(jìn)行交互,而是通過(guò)COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫(kù)進(jìn)行交換.

開(kāi)發(fā)人員可以將應(yīng)用的商業(yè)邏輯放在中間層應(yīng)用服務(wù)器上,把應(yīng)用的業(yè)務(wù)邏輯與用戶(hù)界面分開(kāi)。在保證客戶(hù)端功能的前提下,為用戶(hù)提供一個(gè)簡(jiǎn)潔的界面。這意味著如果需要修改應(yīng)用程序代碼,只需要對(duì)中間層應(yīng)用服務(wù)器進(jìn)行修改,而不用修改成千上萬(wàn)的客戶(hù)端應(yīng)用程序。從而使開(kāi)發(fā)人員可以專(zhuān)注于應(yīng)用系統(tǒng)核心業(yè)務(wù)邏輯的分析、設(shè)計(jì)和開(kāi)發(fā),簡(jiǎn)化了應(yīng)用系統(tǒng)的開(kāi)發(fā)、更新和升級(jí)工作。WPF簡(jiǎn)介WPF2給Windows應(yīng)用程序的開(kāi)發(fā)帶來(lái)一次革命,因?yàn)樾碌募軜?gòu)提供了一種全新的開(kāi)發(fā)模式。當(dāng)然對(duì)于普通用戶(hù)而言,最直觀(guān)的就是界面越來(lái)越漂亮,看起來(lái)越來(lái)越舒服了;但對(duì)于開(kāi)發(fā)人員而言,界面顯示和代碼將更好的得到分離,這與從前的桌面應(yīng)用程序開(kāi)發(fā)有很多不同,這是比較具有革命性的改變之一。還有就是桌面應(yīng)用程序和瀏覽器應(yīng)用程序的融合,根據(jù)ms的承諾,正在開(kāi)發(fā)中的WPF/E,即WPFEverywhere版本,將為基于WPF的應(yīng)用程序提供全面的瀏覽器支持,這意味著未來(lái)開(kāi)發(fā)出的應(yīng)用程序?qū)⒖梢曰跒g覽器在不同的操作系統(tǒng)上運(yùn)行,當(dāng)然由于目前還在開(kāi)發(fā)中,我們并不確定會(huì)不會(huì)有一定的限制,根據(jù)WPF/E開(kāi)發(fā)組的定義,WPF/E仍然是WPF的子集,而不是后繼版本。第二章需求分析2.1流程分析2.1.1業(yè)務(wù)流程分析各教師將成績(jī)錄入,進(jìn)行匯總登記。將初步的成績(jī)單存檔并發(fā)往教務(wù)處,由教務(wù)處進(jìn)行統(tǒng)計(jì)分析。將學(xué)生成績(jī)進(jìn)行排序,找出不及格同學(xué)名單,安排組織補(bǔ)考等。接收同學(xué)的反饋信息,查實(shí)有錯(cuò)誤后,進(jìn)行更改和修正。將補(bǔ)考成績(jī)錄入成績(jī)單中,形成最終的成績(jī)單,進(jìn)行存檔,并最終存進(jìn)學(xué)生檔案。本系統(tǒng)所涉及的業(yè)務(wù)主要是成績(jī)的匯總登記,統(tǒng)計(jì)分析修改以及成績(jī)查詢(xún)等。2.1.2數(shù)據(jù)流程分析通過(guò)對(duì)學(xué)生成績(jī)管理系統(tǒng)工作內(nèi)容和相關(guān)數(shù)據(jù)流程分析,根據(jù)學(xué)生成績(jī)管理系統(tǒng)的需要,就可以設(shè)計(jì)出能滿(mǎn)足用戶(hù)需求的各種實(shí)體,以及它們之間的關(guān)系,從而以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件,表達(dá)出學(xué)生成績(jī)管理系統(tǒng)的數(shù)據(jù)流程。2.2系統(tǒng)功能要求學(xué)生成績(jī)管理是學(xué)生信息管理的重要一部分,也是學(xué)校教學(xué)工作的重要組成部分。學(xué)生成績(jī)管理系統(tǒng)的開(kāi)發(fā)能大大減輕教務(wù)管理人員和教師的工作量,同時(shí)能使學(xué)生及時(shí)了解選修課程成績(jī)。該系統(tǒng)主要包括學(xué)生信息管理、課程信息管理、成績(jī)管理等,具體功能如下:學(xué)生成績(jī)管理,學(xué)生信息管理的一個(gè)重要組成部分,是學(xué)校教學(xué)工作的重要組成部分(1)完成數(shù)據(jù)的錄入和修改,并提交數(shù)據(jù)庫(kù)保存。其中的數(shù)據(jù)包括班級(jí)信息、學(xué)生信息、課程信息、學(xué)生成績(jī)等。班級(jí)信息包括班級(jí)編號(hào)、班級(jí)名稱(chēng)、學(xué)生所在的學(xué)院名稱(chēng)、專(zhuān)業(yè)名稱(chēng)、入學(xué)年份等。學(xué)生信息包括學(xué)生的學(xué)號(hào)、姓名、性別、出生年月等。課程信息包括課程編號(hào)、課程名稱(chēng)、課程的學(xué)分、課程學(xué)時(shí)等。各課程成績(jī)包括各門(mén)課程的平時(shí)成績(jī)、期末成績(jī)、總評(píng)成績(jī)等。(2)實(shí)現(xiàn)基本信息的查詢(xún)。包括班級(jí)信息的查詢(xún)、學(xué)生信息的查詢(xún)、課程信息的查詢(xún)和成績(jī)的查詢(xún)等。(3)實(shí)現(xiàn)信息的查詢(xún)統(tǒng)計(jì)。主要包括各班學(xué)生信息的統(tǒng)計(jì)、學(xué)生選修課程情況的統(tǒng)計(jì)、開(kāi)設(shè)課程的統(tǒng)計(jì)、各課程成績(jī)的統(tǒng)計(jì)、學(xué)生成績(jī)的統(tǒng)計(jì)等。2.3用戶(hù)對(duì)系統(tǒng)的要求用戶(hù)一般為教師用戶(hù)與學(xué)生用戶(hù)兩類(lèi)。這兩類(lèi)用戶(hù)都要用自己的教師工號(hào)或?qū)W號(hào)與一定的登錄密碼登錄本系統(tǒng)。登錄后可以對(duì)自己的登錄密碼進(jìn)行修改。2.3.1教師用戶(hù)登錄管理功能教師用戶(hù)對(duì)本系統(tǒng)的管理可以從兩種角度管理:一種是按課程的角度另一種是按學(xué)生角度上進(jìn)行管理。教師用戶(hù)登錄系統(tǒng)后可以按自己的需要來(lái)對(duì)這兩種方式進(jìn)行選擇。按課程角度管理教師用戶(hù)按課程角度管理系統(tǒng)可以看到課程信息和成績(jī)信息。課程信息有課程編號(hào)和課程名稱(chēng)。成績(jī)信息有選修這門(mén)課程的學(xué)生的學(xué)號(hào)、姓名、班級(jí)和考試成績(jī)。在成績(jī)信息中,教師用戶(hù)可以對(duì)學(xué)生成績(jī)進(jìn)行查詢(xún),修改,刪除等操作。按學(xué)生角度管理按學(xué)生角度管理時(shí)教師用戶(hù)可以看到學(xué)生信息和成績(jī)信息。學(xué)生信息有學(xué)生的學(xué)號(hào)、姓名、班級(jí)、性別等信息。當(dāng)教師用戶(hù)用鼠標(biāo)點(diǎn)到某一學(xué)生信息時(shí)可以看到該學(xué)生所有課程的成績(jī)信息。在成績(jī)信息中,教師用戶(hù)可以對(duì)學(xué)生的成績(jī)進(jìn)行修改、刪除等操作。2.3.2學(xué)生用戶(hù)登錄管理功能學(xué)生用戶(hù)統(tǒng)一用學(xué)號(hào)登錄系統(tǒng)。登錄后,學(xué)生可以看到自己的學(xué)生信息和成績(jī)信息。學(xué)生信息包括學(xué)號(hào)、姓名、班級(jí)、性別等信息。成績(jī)信息包括這個(gè)學(xué)生的所有課程的成績(jī)信息、總分及平均分,排名情況,并且進(jìn)行網(wǎng)上選課。成績(jī)管理系統(tǒng)功能模塊第三章系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)3.1.1系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)該學(xué)生成績(jī)管理系統(tǒng)是實(shí)現(xiàn)學(xué)生成績(jī)查詢(xún)、學(xué)生課程排名、學(xué)生選課、修改密碼。而教師成績(jī)管理,成績(jī)錄入,修改密碼等學(xué)校教務(wù)管理員維護(hù)信息的一個(gè)平臺(tái),整個(gè)學(xué)生成績(jī)管理系統(tǒng)共分為2個(gè)模塊:教師模塊,學(xué)生模塊,分別用于完成各自的功能。同樣的,在各個(gè)子模塊中仍然可以做進(jìn)一步細(xì)分,以便開(kāi)發(fā)工作更容易展開(kāi),并可以隨時(shí)監(jiān)視用的需求變更等情況。3.1.2系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)本學(xué)生成績(jī)管理系統(tǒng)教師模塊和學(xué)生模塊兩個(gè)都在同一個(gè)應(yīng)用服務(wù)器上,同一個(gè)數(shù)據(jù)庫(kù)。對(duì)維護(hù)有很大的幫助。物理結(jié)構(gòu)設(shè)計(jì)3.2數(shù)據(jù)庫(kù)設(shè)計(jì)3.2.1概念結(jié)構(gòu)設(shè)計(jì)概念數(shù)據(jù)模型,是面向現(xiàn)象世界的數(shù)據(jù)模型.概念結(jié)構(gòu)設(shè)計(jì)的過(guò)程,就是建立E-R模型的過(guò)程。以下過(guò)程為建立E-R模型的步驟。局部E-R圖:學(xué)生信息表教師信息表班級(jí)信息表課程信息表成績(jī)表全局E-R圖3.2.2實(shí)現(xiàn)過(guò)程創(chuàng)建表結(jié)構(gòu)Student表結(jié)構(gòu)列名數(shù)據(jù)類(lèi)型長(zhǎng)度能否為空字段說(shuō)明studentIDvarchar16否學(xué)生的學(xué)號(hào),主鍵studentPwdvarchar16否學(xué)生登錄密碼studentNamevarchar32否學(xué)生姓名studentGendervarchar2可以學(xué)生性別,取值‘男’或‘女’studentAgeint*可以學(xué)生年齡,默認(rèn)0classIDvarchar32否學(xué)生所屬班級(jí)IDTeacher表結(jié)構(gòu)列名數(shù)據(jù)類(lèi)型長(zhǎng)度能否為空字段說(shuō)明teacherIDvarchar16否教師編號(hào),主鍵teacherPwdvarchar16否教師登錄密碼teacherNamevarchar32否教師姓名teachergendervarchar2可以教師性別,取值‘男’或‘女’titlevarchar16可以教師職稱(chēng),比如’教授’telvarchar16可以聯(lián)系電話(huà)Curriculum表結(jié)構(gòu)列名數(shù)據(jù)類(lèi)型長(zhǎng)度能否為空字段說(shuō)明curriculumIDvarchar16否課程編號(hào),主鍵curriculumNamevarchar32否課程名稱(chēng)creditint*否學(xué)分hoursint*可以學(xué)時(shí)teacherIDvarchar16否教師編號(hào),外鍵Class表結(jié)構(gòu)列名數(shù)據(jù)類(lèi)型長(zhǎng)度能否為空字段說(shuō)明classIDvarchar16否班級(jí)編號(hào),主鍵classNamevarchar32否班級(jí)名稱(chēng)classSizeint*否班級(jí)人數(shù)classYearvarchar32可以年級(jí),如‘2010及’counselorvarchar16可以輔導(dǎo)員Score表結(jié)構(gòu)列名數(shù)據(jù)類(lèi)型長(zhǎng)度能否為空字段說(shuō)明studentIDvarchar16否學(xué)生學(xué)號(hào),外鍵curriculumIDvarchar16否課程編號(hào),外鍵scoreint*否成績(jī),默認(rèn)值為‘0’SqlServer中實(shí)現(xiàn)代碼創(chuàng)建數(shù)據(jù)庫(kù)文件及表打開(kāi)SQLServerManagementStudio,點(diǎn)擊新建刷新,寫(xiě)入下面代碼并執(zhí)行usemaster--切換到master數(shù)據(jù)庫(kù)go--檢測(cè)是否存在同名的數(shù)據(jù)庫(kù)ifexists(select1fromsysdatabaseswherename='xscjglxt_db')begindropdatabasexscjglxt_dbendgocreatedatabasexscjglxt_dbon--數(shù)據(jù)文件(name='xscjglxt_db_mdf',--數(shù)據(jù)文件邏輯名filename='D:\xscjgl\db\xscjglxt_db.mdf',--數(shù)據(jù)文件存放路徑size=5MB,--初始大小maxsize=30MB,--最大大小filegrowth=1MB--增長(zhǎng)速度)logon--日志文件(name='xscjglxt_db_ldf',--日志文件邏輯名filename='D:\xscjgl\db\xscjglxt_db.ldf',--日志文件存放路徑size=1MB,--初始大小maxsize=10MB,--最大大小filegrowth=1MB--增長(zhǎng)速度)gousexscjglxt_dbgo--創(chuàng)建Student表ifexists(select*fromsysobjectswherename='Student')droptableStudentcreatetableStudent/*-創(chuàng)建學(xué)生信息表-*/(studentIDvarchar(16)notnullPRIMARYKEY,--學(xué)號(hào),非空,主鍵studentPwdvarchar(16)notnull,--學(xué)生登錄密碼,非空studentNamevarchar(32)notnull,--學(xué)生姓名,非空studentGendervarchar(2)notnull,--學(xué)生性別studentAgeint,--學(xué)生年齡classIDvarchar(16)notnull,--班級(jí)編號(hào),非空,外鍵)goifexists(select*fromsysobjectswherename='Teacher')droptableTeachercreatetableTeacher/*-創(chuàng)建教師信息表-*/(teacherIDvarchar(16)notnullPRIMARYKEY,--教師編號(hào),非空,主鍵teacherPwdvarchar(16)notnull,--教師登錄密碼,非空teacherNamevarchar(32)notnull,--教師姓名,非空teachergendervarchar(2)notnull,--教師性別titlevarchar(16),--教師職稱(chēng)telvarchar(16),--聯(lián)系電話(huà))goifexists(select*fromsysobjectswherename='Curriculum')droptableCurriculumcreatetableCurriculum/*-創(chuàng)建課程表-*/(curriculumIDvarchar(16)notnullPRIMARYKEY,--課程編號(hào),非空,主鍵curriculumNamevarchar(32)notnull,--課程名稱(chēng)creditintnotnull,--課程學(xué)分hoursint,--學(xué)時(shí)teacherIDvarchar(16)notnull--教師編號(hào)外鍵)goifexists(select*fromsysobjectswherename='Class')droptableClasscreatetableClass/*-班級(jí)信息表-*/(classIDvarchar(16)notnullPRIMARYKEY,--班級(jí)編號(hào),非空,主鍵classNamevarchar(32)notnull,--班級(jí)名稱(chēng)classSizeintnotnull,--班級(jí)人數(shù),非空classYearvarchar(32),--年級(jí),如‘2010及’counselorvarchar(16)--輔導(dǎo)員姓名)goifexists(select*fromsysobjectswherename='Score')droptableScorecreatetableScore/*-創(chuàng)建成績(jī)表-*/(studentIDvarchar(16)notnull,--學(xué)號(hào),非空,外鍵curriculumIDvarchar(16)notnull,--課程編號(hào),非空,主鍵scoreintdefault0,--成績(jī))創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖選擇xscjglxt_db數(shù)據(jù)庫(kù)下面的數(shù)據(jù)庫(kù)關(guān)系圖點(diǎn)擊右鍵選擇新建數(shù)據(jù)庫(kù)關(guān)系圖并插入所有表格建立關(guān)系。數(shù)據(jù)庫(kù)關(guān)系圖第四章詳細(xì)設(shè)計(jì)4.1界面設(shè)計(jì)4.1.1模塊實(shí)現(xiàn)流程圖:模塊實(shí)現(xiàn)流程圖4.1.2搭建三層結(jié)構(gòu)打開(kāi)visualstudio2010新建一個(gè)叫學(xué)生成績(jī)關(guān)系系統(tǒng)的空白解決方案新建項(xiàng)目右鍵解決方案新添加新建項(xiàng)目選擇wpf應(yīng)用程序也就是創(chuàng)建UI層創(chuàng)建UI層再次右鍵解決方案新添加新建項(xiàng)目選擇類(lèi)庫(kù)創(chuàng)建模型層(MODEL)創(chuàng)建MODEL層按上面的方式再創(chuàng)建數(shù)據(jù)層(DAL)和業(yè)務(wù)層(BLL),然后我們引用各層數(shù)據(jù)層引用模型層,業(yè)務(wù)層引用數(shù)據(jù)層和模型層,UI層引用業(yè)務(wù)層和模型層。所有層文件顯示4.1.3制作登錄界面選擇UI層添加新建項(xiàng)選擇WPF模板并新建一個(gè)wpf窗口創(chuàng)建wpf然后選擇App.xaml把MainWindow.xaml改為L(zhǎng)oginWindow.xaml也就是默認(rèn)啟動(dòng)登錄窗口App.xaml修改然后我們制作登錄界面打開(kāi)LoginWindow.xaml在<Grid>下面寫(xiě)入下面的代碼:<TextBlockHeight="41"HorizontalAlignment="Left"Margin="17,22,0,0"Name="textBlock4"Text="學(xué)生成績(jī)管理系統(tǒng)"VerticalAlignment="Top"FontSize="28"Width="239"/><TextBlockHeight="23"HorizontalAlignment="Left"Margin="33,83,0,0"Name="textBlock1"Text="用戶(hù)名:"VerticalAlignment="Top"/><TextBlockHeight="23"HorizontalAlignment="Left"Margin="33,113,0,0"Name="textBlock2"Text="密碼:"VerticalAlignment="Top"/><TextBlockHeight="23"HorizontalAlignment="Left"Margin="33,149,0,0"Name="textBlock5"Text="身份:"VerticalAlignment="Top"/><TextBoxHeight="23"HorizontalAlignment="Left"Margin="103,82,0,0"Name="textBox1"VerticalAlignment="Top"Width="120"/><PasswordBoxHeight="23"HorizontalAlignment="Left"Margin="103,112,0,0"Name="passwordBox1"VerticalAlignment="Top"Width="120"/><RadioButtonContent="學(xué)生"Height="16"HorizontalAlignment="Left"Margin="92,149,0,0"Name="radioButton1"VerticalAlignment="Top"GroupName="shenfen"/><RadioButtonContent="教師"Height="16"HorizontalAlignment="Left"Margin="183,149,0,0"Name="radioButton2"VerticalAlignment="Top"GroupName="shenfen"/><ButtonContent="登錄"Height="23"HorizontalAlignment="Left"Margin="33,197,0,0"Name="button1"VerticalAlignment="Top"Width="75"/><ButtonContent="退出"Height="23"HorizontalAlignment="Left"Margin="159,197,0,0"Name="button2"VerticalAlignment="Top"Width="75"/>登錄界面最后我們把窗口的ResizeMode="NoResize"意思就是窗口大小不可改變。還有把窗口啟動(dòng)時(shí)要屏幕中間顯示,所以我們要加WindowStartupLocation="CenterScreen"的屬性。4.1.4主窗口界面制作設(shè)置主窗口打開(kāi)時(shí)的默認(rèn)大小和標(biāo)題,然后設(shè)置程序運(yùn)行默認(rèn)打開(kāi)為主窗口MainWindow.xaml,這里我們用Grid和StackPanel做布局,先把整個(gè)窗口分為兩行兩列,然后用StackPanel時(shí)把第一行的兩列合并就可以了,代碼如下:<Windowx:Class="UI.MainWindow"xmlns="/winfx/2006/xaml/presentation"xmlns:x="/winfx/2006/xaml"Title="MainWindow"Height="600"Width="800"WindowStartupLocation="CenterScreen"><Grid><Grid.RowDefinitions><RowDefinitionHeight="100"></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinitionWidth="200"></ColumnDefinition><ColumnDefinition></ColumnDefinition></Grid.ColumnDefinitions><StackPanelGrid.Row="0"Grid.Column="0"Grid.ColumnSpan="2"Background="#0099CC"></StackPanel><StackPanelGrid.Row="1"Grid.Column="0"Background="#FF6666"></StackPanel><StackPanelGrid.Row="1"Grid.Column="1"Background="#CCCCCC"></StackPanel></Grid></Window>運(yùn)行時(shí)的效果圖,也就是主窗口的布局:窗口布局然后我們加所有的功能按鈕,美化頁(yè)面后的顯示效果如下:總體效果顯示4.2功能制作4.2.1實(shí)現(xiàn)登錄我們先把UI層添加配置文件,選擇UI層右鍵添加新建項(xiàng)選擇配置文件起名為App.config。為了方便實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作,我們把SqlHelper1類(lèi)添加到數(shù)據(jù)層,SqlHelper需要連接數(shù)據(jù)庫(kù)才可以,所以我們?cè)贒AL層引用System.configuration類(lèi)。然后在App.config添加下面代碼:<appSettings><addkey="connStr"value="server=.;database=xscjglxt_db;uid=sa;pwd=123123"/></appSettings>然后我們?cè)赟qlHelper類(lèi)獲取連接數(shù)據(jù)庫(kù)的字符串,需要添加下面代碼:privatestaticstringconnStr=ConfigurationManager.AppSettings["connStr"];模型層是數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn),為了我們所有層都調(diào)用模型層,所以我們?cè)谀P蛯又刑砑覵tudent類(lèi),并寫(xiě)要保證所有層都能用到它也就是public。然后我們?cè)谶@個(gè)類(lèi)添加Student表的實(shí)體。DAL層也添加Student類(lèi),并寫(xiě)入數(shù)據(jù)庫(kù)操作代碼。BLL層需要調(diào)用DAL層的方法。最后在UI層操作,我們先把登錄按鈕做一個(gè)單擊事件,并獲取窗口文本框內(nèi)容。然后我們判斷身份,要是選擇的是學(xué)生我們就調(diào)用BLL層的Student里的Login方法。我們先最外層調(diào)用一個(gè)BLL.Student類(lèi)BLL.Studentbll=newBLL.Student();然后再登錄按鈕的單擊事件寫(xiě)入下面代碼stringstrName=txtName.Text.Trim();IntPtrp=System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.txtPwd.SecurePassword);stringstrPwd=System.Runtime.InteropServices.Marshal.PtrToStringBSTR(p);try{if((bool)this.rdoStudent.IsChecked){MODEL.Studentmodel=bll.Login(strName,strPwd);if(model!=null){MessageBox.Show("登錄成功!");}else{MessageBox.Show("登錄失??!");}}}catch(Exceptionex){MessageBox.Show(ex.Message);}這里我們做出了學(xué)生能登錄的,我們?cè)跀?shù)據(jù)庫(kù)添加以下內(nèi)容。先在Class表中添加內(nèi)容如下:Class表添加內(nèi)容然后再Student添加如下內(nèi)容Student表添加內(nèi)容然后我們運(yùn)行程序,輸入用戶(hù)名:1044026013,密碼:026013顯示結(jié)果如下:登錄成功顯示效果接下來(lái)我們同樣的方式做教師登錄,先把數(shù)據(jù)庫(kù)添加教師信息如下Teacher表添加內(nèi)容其他步驟都跟上面的學(xué)生登錄一樣,不一樣的是我們?cè)赨I層登錄按鈕的單擊事件給為下面內(nèi)容,先在最外層添加下面代碼:BLL.StudentbllStudent=newBLL.Student();BLL.TeacherbllTeacher=newBLL.Teacher();然后登錄按鈕的單擊事件代碼進(jìn)行相應(yīng)的修改。最后我們輸入用戶(hù)名:888888密碼:123321,就會(huì)顯示成功的,否則會(huì)顯示失敗,如下:教師登錄成功教師登錄失敗4.2.2權(quán)限判斷登錄主界面的功能是要分身份顯示的,教師身份登錄和學(xué)生身份登錄時(shí)顯示的按鈕是不同的,所以我們?cè)赨I層加一個(gè)靜態(tài)的CommonHelper類(lèi),這個(gè)類(lèi)存放身份類(lèi)型。要是學(xué)生登錄成功的話(huà)保存學(xué)生信息,是教師的話(huà)保存教師信息:publicstaticMODEL.StudentloginedUserIsStudent=null;publicstaticMODEL.TeacherloginedUserIsTeacher=null;到這里我們完成了,權(quán)限判斷登錄的整個(gè)過(guò)程,接下來(lái)我們能在主窗口加載事件判斷就可以了,我們需要把主窗口的功能按鈕都隱藏起來(lái),然后判斷登錄成功后的身份來(lái)顯示按鈕。學(xué)生登錄后顯示的效果教師登錄成功后的效果4.2.3成績(jī)管理功能實(shí)現(xiàn)我們需要在spMain下面再添加一個(gè)StackPanel,并且把它隱藏,起名為spCJGL這些是為了我們單擊成績(jī)管理按鈕的時(shí)候顯示的內(nèi)容。內(nèi)容里有一個(gè)data.grid控件,我們把數(shù)據(jù)綁定到這個(gè)控件的。成績(jī)管理按鈕的單擊事件代碼:this.spMain.Visibility=Visibility.Collapsed;this.spCJGL.Visibility=Visibility.Visible;LoadDataList();這里的LoadDataList是加載數(shù)據(jù)而用的方法。接下來(lái)我們把BLL,DAL,MODEL都加上一個(gè)CJGL類(lèi),是為了獲取成績(jī),班級(jí),學(xué)生,課程等信息。這些信息是由老師的教師編號(hào)來(lái)找到的,一個(gè)老師會(huì)教一門(mén)課程的,但不一定是一個(gè)班。為了等會(huì)在查詢(xún)的時(shí)候等到數(shù)據(jù).數(shù)據(jù)庫(kù)加點(diǎn)數(shù)據(jù)1數(shù)據(jù)庫(kù)加點(diǎn)數(shù)據(jù)2\數(shù)據(jù)庫(kù)加點(diǎn)數(shù)據(jù)3數(shù)據(jù)庫(kù)加點(diǎn)數(shù)據(jù)4數(shù)據(jù)庫(kù)加點(diǎn)數(shù)據(jù)5添加完數(shù)據(jù)后我們?cè)贛ODEL里的CJGL類(lèi)做數(shù)據(jù)標(biāo)準(zhǔn),也就是做屬性。接下來(lái)的是先在BLL的CJGL類(lèi)里添加相關(guān)代碼。然后需要在DAL層的CJGL類(lèi)做數(shù)據(jù)庫(kù)操作的代碼,重要的是SQL語(yǔ)句得寫(xiě)對(duì)。好了以后我們運(yùn)行程序,填寫(xiě)用戶(hù)名:444444,密碼123444后單擊成績(jī)管理按鈕后的顯示效果:成績(jī)管理DataGrid的分頁(yè)實(shí)現(xiàn),為了實(shí)現(xiàn)這個(gè)功能我們?cè)跀?shù)據(jù)庫(kù)添加幾個(gè)數(shù)據(jù)這里不截圖了。其實(shí)分頁(yè)功能的實(shí)現(xiàn),無(wú)非就是把一個(gè)記錄集通過(guò)運(yùn)算來(lái)篩選里面對(duì)應(yīng)頁(yè)碼的記錄,接來(lái)下我們?cè)俅翁砑酉嚓P(guān)代碼到DataGrid結(jié)束的地方。運(yùn)行輸入一個(gè)教師編號(hào)和密碼后按成績(jī)管理并截圖:成績(jī)管理界面4.2.4成績(jī)查詢(xún)功能實(shí)現(xiàn)成績(jī)查詢(xún)是屬于學(xué)生的,用來(lái)查詢(xún)自己的成績(jī),這里我們還是會(huì)用到DataGrid,學(xué)生登錄進(jìn)入系統(tǒng)后點(diǎn)擊成績(jī)查詢(xún)按鈕是用學(xué)生的登錄信息里的學(xué)生學(xué)號(hào)來(lái)找出成績(jī)表的課程編號(hào),然后用課程編號(hào)查詢(xún)學(xué)生的課程名稱(chēng),學(xué)分,學(xué)時(shí),教課老師并課程成績(jī)等信息。實(shí)現(xiàn)代碼如下幾步,首先我們要在BLL,DAL,MODEL層都添加一個(gè)CJCX的一個(gè)類(lèi),而這里的模型層是數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn),我們先從模型層開(kāi)始。接下來(lái)我們就從UI層開(kāi)始吧,我們先加一個(gè)StackPanel并且把它隱藏起名為spCJCX,然后里面加一個(gè)DataGrid綁定控件,并且自定義去完成DataGrid的數(shù)據(jù)綁定。然后在成績(jī)查詢(xún)單擊事件加如下代碼:privatevoidbtnCJCX_Click(objectsender,RoutedEventArgse){this.spMain.Visibility=Visibility.Collapsed;this.spCJGL.Visibility=Visibility.Collapsed;this.spCJCX.Visibility=Visibility.Visible;LoadScoreList();}這里的loadScoreList方法是加載成績(jī)查詢(xún)的集合,并連接到data.grid控件的。接下來(lái)是BLL層,BLL層沒(méi)有什么可做的,就是把任務(wù)交給DAL層,主要是DAL跟數(shù)據(jù)量打交道的。運(yùn)行程序,填寫(xiě)一個(gè)學(xué)生的學(xué)號(hào)和密碼后按成績(jī)查詢(xún)按鈕時(shí)顯示的效果如下:成績(jī)查詢(xún)4.2.5成績(jī)錄入功能實(shí)現(xiàn)成績(jī)錄入是老師所屬的功能,當(dāng)老師登錄進(jìn)入系統(tǒng)并且單擊成績(jī)錄入按鈕時(shí),先去數(shù)據(jù)庫(kù)加載沒(méi)有錄入成績(jī)學(xué)生的學(xué)號(hào),老師的課程名信息,然后在填寫(xiě)成績(jī)后單擊錄入成績(jī)時(shí)把成績(jī)保存到數(shù)據(jù)庫(kù),因?yàn)榇蟾诺牟襟E跟前面的差不多,也就是BLL,DAL,MODEL三個(gè)層添加一個(gè)叫CJLR的一個(gè)類(lèi),然后MODEL層添加我們需要的字段用屬性的方式來(lái)保存。然后DAL層查詢(xún)數(shù)據(jù)并且把數(shù)據(jù)保存到MODEL層,因?yàn)橛泻芏鄬W(xué)生所以我們用集合來(lái)保存,并且把集合返回給BLL層,UI層調(diào)用BLL層里的方法來(lái)獲取數(shù)據(jù)并且綁定到顯示課程名的textblock控件和combobox控件,這兩個(gè)控件都在UI層里一個(gè)StackPanel里定義過(guò)了。單擊錄入成績(jī)按鈕代碼里L(fēng)oadDataStudentIDList方法當(dāng)沒(méi)有數(shù)據(jù)的時(shí)候就隱藏錄入成績(jī)有關(guān)的所有控件并且顯示‘沒(méi)有可錄入成績(jī)的學(xué)生!’的提示。運(yùn)行程序填寫(xiě)一個(gè)教師的編號(hào)和密碼后單擊錄入按鈕的效果如圖,這里下拉框顯示的是要錄入成績(jī)的學(xué)生學(xué)號(hào),老師只有選擇學(xué)生學(xué)號(hào),然后在填寫(xiě)錄入成績(jī)按鈕就可以了,效果圖如下:錄入成績(jī)接下來(lái)我們做的是當(dāng)老師填寫(xiě)成績(jī)后按錄入成績(jī)時(shí)觸發(fā)的事件,這里我們從Dal層開(kāi)始因?yàn)樽罱K操作的是數(shù)據(jù)層,需要在DAL層的CJLR類(lèi)添加修改成績(jī)的的方法。這個(gè)方式是BLL層需要調(diào)用的,因此BLL層也沒(méi)有什么大的區(qū)別,代碼如下:publicintModifyScore(stringscore,stringstudentID,stringcurriculumID){returndal.ModifyScore(score,studentID,curriculumID);}剩下的是UI層負(fù)責(zé)了,我們?cè)赨I的成績(jī)錄入按鈕寫(xiě)代碼,這里我們要注意的是當(dāng)錄入完一個(gè)學(xué)生成績(jī)后需要重新加載需要錄入成績(jī)的學(xué)生學(xué)號(hào)。運(yùn)行程序我們輸入一個(gè)教師的編號(hào)和密碼后單擊錄入成績(jī)的按鈕后的效果圖如下:

錄入成績(jī)當(dāng)我們把所有的學(xué)生都錄入完成績(jī)后的效果圖,如下:錄入成績(jī)完畢4.2.6課程排名功能實(shí)現(xiàn)課程排名是屬于學(xué)生的功能,主要是學(xué)生可以在課程排名模塊能查到每個(gè)課程的最高,最低分等信息。學(xué)生進(jìn)入系統(tǒng)后打擊課程排名是先去加載學(xué)生所選的所有課程,然后把第一個(gè)課程放到默認(rèn)的,再去加載課程排名。這里我們先做一下UI層,也是一樣加一個(gè)StackPanel,然后里面加幾個(gè)控件代碼如下:<StackPanelGrid.Row="1"Grid.Column="1"Background="#FFFFCC"Name="spKCPM"Visibility="Collapsed"><Grid><Grid.ColumnDefinitions><ColumnDefinitionWidth="250"></ColumnDefinition><ColumnDefinitionWidth="auto"></ColumnDefinition><ColumnDefinitionWidth="158*"/></Grid.ColumnDefinitions><DataGridCanUserAddRows="false"AutoGenerateColumns="False"Grid.Row="0"Grid.Column="1"Margin="10"Name="dgKCPM"Width="210"DataContext="{Binding}"ItemsSource="{Binding}"HorizontalAlignment="Left"><DataGrid.Columns><DataGridTextColumnHeader="類(lèi)型"Width="100"Binding="{BindingLeiXing,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/><DataGridTextColumnHeader="情況"Width="100"Binding="{BindingQingKuang,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/></DataGrid.Columns></DataGrid><ComboBoxHeight="23"HorizontalAlignment="Left"Margin="166,12,0,0"Name="cbKeChengMingCheng"VerticalAlignment="Top"Width="78"HorizontalContentAlignment="Right"SelectionChanged="cbKeChengMingCheng_SelectionChanged"Loaded="cbKeChengMingCheng_Loaded"/><TextBlockHeight="23"HorizontalAlignment="Left"Margin="89,14,0,0"Name="textBlock1"Text="請(qǐng)選擇課程:"VerticalAlignment="Top"/><TextBlockHeight="23"Name="textBlock2"Text="您的成績(jī):"Margin="89,40,96,-17"/><TextBlockHeight="23"Name="tbKeChengChengji"Text="課程成績(jī)"Foreground="Red"Width="50"Margin="153,40,47,-17"/></Grid></StackPanel>接下來(lái)就是每層添加一個(gè)KCPM的類(lèi),實(shí)現(xiàn)課程排名的最難的就是sql查詢(xún)語(yǔ)句了,因?yàn)檫@里考慮太多了,下面就是查詢(xún)的sql代碼:select'最高成績(jī)'as'leixing',MAX(score)as'qingkuang'fromScorewherecurriculumID=@curriculumIDunionallselect'最低成績(jī)',MIN(score)fromScorewherecurriculumID=@curriculumIDunionallselect'平均成績(jī)',AVG(score)fromScorewherecurriculumID=@curriculumIDunionallselect'班級(jí)排名',f.paimingfrom(selectA.studentID,RANK()OVER(ORDERBYscoreDESC)AS[paiming]fromStudentAcrossjoinScoreBwhereA.classID=@classIDandB.studentID=A.studentIDandB.curriculumID=@curriculumID)asfwheref.studentID=@studentIDunionallselect'年級(jí)排名',e.paimingfrom(SELECTA.studentID,RANK()OVER(ORDERBYscoreDESC)AS[paiming]FROMScoreAwhereA.curriculumID=@curriculumID)asewheree.studentID=@studentID還有一個(gè)重要的就是選擇下拉框是切換課程成績(jī)和課程排名的代碼了,代碼如下:BLL.KCPMbllKeChengMingCheng=newBLL.KCPM();List<MODEL.KCPM>listKeChengMingCheng=null;voidLoadKechengList(intindex){listKeChengMingCheng=bllKeChengMingCheng.GetAllcurriculumName(CommonHelper.loginedUserIsStudent.SID);this.cbKeChengMingCheng.SelectedIndex=index;this.tbKeChengChengji.Text=listKeChengMingCheng[index].Score.ToString();List<MODEL.KCPM>list=bllKeChengMingCheng.GetAllPaiMingInfo(CommonHelper.loginedUserIsStudent.SID,listKeChengMingCheng[index].CurriculumID,CommonHelper.loginedUserIsStudent.CID);this.dgKCPM.ItemsSource=list;}privatevoidcbKeChengMingCheng_SelectionChanged(objectsender,SelectionChangedEventArgse){ComboBoxbox=senderasComboBox;LoadKechengList(Int32.Parse(box.SelectedIndex.ToString()));}剩下的代碼不必要一一的介紹了,實(shí)現(xiàn)前面的功能一樣就是隱藏不必要的StackPanel控件了,還有一個(gè)是Grid來(lái)做布局。我們就是用前面的思路做出來(lái)就可以了。好了以后我們用學(xué)生身份登錄看看效果如學(xué)生選課4.2.7學(xué)生選課功能實(shí)現(xiàn)本系統(tǒng)針對(duì)的是高中學(xué)生,所以學(xué)生選課功能不太復(fù)雜,當(dāng)學(xué)生選擇學(xué)生選課按鈕的時(shí)候就把學(xué)生可以選的課程顯示在下拉框里,學(xué)生選擇一門(mén)課后單擊選課確認(rèn)時(shí)就把學(xué)生學(xué)號(hào)和課程編號(hào)來(lái)數(shù)據(jù)庫(kù)里添加內(nèi)容。要是學(xué)生沒(méi)有可選的課程就把其他控件都隱藏,只顯示以一個(gè)‘沒(méi)有可選的課程!’的內(nèi)容。實(shí)現(xiàn)這個(gè)功能主要是從數(shù)據(jù)庫(kù)開(kāi)始吧,下面是添加內(nèi)容的SQl代碼:insertintoScore(curriculumID,studentID)values(@curriculumID,@studentID))然后我們?cè)贐LL,DAL,MODEL層個(gè)添加一個(gè)XSXK類(lèi),MODEL層的XSXK類(lèi)只存放課程名稱(chēng)和課程編號(hào),這是因?yàn)槲覀冊(cè)陲@示下拉框用到的。BLL層就是調(diào)用數(shù)據(jù)層的方法,UI層的界面添加一個(gè)StackPanel并把它隱藏掉,只單擊學(xué)生選課按鈕時(shí)顯示。學(xué)生選課按鈕和確認(rèn)選課按鈕都是調(diào)用一個(gè)方法。當(dāng)我們一個(gè)學(xué)生身份登錄選擇學(xué)生選課時(shí)顯示的效果如圖:學(xué)生選課效果圖4.2.8修改密碼功能實(shí)現(xiàn)修改密碼是教師和學(xué)生都有的功能,因此我們做這個(gè)功能前判斷登錄者是什么身份。然后我們分別用不同的參數(shù)調(diào)用DAL層的修改密碼方法。我們先UI層添加相關(guān)代碼。這里我們用Grid做了布局。我們用教師或?qū)W生身份登錄進(jìn)入系統(tǒng)后單擊修改密碼后按步驟填寫(xiě)密碼,然后單擊確認(rèn)后效果如圖:修改密碼4.2.9退出功能制作WPF退出程序是用Application.Current.Shutdown()方法,所以我們退出按鈕的單擊事件寫(xiě)這個(gè)方法就可以實(shí)現(xiàn)了。4.2.10程序打包在vs2010選擇“新建項(xiàng)目”“其他項(xiàng)目類(lèi)型”“VisualStudioInstaller“安裝項(xiàng)目”:安裝項(xiàng)目應(yīng)用程序文件夾中點(diǎn)右鍵添加應(yīng)用程序的debug目錄下的所有文件和文件夾:添加文件添加所有文件夾和文件把需要?jiǎng)?chuàng)建程序快捷方式的圖標(biāo)也添加進(jìn)來(lái):后綴名為:icoicon在創(chuàng)建的項(xiàng)目名稱(chēng)(學(xué)生成績(jī)管理系統(tǒng))上點(diǎn)擊右鍵:屬性,選擇系統(tǒng)必備:然后選擇.NET的版本,和WindowsInstaller3.1(可選項(xiàng))選擇:“從與我應(yīng)用程序相同的位置下載系統(tǒng)必備組件”這樣安裝包就會(huì)打包.NETFrameWork,在安裝時(shí)不會(huì)從網(wǎng)上下載.NETFrameWork組件;但是安裝包會(huì)比較大。添加組件VS2010發(fā)布.NET2.0的版本,在創(chuàng)建安裝程序時(shí),需要設(shè)置啟動(dòng)條件:在項(xiàng)目名稱(chēng)(setup1)上,點(diǎn)擊右鍵選擇“視圖”“啟動(dòng)條件”:?jiǎn)?dòng)條款設(shè)置在“啟動(dòng)條件”中,點(diǎn)擊“.NETFramework”在Version上面選擇.NETFramework2.0.Net版本選擇設(shè)置安裝文件的目錄(路徑):創(chuàng)建的項(xiàng)目名稱(chēng)(學(xué)生成績(jī)管理系統(tǒng))點(diǎn)擊左鍵(不是右鍵),在屬性中設(shè)置參數(shù)如下圖:設(shè)置參數(shù)在應(yīng)用程序上點(diǎn)擊左鍵,如下圖:第一個(gè)為系統(tǒng)主目錄(默認(rèn)C:\Programe),第二個(gè)為公司名([Manufacturer]),第三個(gè)為應(yīng)用程序名稱(chēng),這樣在安裝時(shí)就會(huì)創(chuàng)建兩層的文件路徑。需要?jiǎng)h除DefaultLocation中的:[Manufacturer]。刪除后只有應(yīng)用程序的名稱(chēng)?!霸趹?yīng)用程序文件夾”中的.exe文件中,點(diǎn)擊右鍵,創(chuàng)建快捷方式:創(chuàng)建快捷方式重命名重命名“學(xué)生成績(jī)管理系統(tǒng)”,然后點(diǎn)擊右鍵屬性,選擇Icon,如圖4-51:設(shè)置ICON拖動(dòng)此快捷方式到“用戶(hù)桌面”“用戶(hù)的‘程序’菜單”中添加一個(gè)文件夾,命名為:“學(xué)生成績(jī)管理系統(tǒng)”然后同樣的方式創(chuàng)建UI.exe一個(gè)快捷方式(“串口測(cè)試程序”),拖動(dòng)到“串口程序”中;然后給.NET應(yīng)用程序創(chuàng)建一個(gè)卸載程序:在“應(yīng)用程序文件夾”中添加:C:Windows\System32\Msiexec.exe右鍵創(chuàng)建快捷方式,重命名為:卸載,把此快捷方式拖動(dòng)到“學(xué)成成績(jī)管理系統(tǒng)”;卸載設(shè)置點(diǎn)擊項(xiàng)目名稱(chēng)(學(xué)生管理系統(tǒng)),在屬性中找到:ProductCode復(fù)制此ProductCode,粘貼到“卸載”快捷方式的Arguments屬性,前面加/x空格完成以上步驟,就可以生成解決方案了。生成解決方案后,在debug文件夾中就是我們需要的安裝包。生成結(jié)果第五章系統(tǒng)安裝及操作5.1系統(tǒng)安裝本系統(tǒng)所以windows系統(tǒng)上可以按照,但必須得有.NET4.0才可以,安裝很簡(jiǎn)單我們先單擊setup.exe如圖:安裝包歡迎界面選擇下一步安裝向?qū)О惭b目錄選擇D盤(pán)安裝目錄確認(rèn)安裝界面,選擇下一步就自動(dòng)安裝的,如圖:正在安裝安裝完在開(kāi)始菜單中有“串口程序”的文件夾,里面有我們創(chuàng)建的兩個(gè)快捷方式;開(kāi)始菜單桌面上也有快捷方式電腦桌面5.2教師身份登錄操作我們用教師身份登錄系統(tǒng),界面如圖:教師身份登錄單擊成績(jī)管理,可以查詢(xún)到所有學(xué)生成績(jī),如圖:成績(jī)管理單擊錄入成績(jī)可對(duì)沒(méi)錄入成績(jī)的學(xué)生錄入成績(jī)成績(jī)錄入單擊修改密碼可以執(zhí)行修改操作:修改密碼單擊退出系統(tǒng)可以退出本系統(tǒng)。5.3學(xué)生身份登錄操作學(xué)生身份登錄界面如圖:學(xué)生登錄單擊成績(jī)查詢(xún)可以查詢(xún)到自己的成績(jī),如圖:成績(jī)查詢(xún)單擊課程排名,可以看到自己的排名情況,如圖:課程排名學(xué)生選課里學(xué)生可以選課操作,如圖:學(xué)生選課修改密碼和退出系統(tǒng)跟教師登錄操作一樣的。參考文獻(xiàn)

[1]Liwuyi.微軟SQLHelper.cs類(lèi)中文版[EB/OL]./liwuyi/archive/2012/05/16/2505461.html,2012-05-16

[2](美)麥克唐納著,王德才譯.WPF編程寶典(第4版)[CP],2013-8-1[3]李明慧

.三層架構(gòu)技術(shù)及模式分析[J/OL],《現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版)》/Article/CJFDTotal-XDJS200109004.htm,

2001年09期[4]王雨竹,張玉花,張星.SQLServer2008數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)教程(第2版)[DB]出

社人民郵電出版社,2012-11-1[5]薛華成.管理信息系統(tǒng)[M].北京:清華大學(xué)出版社,2006.135-143[6]衛(wèi)琳.SQLServer2008數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)教程(第二版)[CP]清華大學(xué)出版社,2011-6-1[7]邱李華,李曉黎,任華,冉兆春.SQLServer2008數(shù)據(jù)庫(kù)應(yīng)用教程(第2版)[CP]人民郵電出版社,2012-8-1[8](美)內(nèi)格爾(Nagel,C.)等著,李銘譯.C#高級(jí)編程(第8版)[CP]清華大學(xué)出版社,2013-10-1[9]密君英.基于三層架構(gòu)的ASP.NET項(xiàng)目實(shí)戰(zhàn)教程[CP]中國(guó)電力出版社,2011-8-1[10]劉雅偉,楊莉.管理信息系統(tǒng)開(kāi)發(fā)與應(yīng)用[CP]大連理工大學(xué)出版社,2012-6-1致謝時(shí)光匆匆如流水,轉(zhuǎn)眼便是大學(xué)畢業(yè)時(shí)節(jié),春夢(mèng)秋云,聚散真容易。離校日期已日趨臨近,畢業(yè)論文的的完成也隨之進(jìn)入了尾聲。從開(kāi)始進(jìn)入課題到論文的順利完成,一直都離不開(kāi)老師、同學(xué)、朋友給我熱情的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!謝謝指導(dǎo)老師彭重加老師和所有幫我的同學(xué)們。畢業(yè)設(shè)計(jì)已經(jīng)是我在大學(xué)四年的最后一次作業(yè)了,做完它之后,也是我要離開(kāi)大學(xué)的時(shí)候了...雖然經(jīng)常會(huì)想,大學(xué)畢業(yè)了,我也不用辛辛苦苦坐70多小時(shí)的火車(chē)來(lái)回跑,可以不用想家的時(shí)候回不到家了,但是真正到了我要離開(kāi)的時(shí)候卻有太多的不舍。如果我還有一次機(jī)會(huì)重新上大學(xué),我還會(huì)選擇來(lái)廣州,我不會(huì)嫌它遠(yuǎn),因?yàn)樵谶@里的四年給我的影響不能用時(shí)間來(lái)衡量,這四年以來(lái),經(jīng)歷過(guò)的所有事,所有人,都將是我以后生活回味的一部分。學(xué)友情深,情同兄妹。四年的風(fēng)風(fēng)雨雨,我們一同走過(guò),充滿(mǎn)著關(guān)愛(ài),給我留下了值得珍藏的最美好的記憶。在我的十幾年求學(xué)歷程里,離不開(kāi)父母的鼓勵(lì)和支持,是他們辛勤的勞作,無(wú)私的付出,為我創(chuàng)造良好的學(xué)習(xí)條件,我才能順利完成完成學(xué)業(yè),感激他們一直以來(lái)對(duì)我的撫養(yǎng)與培育。馬上就要離開(kāi)學(xué)校,走上工作的崗位了,這是我人生歷程的又一個(gè)起點(diǎn)。最后在這里祝福大學(xué)里跟我風(fēng)雨同舟的同學(xué)們,也祝福所有我的老師們,一路走好,未來(lái)總會(huì)是絢爛繽紛。基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專(zhuān)家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線(xiàn)間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線(xiàn)切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線(xiàn)性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門(mén)傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專(zhuān)用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)HYPERLINK"/detail.htm?30

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論