課程設(shè)計(jì)——教學(xué)管理系統(tǒng)_第1頁(yè)
課程設(shè)計(jì)——教學(xué)管理系統(tǒng)_第2頁(yè)
課程設(shè)計(jì)——教學(xué)管理系統(tǒng)_第3頁(yè)
課程設(shè)計(jì)——教學(xué)管理系統(tǒng)_第4頁(yè)
課程設(shè)計(jì)——教學(xué)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. 課程設(shè)計(jì)的目的與要求1.1設(shè)計(jì)目的設(shè)計(jì)一個(gè)簡(jiǎn)單的教學(xué)管理系統(tǒng),要求存儲(chǔ)學(xué)生基本情況、課程基本情況,教師授課情況與學(xué)生成績(jī)記錄等,提供成績(jī)錄入、信息查詢等功能以滿足日常教學(xué)管理需要。對(duì)學(xué)生的成績(jī)的管理、查詢學(xué)生的各科成績(jī)的學(xué)生成績(jī)管理系統(tǒng)。該系統(tǒng)可以幫助我們更方便的管理學(xué)生的成績(jī),替代了以前的手工操作管理學(xué)生的成績(jī),節(jié)約我們珍貴的時(shí)間。而且老師和學(xué)生可以以不同個(gè)的身份登錄,獲得不同的操作權(quán)限,有效的提高教學(xué)管理系統(tǒng)的工作效率。1.2設(shè)計(jì)要求(1)軟件開(kāi)發(fā)環(huán)境:操作系統(tǒng):Windows 7;數(shù)據(jù)庫(kù)使用軟件:Microsoft Office Access 2003開(kāi)發(fā)工具: Microsoft

2、 Visual C+6.0(2) 功能需求按照提供的各表的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)創(chuàng)建數(shù)據(jù)庫(kù)與表實(shí)現(xiàn)學(xué)生基本情況、課程基本情況、教師授課表情況及學(xué)生成績(jī)的數(shù)據(jù)錄入與編輯、刪除等。能夠按姓名查詢教師授課情況。1.3 系統(tǒng)總體設(shè)計(jì)的體系結(jié)構(gòu)圖 設(shè)計(jì)系統(tǒng)的體系結(jié)構(gòu)圖見(jiàn)下頁(yè) 教學(xué)管理系統(tǒng) 教師管理系統(tǒng) 學(xué)生管理系統(tǒng) 學(xué)生基本 課程管 信息管理 理系統(tǒng) 課程基本 學(xué)生課程 信息管理 成績(jī)管理 圖1. 設(shè)計(jì)系統(tǒng)的體系結(jié)構(gòu)圖2. 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)技術(shù)是信息資源管理最有效的手段,它是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,利用現(xiàn)有的數(shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),有效存儲(chǔ)數(shù)據(jù),滿足用戶信息要求和處理要求。

3、本系統(tǒng)的數(shù)據(jù)庫(kù)是采用Microsoft Office Access 2003設(shè)計(jì)的。數(shù)據(jù)庫(kù)設(shè)計(jì)分為6個(gè)階段:需求分析階段、概念結(jié)構(gòu)設(shè)計(jì)階段、邏輯結(jié)構(gòu)設(shè)計(jì)階段、數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段、數(shù)據(jù)庫(kù)實(shí)施階段、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)經(jīng)過(guò)調(diào)試運(yùn)行后即可投入正式運(yùn)行。在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中,必須不斷地對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)不可能一蹴而就,它往往是上述6個(gè)階段的不斷反復(fù)。 2.1 系統(tǒng)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)2.1.1 局部E-R圖 將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì)。它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵所在。它是現(xiàn)實(shí)世界的一個(gè)真實(shí)模型,表達(dá)

