華北科技學(xué)院課程設(shè)計優(yōu)秀作品:方達學(xué)生選課管理系統(tǒng)設(shè)計整體方案_第1頁
華北科技學(xué)院課程設(shè)計優(yōu)秀作品:方達學(xué)生選課管理系統(tǒng)設(shè)計整體方案_第2頁
華北科技學(xué)院課程設(shè)計優(yōu)秀作品:方達學(xué)生選課管理系統(tǒng)設(shè)計整體方案_第3頁
華北科技學(xué)院課程設(shè)計優(yōu)秀作品:方達學(xué)生選課管理系統(tǒng)設(shè)計整體方案_第4頁
華北科技學(xué)院課程設(shè)計優(yōu)秀作品:方達學(xué)生選課管理系統(tǒng)設(shè)計整體方案_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、XXXXX學(xué) 院課程設(shè)計指導(dǎo)手冊班級: X X X X X 姓名: X X X X X X X設(shè)計題目: 方達學(xué)生選課系統(tǒng)_設(shè)計時間: 2012.12.23 至指導(dǎo)教師: X X X X X _評 語:_評閱成績: 評閱教師: 目 錄目 錄I方達學(xué)生選課管理系統(tǒng)設(shè)計總說明III第1章 緒論1第2章 需求設(shè)計22.1 需求分析22.1.1 了解需求分析背景22.1.2 確切了解客戶的需求22.1.3 掌握系統(tǒng)需求22.1.4 掌握功能需求32.1.5 掌握數(shù)據(jù)需求32.1.6 性能需求,出錯處理需求,設(shè)計數(shù)據(jù)字典3第3章 相關(guān)設(shè)計43.1 后臺數(shù)據(jù)庫設(shè)計與相關(guān)操作設(shè)計43.1.1 E-R模型設(shè)計

2、463.1.3 建立數(shù)據(jù)庫索引63.1.4 數(shù)據(jù)庫完整性設(shè)計7第4章 相關(guān)軟件介紹94.1 簡要論述ODBC數(shù)據(jù)源94.2 簡要論述MFC104.2.1 MFC簡介104.2.2 建立MFC工程10第5章系統(tǒng)實現(xiàn)過程115.1 華科學(xué)生選課管理系統(tǒng)前臺界面設(shè)計115.1.1 資源視圖(Resource View)設(shè)計115.1.2 文件視圖(File View)設(shè)計115.1.3 類視圖(Class View)設(shè)計135.1.4 界面與界面之間實現(xiàn)連接設(shè)計145.2 方達學(xué)生選課管理系統(tǒng)功能展示205.2.1 方達選課系統(tǒng)教師,學(xué)生,管理員登錄主界面205.2.2 系統(tǒng)管理員添加課程信息205

3、.2.3 系統(tǒng)管理員查看學(xué)生信息與課程信息215.2.5 學(xué)生登錄選修課程225.2.6 學(xué)生查看自己成績235.2.7 學(xué)生修改密碼235.2.8 教師登錄給學(xué)生評分24第6章 總計及感想256.1 本次課程設(shè)計總結(jié)256.2 課程設(shè)計體會與感想25參考文獻27附錄:(源代碼)28方達學(xué)生選課管理系統(tǒng)設(shè)計總說明 圍繞著本次的學(xué)生選課系統(tǒng),我設(shè)計了方達學(xué)生選課系統(tǒng),前臺界面采用VC+中MFC應(yīng)用程序,后臺我們通過SQL2008做出此系統(tǒng)的數(shù)據(jù)庫, 后臺我通過SQL2008做出此系統(tǒng)的數(shù)據(jù)庫,鑒于本次課設(shè)實際情況我們設(shè)計了五個表:教師表,學(xué)生表,選課表,課程表,教務(wù)處登錄表。然后用E-R圖設(shè)計,

