基于c#aspnetWEB的學(xué)生選課系統(tǒng)方案_第1頁
基于c#aspnetWEB的學(xué)生選課系統(tǒng)方案_第2頁
基于c#aspnetWEB的學(xué)生選課系統(tǒng)方案_第3頁
基于c#aspnetWEB的學(xué)生選課系統(tǒng)方案_第4頁
基于c#aspnetWEB的學(xué)生選課系統(tǒng)方案_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

./學(xué)士學(xué)位論文THESISOFBACHELOR題目基于WEB的學(xué)生選課系統(tǒng)學(xué)院:專業(yè):班級:學(xué)號:學(xué)生:指導(dǎo)教師:起訖日期:.目錄摘要IAbstractII第一章前言11.1學(xué)生選課系統(tǒng)系統(tǒng)概述11.2學(xué)生選課系統(tǒng)的目的和意義11.3學(xué)生選課系統(tǒng)實現(xiàn)的功能1第二章數(shù)據(jù)庫和開發(fā)工具簡介32.1學(xué)生選課系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)32.2SQLServer2000的開發(fā)環(huán)境32.3VisualStudio2005的開發(fā)環(huán)境32.4開發(fā)語言介紹4第三章學(xué)生選課系統(tǒng)的設(shè)計53.1系統(tǒng)設(shè)計53.2數(shù)據(jù)庫設(shè)計8第四章學(xué)生選課系統(tǒng)的各個功能模塊的實現(xiàn)144.1創(chuàng)建ASP.NT144.2首頁登陸模塊的實現(xiàn)144.3添加院系模塊的實現(xiàn)174.4其它模塊的設(shè)計27第五章學(xué)生選課系統(tǒng)的使用325.1系統(tǒng)的瀏覽方式325.2系統(tǒng)的具體使用方式32結(jié)論34參考文獻〔References35致36附錄37.基于WEB的學(xué)生選課系統(tǒng)摘要學(xué)生選課系統(tǒng)能夠讓學(xué)生們在網(wǎng)絡(luò)上自主選擇選修課程,教務(wù)處的工作人員則通過網(wǎng)絡(luò)來處理學(xué)生的選課信息。這個系統(tǒng)實現(xiàn)了對信息數(shù)據(jù)的瀏覽、查詢、編輯和管理等基本數(shù)據(jù)庫操作,采取模塊化的編寫思想,提高了可讀性,同時提高了開發(fā)效率,從而實現(xiàn)了校園無紙化辦公,提高選課的效率,減輕選課操作的工作量,從而提高教學(xué)管理的效率。系統(tǒng)使用VisualStudio2005作為開發(fā)平臺,使用VisualC#.NET和HTML做為程序語言,使用MSSQL作為系統(tǒng)數(shù)據(jù)庫,使用ADO.NET實現(xiàn)對數(shù)據(jù)庫的訪問。本系統(tǒng)是一個典型的信息管理系統(tǒng)<MIS>,其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。關(guān)鍵字:學(xué)生選課系統(tǒng),.NET,數(shù)據(jù)庫,模塊化,信息管理..TheStudentsSelectCourseSystemonWebAbstractTheelectivesystemenablesthestudentstoselectcoursebythemselvesontheinternet.Andthestaffoftheregistrydealwiththeelectiveinformationbytheinternet.Thesystemcarriesoutthebasicdatabaseoperationsuchasbrowsing,inquiring,editingandmanaginginformationdata.Italsocomposesinmodularizewaywitchenhancesreadabilityandexploreefficiency.Thereforethecampusno-paperworkcomestrue,atthesametimeelectiveefficiencyisimprovedandtheworkloadiddecreased.Inthisway,theefficiencyofteachingmanagementisimproved.TheVisualStudio2005isusedasexploitationplatform;VisualC#.NETandHTMLisusedasprogramlanguage;MSSQLisusedassystemdatabase;ADO.NETisusedtovisitthedatabase.ThesystemistypicalMIS,whichincludesthedevelopmentandthemaintenanceofbackgrounddatabaseaswellasthetopapplicationprogram.Astotheformer,settingupabasewithstrongdatacoherenceandintegralityaswellassecurityisdemanded.Astothelater,aprogramwithcompletefunctionwhichiseasytouseisdemanded.Keywords:Electivecoursesystem,.NET,DataBase,Modulation,MIS...TOC\o"1-3"\h\z第一章前言1.1學(xué)生選課系統(tǒng)系統(tǒng)概述學(xué)生選課系統(tǒng)以Web界面與用戶交互,為用戶提供信息并接受其操作,同時通過數(shù)據(jù)庫管理系統(tǒng)來存儲信息數(shù)據(jù)。隨著網(wǎng)絡(luò)的飛速發(fā)展,學(xué)生選課系統(tǒng)已經(jīng)成為高校必不可少的系統(tǒng)。當今的學(xué)生選課系統(tǒng)一般具有如下特點:1.頁面模塊化這類系統(tǒng)在界面設(shè)計上都采用了模塊化處理思想,把很多頁面的共有部分集成一個模塊,例如頁面的頭部和用戶管理員身份驗證等,這樣在開發(fā)時遇到這些相似的頁面部分就不需要重新編寫,只要利用已編寫好的部分就可以了。2.容錯思想系統(tǒng)的用戶或管理員有時可能會有誤操作或違規(guī)操作,系統(tǒng)會對這些無效操作予以屏蔽,保證系統(tǒng)正常運行,同時在出現(xiàn)錯誤時給出錯誤原因,以便用戶或管理員修改或者糾正。3.三層結(jié)構(gòu)設(shè)計。此類系統(tǒng)采用三層結(jié)構(gòu)設(shè)計、即程序邏輯結(jié)構(gòu)分為用戶界面層、業(yè)務(wù)邏輯處理層和數(shù)據(jù)存儲層。三層分別獨立,用戶界面與業(yè)務(wù)邏輯分離,系統(tǒng)的安全性、可維護性和擴展性都大大提高了。1.2學(xué)生選課系統(tǒng)的目的和意義網(wǎng)上選課系統(tǒng)針對在校學(xué)生和教師使用。從學(xué)生的角度來說,由于學(xué)校教學(xué)制度的改革,現(xiàn)在大部分高等院校開始實行的是學(xué)生的自主選課模式。傳統(tǒng)的教學(xué)模式〔學(xué)生按照學(xué)校安排好的課程上課已經(jīng)不能適應(yīng)新型的教學(xué)模式,如果仍然通過紙上的方式選課,一方面浪費了大量的人力、物力資源,另一方面浪費時間以及會在人為的統(tǒng)計匯總過程中出現(xiàn)可避免的差錯等情況。隨著高校人數(shù)的增多,上述弊端會越來越多的暴露出來。如果利用網(wǎng)絡(luò)進行選課,學(xué)生只要在計算機前輸入自己的個人選課信息即可完成教務(wù)部門原來幾倍的作業(yè)量。從教師的角度來說,教師提出代課申請完成課程發(fā)布的工作更加容易,得到教學(xué)的信息更加快捷,因此通過網(wǎng)上選課系統(tǒng)可以大幅度的減少教師的工作量,方便了教學(xué)工作。1.3學(xué)生選課系統(tǒng)實現(xiàn)的功能為實現(xiàn)無紙化辦工,提高選課的效率,減輕選課操作的工作量,從而提高教學(xué)管理的效率,開發(fā)一個基于WEB的學(xué)生選課系統(tǒng)。通過本系統(tǒng),學(xué)生可以在網(wǎng)絡(luò)上選擇自己的課程。同時本系統(tǒng)為院系、教師和學(xué)生提供了管理平臺,方便學(xué)校對課程分配情況進行管理,了解某一門課程的授課教師和上課班級等信息。2.主要功能本選課系統(tǒng)完成下列功能:〔1通用部分:a系統(tǒng)登錄:通過指定登錄系統(tǒng)〔學(xué)生為學(xué)號,教師為工號b密碼更改:更改自己的密碼。c注銷:結(jié)束用戶會話,保證安全。〔2學(xué)生部分:a課程查詢:查詢所有可選修課程表。b選課操作:確定選修課程。c個人課表:查看已選課程。〔3教師部分:a查看課程信息:查看擔任課程課表?!?管理員部分:a院系管理:添加、刪除院系。b專業(yè)管理:添加、刪除專業(yè)。c課程管理:添加、刪除課程。d學(xué)生信息管理:查看信息〔如班級,學(xué)號,已經(jīng)選修課程等。e教師信息管理:查看任課課程及教師詳細信息等。..第二章數(shù)據(jù)庫和開發(fā)工具簡介2.1學(xué)生選課系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)學(xué)生選課系統(tǒng)數(shù)據(jù)庫是在對高校學(xué)生選修課程工作流程進行了詳細的調(diào)查,在了解該系統(tǒng)功能,收集支持系統(tǒng)目標的基礎(chǔ)數(shù)據(jù)的情況下建立起來的。本系統(tǒng)以中文版VisualStudio2005為前臺開發(fā)工具,用SQLServer2000為后臺數(shù)據(jù)庫而實現(xiàn)的。其中主要通過ADO.NET技術(shù)來訪問數(shù)據(jù)庫。2.2SQLServer2000的開發(fā)環(huán)境2.2.1SQLServer2000的簡介MicrosoftSQLServer2000是由微軟Microsoft出品,基于關(guān)系型數(shù)據(jù)庫的大型數(shù)據(jù)庫系統(tǒng),它具有獨立于硬件平臺、對稱的多處理器結(jié)構(gòu)、搶占式多任務(wù)管理、完善的安全系統(tǒng)和容錯功能,并具有易于維護的特點[1]。SQLServer2000全面擴展了SQLServer7.0的性能可靠性和易用性使它成為一個杰出的數(shù)據(jù)庫平臺可用于大型聯(lián)機事務(wù)處理數(shù)據(jù)倉庫以及電子商務(wù)等[1]。2.2.2SQL語言的簡介SQL<StructuredQueryLanguage>,意思為結(jié)構(gòu)化查詢語言,是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言。它的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。ANSI〔美國國家標準協(xié)會規(guī)定SQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù)、從數(shù)據(jù)庫中提取數(shù)據(jù)等[2]。SQL語言之所以能夠為用戶和業(yè)界所接受,并成為國際標準,是因為它是一個綜合的、功能極強同時又簡捷易學(xué)的語言。SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,語言十分簡捷,完成核心功能只用了9個動詞,SQL語言接近英語口語,因此容易學(xué)習(xí),容易使用。2.3VisualStudio2005的開發(fā)環(huán)境2.3.1VisualStudio2005的簡介VisualStudio2005是一套完整的開發(fā)工具,用于生成ASPWeb應(yīng)用程序、XMLWebservices、桌面應(yīng)用程序和移動應(yīng)用程序。VisualBasic.NET、VisualC++.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成開發(fā)環(huán)境<IDE>,該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了.NETFramework的功能,此框架提供對簡化ASPWeb應(yīng)用程序和XMLWebservices開發(fā)的關(guān)鍵技術(shù)的訪問。VisualStudio.NET提供了若干項目模板,您可以使用它們來開始開發(fā)分布式應(yīng)用程序。企業(yè)級模板定義分布式應(yīng)用程序的初始結(jié)構(gòu),并且還提供應(yīng)用程序設(shè)計方面的結(jié)構(gòu)性和技術(shù)性指導(dǎo)。除預(yù)定義企業(yè)級模板外,還可以創(chuàng)建自定義模板,供開發(fā)人員在小組環(huán)境中使用。有關(guān)更多信息,請參見企業(yè)級模板演練和使用企業(yè)級模板創(chuàng)建分布式應(yīng)用程序的優(yōu)點。2.3.2VisualStudio2005中ASP.NET的特色:1.ASP.NET是Microsoft開發(fā)的一種新技術(shù),就是ASP.NET〔之前稱為ASP+,在.NETFramework上提供一個全方位的Web開發(fā)平臺,提供許多的基礎(chǔ)服務(wù)協(xié)助程序設(shè)計師構(gòu)建企業(yè)級的互聯(lián)網(wǎng)應(yīng)用程序。ASP.NET是構(gòu)建、管理、展開Web應(yīng)用程序最佳的平臺。整個ASP.NET是完全使用C#來編寫的,并各.NETFramework緊密地整合,提供更模塊化的設(shè)計方式。且每一個網(wǎng)頁都視為一個完全編譯過的運行時〔runtime對象,并能夠享受面向?qū)ο笤O(shè)計、及時編譯<Just-In-TimeCompilation>、與動態(tài)緩存〔Cache技術(shù)所帶來的好處。[3]。2.ASP.NET建立在.NETFramework的編程類之上,它提供了一個Web應(yīng)用程序模型,并且包含使生成ASPWeb應(yīng)用程序變得簡單的控件集和結(jié)構(gòu)[4]。ASP.NET包含封裝公共HTML用戶界面元素〔如文本框和下拉菜單的控件集。但這些控件在Web服務(wù)器上運行,并以HTML的形式將它們的用戶界面推送到瀏覽器。在服務(wù)器上,這些控件公開一個面向?qū)ο蟮木幊棠P?為Web開發(fā)人員提供了面向?qū)ο蟮木幊痰呢S富性[4]。3.ASP.NET還提供結(jié)構(gòu)服務(wù)〔如會話狀態(tài)管理和進程回收,進一步減少了開發(fā)人員必須編寫的代碼量并提高了應(yīng)用程序的可靠性。另外,ASP.NET使用這些同樣的概念使開發(fā)人員能夠以服務(wù)的形式交付軟件。使用XMLWebservices功能,ASP.NET開發(fā)人員可以編寫自己的業(yè)務(wù)邏輯并使用ASP.NET結(jié)構(gòu)通過SOAP交付該服務(wù)[5]。2.4開發(fā)語言介紹2.4.1VisualC#語言的簡介本系統(tǒng)使用的編程語言是C#,這是一種面向?qū)ο蟮木幊陶Z言。C#念作CSharp,C#是Microsoft為.NET平臺量身訂做的程序語言。C#擁有C++的強大功能,以及VisualBasic簡易使用的特性。C#是C/C++家族中第一個面向組件〔Component-Oriented的程序語言。組件設(shè)計是C#在設(shè)計上的重要考慮,置支持屬性、方法、事件、設(shè)計時屬性、運行時屬性、使用XML集成文件與注釋。使用C#不再需要如IDL、DEF.H等外部文件。C#也可以直接用來開發(fā)ASP.NET應(yīng)用程序。C#是專門為.NETFramework量身訂做的語言,它有所有.NETFramework提供的優(yōu)點,如資源回收〔GarbageCollector,不再有在漏失與指針偏移的情況發(fā)生,此外還提供許多重要的機制,如結(jié)構(gòu)化的異常處理和類型安全性等。[6]2.4.2VisualC#語言的特點1.C#是由C和C++派生而來的一種"簡單、流行、面向?qū)ο?、類型安?的程序設(shè)計語言,C#意在綜合VisualBasic的高效率和C++的強大功能[7]。2.這是一種非常完美的語言,適用于各種操作系統(tǒng),并且與Windows緊密地結(jié)合在一起。3.想放入C#的任何東西〔無論何種語言,只要在Windows的.NET子系統(tǒng)下建立和包裝的都可以使用Windows的運行庫[8]。.第三章學(xué)生選課系統(tǒng)的設(shè)計3.1系統(tǒng)設(shè)計系統(tǒng)設(shè)計思想本系統(tǒng)才用三層架構(gòu)設(shè)計,它的工作原理圖如圖3-1所示。用戶界面ASP.NET代碼用戶界面ASP.NET代碼功能代碼SQLServer數(shù)據(jù)庫提交操作信息返回處理結(jié)果生成SQL語句操作數(shù)據(jù)庫返回操作結(jié)果數(shù)據(jù)存儲學(xué)生選課系統(tǒng)操作界面采用三層架構(gòu),用戶界面層通過統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請求,業(yè)務(wù)層按自己的邏輯規(guī)則在請求處理后進行數(shù)據(jù)庫操作,然后將數(shù)據(jù)返回給用戶界面層。這樣,用戶界面與數(shù)據(jù)存儲相互獨立,用戶界面層甚至可以不知道數(shù)據(jù)庫的結(jié)構(gòu),而只是通過接口實現(xiàn)操作。這種方式增加了數(shù)據(jù)庫的安全性,同時也降低了對用戶界面層的開發(fā)要求,因為它根本就不需要進行任何數(shù)據(jù)庫操作。系統(tǒng)模塊設(shè)計本系統(tǒng)分為用戶部分、教師部分和管理員部分,這三部分都會用到數(shù)據(jù)庫中的信息并對數(shù)據(jù)庫進行讀寫操作,但是它們的功能是獨立的,可分開來設(shè)計和編寫,提高模塊聚性,降低耦合性。用戶部分的功能模塊如下圖3-2所示:學(xué)生登錄學(xué)生登錄學(xué)生信息個人信息管理選課查看選課信息查看個人信息添加選課課程查看選課信息刪除選課圖3-2用戶部分的功能模塊圖教師的功能模塊如下圖3-3所示:教師登錄教師登錄教師登錄查看任課表修改密碼圖3-3教師的功能模圖管理員的功能模塊如下圖3-4所示:管理員登錄管理員登錄管理員登錄院系管理課程管理專業(yè)管理教師管理學(xué)生管理查看院系添加院系修改院系刪除院系查看專業(yè)添加專業(yè)修改專業(yè)刪除專業(yè)查看課程添加課程修改課程刪除課程查看學(xué)生教師信息任課信息圖3-4管理員的功能模塊圖系統(tǒng)結(jié)構(gòu)流程圖通過上面的需求分析,學(xué)生選課系統(tǒng)結(jié)構(gòu)框架流程圖如圖3-5所示。數(shù)據(jù)庫用戶信息表數(shù)據(jù)庫用戶信息表學(xué)生登錄管理員登錄