4、自然、直觀,又易于理解。根據(jù)學(xué)生成績(jī)管理的需求分析建立局部和全局ER圖,如下所示。(1)局部ER設(shè)計(jì)由在系統(tǒng)中描述課程實(shí)體的相關(guān)信息有專(zhuān)業(yè)號(hào),班級(jí)號(hào),設(shè)計(jì)該實(shí)體ER圖如圖2所示。課程課程號(hào)課程名 學(xué) 時(shí)圖2 實(shí)體課程局部ER圖由在系統(tǒng)中描述教師實(shí)體的相關(guān)信息教師姓名,課程號(hào),授課日期,設(shè)計(jì)該實(shí)體ER圖如圖3所示:系別教師教師姓名性別圖3 實(shí)體教師局部ER圖 年齡學(xué)生學(xué)生姓名學(xué)號(hào)系別 班級(jí) 性別由在系統(tǒng)中描述學(xué)生實(shí)體的相關(guān)信息有學(xué)號(hào),學(xué)生姓名,系別,班級(jí),性別,年齡,設(shè)計(jì)該實(shí)體ER圖如圖4所示: 圖4 實(shí)體課程局部ER圖 2.1.2 系統(tǒng)全局ER圖學(xué)生系別圖8 全局ER圖圖8 全局ER圖年齡圖8

5、 全局ER圖圖8 全局ER圖成績(jī)學(xué)號(hào)姓名教師姓名性別學(xué)生班級(jí)講授教師選修教師系別性別課程課程號(hào)學(xué)時(shí)課程名圖6 全局ER圖2.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)根據(jù)系統(tǒng)的需要還要全局ER圖向關(guān)系模型的轉(zhuǎn)換,要遵循以下規(guī)則: (1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模型式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的鍵就是關(guān)系的鍵。如學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)為學(xué)生關(guān)系鍵。學(xué)生(學(xué)號(hào),學(xué)生姓名,性別,系別,班級(jí),年齡)同樣課程、教師分別轉(zhuǎn)換為一個(gè)關(guān)系模式,如下:課程(課程號(hào),課程名,學(xué)時(shí))教師(教師姓名,教師系別,性別) (2)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,

6、而關(guān)系的鍵為各實(shí)體鍵的組合。如在成績(jī)聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合鍵。成績(jī)(學(xué)號(hào),課程號(hào),成績(jī))2.3 創(chuàng)建系統(tǒng)數(shù)據(jù)庫(kù)與表創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程實(shí)際上就是為數(shù)據(jù)庫(kù)設(shè)計(jì)名稱,設(shè)計(jì)所占用的存儲(chǔ)空間和存放文件的位置過(guò)程等。使用Microsoft Office Access 2003創(chuàng)建數(shù)據(jù)庫(kù),其中數(shù)據(jù)庫(kù)中包含了5個(gè)表。(1) 打開(kāi)Microsoft Office Access 2003,單擊文件>新建。(2) 在右邊新建文件夾菜單下,選擇“空數(shù)據(jù)庫(kù)”菜單選項(xiàng),單擊它,系統(tǒng)會(huì)顯示新建數(shù)據(jù)庫(kù)的位置及名稱對(duì)話框。(3) 在文件名一欄輸入一個(gè)數(shù)據(jù)庫(kù)名為“JWX

