教務輔助管理系統(tǒng)_第1頁
教務輔助管理系統(tǒng)_第2頁
教務輔助管理系統(tǒng)_第3頁
教務輔助管理系統(tǒng)_第4頁
教務輔助管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫課程設計教務輔助管理系統(tǒng)院(系)別 班 級 學 號 姓 名 指導教師 時 間 課 程 設 計 任 務 書題 目 教務輔助管理系統(tǒng) 系 (部) 專 業(yè) 班 級 學生姓名 學 號 月 日至 月 日 共 周指導教師(簽字) 系 主 任(簽字) 年 月 日一、 設計內容及要求1. 設計內容:(1)主要的數據表教師基本信息表,課程表,教室資源表等等。(2)主要功能模塊1) 對上課教師基本信息進行管理。2) 對全院開設的課程進行管理。3) 錄入教師基本上課信息。4) 實現自動排課功能。5) 簡單計算工作量。6) 能夠進行各種數據統(tǒng)計。7) 能夠輸出相應的報表。8) 具有數據備份和數據恢復功能。2.

2、要求: 軟件功能主要考慮實用,具體功能模塊一定要先進行調研。二、 設計原始資料 (第三版) 薩師煊、王珊 高等教育出版社數據庫原理及應用SQL Server 2000 夏冰冰 主編 國防工業(yè)出版社數據庫設計教程(原書第2版) 作者:Thomas M. Connolly, Carolyn E. Begg 機械工業(yè)出版社 數據庫原理及應用 作者:張鳳琴 出版社:清華大學出版社 北京交通大學出版社 三、設計完成后提交的文件和圖表1計算說明書部分數據庫設計分析根據要求可知,新建一數據庫 teacher ,在此數據庫中建立三張表:Classroom,Course,TeacherInfo。Course包括

3、 課程編號,課程名,任課老師,課時,上課時間;TeacherInfo包括 教師編號,名稱,年齡,性別,電話,職稱,所在院系Classroom包括教室編號,名稱,及設備信息。鑒于有可能一個教師可以教授多門課一門課可以由多個教師教授,所以要建立表間關系。具體實現在下面會有體現!2圖紙部分:程序流程圖退出返回還原備份上課地點上課節(jié)數教師課程名課程編號所在學院職稱電話性別年齡編號姓名教室信息班級查詢返回備份還原課程信息教師信息教室信息程序開始四、進程安排內容學時地點備注分配任務與分組1天實驗室系統(tǒng)功能需求分析1天實驗室數據庫需求分析1天實驗室邏輯數據庫結構2天實驗室查詢視圖、存儲過程、觸發(fā)器1天實驗室

4、編程2天實驗室程序測試和成果驗收2天實驗室五、主要參考資料數據庫設計教程(原書第2版) 作者:Thomas M. Connolly, Carolyn E. Begg 機械工業(yè)出版社 數據庫原理及應用 作者:張鳳琴 出版社:清華大學出版社 北京交通大學出版社 數據庫設計解決方案入門精典 主編 王海濤 清華大學出版社 Visual C+ 文檔窗體設計 主編 丁有和 青島出版社C+程序設計教程 主編(美) Grey Perry 清華大學社出版社成 績 評 定 表作品成績報告成績口試(答辯)成績總評成績目 錄1課程設計概述-11.1教務輔助管理系統(tǒng)功能概述-11.2開發(fā)環(huán)境概述-12 教務輔助管理系統(tǒng)

5、總體設計-22.1 教務輔助管理系統(tǒng)總體設計思想-22.2總體設計流程圖-23 教務輔助管理系統(tǒng)詳細設計-33.1 需要體現的地方.-34 代碼分析-44.8.1 E-R圖設計-114.8.2 存儲過程-124.9備份刪除-.13設計體會及今后的改進意見-14參考文獻-15.1 課程設計概述1.1 教務輔助管理系統(tǒng)功能概述1.1.1 Visual C+是微軟公司的重要產品之一, 是一種功能強大行之有效的可視化編程工具。它提供了MFC類庫,使用戶可以方便的開發(fā)自己想實現的功能。Visual C+6.0的主要特點:(1)自動化和宏功能。(2)可以靈活地定制工具欄和菜單。(3)可以直接運行和調試程序

6、,還可以使用宏語言來自動操作調試器。(4)支持Internet連接。(5)一個新的便捷的項目系統(tǒng)可以允許一個工作區(qū)內包含多個不同的項目類型。(6)在工作區(qū)內可以包含多個并列的工程文件。(7)可以在對話框中使用WizardBar將程序同可視化元素聯系起來。(8)Find in File命令支持兩個獨立的輸出窗格,可以保存上一次搜索的結果。這些新特性可以更好地利用Visual C+開發(fā)工具進行Windows應用程序開發(fā)。1.1.2 SQL(Structured Query Language),結構化查詢語言。SQL語言的主要功能就是同各種數據庫建立聯系,進行溝通。按照ANSI(美國國家標準協(xié)會)的

