版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.../理工學(xué)院課程設(shè)計(jì)報(bào)告課程名稱數(shù)據(jù)庫課程設(shè)計(jì)設(shè)計(jì)題目教務(wù)管理系統(tǒng)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級學(xué)號姓名完成日期20XX12月30日課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:教務(wù)管理系統(tǒng)設(shè)計(jì)內(nèi)容與要求:類似于我校教務(wù)管理系統(tǒng),有四類用戶:教務(wù)員可以輸入學(xué)生、教師、班級、課程信息,一個(gè)班級只屬于一個(gè)專業(yè),一個(gè)學(xué)生只屬于一個(gè)班級。教務(wù)員負(fù)責(zé)輸入每個(gè)專業(yè)、每個(gè)班級需要學(xué)習(xí)哪些課程,指定課程的任課教師。教師可以查看學(xué)習(xí)該課程的學(xué)生名單。課程結(jié)束后,教師可以錄入課程成績。一個(gè)教師可以教授多個(gè)班的多門課程,每門課由多位老師講授。課程分兩類,必修課和選修課。系統(tǒng)要記錄每個(gè)學(xué)生學(xué)習(xí)各門必修課的成績,還要記錄學(xué)生選修了哪些選修課以及課程成績。學(xué)生可以查看自己各門課程的成績。學(xué)生還可以進(jìn)行評教,給老師打分。系統(tǒng)管理員可以輸入教室信息,并結(jié)合班級、課程、教室信息實(shí)現(xiàn)自動排課。指導(dǎo)教師:2013年課程設(shè)計(jì)評語成績:指導(dǎo)教師:_______________年月日...目錄1概述.21.1課程設(shè)計(jì)目標(biāo).21.2課程設(shè)計(jì)的背景和意義.21.1.2課程設(shè)計(jì)的背景22需求分析.32.1系統(tǒng)需求.32.2可行性分析.32.3用戶要求.32.3.1信息需求.32.3.2處理需求.42.3.3.課程設(shè)計(jì)的意義43概念結(jié)構(gòu)設(shè)計(jì).63.1設(shè)計(jì)分析.63.2概念模型設(shè)計(jì).63.2.1局部概念結(jié)構(gòu)設(shè)計(jì)63.2.2全局概念結(jié)構(gòu)模型<E-R圖>74邏輯結(jié)構(gòu)設(shè)計(jì).85物理結(jié)構(gòu)設(shè)計(jì)105.1數(shù)據(jù)表的設(shè)計(jì)105.2數(shù)據(jù)庫完整性設(shè)計(jì)125.2.1數(shù)據(jù)庫實(shí)體完整性設(shè)計(jì)125.2.2數(shù)據(jù)庫參照完整性設(shè)計(jì)125.2.3數(shù)據(jù)庫用戶定義完整性設(shè)計(jì)135.3數(shù)據(jù)庫安全性設(shè)計(jì)136應(yīng)用程序設(shè)計(jì)146.1系統(tǒng)功能模塊圖146.2系統(tǒng)界面157設(shè)計(jì)總結(jié)288體會與收獲29參考文獻(xiàn)301概述1.1課程設(shè)計(jì)目標(biāo)課程設(shè)計(jì)總的目標(biāo)是衡量學(xué)生是否取得學(xué)習(xí)效果,培養(yǎng)學(xué)生具有專業(yè)網(wǎng)站初步的規(guī)劃、設(shè)計(jì)、制作能力。具體表現(xiàn)在網(wǎng)站內(nèi)容、功能、安全等方面合理策劃和規(guī)劃;培養(yǎng)具有主頁和二級頁面的創(chuàng)意、設(shè)計(jì)等方面的技術(shù)處理能力和具有強(qiáng)大的動態(tài)效果制作能力。培養(yǎng)學(xué)生具有基于后臺數(shù)據(jù)庫的編程技術(shù),實(shí)現(xiàn)客戶—服務(wù)器端交互式動態(tài)網(wǎng)頁的制作能力,掌握實(shí)際網(wǎng)頁設(shè)計(jì)與制作開發(fā)流程和開發(fā)方法。1.2課程設(shè)計(jì)的背景及意義現(xiàn)如今高等院校的招生人數(shù)越來越多,必然就會有大量的學(xué)生信息、教師信息及課程信息需要處理。如果只靠人力來完成,這將會變成一項(xiàng)非常繁瑣、復(fù)雜的工作,而且還有可能出現(xiàn)很多意想不到的錯誤,給管理這些數(shù)據(jù)帶來了極大的不便,越來越不適合高校的發(fā)展需要。教務(wù)管理系統(tǒng)是一個(gè)龐大而復(fù)雜的系統(tǒng),它包括對教師信息的管理,對課程資料的管理,對學(xué)生信息的管理和對學(xué)生成績的管理等主要功能。教務(wù)管理系統(tǒng)是每所高校的一項(xiàng)必不可少的內(nèi)容,它的好壞直接影響到學(xué)校的主要工作,此系統(tǒng)一旦癱瘓,不僅會影響到學(xué)校的每一位學(xué)生,學(xué)校也會因此受到非常嚴(yán)重的損失。隨著我校近幾年來的快速發(fā)展,辦學(xué)模式多元化,在校學(xué)生規(guī)模不斷擴(kuò)大,為了加速對教務(wù)管理的計(jì)算機(jī)化,我校需要開發(fā)出符合我校實(shí)際的教務(wù)管理系統(tǒng),為學(xué)校教學(xué)管理提供一個(gè)快速、簡單規(guī)范的管理平臺,同時(shí)也方便教員查詢相關(guān)信息,提高信息傳播速度,擴(kuò)大信息共享范圍。所以,現(xiàn)在設(shè)計(jì)一個(gè)功能完整、操作簡單以及界面友好的教務(wù)管理系統(tǒng)變得非常重要。通過這個(gè)系統(tǒng),管理員能夠?qū)處熜畔ⅰ⒄n程信息、學(xué)生信息和學(xué)生成績進(jìn)行查詢、添加、修改和刪除等操作,用戶也可以對自己的基本信息進(jìn)行修改,學(xué)生還可以用該系統(tǒng)進(jìn)行網(wǎng)上選課和成績查詢,非常的方便。因此,本系統(tǒng)開發(fā)的總體目標(biāo)就是在教務(wù)管理中實(shí)現(xiàn)信息管理的系統(tǒng)化、自動化,減少工作繁瑣度,增加效率、方便性。2需求分析2.1系統(tǒng)需求通過調(diào)查,要求系統(tǒng)需要有以下功能:=1\*GB2⑴由于操作人員的計(jì)算機(jī)知識普遍較差,要求有良好的人機(jī)界面;=2\*GB2⑵由于該系統(tǒng)的使用對象多,要求有較好的權(quán)限管理;=3\*GB2⑶原始數(shù)據(jù)修改簡單方便,支持多條件修改=4\*GB2⑷方便的數(shù)據(jù)查詢,支持多條件查詢;=5\*GB2⑸在相應(yīng)的權(quán)限下,刪除數(shù)據(jù)方便簡單,數(shù)據(jù)穩(wěn)定性好;=6\*GB2⑹數(shù)據(jù)計(jì)算自動完成,盡量減少人工干預(yù);2.2可行性分析由于本系統(tǒng)管理的對象單一,都是在校學(xué)生,且每個(gè)數(shù)據(jù)內(nèi)容具有較強(qiáng)的關(guān)聯(lián)性,涉及的計(jì)算過程不是很復(fù)雜。因此,比較適合于采用數(shù)據(jù)庫管理。且學(xué)校用于學(xué)生管理的微機(jī)都是PIII以上的機(jī)器,在存儲量、速度方面都能滿足數(shù)據(jù)庫運(yùn)行的要求。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料,特別是參考其它程序的功能,因此完全可以實(shí)現(xiàn)。本系統(tǒng)的設(shè)計(jì)是在WindowXP操作系統(tǒng)環(huán)境下,使用VS開發(fā)成功的。在開發(fā)過程中,如何選擇數(shù)據(jù)庫管理是一個(gè)重要的問題,目前,數(shù)據(jù)庫產(chǎn)品較多、開發(fā)工具也很多。每種產(chǎn)品都具有各自的特點(diǎn)和適用范圍,因此,在選擇數(shù)據(jù)庫時(shí),應(yīng)考慮數(shù)據(jù)庫應(yīng)用的特點(diǎn)及適用范圍,在選擇開發(fā)工具時(shí)也考慮它的健壯性、可移性、安全性等問題。2.3用戶要求信息需求教務(wù)管理系統(tǒng)涉及的實(shí)體有:教師——工作證號、姓名、職稱、電話等;學(xué)生——學(xué)號、姓名、性別、出生年月等;班級——班號、最低總學(xué)分等;系——系代號、系名和系辦公室電話等;課程——課序號、課名、學(xué)分、上課時(shí)間及名額等。這些實(shí)體之間的聯(lián)系如下:每個(gè)學(xué)生都屬于一個(gè)班,每個(gè)班都屬于一個(gè)系,每個(gè)教師也都屬于一個(gè)系。每個(gè)班的班主任都由一名教師擔(dān)任。一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同的〔課序號是唯一的。一名同學(xué)可以選多門課,一門課可被若干同學(xué)選中。一名同學(xué)選中的課若已學(xué)完,應(yīng)該記錄有相應(yīng)成績。2.3.2教務(wù)系統(tǒng)主要提供數(shù)據(jù)維護(hù)、選課和信息查詢。其中常見的查詢有:系統(tǒng)中各對象的基本信息查詢。查詢指定班、系的學(xué)生信息〔名單、人數(shù)等。查詢學(xué)生的成績、學(xué)分情況。查詢教師授課情況和學(xué)生選課情況……。2.3.3安全性要求:1.系統(tǒng)應(yīng)設(shè)置訪問用戶的標(biāo)識以鑒別是否是合法用戶,并要求合法用戶設(shè)置其密碼,保證用戶身份不被盜用;2.系統(tǒng)應(yīng)對不同的數(shù)據(jù)設(shè)置不同的訪問級別,限制訪問用戶可查詢和處理數(shù)據(jù)的類別和內(nèi)容;3.系統(tǒng)應(yīng)對不同用戶設(shè)置不同的權(quán)限,區(qū)分不同的用戶,如學(xué)生,教師,系統(tǒng)管理員。完整性要求:1.各種信息記錄的完整性,關(guān)鍵信息記錄內(nèi)容不能為空;2.各種數(shù)據(jù)間相互的聯(lián)系的正確性;3.相同的數(shù)據(jù)在不同記錄中的一致性。2.4需要的信息管理模塊1、學(xué)生信息管理該模塊是教務(wù)工作人員進(jìn)行對學(xué)生信息的管理,進(jìn)行學(xué)生信息的添加、修改、刪除。2、教師信息管理教務(wù)工作人員通過此模塊來管理教師信息,包括教師信息的添加、修改、刪除等。信息的添加時(shí),需要驗(yàn)證教師的編號是否重復(fù);刪除和和修改學(xué)生信息,和學(xué)生信息管理模塊相同。院系管理此模塊是用來管理院系的信息,包括班級院系的添加,修改,刪除等。在進(jìn)行信息的添加時(shí),需要進(jìn)行班級的編號是否重復(fù)的檢查,如院系編號重復(fù)則對用戶進(jìn)行提示,不重復(fù)則添加成功。院系管理模塊的刪除和修改和學(xué)生信息管理模塊相同。課程信息管理教務(wù)工作人員通過該模塊來管理課程的基本信息,包括課程信息的添加,修改,刪除和班級課程的設(shè)置等,具體做法同前面的模塊。成績管理教務(wù)工作人員通過該模塊來進(jìn)行學(xué)生成績的管理,在進(jìn)行學(xué)生成績的添加時(shí),可用它來為學(xué)生設(shè)置所在班級的課程表來直接輸入成績。綜合查詢通過該模塊可以查詢教務(wù)所需要的各種信息。如學(xué)生信息查詢提供了包括學(xué)生學(xué)號、姓名、所在班級、班主任名字和宿舍等信息,學(xué)生信息進(jìn)行查詢的各種查詢條件,用戶可以根據(jù)單個(gè)的查詢條件或者它們的組合來進(jìn)行查詢。同時(shí),在查詢的時(shí)候還提供了進(jìn)行模糊查詢的功能,即該模塊能夠利用讀者輸入的非完整的查詢條件進(jìn)行查詢,這樣更加方便了用戶的查詢管理。綜合查詢模塊包括了學(xué)生信息查詢、教師信息查詢、班級信息查詢、院系信息查詢、課程信息查詢和成績查詢等各種功能查詢。3概念結(jié)構(gòu)設(shè)計(jì)3.1設(shè)計(jì)分析在概念結(jié)構(gòu)設(shè)計(jì)中,我采用自底向上設(shè)計(jì)概念結(jié)構(gòu)的方法。即第一步抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第二步是集成局部視圖,得到全局的概念結(jié)構(gòu)。3.2概念模型設(shè)計(jì)局部概念結(jié)構(gòu)設(shè)計(jì)〔1、系內(nèi)的關(guān)系模式圖工資1工資1n1n1n教師班級屬于最低總學(xué)分班號電話郵箱姓名工作證號系系辦公室電話系名系代號屬于工作學(xué)生學(xué)號年齡性別姓名系代號系代號圖3-1系內(nèi)關(guān)系模式圖〔2、選課系統(tǒng)的關(guān)系模式圖選修選修期中成績平時(shí)成績最后成績總評成績期末成績年齡學(xué)號課名學(xué)分課序號年齡學(xué)號課名學(xué)分課序號nm姓名課程學(xué)生nm姓名課程學(xué)生名額性別名額性別系代號系代號圖3-2選課系統(tǒng)的關(guān)系模式圖課序號課名〔3、教師授課系統(tǒng)關(guān)系模型圖課序號課名授課工資教師電話郵箱姓名工作證號授課工資教師電話郵箱姓名工作證號課程n1名額學(xué)分名額學(xué)分圖3-3教師授課系統(tǒng)關(guān)系模型圖〔4、教師與班級的關(guān)系模型圖課名課名班級負(fù)責(zé)班級負(fù)責(zé)最低總學(xué)分班號教師電話工資姓名工作證號n1郵箱郵箱圖3-4教師與班級的關(guān)系模型圖全局概念結(jié)構(gòu)模型〔E-R圖選修平時(shí)成績最后成績總評成績期中成績期末成績選修平時(shí)成績最后成績總評成績期中成績期末成績課名課序號學(xué)分年齡學(xué)號姓名nm姓名nm課程學(xué)生課程學(xué)生名額性別n名額性別n系代號系代號屬于屬于nn11課名班號授課課名班號授課負(fù)責(zé)班級n負(fù)責(zé)班級n最低總學(xué)分n最低總學(xué)分n屬于1屬于11111工作n1工作n1工資系教師工資系教師系代號系名系辦公室電話電話姓名工作證號系代號系名系辦公室電話電話姓名工作證號郵箱圖3-5全局概念結(jié)構(gòu)模型圖4邏輯結(jié)構(gòu)設(shè)計(jì)關(guān)系模式的設(shè)計(jì)與優(yōu)化E-R圖向關(guān)系模型的轉(zhuǎn)換:"教師"實(shí)體對應(yīng)的關(guān)系模式:教師〔工作證號,姓名,工資,電話,郵箱,系代號代碼表示為:Teacher〔Tno.Tname.Salary.Tel.Email.Dno其中,工作證號為其候選碼,又因?yàn)榻處熍c系別之間是n:1的工作關(guān)系,經(jīng)過與系別關(guān)系模式的合并后,系別號Dno成為教師關(guān)系模式的外碼,存在的關(guān)系依賴為Tno→<Tname,Salary,Tel,Email,Dno>,不存在對候選碼的部分依賴與傳遞依賴,所以滿足BCNF。"學(xué)生"實(shí)體對應(yīng)的關(guān)系模式:學(xué)生〔學(xué)號,姓名,性別,年齡,班號,系代號代碼表示:Student<Sno,Sname,Ssex,Sage.Class.Dno>其中,學(xué)號為其候選碼,又因?yàn)閷W(xué)生與班級之間是n:1的屬于關(guān)系,經(jīng)過與班級關(guān)系模式的合并后,班號Class成為學(xué)生關(guān)系模式的外碼,存在的關(guān)系依賴為Sno→<Sname,Ssex.Sage.Class.Dno>,Class→Dno,存在對候選碼的傳遞依賴,所以滿足2NF.系〔系代號,系名,系辦公室電話代碼表示:Sdept<Dno,Dname,Dphone>系代號為候選碼,存在的函數(shù)依賴為Dno→〔Dname,Dphone,且不存在部分依賴與傳遞依賴,所以滿足BCNF。"選修"聯(lián)系對應(yīng)的關(guān)系模式:選課〔學(xué)號,課序號,最后成績,平時(shí)成績,期中成績,期末成績,代碼表示:SC<Sno,Cno,Grade.Daigrade.Midbrade.Lasgrade,>此為m:n聯(lián)系"選修"所對應(yīng)的關(guān)系模式。Sno和Cno均為外碼。存在的函數(shù)依賴為完全函數(shù)依賴〔Sno,Cno→<Grade.Daigrade.Midbrade.Lasgrade.Fingrade>,且不存在部分依賴與傳遞依賴,所以滿足BCNF。"課程"實(shí)體對應(yīng)的關(guān)系模式:課程〔課序號,課名,學(xué)分,名額,工作證號代碼表示:Course<Cno,Cname,Credit,Cnum,Tno>其中,課號為其候選碼,又由于課程與教師之間是n:1的授課關(guān)系,所以經(jīng)過關(guān)系模式的合并后,教師的工作證號被合并為課程關(guān)系模式中的外碼。存在的函數(shù)依賴為Cno→〔Cname,Credit,Cnum,Tno,且不存在對候選碼的部分依賴和傳遞依賴,所以,滿足BCNF。"班級"實(shí)體對應(yīng)的關(guān)系模式:班級〔班號,最低總學(xué)分,工作證號,系代號代碼表示:Class<Class,Ccredit,Tno.Dno>其中,班號為其候選碼,又由于班級與系別之間是n:1的"屬于"關(guān)系,經(jīng)過"班級"與"系別"兩個(gè)實(shí)體關(guān)系模式的合并后,系號被合并為班級對應(yīng)的關(guān)系模式的外碼。而班級與教師之間是n:1的"負(fù)責(zé)"關(guān)系,所以按照規(guī)定,教師的工作證號也被合并為班級的外碼。存在的函數(shù)依賴為Class→〔Ccredit,Tno.Dno>,其中Class→Tno,而Tno→Dno,即存在對候選碼的傳遞依賴,所以只滿足2NF。5物理結(jié)構(gòu)設(shè)計(jì)5.1數(shù)據(jù)表的設(shè)計(jì)根據(jù)實(shí)體屬性圖可以建立以下各表,建表的同時(shí)定義表有關(guān)的完整性約束條件。1學(xué)生基本信息表表5-1學(xué)生基本信息表列名長度類型NULLDEFAULT主鍵學(xué)號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總學(xué)分5char<>yesnono必修學(xué)分5char<>yesnono3學(xué)生成績表表5-3學(xué)生成績表列名長度類型NULLDEFAULT主鍵學(xué)號10char<>nonono姓名20char<>nonono課程名稱10char<>nonono學(xué)期學(xué)年3char<>yesnono成績2char<>yesnono授課教師2char<>yesnono4院系基本信息表表5-4院系基本信息表列名長度類型NULLDEFAULT主鍵院系號2char<>nonoyes院系名稱20char<>yesnono負(fù)責(zé)人10char<>yesnono教務(wù)管理員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開設(shè)院系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ù)完整性包括三類:實(shí)體完整性,參照體完整性和用戶定義完整性。數(shù)據(jù)庫實(shí)體的完整性設(shè)計(jì)本教務(wù)管理系統(tǒng)數(shù)據(jù)庫的實(shí)體有:學(xué)生,教師,專業(yè),院系,教室,考試成績,課程。為保證實(shí)體的完整性,將以上所有實(shí)體的主屬性的屬性值都設(shè)置為非空。數(shù)據(jù)庫參照完整性設(shè)計(jì)1、學(xué)生與課程選修關(guān)系模式 學(xué)生信息〔學(xué)號,姓名,性別,年齡主鍵:學(xué)號 課程信息〔課程號,課程名稱,學(xué)分 主鍵:課程號 選修<學(xué)號,課程號,考試成績> 主鍵:學(xué)號,課程號2、學(xué)生與班級的從屬關(guān)系模式: 學(xué)生信息<學(xué)號,姓名,班級編號> 主鍵:學(xué)號 班級信息<班級編號,班級名稱,專業(yè)名稱,院系名稱> 主鍵:班級編號3、學(xué)生與考試成績的考試關(guān)系模式 學(xué)生信息〔學(xué)號,姓名主鍵:學(xué)號 成績信息〔成績號,課程編號主鍵:成績號4、班級與專業(yè)的從屬關(guān)系模式 專業(yè)信息<專業(yè)編號,專業(yè)名稱> 主鍵:專業(yè)編號班級信息<班級編號,班級名稱,專業(yè)編號> 主鍵:班級編號5、專業(yè)與院系的從屬關(guān)系模式院系信息<院系編號,專業(yè)名稱> 主鍵:專業(yè)編號專業(yè)信息<專業(yè)編號,專業(yè)名稱,院系編號> 主鍵:專業(yè)編號6、教師與課程的授課關(guān)系模式教師<教師編號,姓名> 主鍵:教師編號課程<課程編號,課程名稱> 主鍵:課程編號授課〔課程名稱,教師編號,課時(shí) 主鍵:課程名稱,教師編號數(shù)據(jù)庫的用戶定義完整性設(shè)計(jì)學(xué)生基本信息表: 〔1性別必須是男或女〔2身份證號必須是18位〔3所在專業(yè),所屬院系必須是本系統(tǒng)提供的5.3數(shù)據(jù)庫安全性設(shè)計(jì)數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的。信息系統(tǒng)盡管功能強(qiáng)大,技術(shù)先進(jìn),但由于受到自身體系結(jié)構(gòu),設(shè)計(jì)思路以及運(yùn)行機(jī)制等限制,也隱含許多不安全因素。常見因素有:數(shù)據(jù)的輸入,輸出,存取與備份,源程序以及應(yīng)用軟件,數(shù)據(jù)庫,操作系統(tǒng)等漏洞或缺陷,硬件,通信部分的漏洞,企業(yè)內(nèi)部人員的因素,病毒,"黑客"等因素。因此,為使本系統(tǒng)能夠真正安全,可靠,穩(wěn)定地工作,必須考慮如下問題:為保證安全,不致使系統(tǒng)遭到意外事故的損害,系統(tǒng)因該能防止火,盜或其他形式的人為破壞。系統(tǒng)要能重建系統(tǒng)應(yīng)該是可審查的系統(tǒng)應(yīng)能進(jìn)行有效控制,抗干擾能力強(qiáng)系統(tǒng)使用者的使用權(quán)限是可識別的6應(yīng)用程序設(shè)計(jì)6.1系統(tǒng)功能模塊圖本系統(tǒng)設(shè)計(jì)的并不復(fù)雜,模塊劃分也比較清楚。通過對不同的功能進(jìn)行分析,就可以得到系統(tǒng)的模塊劃分:登錄管理模塊,又分為管理員登錄、教師登錄和學(xué)生登錄三個(gè)子模塊;管理員模塊,包括對教師信息、課程信息、學(xué)生信息和學(xué)生成績進(jìn)行查詢、添加、修改及刪除等子模塊;教師模塊,包括對個(gè)人信息的查詢及密碼的修改、課表的查詢等子模塊;學(xué)生模塊,包括對個(gè)人信息的查詢及密碼的修改、網(wǎng)上選課、課表的查詢和個(gè)人成績的查詢等子模塊教務(wù)管理系統(tǒng)教務(wù)管理系統(tǒng)學(xué)生教師管理員登錄管理學(xué)生教師管理員登錄管理成績查詢網(wǎng)上選課密碼修改課表查詢個(gè)人信息查詢課表查詢密碼修改個(gè)人信息查詢學(xué)生成績管理學(xué)生信息管理課程信息管理教師信息管理學(xué)生登錄教師登錄管理員登錄成績查詢網(wǎng)上選課密碼修改課表查詢個(gè)人信息查詢課表查詢密碼修改個(gè)人信息查詢學(xué)生成績管理學(xué)生信息管理課程信息管理教師信息管理學(xué)生登錄教師登錄管理員登錄修改學(xué)生信息添加學(xué)生信息查詢學(xué)生信息刪除課程信息修改課程信息添加課程信息查詢課程信息刪除教師信息修改教師信息添加教師信息查詢教師信息刪除學(xué)生信息刪除學(xué)生成績修改學(xué)生成績添加學(xué)生成績查詢學(xué)生成績修改學(xué)生信息添加學(xué)生信息查詢學(xué)生信息刪除課程信息修改課程信息添加課程信息查詢課程信息刪除教師信息修改教師信息添加教師信息查詢教師信息刪除學(xué)生信息刪除學(xué)生成績修改學(xué)生成績添加學(xué)生成績查詢學(xué)生成績圖6-1系統(tǒng)模塊圖6.2系統(tǒng)界面1系統(tǒng)的主界面圖6-2系統(tǒng)主界面部分設(shè)計(jì)代碼如下:namespace教務(wù)管理系統(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學(xué)生選課界面界面圖6-3學(xué)生選課界面部分程序代碼如下: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.上課地點(diǎn),a.上課時(shí)間天,a.上課時(shí)間節(jié),b.拼音碼" +"from課程表a,課程信息b" +"where<b.本學(xué)期課程='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.學(xué)籍編號from學(xué)生信息a,班級信息b" +"where<a.班級編號=b.班級編號>and<學(xué)號='"+txt1.Text.Trim<>+"'>"; SqlDataReaderdr=cmd.ExecuteReader<>; dr.Read<>; if<!dr.HasRows> { MessageBox.Show<"無此學(xué)生,請重新輸入學(xué)號","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; dr.Close<>; return; } if<dr.GetValue<2>.ToString<>.Trim<>!="1"> { MessageBox.Show<"該學(xué)生并非在籍學(xué)生,不能選課","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } txt2.Text=dr.GetValue<0>.ToString<>.Trim<>; txt3.Text=dr.GetValue<1>.ToString<>.Trim<>; dr.Close<>; stringsql="selecta.學(xué)號,a.課序號,b.課程名稱,b.教師," +"b.開課系別,c.上課時(shí)間天,c.上課時(shí)間節(jié),c.上課地點(diǎn)" +"from選課表a,課程信息b,課程表c" +"where<a.課序號=c.課序號>and<'200400000'+b.課程編號=a.課序號>" +"and<a.學(xué)號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)在課程表中","課程重復(fù)",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } if<aRow["上課時(shí)間天"].ToString<>.Trim<>==courseDay&&aRow["上課時(shí)間節(jié)"].ToString<>.Trim<>==courseSec> { stringmsg="所選課程和已選課程:"+aRow["課程名稱"].ToString<>.Trim<>+"上課時(shí)間沖突"; MessageBox.Show<msg,"時(shí)間沖突",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } } stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="insertinto選課表<[學(xué)號],[課序號]>values<'"+this.studentID+"','"+courseID+"'>"; cmd.ExecuteNonQuery<>; this.electTable.Clear<>; stringsql="selecta.學(xué)號,a.課序號,b.課程名稱,b.教師," +"b.開課系別,c.上課時(shí)間天,c.上課時(shí)間節(jié),c.上課地點(diǎn)" +"from選課表a,課程信息b,課程表c" +"where<a.課序號=c.課序號>and<'200400000'+b.課程編號=a.課序號>" +"and<a.學(xué)號='"+this.studentID+"'>"; SqlDataAdapterda=newSqlDataAdapter<sql,cn>; da.Fill<this.electTable>; }3學(xué)生信息的查詢界面圖6-4學(xué)生信息的增加、刪除、修改部分代碼如下:namespace教務(wù)管理系統(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>;//選中當(dāng)前行 this.dataGrid1.CurrentRowIndex=cmOrders.Position;//移動表頭指示圖標(biāo) 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<>;//設(shè)置默認(rèn)值 SetModifyMode<true>;//設(shè)置控件只讀等屬性 } if<e.Button.ToolTipText=="修改"> { SetModifyMode<true>; } if<e.Button.ToolTipText=="刪除"> { DialogResultresult=MessageBox.Show<"確認(rèn)刪除?","刪除數(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教務(wù)管理系統(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.學(xué)號,c.姓名,a.成績from成績表a,課程信息b,學(xué)生信息c" +"where<a.課程編號=b.課程編號>and<a.學(xué)號=c.學(xué)號>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.本學(xué)期沒有該門課程\n"+"2.該課程無學(xué)生選課\n" +"3.該課程所有學(xué)生成績已經(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<"必須輸入學(xué)生成績","提示",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<"最終提交后學(xué)生成績
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手車交易協(xié)議個(gè)人
- 勞動合同解除協(xié)議書大全七篇
- 頸動脈斑塊病因介紹
- 公司借款的協(xié)議書范本10篇
- 單位股東合作的協(xié)議書
- 藥物中毒性周圍神經(jīng)病病因介紹
- 2023-2024學(xué)年天津市五區(qū)縣重點(diǎn)校聯(lián)考高三(上)期末語文試卷
- 2023年天津市部分區(qū)高考語文二模試卷
- 江蘇省鹽城市建湖縣漢開書院學(xué)校2023-2024學(xué)年七年級上學(xué)期第二次月考道德與法治試題(解析版)-A4
- 食品工廠機(jī)械與設(shè)備模擬習(xí)題與參考答案
- 江蘇省鹽城市大豐區(qū)部分學(xué)校2024-2025學(xué)年九年級上學(xué)期12月調(diào)研考試化學(xué)試題(含答案)
- 《上課用的小動物過冬》課件
- 2024版建筑工程設(shè)計(jì)居間協(xié)議3篇
- 動畫制作員職業(yè)技能大賽考試題庫(濃縮500題)
- 房屋租賃合同
- 湖北省十一校2024-2025學(xué)年高三上學(xué)期第一次聯(lián)考物理試卷 含解析
- 12《富起來到強(qiáng)起來》第一課時(shí)(說課稿)統(tǒng)編版道德與法治五年級下冊
- 問題解決策略:歸納課件2024-2025學(xué)年北師大版數(shù)學(xué)七年級上冊
- 【初中道法】擁有積極的人生態(tài)度(課件)-2024-2025學(xué)年七年級道德與法治上冊(統(tǒng)編版2024)
- 年終總結(jié)安全類
- 銷售團(tuán)隊(duì)員工轉(zhuǎn)正考核方案
評論
0/150
提交評論