7、T(教學(xué)管理系統(tǒng))”,點(diǎn)擊“創(chuàng)建”。(4) 在出現(xiàn)的對(duì)話框下選擇“對(duì)象”>“表”>“使用設(shè)計(jì)器創(chuàng)建表”,然后輸入所需創(chuàng)建的表的列名、數(shù)據(jù)類(lèi)型、長(zhǎng)度、是否允許為空、默認(rèn)值、主鍵。(5) 然后點(diǎn)擊各表名進(jìn)行數(shù)據(jù)的添加、修改、刪除。 在此系統(tǒng)數(shù)據(jù)庫(kù)中設(shè)計(jì)了6個(gè)表,分別是學(xué)生信息表(Student)、課程信息表(Course)、 教師信息表(Teacher)、教師授課表(Teachercourse)、學(xué)生選課表(Selectcourse)、學(xué)生成績(jī)表(Score)。具體數(shù)據(jù)定義和內(nèi)容設(shè)計(jì)如下面表1表14所示。學(xué)生信息表(Student)結(jié)構(gòu):表1列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明sno(學(xué)號(hào)

8、)文本5N主鍵sname(姓名)文本10Nssex(性別)文本2Ysdept(系別)文本10Nsclass(班級(jí))文本2Nsage(年齡)數(shù)字4Y 學(xué)生信息表(Student)內(nèi)容:表2snosname sdeptsclassssexsage0001小花電子系01女190002小華電子系01男200003小小電子系01男200004小蘭電子系02女210005小許電子系02男20課程信息表(Course)結(jié)構(gòu):表3 列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明cno(課程號(hào)) 文本3N主鍵cname(課程名)文本16Nctime(學(xué)時(shí))數(shù)字Y課程信息表(Course)內(nèi)容:表4cnocnamectime0

9、01電路理論40002信號(hào)與系統(tǒng)48003工程磁場(chǎng)56F01電機(jī)學(xué)72F02管理學(xué)32G01電子設(shè)計(jì)自動(dòng)化40G02日語(yǔ)入門(mén)32教師信息表(Teacher)結(jié)構(gòu):表5列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明tname(教師姓名) 文本10N主鍵tdept(教師系別) 文本10Ytsex(性別) 文本2Y教師信息表(teacher)內(nèi)容:表6tnametdepttsex安大電力系男柴琴外語(yǔ)系女丁小小電子系女董會(huì)電力系女董美美電子系女羅華自動(dòng)化系男楊梅經(jīng)管系女教師授課表(Teachercourse)結(jié)構(gòu):表7列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明tname(教師姓名) 文本10N主鍵cno(課程號(hào)) 文本5N主

10、鍵time(授課日期) 文本Y教師授課表(Teachercourse)內(nèi)容:表8tnamecnotime安大0032014-04-05柴琴G022014-04-06丁小小0012014-03-01董會(huì)F012014-04-22董美美0022014-04-12羅華G012014-04-13楊梅F022014-04-18學(xué)生選課表(Selectcourse)結(jié)構(gòu):表9列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明sno(學(xué)號(hào))char5N主鍵cno(課程號(hào))char5N主鍵學(xué)生選課表(Selectcourse)內(nèi)容:表10 sno cno00010010001G0100020020002G02000300300

11、03F020004F010005F02學(xué)生成績(jī)表(Score)結(jié)構(gòu):表13列名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明sno(學(xué)號(hào)) 文本5N主鍵cno(課程號(hào)) 文本5N主鍵score(分?jǐn)?shù)) 數(shù)字5,2Y學(xué)生成績(jī)表(score)內(nèi)容:表14snocno分?jǐn)?shù)0001001980001G01890002002870002G02860003003900003F02760004F01850005F02932.4 創(chuàng)建數(shù)據(jù)庫(kù)關(guān)系圖圖73應(yīng)用軟件的實(shí)現(xiàn)在Microsoft Visual C+6.0 中開(kāi)發(fā)系統(tǒng)的第一步就是創(chuàng)建一個(gè)該系統(tǒng)的工程,來(lái)編寫(xiě)管理系統(tǒng)中的各種資源和代碼。3.1 創(chuàng)建工程的步驟(1)打開(kāi)Mic

