




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1. 課程設計的目的與要求1.1設計目的設計一個簡單的教學管理系統,要求存儲學生基本情況、課程基本情況,教師授課情況與學生成績記錄等,提供成績錄入、信息查詢等功能以滿足日常教學管理需要。對學生的成績的管理、查詢學生的各科成績的學生成績管理系統。該系統可以幫助我們更方便的管理學生的成績,替代了以前的手工操作管理學生的成績,節約我們珍貴的時間。而且老師和學生可以以不同個的身份登錄,獲得不同的操作權限,有效的提高教學管理系統的工作效率。1.2設計要求(1)軟件開發環境:操作系統:Windows 7;數據庫使用軟件:Microsoft Office Access 2003開發工具: Microsoft
2、 Visual C+6.0(2) 功能需求按照提供的各表的數據結構和數據創建數據庫與表實現學生基本情況、課程基本情況、教師授課表情況及學生成績的數據錄入與編輯、刪除等。能夠按姓名查詢教師授課情況。1.3 系統總體設計的體系結構圖 設計系統的體系結構圖見下頁 教學管理系統 教師管理系統 學生管理系統 學生基本 課程管 信息管理 理系統 課程基本 學生課程 信息管理 成績管理 圖1. 設計系統的體系結構圖2. 數據庫設計數據庫技術是信息資源管理最有效的手段,它是指對于一個給定的應用環境,利用現有的數據庫管理系統構造最優的數據庫模式,建立數據庫及其應用系統,有效存儲數據,滿足用戶信息要求和處理要求。
3、本系統的數據庫是采用Microsoft Office Access 2003設計的。數據庫設計分為6個階段:需求分析階段、概念結構設計階段、邏輯結構設計階段、數據庫物理設計階段、數據庫實施階段、數據庫運行和維護階段。數據庫應用系統經過調試運行后即可投入正式運行。在數據庫系統運行過程中,必須不斷地對其進行評價、調整與修改。設計一個完善的數據庫應用系統不可能一蹴而就,它往往是上述6個階段的不斷反復。 2.1 系統數據庫概念結構設計2.1.1 局部E-R圖 將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計。它是整個數據庫設計的關鍵所在。它是現實世界的一個真實模型,表達
4、自然、直觀,又易于理解。根據學生成績管理的需求分析建立局部和全局ER圖,如下所示。(1)局部ER設計由在系統中描述課程實體的相關信息有專業號,班級號,設計該實體ER圖如圖2所示。課程課程號課程名 學 時圖2 實體課程局部ER圖由在系統中描述教師實體的相關信息教師姓名,課程號,授課日期,設計該實體ER圖如圖3所示:系別教師教師姓名性別圖3 實體教師局部ER圖 年齡學生學生姓名學號系別 班級 性別由在系統中描述學生實體的相關信息有學號,學生姓名,系別,班級,性別,年齡,設計該實體ER圖如圖4所示: 圖4 實體課程局部ER圖 2.1.2 系統全局ER圖學生系別圖8 全局ER圖圖8 全局ER圖年齡圖8
5、 全局ER圖圖8 全局ER圖成績學號姓名教師姓名性別學生班級講授教師選修教師系別性別課程課程號學時課程名圖6 全局ER圖2.2 數據庫邏輯設計根據系統的需要還要全局ER圖向關系模型的轉換,要遵循以下規則: (1)一個實體轉換為一個關系模型式。實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。如學生實體可以轉換為如下關系模式,其中學號為學生關系鍵。學生(學號,學生姓名,性別,系別,班級,年齡)同樣課程、教師分別轉換為一個關系模式,如下:課程(課程號,課程名,學時)教師(教師姓名,教師系別,性別) (2)一個m:n聯系轉換為一個關系模式。與該聯系相連的各實體的鍵以及聯系本身的屬性均轉換為關系的屬性,
6、而關系的鍵為各實體鍵的組合。如在成績聯系是一個m:n聯系,可以將它轉換為如下關系模式,其中學號與課程號為關系的組合鍵。成績(學號,課程號,成績)2.3 創建系統數據庫與表創建數據庫的過程實際上就是為數據庫設計名稱,設計所占用的存儲空間和存放文件的位置過程等。使用Microsoft Office Access 2003創建數據庫,其中數據庫中包含了5個表。(1) 打開Microsoft Office Access 2003,單擊文件>新建。(2) 在右邊新建文件夾菜單下,選擇“空數據庫”菜單選項,單擊它,系統會顯示新建數據庫的位置及名稱對話框。(3) 在文件名一欄輸入一個數據庫名為“JWX
7、T(教學管理系統)”,點擊“創建”。(4) 在出現的對話框下選擇“對象”>“表”>“使用設計器創建表”,然后輸入所需創建的表的列名、數據類型、長度、是否允許為空、默認值、主鍵。(5) 然后點擊各表名進行數據的添加、修改、刪除。 在此系統數據庫中設計了6個表,分別是學生信息表(Student)、課程信息表(Course)、 教師信息表(Teacher)、教師授課表(Teachercourse)、學生選課表(Selectcourse)、學生成績表(Score)。具體數據定義和內容設計如下面表1表14所示。學生信息表(Student)結構:表1列名數據類型長度是否允許為空說明sno(學號
8、)文本5N主鍵sname(姓名)文本10Nssex(性別)文本2Ysdept(系別)文本10Nsclass(班級)文本2Nsage(年齡)數字4Y 學生信息表(Student)內容:表2snosname sdeptsclassssexsage0001小花電子系01女190002小華電子系01男200003小小電子系01男200004小蘭電子系02女210005小許電子系02男20課程信息表(Course)結構:表3 列名數據類型長度是否允許為空說明cno(課程號) 文本3N主鍵cname(課程名)文本16Nctime(學時)數字Y課程信息表(Course)內容:表4cnocnamectime0
9、01電路理論40002信號與系統48003工程磁場56F01電機學72F02管理學32G01電子設計自動化40G02日語入門32教師信息表(Teacher)結構:表5列名數據類型長度是否允許為空說明tname(教師姓名) 文本10N主鍵tdept(教師系別) 文本10Ytsex(性別) 文本2Y教師信息表(teacher)內容:表6tnametdepttsex安大電力系男柴琴外語系女丁小小電子系女董會電力系女董美美電子系女羅華自動化系男楊梅經管系女教師授課表(Teachercourse)結構:表7列名數據類型長度是否允許為空說明tname(教師姓名) 文本10N主鍵cno(課程號) 文本5N主
10、鍵time(授課日期) 文本Y教師授課表(Teachercourse)內容:表8tnamecnotime安大0032014-04-05柴琴G022014-04-06丁小小0012014-03-01董會F012014-04-22董美美0022014-04-12羅華G012014-04-13楊梅F022014-04-18學生選課表(Selectcourse)結構:表9列名數據類型長度是否允許為空說明sno(學號)char5N主鍵cno(課程號)char5N主鍵學生選課表(Selectcourse)內容:表10 sno cno00010010001G0100020020002G02000300300
11、03F020004F010005F02學生成績表(Score)結構:表13列名數據類型長度是否允許為空說明sno(學號) 文本5N主鍵cno(課程號) 文本5N主鍵score(分數) 數字5,2Y學生成績表(score)內容:表14snocno分數0001001980001G01890002002870002G02860003003900003F02760004F01850005F02932.4 創建數據庫關系圖圖73應用軟件的實現在Microsoft Visual C+6.0 中開發系統的第一步就是創建一個該系統的工程,來編寫管理系統中的各種資源和代碼。3.1 創建工程的步驟(1)打開Mic
12、rosoft Visual C+6.0 開發環境,在菜單中依次選擇“文件”>“新建”菜單。(2)在新建對話框窗口選擇“工程”菜單下的“MFC AppWizard【exe】”,同時在右邊選擇存儲路徑及為工程命名,然后單擊“確定”按鈕。(3)在接下來出現的MFC應用程序向導步驟1中創建的應用程序類型選擇單文檔,語言為中文簡體,接下來步驟26選擇默認設置。 這樣,教學管理系統工程就創建完成。3.2 向單文檔窗口添加菜單項(1) 在菜單欄中依次添加菜單名“學生”和“老師”以區分學生和老師的功能(2) 在“學生”下添加菜單選項“教師授課情況”,在“教師”下分別添加菜單選項“學生情況”、“課程名基本
13、情況”、“教師授課情況”、“學生成績”。如圖8圖9所示 圖8圖93) 對菜單項“學生情況”設置ID為ID_person,并點擊建立類向導,添加單擊消息函數響應,添加代碼如下: void CMainFrame:Onperson() / TODO: Add your command handler code here CGS m; m.DoModal();并在該類預定義那添加頭函數 #include"GS.h"。“課程名基本情況”、“教師授課情況”、“學生成績”、“教師授課查詢”菜單消息響應添加同上。 3.3 對話框的設計(1) 對話框界面的設計及實現功能展示ADO數據連接。在
14、RescoureView下打開Dialog插入幾個對話框,然后對各個對話框進行控件設置及界面的設計。界面設計及功能實現,如圖10圖14所示。圖10圖11(2) 對話框與數據庫連接的實現1) 在文件Header File下的stdAfx.h中引入ADO庫代碼#import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")2) 初始化COM環境,創建連接對象在對話框類加入成員變量:ConnectionPtr m_pCo
15、nnection1;并實現初始化,代碼如下:CGS:OnInitDialog() AfxOleInit();m_pConnection1.CreateInstance(_uuidof(Connection);m_pConnection1->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=jwxt.mdb","","",adModeUnknown); 3) 打開記錄集,初始化對話框在對話框類加入成員變量:_RecordsetPtr m_pRecordset3;用ClassWiz
16、ard給窗口中每個編輯框添加成員變量,本對話框添加了:m_sno,m_sname, m_sdept, m_sclass, m_ssex ,sage在對話框初始化函數CGS:OnInitDialog()中添加 m_pRecordset3.CreateInstance(_uuidof(Recordset);m_pRecordset3->Open("SELECT*FROM Student",m_pConnection1.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 4) 對對話框中各個按鈕添加消息響
17、應函數即功能實現的代碼,學生基本情況對話框各種功能的實現代碼如下: 顯示函數: CGS:DispRecord()/在對話框顯示數據_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() /前一條函數:可以瀏覽數據/ TODO: Add your control not
20、ification handler code here m_pRecordset3->MovePrevious();if(m_pRecordset3->BOF)m_pRecordset3->MoveFirst();DispRecord(); void CGS:OnButton6() /后一條:可以瀏覽數據/ TODO: Add your control notification handler code here m_pRecordset3->MoveNext(); if(m_pRecordset3->adoEOF) m_pRecordset3->MoveL
21、ast();DispRecord();void CGS:OnButton1() /錄入函數:在錄入數據前先點擊錄入/ TODO: Add your control notification handler code here RefreshData();try/ 寫入各字段值m_pRecordset3->AddNew();catch(_com_error *e)AfxMessageBox(e->ErrorMessage();CGS:RefreshData()/清空函數 m_sno=""m_sname=""m_sdept=""
22、;m_sclass=""m_ssex="男"m_sage=0;UpdateData(FALSE);void CGS:OnButton4() /保存函數:錄入數據后,實現保存數據功能/ 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() /刪除函數:刪除不要的數據/ TODO: Add your control notification handler code heretryAfxMessageBox("刪除當前記錄"); 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() /編輯函數:對數據進行更改/ 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) 上述為學生基本
27、情況的對話框實現代碼,課程基本情況、教師授課表情況及學生成績三個個對話框的各功能實現代碼與上述代碼相似。6) 對于學生查詢教師授課情況主要查詢功能實現代碼如下: 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025成都租房合同簡化版
- 2025私人借款擔保協議合同
- 2025試用期勞動合同協議書
- 2025保險合同權益轉讓協議(轉讓)
- 2025養殖場租賃合同范本
- 2025混凝土澆筑工程合同
- 2025春季學期國家開放大學專科《高等數學基礎》一平臺在線形考(形考任務一至四)試題及答案
- 2025室內設計合作合同范本
- 2025二手車買賣合同二手車買賣合同范本
- 2025網絡設備采購合同(標準范本)
- 國開《國家開放大學學習指南》學習網形考參考答案
- 耳鼻喉科技術操作規范
- 航道整治試卷A
- 腹腔鏡胃癌根治術護理教學查房
- DB23T 2334-2019 裝配式混凝土渠道應用技術規范
- 幼兒園優質公開課:中班科學《奇妙的紫甘藍汁》課件
- 中職資料:第1講 社會主義在中國的確立與探索+課件
- 諾如病毒感染診斷和治療
- 卡壓不銹鋼管的施工組織方案
- 2022山東大學出版社校園招聘16人上岸筆試歷年難、易錯點考題附帶參考答案與詳解
- 10kV環網柜技術規范書
評論
0/150
提交評論