4、我們大致計算出數(shù)據(jù)庫的大小,這樣才能防止后續(xù)由于人數(shù)增多而導(dǎo)致數(shù)據(jù)庫容量不足。 首先我們要創(chuàng)建ODBC數(shù)據(jù)源,通過MFC程序把數(shù)據(jù)庫數(shù)據(jù)源與前臺界面連接起來。前臺界面按鈕設(shè)計主要依據(jù)數(shù)據(jù)庫中各個表的列名設(shè)計。界面與界面之間有代碼進行連接,通過建立類向?qū)А?當達到界面與界面正確連接,界面與后臺數(shù)據(jù)庫正確連接后,運行后的前臺可以對數(shù)據(jù)庫進行操作,添加或者刪除信息,也就達到了課設(shè)的目的與要求。因為成績管理系統(tǒng)是一項很實用的系統(tǒng),所面對的數(shù)據(jù)量很大,所以我們要求系統(tǒng)能夠高效快速的處理這些數(shù)據(jù),并且要保證數(shù)據(jù)的正確性、相容性和安全性。VC+作為前臺是將數(shù)據(jù)庫中的數(shù)據(jù)讀取出來,有助于用戶對這些數(shù)據(jù)進行相應(yīng)

5、的操作,使操作更方便,更符合用戶的要求。關(guān)鍵詞:SQL2008,VC+,E-R圖,ODBC數(shù)據(jù)源,MFC應(yīng)用程序第1章 緒論 隨著課程改革的不斷深入,學(xué)校規(guī)模不斷擴大、課程項目不斷增多,為了解決學(xué)生選課管理上的復(fù)雜的人工操作,減輕重復(fù)工作,故設(shè)計了選課系統(tǒng)。學(xué)校規(guī)模的擴大使得學(xué)校對每年新生入學(xué)、畢業(yè)生離校及本校各種分流機制造成的學(xué)生信息產(chǎn)生變動,如學(xué)籍變動、個人信息修改。為了適應(yīng)課程的改革,學(xué)校在每個學(xué)期都要開設(shè)一定的課程提供給學(xué)生,讓學(xué)生根據(jù)自己的情況來選擇,根據(jù)學(xué)生選擇結(jié)果給出課程表。本校根據(jù)教學(xué)實際,為了使教師有效地管理學(xué)生信息 設(shè)計學(xué)生信息管理系統(tǒng),由此形成學(xué)生成績管理系統(tǒng),本文就此設(shè)

6、計思路進行闡述。隨著學(xué)校規(guī)模的不斷擴大,專業(yè)、班級、學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息量也成倍增長,而目前許多高校的學(xué)生選課管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,率低,因此,迫切需要開發(fā)基于互聯(lián)網(wǎng)的課程信息管理系統(tǒng)來提高管理工作的效率。 基于互聯(lián)網(wǎng)的學(xué)生選課管理系統(tǒng)在學(xué)生選課的規(guī)范管理、科學(xué)統(tǒng)計和快速查詢方面具有較大的實用意義。它提高了信息的開放性,大大地改善了學(xué)生、教師對其最新信息查詢的準確性。第2章 需求設(shè)計2.1 需求分析2.1.1 了解需求分析背景為方便學(xué)校對廣大學(xué)生選課信息的管理以及方便學(xué)生選課,學(xué)生選課系統(tǒng)的設(shè)計顯得十分重要。本次程序設(shè)計的題目就是學(xué)生選課系

7、統(tǒng),系統(tǒng)中的課程信息包括課程編碼、課程名稱、適用專業(yè)、課程類型包括必修、限選、必選、實踐、實習(xí)、學(xué)分、學(xué)時、主講教師等。本程序要求做到可通過鍵盤輸入的形式輸入數(shù)字及英文字母,實現(xiàn)數(shù)據(jù)的輸入,輸入值的范圍按照系統(tǒng)給出的提示 。輸出的形式是通過電腦顯示屏顯示程序的運行結(jié)果及數(shù)據(jù) 程序能夠達到的功能,學(xué)生信息管理,學(xué)生選課管理,學(xué)生選課學(xué)分總數(shù)有一定的范圍,學(xué)生可以對課程進行查詢、瀏覽,選完課后可以退選、重選,并且可以按學(xué)號、姓名、課程名稱進行查詢、統(tǒng)計。按照系統(tǒng)提示輸入能進行下一步的選擇并得到相應(yīng)的正確結(jié)果,當輸入錯誤時會得到錯誤提示,返回進行下一步操作。 2.1.2 確切了解客戶的需求(1) 用