教師登錄課程管理專業(yè)管理院系管理修改密碼刪除選課添加選課學(xué)生管理教師管理修改密碼查看課表后臺數(shù)據(jù)庫圖3-5系統(tǒng)結(jié)構(gòu)框架流程圖3.2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫需求分析用戶的需求具體體現(xiàn)在對各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫能充分滿足各種數(shù)據(jù)的輸出和輸入。通過對上述系統(tǒng)功能的分析,針對學(xué)生選課系統(tǒng)的需求,總結(jié)出如下的需求信息:用戶分學(xué)生用戶、教師用戶和管理員用戶。一個院系包括多個專業(yè)。一個專業(yè)包括多個學(xué)生。一個專業(yè)包括多門課程。一門課程對應(yīng)一位教師一個教師可以教多門課程。一個院系對應(yīng)多個教師。一個學(xué)生可選多門課程,每門課程可以由多個學(xué)生選學(xué)。經(jīng)過對上述系統(tǒng)功能的分析和需求總結(jié),設(shè)計如下所示的數(shù)據(jù)項:管理員信息,包括用戶名和密碼。教師,包括教師名、教師工號、所屬院系等。學(xué)生,包括學(xué)號、學(xué)生、所屬院系、性別、所屬專業(yè)等。院系,包括院系名稱。專業(yè),包括專業(yè)名稱、所屬院系。課程,包括課程名稱、上課地點、任課教師、學(xué)分、上課時間?!?數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計:得到上面的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)以后,就可設(shè)計出能滿足需求的各種實體,以及它們間的關(guān)系,再用E-R圖表示出來。實體之間關(guān)系的E-R圖,如圖3-6所示。11NNNNN11N1N1院系專業(yè)學(xué)生課程教師選課圖3-6實體之間關(guān)系的E-R圖管理員信息實體E-R圖,如圖3-7所示。管理員管理員用戶名密碼圖3-7管理員信息實體E-R圖教師信息實體E-R圖,如圖3-8所示。教師教師教師姓名教師工號所屬院系性別職稱圖3-8教師信息實體E-R圖學(xué)生信息實體E-R圖,如圖3-9所示。學(xué)生學(xué)生姓名學(xué)號性別所屬院系列產(chǎn)品所屬專業(yè)身份證號圖3-9學(xué)生信息實體E-R圖學(xué)生信息實體E-R圖,如圖3-10所示。課程課程任課老師教師上課地點課程名稱上課時間學(xué)分圖3-10學(xué)生信息實體E-R圖數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計:本系統(tǒng)使用的是SQLServer2000數(shù)據(jù)庫。SQLServer2000是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。根據(jù)前面數(shù)據(jù)庫的需求分析,可以得出如下數(shù)據(jù)表:1、學(xué)生信息表<Stu_infor>:該表包括學(xué)生學(xué)號<Stu_id>、<Stu_name>、性別<Sex>、號<Identification>、學(xué)歷<Edu_gb>、學(xué)制<Edu_sys>、院<系><Depat>、專業(yè)<Profession>、班級<Class>、已修學(xué)分<Credit>等字段。具體描述信息請參照表3-1所示。表3-1學(xué)生信息表<Stu_infor>字段名數(shù)據(jù)類型說明Stu_idvarchar為主鍵,學(xué)生學(xué)號Stu_namevarcharSexvarchar性別Identificationvarchar號Edu_gbvarchar學(xué)歷Edu_sysint學(xué)制Depatvarchar所屬院系Professionvarchar專業(yè)Classvarchar班級Creditfloat學(xué)分2、教師信息表<Teacher>:該表包括教師工號<Tea_id>、<Tea_name>、性別<Sex>、職稱<Tea_tital>、院<系><In_depat>等字段。具體描述信息請參照表3-2所示。表3-2教師信息表<Teacher>字段名數(shù)據(jù)類型說明Tea_idvarchar為主鍵,教師工號Tea_namevarcharSexvarchar性別Tea_titalvarchar職稱In_depatvarchar所屬院系3、院<系>表〔Depat:該表包括院系編號<Dep_id>和名稱<Dep_name>。具體描述信息請參照表3-3所示。表3-3院<系>表<Depat>字段名數(shù)據(jù)類型說明Dep_idint為主鍵,院系編號Dep_namevarchar學(xué)院名稱4、專業(yè)表<Profession>:該表包括專業(yè)編號<Pro_id>、專業(yè)名稱<Pro_name>、院系<In_depat>字段。具體描述信息請參照表3-4所示。表3-4專業(yè)表<Profession>字段名數(shù)據(jù)類型說明Pro_idint為主鍵,專業(yè)編號Pro_namevarchar專業(yè)名稱In_depatvarchar所屬院系5、課程表<Course>:該表包括課程編號<Cou_id>、課程名稱<Cou_name>、學(xué)分<Credit>、任課教師<Cou_teacher>、上課地點<Cou_class>、上課時間<Cou_describe>等字段。具體描述信息請參照表3-5所示。表3-5課程表<Course>字段名數(shù)據(jù)類型說明Cou_idint為主鍵,課程編號Cou_namevarchar課程名稱Cou_creditfloat學(xué)分Cou_teachervarchar任課教師Cou_classvarchar上課地點Cou_describevarchar上課時間6、學(xué)生選課表<Stu_course>:該表包括學(xué)生學(xué)號<Stu_id>和課程編號<Cou_id>。具體描述信息請參照表3-6所示。表3-6學(xué)生選課表<Stu_course>字段名數(shù)據(jù)類型說明Stu_idvarchar關(guān)聯(lián)為學(xué)生信息表〔Stu_inforCou_idint關(guān)聯(lián)為課程信息表〔Course7、管理員表<User_admin>:該表包括<Admin_id>和密碼<Password>。具體描述信息請參照表3-7所示。表3-7管理員表<User_admin>字段名數(shù)據(jù)類型說明Admin_idvarchar管理員passwordvarchar密碼8、教師表<User_tea>:該表包括<Tea_id>和密碼<Password>。具體描述信息請參照表3-8所示。表3-8教師表<User_te>字段名數(shù)據(jù)類型說明Tea_idvarchar教師passwordvarchar密碼9、學(xué)生表<User_student>:該表包括<Stu_id>和密碼<Password>。具體描述信息請參照表3-9所示。表3-9學(xué)生表<User_student>字段名數(shù)據(jù)類型說明Stu_idvarchar學(xué)生學(xué)號passwordvarchar密碼數(shù)據(jù)庫的具體實現(xiàn)〔此處只以學(xué)生信息表的代碼為例1.建立數(shù)據(jù)庫的代碼建立名為ST_Select_Course的數(shù)據(jù)庫并建立用戶信息表Stu_infor,代碼如下:createdatabaseST_Select_CourseuseST_Select_CoursecreatetableStu_infor<Stu_idvarchar<20>primarykeynotnull,Stu_namevarchar<20>notnull,Sexvarcher<8>,Identificationvarchar<50>,Edu_gbvarchar<10>,Edu_sysint,Depatvarchar<20>,Professionvarchar<50>,Classvarchar<50>,Creditfloat>>.第四章學(xué)生選課系統(tǒng)的各個功能模塊的實現(xiàn)4.1創(chuàng)建ASP.NT在完成了數(shù)據(jù)庫的設(shè)計和創(chuàng)建,接下來介紹系統(tǒng)的具體設(shè)計方法和代碼。首先創(chuàng)建一個VisualC#的ASP.NET,操作步驟如下:1.啟動VisualStudio2005開發(fā)環(huán)境后,選擇"文件"——"新建"命令。2.在"新建"對話框里,語言選擇VisualC#,其它保持默認設(shè)置。具體設(shè)置如圖4-1所示。圖4-1創(chuàng)建"ASP.NET"窗口4.2首頁登陸模塊的實現(xiàn)創(chuàng)建完成后,自動創(chuàng)建了一個文件名為"Default.aspx"的網(wǎng)頁,在這里保持其默認名<Default.aspx>為首頁面。下面向網(wǎng)頁中添加控件并完成布局,布局完成后的效果見圖4-2所示。圖4-2系統(tǒng)首頁在登錄頁面中,使用的控件及其屬性設(shè)置請參照表4-1所示。表4-1登陸頁面屬性設(shè)置表控件名ID描述DropDownListmydropdownlist為用戶提供選擇身份類型TextBoxUser_id接受用戶輸入用戶名TextBoxPassword接受用戶輸入密碼ImageButtonLogin_click取消按鈕IimageButtoncancel取消按鈕Buttongetpassword第一次使用系統(tǒng)激活密碼登陸頁面主要是為了完成對用戶類型,用戶名,密碼的驗證,完成用戶的登陸過程。在此需要說明的是,服務(wù)器控件mydropdownlist是用于系統(tǒng)判斷用戶類型,所在Default.aspx頁面后臺代碼Page_Load事件中加入一段代碼用于初始mydropdownlist控件的值。這段代碼如下:if<!IsPostBack>{ArrayListiden=newArrayList<>;iden.Add<"學(xué)生">;iden.Add<"教師">;iden.Add<"管理員">;mydropdownlist.DataSource=iden;mydropdownlist.DataBind<>;}另外,因為在登錄后還需要用到用戶的登錄信息,所以在這里使用了SESSION來記錄用戶的登錄賬號。完成登錄功能的后臺代碼如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;trols;usingSystem.Collections;usingSystem.Data.SqlClient;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load<objectsender,EventArgse>{if<!IsPostBack>{ArrayListiden=newArrayList<>;iden.Add<"學(xué)生">;iden.Add<"教師">;iden.Add<"管理員">;mydropdownlist.DataSource=iden;mydropdownlist.DataBind<>;}}protectedvoidlogin_Click<objectsender,ImageClickEventArgse>{inta=mydropdownlist.SelectedIndex;stringmycomm_txt;SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;if<a==0>mycomm_txt="selectcount<*>fromUser_stuwhereStu_id='"+user_id.Text+"'andpassword='"+password.Text+"'";elseif<a==1>mycomm_txt="selectcount<*>fromUser_teawhereTea_id='"+user_id.Text+"'andpassword='"+password.Text+"'";elsemycomm_txt="selectcount<*>fromUser_adminwhereAdmin_id='"+user_id.Text+"'andpassword='"+password.Text+"'";//default:mycomm_txt="selectcount<*>fromUser_stuwhereStu_id='"+user_id.Text+"'andpassword='"+password.Text+"'";SqlCommandmycomm=newSqlCommand<mycomm_txt,myconn>;myconn.Open<>;objectobj=mycomm.ExecuteScalar<>;if<obj!=null&&obj.ToString<>!="0">{//FormsAuthentication.SetAuthCookie<user_id,false>;if<a==0>{Stringid="student.aspx?id="+user_id.Text;Response.Redirect<id>;Response.Redirect<"student.aspx">;}elseif<a==1>{Session["tea_id"]=user_id.Text;//Stringid="student.aspx?id="+user_id.Text;//Response.Redirect<id>;Response.Redirect<"teacher.aspx">;}elseResponse.Redirect<"main.aspx">;}else{Response.Write<"<scriptlanguage='javascript'>alert<'登錄失??!'>;</script>">;}myconn.Close<>;}protectedvoidcancel_Click<objectsender,ImageClickEventArgse>{user_id.Text="";password.Text="";}protectedvoidget_password_Click<objectsender,EventArgse>{Response.Write<"<scriptlanguage='javascript'defer>ret=window.showModalDialog<'stu_get_password.aspx?Action=add',window,'dialogHeight:150px;dialogWidth:230px;center:Yes;Help:No;Resizable:No;Scroll:auto;Status:no;'>;</script>">;}}4.3添加院系模塊的實現(xiàn)右鍵單擊"解決方案管理器"的"ST_Select_Course"的"添加新項",然后在里面選擇"Web窗體",給窗體改名為"main.aspx"。具體請參照圖4-3所示。圖4-3添加新項在這里需要重點強調(diào)的是,整個系統(tǒng)分三個部分,分別是后臺管理部分也就是管理員權(quán)限部分,教師部分和學(xué)生部分。三個身份登錄系統(tǒng)后的首頁面分別為main.aspx、teacher.aspx、student.aspx,它們的頁面效果分別請參見如下圖4-4、圖4-5、圖4-6所示。圖4-4管理員登錄界面圖4-5教師登錄界面圖4-6學(xué)生登錄界面顯然,三個身份登錄后的界面幾乎是相同的,這里我們需要提一下的是模塊的重復(fù)使用性,以提高程序開發(fā)效率,在此重點解釋管理員登錄界面的實現(xiàn)。管理員登錄界面其實是包含了兩個部分,上部是一個名為top_aspx的頁面,下部為body.aspx的頁面。其中,top_aspx主要用于描述系統(tǒng)功能操作,body.aspx主要作為一個容器,用來顯示系統(tǒng)操作結(jié)果。Main.aspx頁面代碼如下:<%PageLanguage="C#"AutoEventWireup="true"CodeFile="main.aspx.cs"Inherits="main"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""./TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="./1999/xhtml"><headid="Head1"runat="server"><title>歡迎進入學(xué)生選課系統(tǒng)</title><linkhref="css/style.css"rel="stylesheet"type="text/css"/></head><body><tablewidth="100%"height="421"border="0"><trwidth="100%"height="99"><tdvalign="top"><iframesrc="common/top.aspx"name="top"scrolling="no"framespacing="0"frameborder="no"border="0"width="100%"height="100%"></iframe></td></tr><trwidth="100%"height="100%"><tdvalign="top"><iframesrc="common/body.aspx"name="body"scrolling="auto"framespacing="0"frameborder="no"border="0"width="100%"height="100%"></iframe></td></tr></table></body></html>閱讀如上代碼會發(fā)現(xiàn),main.aspx頁面只有兩個框架,上部分是top.aspx,用于操作導(dǎo)航部分,下部分是body.aspx,作為一個容器,用于顯示操作結(jié)果。以top.aspx為例,top.aspx的效果如圖4-7所示。圖4-7top.aspx頁面效果其代碼如下:<%PageLanguage="C#"AutoEventWireup="true"CodeFile="top.aspx.cs"Inherits="common_top"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""./TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><linkhref="style.css"rel="stylesheet"type="text/css"><!--<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="style.css"rel="stylesheet"type="text/css">--><styletype="text/css"><!--.style1{font-size:13px}--></style></head><body><tablewidth="100%"height="68"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="285"background="../images/default_01.gif"> </td><tdbackground="../images/default_02.gif"> </td><tdwidth="423"valign="top"background="../images/default_03.gif"><tablewidth="100%"border="0"cellspacing="-2"cellpadding="-2"><tr><tdheight="43"colspan="2"> </td></tr><tr><tdwidth="10%"height="22"> </td><tdwidth="90%"align="center"class="shadowstyle1"><ahref="../main_depat.aspx"target="body">院系管理</a>|<ahref="../main_profession.aspx"target="body">專業(yè)管理</a>|<ahref="../main_course.aspx"target="body">課程管理</a>|<ahref="../main_teacher.aspx"target="body">教師管理</a>|<ahref="../main_student.aspx"target="body">學(xué)生管理</a>|<ahref="../Default.aspx"target="_parent">退出</a></td></tr></table></td></tr></table><tablewidth="100%"height="31"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="283"height="31"background="../images/default_04.gif"style="height:37px"><tablewidth="96%"height="22"border="0"cellpadding="-2"cellspacing="-2"><tr><tdwidth="5%"style="height:22px"></td><tdwidth="55%"align="center"class="word_grey"style="height:22px"><scriptlanguage="JavaScript">//制作年月日的JavaScript代碼vartoday=newDate<>;varmonth=today.getMonth<>+1if<today.getDay<>==1>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期一">;}if<today.getDay<>==2>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期二">;}if<today.getDay<>==3>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期三">;}if<today.getDay<>==4>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期四">;}if<today.getDay<>==5>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期五">;}if<today.getDay<>==6>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期六">;}if<today.getDay<>==0>{document.write<" "+today.getYear<>+"年"+month+"月"+today.getDate<>+"日星期日">;}</script><tdwidth="40%"style="height:22px"></td></tr></table></td><tdbackground="../images/default_05.gif"align="left"style="height:31px"></td></tr></table></body></html>通過如上描述,現(xiàn)在可以設(shè)計添加院系模塊了。選擇添加新項,選擇Web窗體,命名為main_depat。頁面main_depat設(shè)計完成之后的效果如圖4-8所示。圖4-8添加院系圖在添加院系頁面中,使用的控件及其屬性設(shè)置請參照表4-2所示。表4-2添加院系頁面屬性設(shè)置表控件名ID描述DataGridmydatagrid顯示數(shù)據(jù)信息TextBoxDepat_name接受用戶輸入院系名稱Buttonadd確定添加按按鍵其中控件mydatagrid的主要代碼如下:<asp:DataGridid="mydatagrid"runat="server"AutoGenerateColumns="false"AllowPaging="true"PageSize="6"PagerStyle-Mode="NumericPages"DataKeyField="dep_name"PagerStyle-HorizontalAlign="Center"OnPageIndexChanged="mydatagrid_page"BackColor="#DBEBFB"BorderColor="DodgerBlue"ShowFooter="false"CellPadding="3"Font-Name="Verdana"Font-Size="8pt"HeaderStyle-BackColor="lightblue"OnEditCommand="mydatagrid_edit"OnDeleteCommand="mydatagrid_delete"OnCancelCommand="mydatagrid_cancel"OnUpdateCommand="mydatagrid_update"Width="100%"BorderStyle="Inset"BorderWidth="1px"><Columns><asp:EditCommandColumnEditText="編輯"CancelText="取消"UpdateText="保存"ButtonType="PushButton"/><asp:ButtonColumnText="<divonclick="returnconfirm<'確實刪除該記錄嗎?'>">刪除</div>"HeaderText="刪除"CommandName="Delete"></asp:ButtonColumn><asp:TemplateColumnHeaderText="學(xué)院名稱"><ItemTemplate><asp:LabelID="Label1"runat="server"Text='<%#DataBinder.Eval<Container.DataItem,"dep_name">%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxid="edit_dep_name"runat="server"Text='<%#DataBinder.Eval<Container.DataItem,"dep_name">%>'></asp:TextBox><asp:RequiredFieldValidatorid="rfv"runat="server"ControlToValidate="edit_dep_name"Display="Dynamic"ErrorMessage="不可為空"></asp:RequiredFieldValidator></EditItemTemplate></asp:TemplateColumn></Columns><PagerStyleHorizontalAlign="Center"Mode="NumericPages"NextPageText="下一頁"PrevPageText="上一頁"/><HeaderStyleBackColor="DeepSkyBlue"BorderColor="Chartreuse"BorderStyle="Dotted"Font-Bold="True"/><AlternatingItemStyleBackColor="SkyBlue"BorderColor="LawnGreen"BorderWidth="1px"/><FooterStyleBackColor="White"BorderColor="Lime"/><SelectedItemStyleBackColor="SkyBlue"BorderColor="Lime"ForeColor="LightSkyBlue"/></asp:DataGrid>因為在頁面中使用了DataGrid控件,所以必須在頁面初始化是綁定數(shù)據(jù)庫。頁面main_depat.aspx的后臺代碼如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;{protectedvoidPage_Load<objectsender,EventArgse>{if<!IsPostBack>BindGrid<>;}privatevoidBindGrid<>{try{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlDataAdaptermycomm=newSqlDataAdapter<"selectdep_namefromdepat",myconn>;DataSetds=newDataSet<>;mycomm.Fill<ds,"depat">;mydatagrid.DataSource=ds.Tables["depat"].DefaultView;mydatagrid.DataBind<>;myconn.Close<>;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}}protectedvoidadd<objectsender,EventArgse>{stringstr_insert="insertintodepat<dep_name>values<dep_name>";SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlCommandmycomm2=newSqlCommand<str_insert,myconn>;mycomm2.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm2.Parameters["dep_name"].Value=depat_name.Text;myconn.Open<>;if<judgment_weather_repetition<depat_name.Text>==0>try{mycomm2.ExecuteNonQuery<>;BindGrid<>;//myconn.Close<>;}catch{Response.Write<e.ToString<>>;}elseResponse.Write<"<scriptlanguage='javascript'>alert<'已經(jīng)存在該條記錄!'>;</script>">;myconn.Close<>;}publicvoidmydatagrid_edit<Objectsender,DataGridCommandEventArgsE>{mydatagrid.EditItemIndex=<int>E.Item.ItemIndex;BindGrid<>;}publicvoidmydatagrid_update<Objectsender,DataGridCommandEventArgsE>{//stringinit_str=mydatagrid.DataKeys[E.Item.ItemIndex];stringupdat="updatedepatsetdep_name=dep_namewheredep_name='"+mydatagrid.DataKeys[E.Item.ItemIndex]+"'";SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;SqlCommandmycomm_updat=newSqlCommand<updat,myconn>;mycomm_updat.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm_updat.Parameters["dep_name"].Value=<<TextBox>E.Item.FindControl<"edit_dep_name">>.Text;myconn.Open<>;try{if<judgment_weather_repetition<<<TextBox>E.Item.FindControl<"edit_dep_name">>.Text>==0>{mycomm_updat.ExecuteNonQuery<>;Response.Write<"<scriptlanguage='javascript'>alert<'已成功更新!'>;</script>">;}elseResponse.Write<"<scriptlanguage='javascript'>alert<'您更改后的記錄已經(jīng)存!'>;</script>">;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}myconn.Close<>;BindGrid<>;}publicvoidmydatagrid_cancel<Objectsender,DataGridCommandEventArgsE>{mydatagrid.EditItemIndex=-1;BindGrid<>;}publicvoidmydatagrid_delete<Objectsender,DataGridCommandEventArgsE>{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;stringdel="deletefromdepatwheredep_name=dep_name";SqlCommandmycomm_del=newSqlCommand<del,myconn>;mycomm_del.Parameters.Add<newSqlParameter<"dep_name",SqlDbType.VarChar,20>>;mycomm_del.Parameters["dep_name"].Value=mydatagrid.DataKeys[E.Item.ItemIndex];myconn.Open<>;try{mycomm_del.ExecuteNonQuery<>;Response.Write<"<scriptlanguage='javascript'>alert<'成功刪除!'>;</script>">;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}BindGrid<>;myconn.Close<>;}publicvoidmydatagrid_page<Objectsender,DataGridPageChangedEventArgsE>{try{mydatagrid.CurrentPageIndex=E.NewPageIndex;BindGrid<>;}catch<System.Exceptione>{Response.Write<e.ToString<>>;}}privateintjudgment_weather_repetition<stringa>{SqlConnectionmyconn=newSqlConnection<ConfigurationSettings.AppSettings["connection"]>;stringstr="selectcount<*>fromdepatwheredep_name='"+a+"'";SqlCommandmycomm1=newSqlCommand<str,myconn>;myconn.Open<>;int

溫馨提示

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

評論

0/150

提交評論