12、rosoft Visual C+6.0 開(kāi)發(fā)環(huán)境,在菜單中依次選擇“文件”>“新建”菜單。(2)在新建對(duì)話框窗口選擇“工程”菜單下的“MFC AppWizard【exe】”,同時(shí)在右邊選擇存儲(chǔ)路徑及為工程命名,然后單擊“確定”按鈕。(3)在接下來(lái)出現(xiàn)的MFC應(yīng)用程序向?qū)Р襟E1中創(chuàng)建的應(yīng)用程序類(lèi)型選擇單文檔,語(yǔ)言為中文簡(jiǎn)體,接下來(lái)步驟26選擇默認(rèn)設(shè)置。 這樣,教學(xué)管理系統(tǒng)工程就創(chuàng)建完成。3.2 向單文檔窗口添加菜單項(xiàng)(1) 在菜單欄中依次添加菜單名“學(xué)生”和“老師”以區(qū)分學(xué)生和老師的功能(2) 在“學(xué)生”下添加菜單選項(xiàng)“教師授課情況”,在“教師”下分別添加菜單選項(xiàng)“學(xué)生情況”、“課程名基本

13、情況”、“教師授課情況”、“學(xué)生成績(jī)”。如圖8圖9所示 圖8圖93) 對(duì)菜單項(xiàng)“學(xué)生情況”設(shè)置ID為ID_person,并點(diǎn)擊建立類(lèi)向?qū)?,添加單擊消息函?shù)響應(yīng),添加代碼如下: void CMainFrame:Onperson() / TODO: Add your command handler code here CGS m; m.DoModal();并在該類(lèi)預(yù)定義那添加頭函數(shù) #include"GS.h"?!罢n程名基本情況”、“教師授課情況”、“學(xué)生成績(jī)”、“教師授課查詢”菜單消息響應(yīng)添加同上。 3.3 對(duì)話框的設(shè)計(jì)(1) 對(duì)話框界面的設(shè)計(jì)及實(shí)現(xiàn)功能展示ADO數(shù)據(jù)連接。在

14、RescoureView下打開(kāi)Dialog插入幾個(gè)對(duì)話框,然后對(duì)各個(gè)對(duì)話框進(jìn)行控件設(shè)置及界面的設(shè)計(jì)。界面設(shè)計(jì)及功能實(shí)現(xiàn),如圖10圖14所示。圖10圖11(2) 對(duì)話框與數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)1) 在文件Header File下的stdAfx.h中引入ADO庫(kù)代碼#import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")2) 初始化COM環(huán)境,創(chuàng)建連接對(duì)象在對(duì)話框類(lèi)加入成員變量:ConnectionPtr m_pCo

15、nnection1;并實(shí)現(xiàn)初始化,代碼如下:CGS:OnInitDialog() AfxOleInit();m_pConnection1.CreateInstance(_uuidof(Connection);m_pConnection1->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=jwxt.mdb","","",adModeUnknown); 3) 打開(kāi)記錄集,初始化對(duì)話框在對(duì)話框類(lèi)加入成員變量:_RecordsetPtr m_pRecordset3;用ClassWiz

16、ard給窗口中每個(gè)編輯框添加成員變量,本對(duì)話框添加了:m_sno,m_sname, m_sdept, m_sclass, m_ssex ,sage在對(duì)話框初始化函數(shù)CGS:OnInitDialog()中添加 m_pRecordset3.CreateInstance(_uuidof(Recordset);m_pRecordset3->Open("SELECT*FROM Student",m_pConnection1.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 4) 對(duì)對(duì)話框中各個(gè)按鈕添加消息響

17、應(yīng)函數(shù)即功能實(shí)現(xiàn)的代碼,學(xué)生基本情況對(duì)話框各種功能的實(shí)現(xiàn)代碼如下: 顯示函數(shù): CGS:DispRecord()/在對(duì)話框顯示數(shù)據(jù)_variant_t theValue1; if(!m_pRecordset3->adoEOF) theValue1=m_pRecordset3->GetCollect("sno"); if(theValue1.vt!=VT_NULL) m_sno=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sname"); if(theVa

18、lue1.vt!=VT_NULL) m_sname=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sdept"); if(theValue1.vt!=VT_NULL) m_sdept=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sclass"); if(theValue1.vt!=VT_NULL) m_sclass=(char*)_bstr_t(theValue1); theVa