8、戶類型:教務(wù)處管理員,教師,學(xué)生。(2) 各類用戶擁有的權(quán)限:教務(wù)處管理員可以添加,修改,查詢學(xué)生的資料和學(xué)生的選課情況。學(xué)生只能查詢自己的資料、選修課程、修改密碼。教師可以選擇教授的課程,對課程進行評分。2.1.3 掌握系統(tǒng)需求(1) 管理員使用本系統(tǒng)對全部數(shù)據(jù)進行維護。(2) 教師對自己相關(guān)的數(shù)據(jù)實體進行操作。(3) 學(xué)生對數(shù)據(jù)實體只有查詢,選修操作。2.1.4 掌握功能需求(1) 設(shè)計不同用戶操作的登錄名與密碼。(2) 管理員可以操作教師與學(xué)生的所有信息。(3) 學(xué)生可以查詢信息,選修課程。2.1.5 掌握數(shù)據(jù)需求(1) 學(xué)生信息:學(xué)號,姓名,性別,系部,專業(yè)班級,密碼,年齡。(2) 課

9、程信息:課程編號,課程名稱,學(xué)分,學(xué)時,開課學(xué)期。(3) 選課信息:學(xué)號,課程編號,課程名稱,學(xué)生姓名,學(xué)分,學(xué)生成績。(4) 教師信息:教師編號,姓名,性別,密碼,教授課程編號,年齡。(5) 教務(wù)處管理員信息:姓名,編號,密碼。2.1.6 性能需求,出錯處理需求,設(shè)計數(shù)據(jù)字典綜上所述我們知道學(xué)生選課管理系統(tǒng),是學(xué)校管理學(xué)生選課信息的重要系統(tǒng)。系統(tǒng)中分別涉及到不同管理部門所管理的學(xué)生信息,因而將系統(tǒng)的信息分類,分別由教務(wù)處、學(xué)生處、各系老師管理具體的信息。 因此學(xué)生選課管理系統(tǒng)這樣設(shè)計的目的是:(1)利用查詢分析器可以查找學(xué)生在學(xué)校的一些基本情況(2)為用戶提供充足的信息和快捷的查找手段(3)

10、提高文件的查找、維護和更新(4)提高教學(xué)信息管理的效率 (5)為了更好的管理學(xué)生的基本信息第3章 相關(guān)設(shè)計3.1 后臺數(shù)據(jù)庫設(shè)計與相關(guān)操作設(shè)計3.1.1 E-R模型設(shè)計學(xué)生選課管理系統(tǒng)中采用“實體聯(lián)系模型”(E-R模型)來描述數(shù)據(jù)庫的結(jié)構(gòu)與語義,是對現(xiàn)實世界進行第一次抽象。E-R模型直接從現(xiàn)實世界抽象出實體類型及實體間聯(lián)系,然后用E-R圖來表示數(shù)據(jù)模型。它有兩個明顯的優(yōu)點:接近于人的思維,容易理解;與計算機無關(guān),用戶容易接受。但E-R模型只能說明實體間語義的聯(lián)系,不能進一步說明詳細的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫設(shè)計的第一步。根據(jù)以上對系統(tǒng)所作的需求分析,系統(tǒng)設(shè)計,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)實體。因此學(xué)

11、生選課管理系統(tǒng)的E-R圖如下:系部密碼姓名專業(yè)班級學(xué)號學(xué)生表 性別年齡 圖1 學(xué)生表實體E-R圖年齡教師編號教授課程編號密碼教師表 性別姓名 圖2 教師表實體E-R圖姓名密碼編號管理員信息表 圖3 管理員信息表E-R圖課程編號學(xué)分課程名稱課程信息表 開課學(xué)期學(xué)時 圖4 課程信息表E-R圖學(xué)生成績課程編號學(xué)分課程名稱選課信息表 學(xué)號學(xué)生姓名 圖5 選課信息表E-R圖綜合上述的E-R圖,我們可以清晰的看到畫出E-R圖對于建立表提供了依據(jù),同樣表與表之間的連接通過各表相同候選碼連接起來。這也是為了后臺數(shù)據(jù)庫建立視圖,索引,觸發(fā)器,數(shù)據(jù)庫的完整性等編寫代碼打下基礎(chǔ),由此可見E-R圖對于本次課設(shè)后臺數(shù)據(jù)