7、規(guī)定,SQL被作為關系型數據庫管理系統(tǒng)的標準語言。它的主要功能介紹:SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數據庫中的數據,從數據庫中提取數據等。絕大多數流行的關系型數據庫管理系統(tǒng)都采用了SQL語言標準。雖然很多數據庫都對SQL語句進行了再開發(fā)和擴展,但是包括Select, Insert, Update, Delete, Create,以及Drop在內的標準的SQL命令仍然可以被用來完成幾乎所有的數據庫操作。1.2 開發(fā)環(huán)境概述1.2.1 利用SQL Server 2005和Visual C+這兩款軟件連接起來共同設計教務輔助管理系統(tǒng)。SQL Server 2005用來設計數據庫,其中包

8、括數據庫的表和表間關系;Visual C+主要用來編程,其中主要用到其MFC的功能。2 教務輔助管理系統(tǒng)總體設計2.1 教務輔助管理系統(tǒng)總體設計思想教務輔助管理系統(tǒng)主要是針對管理者對學校教務方面進行統(tǒng)一管理教務輔助管理系統(tǒng)的功能模塊有:(1)提供菜單界面,方便用戶對程序個功能進行選擇,選擇要實現的功能按enter鍵進入該功能。(2) 對上課教師基本信息進行管理。(3) 對全院開設的課程進行管理。(4) 對教室進行管理。2.2 總體設計流程圖程序開始菜單界面面教師信息教室信息課程信息備份還原退出返回添加功能刪除功能修改功能查詢功能圖2-1 總體設計流程3 教務輔助管理系統(tǒng)詳細設計3.1三個表的組

9、成: 圖3.1 Classroom 圖3.2 Course 圖3.3 TeacherInfo4 程序測試4.1 菜單界面4.1.1 使用ODBC連接數據源圖4-1 菜單界面如圖所示可以看出此界面能夠實現增加、修改、刪除、清屏、查詢等功能。4.2 增加功能添加功能核心代碼:void CTeacher:OnAdd() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);/

10、打開數據庫UpdateData(true);if(!UpdateData()return;TRY m_db.BeginTrans();CRecordset rs(&m_db);CString sql;/獲取新的ID值. rs.Open(CRecordset:dynaset, Select max(ID) from TeacherInfo);int newID = 1; if(!rs.IsEOF() CDBVariant var; rs.GetFieldValue(short)0, var, SQL_C_SLONG); if (var.m_dwType != DBVT_NULL)newID =

11、var.m_iVal+1;var.Clear(); /插入新的信息記錄. sql.Format(exec dbo.add_teacherinfo %d,%s,%s,%s,%s,%s,%s,newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College);/使用存儲過程 m_db.ExecuteSQL(sql); rs.Close();/向界面中插入新的信息.InsertCRInfoItem(newID,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College); m_db.CommitTrans();CATCH(CDBExcepti

12、on,ex)AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close();4.3 刪除功能 其代碼如下:void CTeacher:OnDelete() / TODO: Add your control notifica

13、tion handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);UpdateData(true);/ TODO: Add your control notification handler code here int nItem = m_ListTeacher.GetNextItem(-1, LVNI_SELECTED);/如果沒有選擇要刪除的紀錄,返回.if(nItem = -1)AfxMessageBox(請選擇要刪除的信息);return