19、lue1=m_pRecordset3->GetCollect("ssex"); if(theValue1.vt!=VT_NULL) m_ssex=(char*)_bstr_t(theValue1); theValue1=m_pRecordset3->GetCollect("sage"); if(theValue1.vt!=VT_NULL) m_sage=theValue1.iVal;UpdateData(false); void CGS:OnButton5() /前一條函數(shù):可以瀏覽數(shù)據(jù)/ TODO: Add your control not

20、ification handler code here m_pRecordset3->MovePrevious();if(m_pRecordset3->BOF)m_pRecordset3->MoveFirst();DispRecord(); void CGS:OnButton6() /后一條:可以瀏覽數(shù)據(jù)/ TODO: Add your control notification handler code here m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF) m_pRecordset3->MoveL

21、ast();DispRecord();void CGS:OnButton1() /錄入函數(shù):在錄入數(shù)據(jù)前先點(diǎn)擊錄入/ TODO: Add your control notification handler code here RefreshData();try/ 寫(xiě)入各字段值m_pRecordset3->AddNew();catch(_com_error *e)AfxMessageBox(e->ErrorMessage();CGS:RefreshData()/清空函數(shù) m_sno=""m_sname=""m_sdept=""

22、;m_sclass=""m_ssex="男"m_sage=0;UpdateData(FALSE);void CGS:OnButton4() /保存函數(shù):錄入數(shù)據(jù)后,實(shí)現(xiàn)保存數(shù)據(jù)功能/ TODO: Add your control notification handler code hereUpdateData(TRUE); m_pRecordset3->PutCollect("sno",_bstr_t(m_sno); m_pRecordset3->PutCollect("sname",_bstr_t(m

23、_sname); m_pRecordset3->PutCollect("sdept",_bstr_t(m_sdept); m_pRecordset3->PutCollect("sclass",_bstr_t(m_sclass); m_pRecordset3->PutCollect("ssex",_bstr_t(m_ssex); m_pRecordset3->PutCollect("sage",long(m_sage); m_pRecordset3->Update(); m_pRecor

24、dset3->MoveLast();void CGS:OnButton3() /刪除函數(shù):刪除不要的數(shù)據(jù)/ TODO: Add your control notification handler code heretryAfxMessageBox("刪除當(dāng)前記錄"); m_pRecordset3->Delete(adAffectCurrent); m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF) m_pRecordset3->MoveLast(); DispRecord();catch(_

25、com_error *e)AfxMessageBox(e->ErrorMessage();void CGS:OnButton2() /編輯函數(shù):對(duì)數(shù)據(jù)進(jìn)行更改/ TODO: Add your control notification handler code hereUpdateData(TRUE); m_pRecordset3->PutCollect("sno",_bstr_t(m_sno);m_pRecordset3->PutCollect("sname",_bstr_t(m_sname); m_pRecordset3->Pu

26、tCollect("sdept",_bstr_t(m_sdept); m_pRecordset3->PutCollect("sclass",_bstr_t(m_sclass);m_pRecordset3->PutCollect("ssex",_bstr_t(m_ssex);m_pRecordset3->PutCollect("sage",long(m_sage); m_pRecordset3->Update(); m_pRecordset3->MoveLast();5) 上述為學(xué)生基本

27、情況的對(duì)話框?qū)崿F(xiàn)代碼,課程基本情況、教師授課表情況及學(xué)生成績(jī)?nèi)齻€(gè)個(gè)對(duì)話框的各功能實(shí)現(xiàn)代碼與上述代碼相似。6) 對(duì)于學(xué)生查詢教師授課情況主要查詢功能實(shí)現(xiàn)代碼如下: void tc:OnButton1() / TODO: Add your control notification handler code here m_pRecordset.CreateInstance(_uuidof(Recordset); UpdateData(true); CString strSql; strSql.Format("SELECT*FROM Teachercourse WHERE tname='%s'",m_tname);m_pRecordset->Open(strSql.AllocSysString(),m_pConnection.GetInter

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論