12、庫建立起相當重要的地位。3.1.2后臺數(shù)據(jù)庫與基本表的設(shè)計圖6 創(chuàng)建學(xué)生選課管理student數(shù)據(jù)庫(采用界面方式創(chuàng)建)圖7 創(chuàng)建基本表表(采用界面方式創(chuàng)建)3.1.3 建立數(shù)據(jù)庫索引(1)設(shè)計思想:為了從數(shù)據(jù)庫的大量數(shù)據(jù)中迅速找到需要的內(nèi)容,也采用類似于書目錄的索引技術(shù),不必順序查找,就能迅速查到所需要的內(nèi)容。索引是根據(jù)表中一列或若干列按照一定順序建立的列值與記錄行之間的對應(yīng)關(guān)系表,在數(shù)據(jù)庫中的作用如下:快速存取數(shù)據(jù)、保證數(shù)據(jù)記錄的唯一性、實現(xiàn)表與表之間的參照完整性、減少排序和分組的時間。(2)索引建立的說明:學(xué)生選課管理系統(tǒng)中有五個表,而聚集索引一個表只能有一個,因此有五個聚集索引。一個表

13、可以有一個或者多個非聚集索引,因此非聚集索引不限。圖8 命令方式創(chuàng)建索引3.1.4 數(shù)據(jù)庫完整性設(shè)計(1)設(shè)計思想:數(shù)據(jù)完整性是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上的一致性與準確性,數(shù)據(jù)庫的完整性一般包括:實體完整性,域完整性,參照完整性性。下面分開介紹三種完整性:1:實體完整性:實體完整性又稱行完整性,要求表中有一個主鍵,其值不能為空且能唯一的標識對應(yīng)的記錄。通過索引、UNIQUE約束、PRIMARY KEY約束或IDENTITY屬性可以實現(xiàn)數(shù)據(jù)的實體完整性。2:域完整性:域完整性又稱列完整性,指給定列輸入的有效性。實現(xiàn)域完整的方法有:限制類型,格式(通過CHECK約束和規(guī)則)或可能的取值范圍(通過CH

14、ECK約束、DEFALUT定義、NOT NULL定義和規(guī)則)等。3:參照完整性:又稱引用完整性。參照完整性保證主表中的數(shù)據(jù)與從表中數(shù)據(jù)的一致性。在SQL Server 2008中,參照完整性的實現(xiàn)是通過定義外鍵與主鍵之間或者外鍵與唯一鍵之間的對應(yīng)關(guān)系來實現(xiàn)的。參照完整性確保鍵值在所有表中的一致性。(2)具體實現(xiàn):圖9 命令方式實現(xiàn)數(shù)據(jù)庫的完整性第4章 相關(guān)軟件介紹4.1 簡要論述ODBC數(shù)據(jù)源 3.1.1 ODBC簡介ODBC(Open DataBase Conectivity)是標準編程接口,只要有相應(yīng)的ODBC驅(qū)動程序,就可以通過ODBC連結(jié)操作各種不同的數(shù)據(jù)庫。通常通過控制面板中的ODB

15、C Data Source來配置ODBC的數(shù)據(jù)源。所謂ODBC數(shù)據(jù)源就是命名的一組信息,包括需要連結(jié)的數(shù)據(jù)庫所在位置(可以是磁盤目錄文件,也可以是網(wǎng)絡(luò)服務(wù)器)、對應(yīng)的ODBC驅(qū)動程序以及訪問數(shù)據(jù)庫所需的其他相關(guān)信息,用戶可以通過數(shù)據(jù)源的名稱來指定所需的ODBC連接。  3.1.2 前臺與后臺數(shù)據(jù)源連接圖10 數(shù)據(jù)源連接4.2 簡要論述MFC 4.2.1 MFC簡介MFC是用于在C+環(huán)境下編寫應(yīng)用程序的一個框架和引擎。MFC的本質(zhì)就是一個包含了許多微軟公司已經(jīng)定義好的對象的類庫,我們知道,雖然我們要編寫的程序在功能上是千差萬別的,但從本質(zhì)上來講,都可以化歸為用戶界面的設(shè)計,對文件的操作

16、,多媒體的使用,數(shù)據(jù)庫的訪問等等一些最主要的方面。這一點正是微軟提供MFC類庫最重要的原因,在這個類庫中包含了一百多個程序開發(fā)過程中最常用到的對象。在進行程序設(shè)計的時候,如果類庫中的某個對象能完成所需要的功能,這時我們只要簡單地調(diào)用已有對象的方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類庫中的已有對象派生出我們自己的對象,這時派生出來的對象除了具有類庫中的對象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個更專門的,功能更為強大的對象。當然,也可以在程序中創(chuàng)建全新的對象,并根據(jù)需要不斷完善對象的功能。 4.2.2 建立MFC工程圖11 建立MFC工程

