




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.../理工學院課程設計報告課程名稱數(shù)據(jù)庫課程設計設計題目教務管理系統(tǒng)專業(yè)計算機科學與技術班級學號姓名完成日期20XX12月30日課程設計任務書設計題目:教務管理系統(tǒng)設計內容與要求:類似于我校教務管理系統(tǒng),有四類用戶:教務員可以輸入學生、教師、班級、課程信息,一個班級只屬于一個專業(yè),一個學生只屬于一個班級。教務員負責輸入每個專業(yè)、每個班級需要學習哪些課程,指定課程的任課教師。教師可以查看學習該課程的學生名單。課程結束后,教師可以錄入課程成績。一個教師可以教授多個班的多門課程,每門課由多位老師講授。課程分兩類,必修課和選修課。系統(tǒng)要記錄每個學生學習各門必修課的成績,還要記錄學生選修了哪些選修課以及課程成績。學生可以查看自己各門課程的成績。學生還可以進行評教,給老師打分。系統(tǒng)管理員可以輸入教室信息,并結合班級、課程、教室信息實現(xiàn)自動排課。指導教師:2013年課程設計評語成績:指導教師:_______________年月日...目錄1概述.21.1課程設計目標.21.2課程設計的背景和意義.21.1.2課程設計的背景22需求分析.32.1系統(tǒng)需求.32.2可行性分析.32.3用戶要求.32.3.1信息需求.32.3.2處理需求.42.3.3.課程設計的意義43概念結構設計.63.1設計分析.63.2概念模型設計.63.2.1局部概念結構設計63.2.2全局概念結構模型<E-R圖>74邏輯結構設計.85物理結構設計105.1數(shù)據(jù)表的設計105.2數(shù)據(jù)庫完整性設計125.2.1數(shù)據(jù)庫實體完整性設計125.2.2數(shù)據(jù)庫參照完整性設計125.2.3數(shù)據(jù)庫用戶定義完整性設計135.3數(shù)據(jù)庫安全性設計136應用程序設計146.1系統(tǒng)功能模塊圖146.2系統(tǒng)界面157設計總結288體會與收獲29參考文獻301概述1.1課程設計目標課程設計總的目標是衡量學生是否取得學習效果,培養(yǎng)學生具有專業(yè)網(wǎng)站初步的規(guī)劃、設計、制作能力。具體表現(xiàn)在網(wǎng)站內容、功能、安全等方面合理策劃和規(guī)劃;培養(yǎng)具有主頁和二級頁面的創(chuàng)意、設計等方面的技術處理能力和具有強大的動態(tài)效果制作能力。培養(yǎng)學生具有基于后臺數(shù)據(jù)庫的編程技術,實現(xiàn)客戶—服務器端交互式動態(tài)網(wǎng)頁的制作能力,掌握實際網(wǎng)頁設計與制作開發(fā)流程和開發(fā)方法。1.2課程設計的背景及意義現(xiàn)如今高等院校的招生人數(shù)越來越多,必然就會有大量的學生信息、教師信息及課程信息需要處理。如果只靠人力來完成,這將會變成一項非常繁瑣、復雜的工作,而且還有可能出現(xiàn)很多意想不到的錯誤,給管理這些數(shù)據(jù)帶來了極大的不便,越來越不適合高校的發(fā)展需要。教務管理系統(tǒng)是一個龐大而復雜的系統(tǒng),它包括對教師信息的管理,對課程資料的管理,對學生信息的管理和對學生成績的管理等主要功能。教務管理系統(tǒng)是每所高校的一項必不可少的內容,它的好壞直接影響到學校的主要工作,此系統(tǒng)一旦癱瘓,不僅會影響到學校的每一位學生,學校也會因此受到非常嚴重的損失。隨著我校近幾年來的快速發(fā)展,辦學模式多元化,在校學生規(guī)模不斷擴大,為了加速對教務管理的計算機化,我校需要開發(fā)出符合我校實際的教務管理系統(tǒng),為學校教學管理提供一個快速、簡單規(guī)范的管理平臺,同時也方便教員查詢相關信息,提高信息傳播速度,擴大信息共享范圍。所以,現(xiàn)在設計一個功能完整、操作簡單以及界面友好的教務管理系統(tǒng)變得非常重要。通過這個系統(tǒng),管理員能夠對教師信息、課程信息、學生信息和學生成績進行查詢、添加、修改和刪除等操作,用戶也可以對自己的基本信息進行修改,學生還可以用該系統(tǒng)進行網(wǎng)上選課和成績查詢,非常的方便。因此,本系統(tǒng)開發(fā)的總體目標就是在教務管理中實現(xiàn)信息管理的系統(tǒng)化、自動化,減少工作繁瑣度,增加效率、方便性。2需求分析2.1系統(tǒng)需求通過調查,要求系統(tǒng)需要有以下功能:=1\*GB2⑴由于操作人員的計算機知識普遍較差,要求有良好的人機界面;=2\*GB2⑵由于該系統(tǒng)的使用對象多,要求有較好的權限管理;=3\*GB2⑶原始數(shù)據(jù)修改簡單方便,支持多條件修改=4\*GB2⑷方便的數(shù)據(jù)查詢,支持多條件查詢;=5\*GB2⑸在相應的權限下,刪除數(shù)據(jù)方便簡單,數(shù)據(jù)穩(wěn)定性好;=6\*GB2⑹數(shù)據(jù)計算自動完成,盡量減少人工干預;2.2可行性分析由于本系統(tǒng)管理的對象單一,都是在校學生,且每個數(shù)據(jù)內容具有較強的關聯(lián)性,涉及的計算過程不是很復雜。因此,比較適合于采用數(shù)據(jù)庫管理。且學校用于學生管理的微機都是PIII以上的機器,在存儲量、速度方面都能滿足數(shù)據(jù)庫運行的要求。在技術難度方面,由于有指導老師的指導和相關參考文獻,特別是網(wǎng)上資料,特別是參考其它程序的功能,因此完全可以實現(xiàn)。本系統(tǒng)的設計是在WindowXP操作系統(tǒng)環(huán)境下,使用VS開發(fā)成功的。在開發(fā)過程中,如何選擇數(shù)據(jù)庫管理是一個重要的問題,目前,數(shù)據(jù)庫產品較多、開發(fā)工具也很多。每種產品都具有各自的特點和適用范圍,因此,在選擇數(shù)據(jù)庫時,應考慮數(shù)據(jù)庫應用的特點及適用范圍,在選擇開發(fā)工具時也考慮它的健壯性、可移性、安全性等問題。2.3用戶要求信息需求教務管理系統(tǒng)涉及的實體有:教師——工作證號、姓名、職稱、電話等;學生——學號、姓名、性別、出生年月等;班級——班號、最低總學分等;系——系代號、系名和系辦公室電話等;課程——課序號、課名、學分、上課時間及名額等。這些實體之間的聯(lián)系如下:每個學生都屬于一個班,每個班都屬于一個系,每個教師也都屬于一個系。每個班的班主任都由一名教師擔任。一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同的〔課序號是唯一的。一名同學可以選多門課,一門課可被若干同學選中。一名同學選中的課若已學完,應該記錄有相應成績。2.3.2教務系統(tǒng)主要提供數(shù)據(jù)維護、選課和信息查詢。其中常見的查詢有:系統(tǒng)中各對象的基本信息查詢。查詢指定班、系的學生信息〔名單、人數(shù)等。查詢學生的成績、學分情況。查詢教師授課情況和學生選課情況……。2.3.3安全性要求:1.系統(tǒng)應設置訪問用戶的標識以鑒別是否是合法用戶,并要求合法用戶設置其密碼,保證用戶身份不被盜用;2.系統(tǒng)應對不同的數(shù)據(jù)設置不同的訪問級別,限制訪問用戶可查詢和處理數(shù)據(jù)的類別和內容;3.系統(tǒng)應對不同用戶設置不同的權限,區(qū)分不同的用戶,如學生,教師,系統(tǒng)管理員。完整性要求:1.各種信息記錄的完整性,關鍵信息記錄內容不能為空;2.各種數(shù)據(jù)間相互的聯(lián)系的正確性;3.相同的數(shù)據(jù)在不同記錄中的一致性。2.4需要的信息管理模塊1、學生信息管理該模塊是教務工作人員進行對學生信息的管理,進行學生信息的添加、修改、刪除。2、教師信息管理教務工作人員通過此模塊來管理教師信息,包括教師信息的添加、修改、刪除等。信息的添加時,需要驗證教師的編號是否重復;刪除和和修改學生信息,和學生信息管理模塊相同。院系管理此模塊是用來管理院系的信息,包括班級院系的添加,修改,刪除等。在進行信息的添加時,需要進行班級的編號是否重復的檢查,如院系編號重復則對用戶進行提示,不重復則添加成功。院系管理模塊的刪除和修改和學生信息管理模塊相同。課程信息管理教務工作人員通過該模塊來管理課程的基本信息,包括課程信息的添加,修改,刪除和班級課程的設置等,具體做法同前面的模塊。成績管理教務工作人員通過該模塊來進行學生成績的管理,在進行學生成績的添加時,可用它來為學生設置所在班級的課程表來直接輸入成績。綜合查詢通過該模塊可以查詢教務所需要的各種信息。如學生信息查詢提供了包括學生學號、姓名、所在班級、班主任名字和宿舍等信息,學生信息進行查詢的各種查詢條件,用戶可以根據(jù)單個的查詢條件或者它們的組合來進行查詢。同時,在查詢的時候還提供了進行模糊查詢的功能,即該模塊能夠利用讀者輸入的非完整的查詢條件進行查詢,這樣更加方便了用戶的查詢管理。綜合查詢模塊包括了學生信息查詢、教師信息查詢、班級信息查詢、院系信息查詢、課程信息查詢和成績查詢等各種功能查詢。3概念結構設計3.1設計分析在概念結構設計中,我采用自底向上設計概念結構的方法。即第一步抽象數(shù)據(jù)并設計局部視圖,第二步是集成局部視圖,得到全局的概念結構。3.2概念模型設計局部概念結構設計〔1、系內的關系模式圖工資1工資1n1n1n教師班級屬于最低總學分班號電話郵箱姓名工作證號系系辦公室電話系名系代號屬于工作學生學號年齡性別姓名系代號系代號圖3-1系內關系模式圖〔2、選課系統(tǒng)的關系模式圖選修選修期中成績平時成績最后成績總評成績期末成績年齡學號課名學分課序號年齡學號課名學分課序號nm姓名課程學生nm姓名課程學生名額性別名額性別系代號系代號圖3-2選課系統(tǒng)的關系模式圖課序號課名〔3、教師授課系統(tǒng)關系模型圖課序號課名授課工資教師電話郵箱姓名工作證號授課工資教師電話郵箱姓名工作證號課程n1名額學分名額學分圖3-3教師授課系統(tǒng)關系模型圖〔4、教師與班級的關系模型圖課名課名班級負責班級負責最低總學分班號教師電話工資姓名工作證號n1郵箱郵箱圖3-4教師與班級的關系模型圖全局概念結構模型〔E-R圖選修平時成績最后成績總評成績期中成績期末成績選修平時成績最后成績總評成績期中成績期末成績課名課序號學分年齡學號姓名nm姓名nm課程學生課程學生名額性別n名額性別n系代號系代號屬于屬于nn11課名班號授課課名班號授課負責班級n負責班級n最低總學分n最低總學分n屬于1屬于11111工作n1工作n1工資系教師工資系教師系代號系名系辦公室電話電話姓名工作證號系代號系名系辦公室電話電話姓名工作證號郵箱圖3-5全局概念結構模型圖4邏輯結構設計關系模式的設計與優(yōu)化E-R圖向關系模型的轉換:"教師"實體對應的關系模式:教師〔工作證號,姓名,工資,電話,郵箱,系代號代碼表示為:Teacher〔Tno.Tname.Salary.Tel.Email.Dno其中,工作證號為其候選碼,又因為教師與系別之間是n:1的工作關系,經(jīng)過與系別關系模式的合并后,系別號Dno成為教師關系模式的外碼,存在的關系依賴為Tno→<Tname,Salary,Tel,Email,Dno>,不存在對候選碼的部分依賴與傳遞依賴,所以滿足BCNF。"學生"實體對應的關系模式:學生〔學號,姓名,性別,年齡,班號,系代號代碼表示:Student<Sno,Sname,Ssex,Sage.Class.Dno>其中,學號為其候選碼,又因為學生與班級之間是n:1的屬于關系,經(jīng)過與班級關系模式的合并后,班號Class成為學生關系模式的外碼,存在的關系依賴為Sno→<Sname,Ssex.Sage.Class.Dno>,Class→Dno,存在對候選碼的傳遞依賴,所以滿足2NF.系〔系代號,系名,系辦公室電話代碼表示:Sdept<Dno,Dname,Dphone>系代號為候選碼,存在的函數(shù)依賴為Dno→〔Dname,Dphone,且不存在部分依賴與傳遞依賴,所以滿足BCNF。"選修"聯(lián)系對應的關系模式:選課〔學號,課序號,最后成績,平時成績,期中成績,期末成績,代碼表示:SC<Sno,Cno,Grade.Daigrade.Midbrade.Lasgrade,>此為m:n聯(lián)系"選修"所對應的關系模式。Sno和Cno均為外碼。存在的函數(shù)依賴為完全函數(shù)依賴〔Sno,Cno→<Grade.Daigrade.Midbrade.Lasgrade.Fingrade>,且不存在部分依賴與傳遞依賴,所以滿足BCNF。"課程"實體對應的關系模式:課程〔課序號,課名,學分,名額,工作證號代碼表示:Course<Cno,Cname,Credit,Cnum,Tno>其中,課號為其候選碼,又由于課程與教師之間是n:1的授課關系,所以經(jīng)過關系模式的合并后,教師的工作證號被合并為課程關系模式中的外碼。存在的函數(shù)依賴為Cno→〔Cname,Credit,Cnum,Tno,且不存在對候選碼的部分依賴和傳遞依賴,所以,滿足BCNF。"班級"實體對應的關系模式:班級〔班號,最低總學分,工作證號,系代號代碼表示:Class<Class,Ccredit,Tno.Dno>其中,班號為其候選碼,又由于班級與系別之間是n:1的"屬于"關系,經(jīng)過"班級"與"系別"兩個實體關系模式的合并后,系號被合并為班級對應的關系模式的外碼。而班級與教師之間是n:1的"負責"關系,所以按照規(guī)定,教師的工作證號也被合并為班級的外碼。存在的函數(shù)依賴為Class→〔Ccredit,Tno.Dno>,其中Class→Tno,而Tno→Dno,即存在對候選碼的傳遞依賴,所以只滿足2NF。5物理結構設計5.1數(shù)據(jù)表的設計根據(jù)實體屬性圖可以建立以下各表,建表的同時定義表有關的完整性約束條件。1學生基本信息表表5-1學生基本信息表列名長度類型NULLDEFAULT主鍵學號10char<>nonoYes姓名20varchar<>nonono性別2char<>nonono所在專業(yè)2char<>yesnono所屬院系2char<>yesnono11char<>yesnono2專業(yè)基本信息表表5-2專業(yè)基本信息表列名長度類型NULLDEFAULT主鍵專業(yè)編號2char<>nonoYes專業(yè)名稱20varchar<>nonono所屬院系2char<>yesnono總學分5char<>yesnono必修學分5char<>yesnono3學生成績表表5-3學生成績表列名長度類型NULLDEFAULT主鍵學號10char<>nonono姓名20char<>nonono課程名稱10char<>nonono學期學年3char<>yesnono成績2char<>yesnono授課教師2char<>yesnono4院系基本信息表表5-4院系基本信息表列名長度類型NULLDEFAULT主鍵院系號2char<>nonoyes院系名稱20char<>yesnono負責人10char<>yesnono教務管理員10char<>yesnono5教師基本信息表表5-5教師基本信息表列名長度類型NULLDEFAULT主鍵教師編號10char<>nonoyes姓名20varchar<>nonono性別2char<>yesnono所屬院系2char<>yesnono6評教基本信息表表5-6評教基本信息表列名長度類型NULLDEFAULT主鍵教師編號10char<>nonono教師姓名20varchar<>yesnono課程編號50varchar<>nonono課程名稱10char<>yesnono滿意度2char<>yesnono7課程基本信息表表5-7課程基本信息表列名長度類型NULLDEFAULT主鍵課程編號20varchar<>nonoyes課程名稱10char<>nonono任課教師10char<>yesnono開設院系30varchar<>yesnono8班級基本信息表表5-8班級基本信息表列名長度類型NULLDEFAULT主鍵班級編號10char<>nonoyes班級人數(shù)3char<>yesnono所屬院系2char<>yesnono9網(wǎng)上選課基本信息表表5-9網(wǎng)上選課基本信息表列名長度類型NULLDEFAULT主鍵課程號50varchar<>nonono開課院系30varchar<>yesnono已選人數(shù)3char<>nonono課程類別1char<>yesnono限選人數(shù)3char<>yesnono5.2數(shù)據(jù)庫完整性設計數(shù)據(jù)庫完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)完整性包括三類:實體完整性,參照體完整性和用戶定義完整性。數(shù)據(jù)庫實體的完整性設計本教務管理系統(tǒng)數(shù)據(jù)庫的實體有:學生,教師,專業(yè),院系,教室,考試成績,課程。為保證實體的完整性,將以上所有實體的主屬性的屬性值都設置為非空。數(shù)據(jù)庫參照完整性設計1、學生與課程選修關系模式 學生信息〔學號,姓名,性別,年齡主鍵:學號 課程信息〔課程號,課程名稱,學分 主鍵:課程號 選修<學號,課程號,考試成績> 主鍵:學號,課程號2、學生與班級的從屬關系模式: 學生信息<學號,姓名,班級編號> 主鍵:學號 班級信息<班級編號,班級名稱,專業(yè)名稱,院系名稱> 主鍵:班級編號3、學生與考試成績的考試關系模式 學生信息〔學號,姓名主鍵:學號 成績信息〔成績號,課程編號主鍵:成績號4、班級與專業(yè)的從屬關系模式 專業(yè)信息<專業(yè)編號,專業(yè)名稱> 主鍵:專業(yè)編號班級信息<班級編號,班級名稱,專業(yè)編號> 主鍵:班級編號5、專業(yè)與院系的從屬關系模式院系信息<院系編號,專業(yè)名稱> 主鍵:專業(yè)編號專業(yè)信息<專業(yè)編號,專業(yè)名稱,院系編號> 主鍵:專業(yè)編號6、教師與課程的授課關系模式教師<教師編號,姓名> 主鍵:教師編號課程<課程編號,課程名稱> 主鍵:課程編號授課〔課程名稱,教師編號,課時 主鍵:課程名稱,教師編號數(shù)據(jù)庫的用戶定義完整性設計學生基本信息表: 〔1性別必須是男或女〔2身份證號必須是18位〔3所在專業(yè),所屬院系必須是本系統(tǒng)提供的5.3數(shù)據(jù)庫安全性設計數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。系統(tǒng)安全保護措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標之一。數(shù)據(jù)庫的安全性和計算機系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡系統(tǒng)的安全性是緊密聯(lián)系、相互支持的。信息系統(tǒng)盡管功能強大,技術先進,但由于受到自身體系結構,設計思路以及運行機制等限制,也隱含許多不安全因素。常見因素有:數(shù)據(jù)的輸入,輸出,存取與備份,源程序以及應用軟件,數(shù)據(jù)庫,操作系統(tǒng)等漏洞或缺陷,硬件,通信部分的漏洞,企業(yè)內部人員的因素,病毒,"黑客"等因素。因此,為使本系統(tǒng)能夠真正安全,可靠,穩(wěn)定地工作,必須考慮如下問題:為保證安全,不致使系統(tǒng)遭到意外事故的損害,系統(tǒng)因該能防止火,盜或其他形式的人為破壞。系統(tǒng)要能重建系統(tǒng)應該是可審查的系統(tǒng)應能進行有效控制,抗干擾能力強系統(tǒng)使用者的使用權限是可識別的6應用程序設計6.1系統(tǒng)功能模塊圖本系統(tǒng)設計的并不復雜,模塊劃分也比較清楚。通過對不同的功能進行分析,就可以得到系統(tǒng)的模塊劃分:登錄管理模塊,又分為管理員登錄、教師登錄和學生登錄三個子模塊;管理員模塊,包括對教師信息、課程信息、學生信息和學生成績進行查詢、添加、修改及刪除等子模塊;教師模塊,包括對個人信息的查詢及密碼的修改、課表的查詢等子模塊;學生模塊,包括對個人信息的查詢及密碼的修改、網(wǎng)上選課、課表的查詢和個人成績的查詢等子模塊教務管理系統(tǒng)教務管理系統(tǒng)學生教師管理員登錄管理學生教師管理員登錄管理成績查詢網(wǎng)上選課密碼修改課表查詢個人信息查詢課表查詢密碼修改個人信息查詢學生成績管理學生信息管理課程信息管理教師信息管理學生登錄教師登錄管理員登錄成績查詢網(wǎng)上選課密碼修改課表查詢個人信息查詢課表查詢密碼修改個人信息查詢學生成績管理學生信息管理課程信息管理教師信息管理學生登錄教師登錄管理員登錄修改學生信息添加學生信息查詢學生信息刪除課程信息修改課程信息添加課程信息查詢課程信息刪除教師信息修改教師信息添加教師信息查詢教師信息刪除學生信息刪除學生成績修改學生成績添加學生成績查詢學生成績修改學生信息添加學生信息查詢學生信息刪除課程信息修改課程信息添加課程信息查詢課程信息刪除教師信息修改教師信息添加教師信息查詢教師信息刪除學生信息刪除學生成績修改學生成績添加學生成績查詢學生成績圖6-1系統(tǒng)模塊圖6.2系統(tǒng)界面1系統(tǒng)的主界面圖6-2系統(tǒng)主界面部分設計代碼如下:namespace教務管理系統(tǒng){ publicMainForm<> { InitializeComponent<>; } protectedoverridevoidDispose<booldisposing> { if<disposing> { if<components!=null> { components.Dispose<>; } } base.Dispose<disposing>; } privateboolcheckChildFrmExist<stringchildFrmName> { foreach<FormchildFrminthis.MdiChildren> { if<childFrm.Name==childFrmName> { if<childFrm.WindowState==FormWindowState.Minimized> childFrm.WindowState=FormWindowState.Normal; childFrm.Activate<>; returntrue; } } returnfalse; } privatevoidmenuItem2_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"ClassInfo">==true> { return; } ClassInfonewFrm=newClassInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem3_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"StudentInfo">==true> { return; } StudentInfonewFrm=newStudentInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem4_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CourseInfo">==true> { return; } CourseInfonewFrm=newCourseInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem6_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CourseElect">==true> { return; } CourseElectnewFrm=newCourseElect<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem7_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CurriculumSchedule">==true> { return; } CurriculumSchedulenewFrm=newCurriculumSchedule<"">; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem8_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"ScoreInput">==true> { return; } ScoreInputnewFrm=newScoreInput<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem11_Click<objectsender,System.EventArgse> { this.Close<>; } }}2學生選課界面界面圖6-3學生選課界面部分程序代碼如下:privatevoidCourseElect_Load<objectsender,System.EventArgse> { dataGrid1.DataSource=this.electTable; stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; stringsql="selecta.課序號,a.課程編號,b.課程名稱,b.教師,b.開課系別," +"a.上課地點,a.上課時間天,a.上課時間節(jié),b.拼音碼" +"from課程表a,課程信息b" +"where<b.本學期課程='Y'>and<a.課程編號=b.課程編號>"; SqlDataAdapterda2=newSqlDataAdapter<sql,cn>; da2.Fill<this.courseTable>; this.dv=courseTable.DefaultView; dataGrid2.DataSource=dv; } privatevoidShowInfo<>// { stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="selecta.姓名,b.班級名稱,a.學籍編號from學生信息a,班級信息b" +"where<a.班級編號=b.班級編號>and<學號='"+txt1.Text.Trim<>+"'>"; SqlDataReaderdr=cmd.ExecuteReader<>; dr.Read<>; if<!dr.HasRows> { MessageBox.Show<"無此學生,請重新輸入學號","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; dr.Close<>; return; } if<dr.GetValue<2>.ToString<>.Trim<>!="1"> { MessageBox.Show<"該學生并非在籍學生,不能選課","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } txt2.Text=dr.GetValue<0>.ToString<>.Trim<>; txt3.Text=dr.GetValue<1>.ToString<>.Trim<>; dr.Close<>; stringsql="selecta.學號,a.課序號,b.課程名稱,b.教師," +"b.開課系別,c.上課時間天,c.上課時間節(jié),c.上課地點" +"from選課表a,課程信息b,課程表c" +"where<a.課序號=c.課序號>and<'200400000'+b.課程編號=a.課序號>" +"and<a.學號im<>+"'>"; SqlDataAdapterda=newSqlDataAdapter<sql,cn>; da.Fill<this.electTable>; this.studentID=txt1.Text.Trim<>; this.stduentName=txt2.Text.Trim<>; btnElect.Enabled=true; btnDelete.Enabled=true; btnView.Enabled=true; } privatevoidbtnElect_Click<objectsender,System.EventArgse> { if<dv.Count==0> { MessageBox.Show<"可選課表為空,無法選課","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } stringcourseID=dataGrid2[dataGrid2.CurrentCell.RowNumber,0].ToString<>.Trim<>; stringcourseDay=dataGrid2[dataGrid2.CurrentCell.RowNumber,6].ToString<>.Trim<>; stringcourseSec=dataGrid2[dataGrid2.CurrentCell.RowNumber,7].ToString<>.Trim<>; foreach<DataRowaRowinthis.electTable.Rows> { if<aRow["課序號"].ToString<>.Trim<>==courseID> { MessageBox.Show<"所選課程已經(jīng)在課程表中","課程重復",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } if<aRow["上課時間天"].ToString<>.Trim<>==courseDay&&aRow["上課時間節(jié)"].ToString<>.Trim<>==courseSec> { stringmsg="所選課程和已選課程:"+aRow["課程名稱"].ToString<>.Trim<>+"上課時間沖突"; MessageBox.Show<msg,"時間沖突",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } } stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="insertinto選課表<[學號],[課序號]>values<'"+this.studentID+"','"+courseID+"'>"; cmd.ExecuteNonQuery<>; this.electTable.Clear<>; stringsql="selecta.學號,a.課序號,b.課程名稱,b.教師," +"b.開課系別,c.上課時間天,c.上課時間節(jié),c.上課地點" +"from選課表a,課程信息b,課程表c" +"where<a.課序號=c.課序號>and<'200400000'+b.課程編號=a.課序號>" +"and<a.學號='"+this.studentID+"'>"; SqlDataAdapterda=newSqlDataAdapter<sql,cn>; da.Fill<this.electTable>; }3學生信息的查詢界面圖6-4學生信息的增加、刪除、修改部分代碼如下:namespace教務管理系統(tǒng){ protectedoverridevoidDispose<booldisposing> { if<disposing> { if<components!=null> { components.Dispose<>; } } base.Dispose<disposing>; } protectedvoidtoolBar1_ButtonClick<objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse> { if<e.Button.ToolTipText=="首記錄"> { this.dataGrid1.UnSelect<cmOrders.Position>;//取消原選中的行 cmOrders.Position=0;elect<cmOrders.Position>;//選中當前行 this.dataGrid1.CurrentRowIndex=cmOrders.Position;//移動表頭指示圖標 return; } if<e.Button.ToolTipText=="上一記錄"> { if<cmOrders.Position>=0> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position--; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; } return; } if<e.Button.ToolTipText=="下一記錄"> { if<cmOrders.Position<=cmOrders.Count-1> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position++; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; } return; } if<e.Button.ToolTipText=="尾記錄"> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position=cmOrders.Count-1; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; return; } if<e.Button.ToolTipText=="新增"> { cmOrders.AddNew<>;//新增一條記錄SetDefaultValue<>;//設置默認值 SetModifyMode<true>;//設置控件只讀等屬性 } if<e.Button.ToolTipText=="修改"> { SetModifyMode<true>; } if<e.Button.ToolTipText=="刪除"> { DialogResultresult=MessageBox.Show<"確認刪除?","刪除數(shù)據(jù)",MessageBoxButtons.OKCancel>; if<result==DialogResult.OK> if<cmOrders.Count>0> { cmOrders.RemoveAt<cmOrders.Position>; da1.Update<dataSet11>; } else MessageBox.Show<"表中為空,已無可刪除數(shù)據(jù)","提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; } if<e.Button.ToolTipText=="提交"> { boolcanSubmit; canSubmit=this.CheckNotNull<>; if<canSubmit==false> { return; } cmOrders.EndCurrentEdit<>; if<dataSet11.GetChanges<>!=null> { try { da1.Update<dataSet11>; SetModifyMode<false>; } catch<Exceptionexpress> { MessageBox.Show<express.ToString<>,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; dataSet11.RejectChanges<>; } } return; } if<e.Button.ToolTipText=="取消"> { try { cmOrders.CancelCurrentEdit<>; SetModifyMode<false>; } catch<Exceptionexpress> { MessageBox.Show<express.ToString<>,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; } return; } if<e.Button.ToolTipText=="退出"> { this.Close<>; } } protectedvirtualvoidSetModifyMode<boolblnEdit> { btnSearch.Enabled=!blnEdit; } protectedvirtualvoidSetDefaultValue<> { return; } protectedvirtualboolCheckNotNull<> { return<true>; }privatevoidbtnSearch_Click<objectsender,EventArgse> }}4成績的輸入界面圖6-5成績查詢、輸入、修改部分代碼如下:namespace教務管理系統(tǒng){ privatevoidbtnEndElect_Click<objectsender,System.EventArgse> { stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="execsf_終止選課"; try { cmd.ExecuteNonQuery<>; MessageBox.Show<"終止選課成功,將生成新的空成績單","操作成功",MessageBoxButtons.OK,MessageBoxIcon.Information>; } } privatevoidbtnQuery_Click<objectsender,System.EventArgse> {stringsql="selecta.編號,a.課程編號,b.課程名稱,a.學號,c.姓名,a.成績from成績表a,課程信息b,學生信息c" +"where<a.課程編號=b.課程編號>and<a.學號=c.學號>and<a.是否已確定成績='N'>" +"and<a.課程編號like'%"+txt2.Text.Trim<>+"%'>and<b.拼音碼like'%"+txt1.Text.Trim<> +"%'>and<b.課程名稱like'%"+txt3.Text.Trim<>+"%'>"; stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; da=newSqlDataAdapter<sql,cn>; this.scoreTable.Clear<>; da.Fill<this.scoreTable>; if<scoreTable.Rows.Count>0> { this.courseID=this.scoreTable.Rows[0][1].ToString<>.Trim<>; } else { stringmsg="該表中沒有數(shù)據(jù),可能原因有:\n"+"1.本學期沒有該門課程\n"+"2.該課程無學生選課\n" +"3.該課程所有學生成績已經(jīng)被最終提交,不可再修改"; MessageBox.Show<msg,"操作失敗",MessageBoxButtons.OK,MessageBoxIcon.Information>; return; } txt4.DataBindings.Clear<>; txt4.DataBindings.Add<"Text",this.scoreTable,"成績">; } privatevoidbtnModify_Click<objectsender,System.EventArgse> { if<this.scoreTable.Rows.Count==0> { MessageBox.Show<"該門課程成績單為空","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } if<txt4.Text.Trim<>=="">//檢查成績字段 { MessageBox.Show<"必須輸入學生成績","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; stringstudentNum=dataGrid1[dataGrid1.CurrentCell.RowNumber,0].ToString<>.Trim<>; cmd.CommandText="update成績表set成績='"+txt4.Text.Trim<>+"'where編號='"+studentNum+"'"; cmd.ExecuteNonQuery<>; this.scoreTable.Clear<>; da.Fill<this.scoreTable>; } privatevoidbtnSubmit_Click<objectsender,System.EventArgse> { stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="execsf_成績提交"+this.courseID; DialogResultresult; result=MessageBox.Show<"最終提交后學生成績
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項11 古詩文閱讀(解析版)
- 2025屆四川省成都市高三第二次診斷考試政治試題(原卷版+解析版)
- 《物聯(lián)網(wǎng)技術案例教程》課件-第8章46
- 勸學教學設計
- 四海省廣元市蒼溪縣2024-2025學年九年級上學期期末質量監(jiān)測數(shù)學試題 (原卷版+解析版)
- 《跨境電商》課件-9.跨境店鋪優(yōu)化
- 《Linux操作系統(tǒng)》課件-1.認識Linux(全)
- 景區(qū)開發(fā)石子運輸合同樣本
- 項目協(xié)作與會議記錄會議紀要
- 廣告行業(yè)廣告投放手冊
- 外語學習焦慮與對策
- 關于衛(wèi)健系統(tǒng)工作調研報告
- 烯烴習題參考答案
- 2023-2024學年山東省淄博市高青縣七年級下學期期中考試英語試題 (含答案)
- 各國鋼材牌號對照大全
- 標準化班組建設演示幻燈片
- 環(huán)境及理化因素損傷課件
- 房樹人的內容分析 房樹人分析
- 開題報告-基于PLC的智能倉庫系統(tǒng)設計
- 2023年小學五年級下語文七彩全冊試卷
- 人口社會學PPT完整全套教學課件
評論
0/150
提交評論