14、;/從列表框控件中獲取選擇的客戶信息.int lid = atoi(m_ListTeacher.GetItemText(nItem,0);TRYm_db.BeginTrans();CString deletedSql;/刪除客戶信息deletedSql.Format(exec dbo.detete_teacher_information %d,lid);m_db.ExecuteSQL(deletedSql);/刪除界面上的數據m_ListTeacher.DeleteItem(nItem);m_db.CommitTrans();CATCH(CDBException,ex)AfxMessageBo

15、x (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close();4.4 修改功能其代碼如下:void CTeacher:OnUpdate() / TODO: Add your control notification handler code h

16、ereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);UpdateData(true);if(!UpdateData()return;int nItem = m_ListTeacher.GetNextItem(-1, LVNI_SELECTED);if(nItem = -1)AfxMessageBox(沒有修改信息!);return;int ID = atoi(m_ListTeacher.GetItemText(nItem,0); TRYm_db.BeginTrans()

17、;CString sql; sql.Format(update TeacherInfo set Name=%s,Age=%s,Sex=%s,Tel=%s,Title=%s,College=%swhere ID=%d,m_Name,m_Age,m_Sex,m_Tel,m_Title,m_College,ID); m_db.ExecuteSQL(sql);m_ListTeacher.SetItemText(nItem,1,m_Name);m_ListTeacher.SetItemText(nItem,2,m_Age);m_ListTeacher.SetItemText(nItem,3,m_Sex)

18、;m_ListTeacher.SetItemText(nItem,4,m_Tel);m_ListTeacher.SetItemText(nItem,5,m_Title);m_ListTeacher.SetItemText(nItem,6,m_College); m_db.CommitTrans();CATCH(CDBException,ex)AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_strStateNativeOrigin);m_db.Rollback();AND_CATCH(CException,e)TCHAR szError100;

19、e-GetErrorMessage(szError,100);AfxMessageBox (szError);m_db.Rollback();END_CATCHm_db.Close(); 4.5 清除編輯框中的信息程序運行界面的清屏。代碼如下:void CTeacher:OnButtonClear() / TODO: Add your control notification handler code herem_No.Empty();m_Name.Empty();m_Age.Empty();m_Sex.Empty(); m_Tel.Empty();m_Title.Empty();m_Coll

20、ege.Empty();UpdateData(FALSE);4.6 查詢功能代碼如下:void CTeacher:OnNoquire() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog);if(!UpdateData()return;if(m_No.IsEmpty()AfxMessageBox(ID不能夠為空);return;if(!m_db.IsOpen()Mes

21、sageBox(數據庫未打開);return;m_ListTeacher.DeleteAllItems();CRecordset rs(&m_db);CString temp = %;CString sql;sql.Format(select * from TeacherInfo where ID like %s%s%s,temp,m_No,temp);rs.Open(CRecordset:dynaset, sql);while (!rs.IsEOF() int ID;CString Name,Age,Sex,Tel,Title,College;CDBVariant var;rs.GetFie

22、ldValue(short)0, var, SQL_C_SLONG);if (var.m_dwType != DBVT_NULL)ID = var.m_iVal;var.Clear();rs.GetFieldValue(1,Name);rs.GetFieldValue(2,Age);rs.GetFieldValue(3,Sex);rs.GetFieldValue(4,Tel);rs.GetFieldValue(5,Title);rs.GetFieldValue(6,College);InsertCRInfoItem(ID,Name,Age,Sex,Tel,Title,College);rs.M

23、oveNext();rs.Close();m_db.Close();說明對于其它模塊(例如課程和教室等的管理)與教師信息管理模塊的實現基本相同,在此就不一一舉例了。4.7 數據庫設計4.7.1 ER圖設計 4.7.2 存儲過程 在進行提取數據庫的信息時我采取了存儲過程的應用。在大型數據庫系統(tǒng)中,存儲過程和觸發(fā)器具有很重要的作用。無論是存儲過程還是觸發(fā)器,都是SQL 語句和流程控制語句的集合。就本質而言,觸發(fā)器也是一種存儲過程。存儲過程在運算時生成執(zhí)行方式,所以,以后對其再運行時其執(zhí)行速度很快。SQL Server 2005 不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系

24、統(tǒng)存儲過程。存儲過程的能力大大增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算。 可保證數據的安全性和完整性。通過存儲過程可以使沒有權限的用戶在控制之下間接地存取數據庫,從而保證數據的安全。通過存儲過程可以使相關的動作在一起發(fā)生,從而可以維護數據庫的完整性。在運行存儲過程前,數據庫已對其進行了語法和句法分析,并給出了優(yōu)化執(zhí)行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由于執(zhí)行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執(zhí)行。在此列出添加、刪除、修改、查詢的存儲過程的模式:添加CREATE procedure

25、 studentinsert no char(10),name char(10),sex char(10),age int,dept char(10) as insert into student(sno,sname,ssex,sage,sdept) values(no,name,sex,age,dept) 修改create procedure studentupdateno int,name char(10),sex char(10),age char(10),dept char(10)asupdate studentset sname=name,ssex=sex,sage=age,sdep

26、t=deptwhere sno=no刪除create procedure studentdeleteno intasdeletefrom studentwhere sno=no查詢alter procedure studentselectname char(10)asselect *from studentwhere sname like %name%模糊查詢,關鍵字“l(fā)ike”Select *from ()where()like “%”()括號中所填寫的為條件;4.8 備份和還原 本程序還實現了備份和還原功能。在電腦上先建立一個backup文件夾,單擊備份按鈕后,將自動將數據庫備份到back

27、up文件夾中。單機還原按鈕可還原至上次備份時數據庫的狀態(tài)。具體代碼:void CBeifen:OnButton1() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog); UpdateData(true);if(!m_db.IsOpen() if(!m_db.Open(_T( teacher) MessageBox( 不能打開到該數據源的連接! ); CString

28、strSQL; strSQL=backup database teacher to disk=;strSQL=backup database teacher to disk=d:backupteacher; m_db.ExecuteSQL(strSQL); m_db.Close(); AfxMessageBox(數據庫備份成功!);void CBeifen:OnButton2() / TODO: Add your control notification handler code hereCString a; CString b=teacher;a.Format(DSN=%s,b);m_db.OpenEx(a,CDatabase:noOdbcDialog); UpdateData(true);if(!m_db.IsOpen() if(!m_db.Open(_T( teacher) MessageBox( 不能打開到該數據源的連接! ); CString strSQL; strSQL=use master; /這里轉換到master數據庫 m_db.ExecuteSQL(strSQL)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論