17、第5章系統(tǒng)實現(xiàn)過程5.1 華科學(xué)生選課管理系統(tǒng)前臺界面設(shè)計5.1.1 資源視圖(Resource View)設(shè)計建立完MFC工程之后進入前臺界面制作,在C+中界面制作分為三個模塊:類視圖,資源視圖,文件視圖。資源視圖的設(shè)計是前臺制作的第一步,資源視圖里分為對話框制作與菜單制作,下面就分別介紹:(1) 主菜單設(shè)計:學(xué)生選課管理系統(tǒng)主菜單分為學(xué)生選課與管理員管理兩個主菜單。(2) 對話框設(shè)計:學(xué)生選課管理系統(tǒng)對話框設(shè)計為25個,具體見截圖:圖12 對話框設(shè)計5.1.2 文件視圖(File View)設(shè)計我們知道C+編程需要有頭文件,界面涉及的頭文件更多,在文件視圖里我們可以看到學(xué)生選課對話框涉及的

18、所有頭文件,本次課程設(shè)計選課系統(tǒng)頭文件有如下:(1) 管理員添加課程信息頭文件:#if !defined(AFX_ADMADDCDIALOG_H_A7044B91_139A_4DF0_9DA2_0C9787E9A4FF_INCLUDED_)#define AFX_ADMADDCDIALOG_H_A7044B91_139A_4DF0_9DA2_0C9787E9A4FF_INCLUDED_#if _MSC_VER > 1000#pragma once#endifclass CAdmADDCDialog : public CDialogpublic:CAdmADDCDialog(CWnd* p

19、Parent = NULL); enum IDD = IDD_ADMADDCOURSE ;protected:virtual void DoDataExchange(CDataExchange* pDX); protected:afx_msg void OnAdmAddc();afx_msg void OnAdmcancles();DECLARE_MESSAGE_MAP();previous line.#endif (2) 管理員添加學(xué)生信息頭文件:#if !defined(AFX_ADMADDSDIALOG_H_9D145081_BC47_4A8F_B590_0A8F719B7390_INC

20、LUDED_)#if _MSC_VER > 1000#pragma once#endifclass CAdmADDSDialog : public CDialogpublic:CAdmADDSDialog(CWnd* pParent = NULL); enum IDD = IDD_ADMADDSTUDENT protected:virtual void DoDataExchange(CDataExchange* pDX); protected:afx_msg void OnAdninserts();afx_msg void OnAdds();DECLARE_MESSAGE_MAP();p

21、revious line.#endif由于頭文件代碼過于多,所以選取截圖作說明,具體詳細代碼見附錄。圖13 頭文件代碼5.1.3 類視圖(Class View)設(shè)計由于類是在對話框創(chuàng)建時一并創(chuàng)建的,因此截圖說明類的種類,代碼見附錄。圖14 類視圖設(shè)計5.1.4 界面與界面之間實現(xiàn)連接設(shè)計(1)登錄主界面與管理員操作界面,學(xué)生界面,老師界面的連接#include "stdafx.h"#include "Student.h"#include "LogonDialog.h"#include "AdmDialog.h"#i

22、nclude "StuDialog.h"#include "TeacherDialog.h"CString usernumber;CString username;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCLogonDialog:CLogonDialog(CWnd* pParent /*=NULL*/): CDialog(CLogonDialog:IDD, pParent)void CLogonDialog:DoDataE

23、xchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CLogonDialog, CDialog)ON_BN_CLICKED(IDC_LOG, OnLog)ON_BN_CLICKED(IDC_LOGCANCLE, OnLogcancle)END_MESSAGE_MAP()void CLogonDialog:OnLog() CDatabase db;db.OpenEx("DSN=Student");CString type,key,user;GetDlgItemText(IDC_TYP

24、E,type);GetDlgItemText(IDC_USER,user);GetDlgItemText(IDC_KEY,key);if(key.IsEmpty()|user.IsEmpty()|type.IsEmpty()AfxMessageBox("用戶名或密碼或類別不能為空!");return;CString strSQL;CRecordset rs(&db);int i;if(type="管理員")strSQL.Format("select Aname from Admini where Anum='%s' an

25、d Akey='%s'",user,key);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox("用戶名或密碼錯誤!");SetDlgItemText(IDC_USER,"");SetDlgItemText(IDC_KEY,"");return;rs.GetFieldValue("Aname",username);usernumber=user;SendMessage(WM_CLOS

26、E);CAdmDialog adm;adm.DoModal();else if(type="教師")strSQL.Format("select Tname from Teacher where Tnum='%s' and Tkey='%s'",user,key);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox("用戶名或密碼錯誤!");SetDlgItemText(IDC_USER,"

27、");SetDlgItemText(IDC_KEY,"");return;rs.GetFieldValue("Tname",username);usernumber=user;SendMessage(WM_CLOSE);CTeacherDialog tea;tea.DoModal();else if(type="學(xué)生")strSQL.Format("select Name from Student where Num='%s' and Skey='%s'",user,key

28、);rs.Open(CRecordset:snapshot,strSQL);i=rs.GetRecordCount();if(i=0)AfxMessageBox("用戶名或密碼錯誤!");SetDlgItemText(IDC_USER,"");SetDlgItemText(IDC_KEY,"");return;rs.GetFieldValue("Name",username);usernumber=user;SendMessage(WM_CLOSE);CStuDialog stu;stu.DoModal();els

29、eAfxMessageBox("沒有該類型!");SetDlgItemText(IDC_USER,"");SetDlgItemText(IDC_KEY,"");SetDlgItemText(IDC_TYPE,"");return;void CLogonDialog:OnLogcancle() / TODO: Add your control notification handler code hereSendMessage(WM_CLOSE);(2)登錄界面與學(xué)生選課界面連接#include "stdaf

30、x.h"#include "Student.h"#include "StuDialog.h"#include "StudentAdd.h"#include "LogonDialog.h"#include "CourseDialog.h"#include "SCCCourseDialog.h"#include "SCCourseDialog.h"#include "ChangeKey.h"#include "CJDia

31、log.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CStuDialog dialogCStuDialog:CStuDialog(CWnd* pParent /*=NULL*/): CDialog(CStuDialog:IDD, pParent)/AFX_DATA_INIT(CStuDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid

32、 CStuDialog:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CStuDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CStuDialog, CDialog)/AFX_MSG_MAP(CStuDialog)ON_COMMAND(ID_MENUADDCOURSE, OnMenuaddcourse)ON_BN_CLICKED(IDC_SEEINFOR

33、, OnSeeinfor)ON_COMMAND(ID_XIANSHI, OnXianshi)ON_COMMAND(ID_MENURELOG, OnMenurelog)ON_COMMAND(ID_MENUSTUEXIT, OnMenustuexit)ON_COMMAND(ID_MENUSEECHOICED, OnMenuseechoiced)ON_COMMAND(ID_MENUCHANGEKEY, OnMenuchangekey)ON_COMMAND(ID_MENUCJ, OnMenucj)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CStuDialog message han

34、dlersvoid CStuDialog:OnMenuaddcourse() / TODO: Add your command handler code hereCStudentAdd cs;cs.DoModal();void CStuDialog:OnSeeinfor() / TODO: Add your control notification handler code hereCDatabase db;db.OpenEx("DSN=Student");CRecordset rs(&db);CString strSQL;strSQL.Format("s

35、elect Num,Name,Sdepar,Sclass,Sage,Sbit from Student where Num='%s'",usernumber); rs.Open(CRecordset:snapshot,strSQL);CString temp1,temp2,temp3,temp4,temp5,temp6;if(!rs.IsEOF()rs.GetFieldValue("Num",temp1);rs.GetFieldValue("Name",temp2);rs.GetFieldValue("Sdepar&q

36、uot;,temp3);rs.GetFieldValue("Sclass",temp4);rs.GetFieldValue("Sage",temp5);ieldValue("Sbit",temp6);SetDlgItemText(IDC_XUEHAO,temp1);SetDlgItemText(IDC_XINGMING,temp2);SetDlgItemText(IDC_YUANXI,temp3);SetDlgItemText(IDC_BANJI,temp4);SetDlgItemText(IDC_XINGBIE,temp6);if(

37、temp5.Compare("1")SetDlgItemText(IDC_AGE,"男");elseSetDlgItemText(IDC_AGE,"女");void CStuDialog:OnXianshi() / TODO: Add your command handler code here/舍棄原有做法/*CCourseDialog cc;cc.DoModal();*/CSCCourseDialog csc;csc.DoModal();void CStuDialog:OnMenurelog() / TODO: Add your

38、command handler code hereSendMessage(WM_CLOSE);CLogonDialog cl;cl.DoModal();void CStuDialog:OnMenustuexit() / TODO: Add your command handler code hereSendMessage(WM_CLOSE);void CStuDialog:OnMenuseechoiced() / TODO: Add your command handler code hereCSCCCourseDialog scc;scc.DoModal();void CStuDialog:

39、OnMenuchangekey() / TODO: Add your command handler code hereCChangeKey cck;cck.DoModal();void CStuDialog:OnMenucj() / TODO: Add your command handler code hereCCJDialog ccj;ccj.DoModal();(3) 此外還有登錄界面與教師評分界面連接、登錄界面與學(xué)生修改密碼界面連接、與學(xué)生刪除選修課程界面之間的連接等等。由于代碼過于繁多,詳細界面連接見附錄。5.2 方達學(xué)生選課管理系統(tǒng)功能展示5.2.1 方達選課系統(tǒng)教師,學(xué)生,管理

40、員登錄主界面圖15 登錄主界面5.2.2 系統(tǒng)管理員添加課程信息圖16 管理員添加課程信息5.2.3 系統(tǒng)管理員查看學(xué)生信息與課程信息圖17 管理員查看信息5.2.4 系統(tǒng)管理員刪除學(xué)生信息與課程信息圖18 管理員刪除信息5.2.5 學(xué)生登錄選修課程圖19 學(xué)生選課5.2.6 學(xué)生查看自己成績圖20 學(xué)生查看自己成績5.2.7 學(xué)生修改密碼圖21 學(xué)生修改密碼5.2.8 教師登錄給學(xué)生評分圖22 教師評分6章 總計及感想6.1 本次課程設(shè)計總結(jié) 這次課程設(shè)計花了將近兩個星期的時間。剛拿到這個課題時,覺得這個課題以前講過,有些掉以輕心。今天回過去看看,原來所有一切見在細微處通過我們的努力終于完成

41、了。雖然這不是我讀大學(xué)以來的檢驗。經(jīng)過這次畢業(yè)設(shè)計我的能力有了很大的提高比如操作能力、分析問題的能力、合作精神、嚴謹?shù)墓ぷ髯黠L(fēng)等方方面面都進步了。這期間凝結(jié)我們的心血,在此我表示由衷的感謝。沒有他們的幫助,我將無法順利完成這次設(shè)計。6.2 課程設(shè)計體會與感想通過本次課程設(shè)計,我對SQL2008與VC+6.0有了更深的了解,數(shù)據(jù)庫和表是SQL2008中用于組織和管理數(shù)據(jù)的基本對象,用戶使用SQL2008設(shè)計和實現(xiàn)查詢信息,首要的任務(wù)是實現(xiàn)數(shù)據(jù)庫的表示和儲存,即創(chuàng)建數(shù)據(jù)庫和表,在設(shè)計中我深知自己掌握的知識還遠遠不夠掌握的一些理論知識應(yīng)用到實踐中去總會出現(xiàn)這樣或那樣的問題不是理論沒有掌握好而是光知道

42、書本上的知識是遠遠不夠的一定要把理論知識和實踐結(jié)合起來。把學(xué)到的知識應(yīng)用到實踐中去多做多練才可以把理論的精華發(fā)揮出來。知識不是知道了解就好一定要去應(yīng)用它發(fā)展它讓它在現(xiàn)實生活中得到充分的應(yīng)用從而解決一些問題這才是學(xué)習(xí)的根本目的。而且知識又不是單一的它是互相聯(lián)系的學(xué)科與學(xué)科之間都有著內(nèi)在的聯(lián)系。計算機是一門非常復(fù)雜且龐大的學(xué)科一項課題往往需要多項技術(shù)才可以完成的。在設(shè)計階段通過對課題的深入分析與研究迫使我對技術(shù)有了一定的了解。在遇到問題時得到了指導(dǎo)老師與同學(xué)的悉心幫助使我感受到集體的力量是無窮的。在整個設(shè)計階段感受最為深刻的是掌握學(xué)習(xí)的方式和解決問題的方法。首先是解決問題的方式,雖然面臨的信息有很

43、多,但是如何從大量的信息中篩選出所需的信息,有用的信息,才是解決問題的關(guān)鍵。另外一個就是解決問題的方法,就像是我在解決問題中的很多問題一樣,一開始總是看書,和書上的例子,題目對比,雖然說書本上的大部分是有價值的,正確的,但是實際上每個人的設(shè)計思想和編程思路,對數(shù)據(jù)的處理方法,處理思想都是不同的,這就要求我們一定要通過實踐才能找到解決問題的方案。在整個設(shè)計過程中,我深刻地體會到了這一點的重要性也牢記住了這一點,在今后的學(xué)習(xí)和研究中我也會繼續(xù)將這種方法延續(xù)下去。參考文獻1 數(shù)據(jù)庫原理及應(yīng)用 錢雪忠主編 北京郵電大學(xué)出版社 2007.8 第二版2 SQL Server2008實用教程 鄭阿奇主編 電

44、子工業(yè)出版社 2012.5 第三版3 數(shù)據(jù)庫基礎(chǔ)與應(yīng)用 中央廣播電視大學(xué)出版社 1997年4 數(shù)據(jù)庫技術(shù)與聯(lián)機分析處理 王珊主編 北京科學(xué)出版社 19985.Visual C+從入門到精通. 劉銳寧主編 北京:清華大學(xué)出版社,2010 6.數(shù)據(jù)庫應(yīng)用基礎(chǔ)實踐教程 . 楊長興主編 北京:中國鐵道出版社,2008附錄:(源代碼)附錄(一):添加課程信息#include "stdafx.h"#include "Student.h"#include "AdmADDCDialog.h"#ifdef _DEBUG#define new DEBUG

45、_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAdmADDCDialog dialogCAdmADDCDialog:CAdmADDCDialog(CWnd* pParent /*=NULL*/): CDialog(CAdmADDCDialog:IDD, pParent)/AFX_DATA_INIT(CAdmADDCDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CAdmADDCDialog:DoDat

46、aExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdmADDCDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdmADDCDialog, CDialog)/AFX_MSG_MAP(CAdmADDCDialog)ON_BN_CLICKED(IDC_ADMADDC, OnAdmAddc)ON_BN_CLICKED(IDC_ADMCANCLES, OnAdmcanc

47、les)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdmADDCDialog message handlersvoid CAdmADDCDialog:OnAdmAddc() / TODO: Add your control notification handler code hereCDatabase db;db.OpenEx("DSN=Student");CString strSQL;CRecordset rs(&db);CString temp1,temp2,temp3,temp4,temp5;GetDlgItemText(IDC_EDIT

48、1,temp1);GetDlgItemText(IDC_EDIT2,temp2);GetDlgItemText(IDC_EDIT3,temp3);GetDlgItemText(IDC_EDIT4,temp4);GetDlgItemText(IDC_EDIT5,temp5);if(temp1.IsEmpty()AfxMessageBox("課程編號不能為空!");return;strSQL.Format("select * from Course where courseNum='%s'",temp1);rs.Open(CRecordset

49、:snapshot,strSQL);int i=rs.GetRecordCount();if(i!=0)AfxMessageBox("課程編號已經(jīng)存在!");SetDlgItemText(IDC_EDIT1,"");return;strSQL.Format("insert into Course(courseNum,courseName,courseTime,courseScore,courseTerm) values('%s','%s','%s','%s','%s'

50、;)",temp1,temp2,temp3,temp4,temp5);db.ExecuteSQL(strSQL);AfxMessageBox("添加課程成功!");SetDlgItemText(IDC_EDIT1,"");SetDlgItemText(IDC_EDIT2,"");SetDlgItemText(IDC_EDIT3,"");SetDlgItemText(IDC_EDIT4,"");SetDlgItemText(IDC_EDIT5,"");void CAd

51、mADDCDialog:OnAdmcancles() / TODO: Add your control notification handler code hereSendMessage(WM_CLOSE);附錄(二):管理員添加學(xué)生信息#include "stdafx.h"#include "Student.h"#include "AdmADDSDialog.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endi

52、f/ CAdmADDSDialog dialogCAdmADDSDialog:CAdmADDSDialog(CWnd* pParent /*=NULL*/): CDialog(CAdmADDSDialog:IDD, pParent)/AFX_DATA_INIT(CAdmADDSDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CAdmADDSDialog:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdmADDSDialog)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdmADDSDialog, CDialog)/AFX_MSG_MAP(CAdmADDSDialog)ON_BN_CLICKED(IDC_ADNINSERTS, OnAdninserts)ON_BN_CLICKED(IDC_ADDS, OnAdds)/AFX_MSG_MAPEND

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論