版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XXXXX學(xué) 院課程設(shè)計(jì)指導(dǎo)手冊(cè)班級(jí): X X X X X 姓名: X X X X X X X設(shè)計(jì)題目: 方達(dá)學(xué)生選課系統(tǒng)_設(shè)計(jì)時(shí)間: 2012.12.23 至指導(dǎo)教師: X X X X X _評(píng) 語(yǔ):_評(píng)閱成績(jī): 評(píng)閱教師: 目 錄目 錄I方達(dá)學(xué)生選課管理系統(tǒng)設(shè)計(jì)總說(shuō)明III第1章 緒論1第2章 需求設(shè)計(jì)22.1 需求分析22.1.1 了解需求分析背景22.1.2 確切了解客戶(hù)的需求22.1.3 掌握系統(tǒng)需求22.1.4 掌握功能需求32.1.5 掌握數(shù)據(jù)需求32.1.6 性能需求,出錯(cuò)處理需求,設(shè)計(jì)數(shù)據(jù)字典3第3章 相關(guān)設(shè)計(jì)43.1 后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)與相關(guān)操作設(shè)計(jì)43.1.1 E-R模型設(shè)計(jì)
2、463.1.3 建立數(shù)據(jù)庫(kù)索引63.1.4 數(shù)據(jù)庫(kù)完整性設(shè)計(jì)7第4章 相關(guān)軟件介紹94.1 簡(jiǎn)要論述ODBC數(shù)據(jù)源94.2 簡(jiǎn)要論述MFC104.2.1 MFC簡(jiǎn)介104.2.2 建立MFC工程10第5章系統(tǒng)實(shí)現(xiàn)過(guò)程115.1 華科學(xué)生選課管理系統(tǒng)前臺(tái)界面設(shè)計(jì)115.1.1 資源視圖(Resource View)設(shè)計(jì)115.1.2 文件視圖(File View)設(shè)計(jì)115.1.3 類(lèi)視圖(Class View)設(shè)計(jì)135.1.4 界面與界面之間實(shí)現(xiàn)連接設(shè)計(jì)145.2 方達(dá)學(xué)生選課管理系統(tǒng)功能展示205.2.1 方達(dá)選課系統(tǒng)教師,學(xué)生,管理員登錄主界面205.2.2 系統(tǒng)管理員添加課程信息205
3、.2.3 系統(tǒng)管理員查看學(xué)生信息與課程信息215.2.5 學(xué)生登錄選修課程225.2.6 學(xué)生查看自己成績(jī)235.2.7 學(xué)生修改密碼235.2.8 教師登錄給學(xué)生評(píng)分24第6章 總計(jì)及感想256.1 本次課程設(shè)計(jì)總結(jié)256.2 課程設(shè)計(jì)體會(huì)與感想25參考文獻(xiàn)27附錄:(源代碼)28方達(dá)學(xué)生選課管理系統(tǒng)設(shè)計(jì)總說(shuō)明 圍繞著本次的學(xué)生選課系統(tǒng),我設(shè)計(jì)了方達(dá)學(xué)生選課系統(tǒng),前臺(tái)界面采用VC+中MFC應(yīng)用程序,后臺(tái)我們通過(guò)SQL2008做出此系統(tǒng)的數(shù)據(jù)庫(kù), 后臺(tái)我通過(guò)SQL2008做出此系統(tǒng)的數(shù)據(jù)庫(kù),鑒于本次課設(shè)實(shí)際情況我們?cè)O(shè)計(jì)了五個(gè)表:教師表,學(xué)生表,選課表,課程表,教務(wù)處登錄表。然后用E-R圖設(shè)計(jì),
4、我們大致計(jì)算出數(shù)據(jù)庫(kù)的大小,這樣才能防止后續(xù)由于人數(shù)增多而導(dǎo)致數(shù)據(jù)庫(kù)容量不足。 首先我們要?jiǎng)?chuàng)建ODBC數(shù)據(jù)源,通過(guò)MFC程序把數(shù)據(jù)庫(kù)數(shù)據(jù)源與前臺(tái)界面連接起來(lái)。前臺(tái)界面按鈕設(shè)計(jì)主要依據(jù)數(shù)據(jù)庫(kù)中各個(gè)表的列名設(shè)計(jì)。界面與界面之間有代碼進(jìn)行連接,通過(guò)建立類(lèi)向?qū)А?當(dāng)達(dá)到界面與界面正確連接,界面與后臺(tái)數(shù)據(jù)庫(kù)正確連接后,運(yùn)行后的前臺(tái)可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,添加或者刪除信息,也就達(dá)到了課設(shè)的目的與要求。因?yàn)槌煽?jī)管理系統(tǒng)是一項(xiàng)很實(shí)用的系統(tǒng),所面對(duì)的數(shù)據(jù)量很大,所以我們要求系統(tǒng)能夠高效快速的處理這些數(shù)據(jù),并且要保證數(shù)據(jù)的正確性、相容性和安全性。VC+作為前臺(tái)是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)讀取出來(lái),有助于用戶(hù)對(duì)這些數(shù)據(jù)進(jìn)行相應(yīng)
5、的操作,使操作更方便,更符合用戶(hù)的要求。關(guān)鍵詞:SQL2008,VC+,E-R圖,ODBC數(shù)據(jù)源,MFC應(yīng)用程序第1章 緒論 隨著課程改革的不斷深入,學(xué)校規(guī)模不斷擴(kuò)大、課程項(xiàng)目不斷增多,為了解決學(xué)生選課管理上的復(fù)雜的人工操作,減輕重復(fù)工作,故設(shè)計(jì)了選課系統(tǒng)。學(xué)校規(guī)模的擴(kuò)大使得學(xué)校對(duì)每年新生入學(xué)、畢業(yè)生離校及本校各種分流機(jī)制造成的學(xué)生信息產(chǎn)生變動(dòng),如學(xué)籍變動(dòng)、個(gè)人信息修改。為了適應(yīng)課程的改革,學(xué)校在每個(gè)學(xué)期都要開(kāi)設(shè)一定的課程提供給學(xué)生,讓學(xué)生根據(jù)自己的情況來(lái)選擇,根據(jù)學(xué)生選擇結(jié)果給出課程表。本校根據(jù)教學(xué)實(shí)際,為了使教師有效地管理學(xué)生信息 設(shè)計(jì)學(xué)生信息管理系統(tǒng),由此形成學(xué)生成績(jī)管理系統(tǒng),本文就此設(shè)
6、計(jì)思路進(jìn)行闡述。隨著學(xué)校規(guī)模的不斷擴(kuò)大,專(zhuān)業(yè)、班級(jí)、學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息量也成倍增長(zhǎng),而目前許多高校的學(xué)生選課管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,率低,因此,迫切需要開(kāi)發(fā)基于互聯(lián)網(wǎng)的課程信息管理系統(tǒng)來(lái)提高管理工作的效率。 基于互聯(lián)網(wǎng)的學(xué)生選課管理系統(tǒng)在學(xué)生選課的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢(xún)方面具有較大的實(shí)用意義。它提高了信息的開(kāi)放性,大大地改善了學(xué)生、教師對(duì)其最新信息查詢(xún)的準(zhǔn)確性。第2章 需求設(shè)計(jì)2.1 需求分析2.1.1 了解需求分析背景為方便學(xué)校對(duì)廣大學(xué)生選課信息的管理以及方便學(xué)生選課,學(xué)生選課系統(tǒng)的設(shè)計(jì)顯得十分重要。本次程序設(shè)計(jì)的題目就是學(xué)生選課系
7、統(tǒng),系統(tǒng)中的課程信息包括課程編碼、課程名稱(chēng)、適用專(zhuān)業(yè)、課程類(lèi)型包括必修、限選、必選、實(shí)踐、實(shí)習(xí)、學(xué)分、學(xué)時(shí)、主講教師等。本程序要求做到可通過(guò)鍵盤(pán)輸入的形式輸入數(shù)字及英文字母,實(shí)現(xiàn)數(shù)據(jù)的輸入,輸入值的范圍按照系統(tǒng)給出的提示 。輸出的形式是通過(guò)電腦顯示屏顯示程序的運(yùn)行結(jié)果及數(shù)據(jù) 程序能夠達(dá)到的功能,學(xué)生信息管理,學(xué)生選課管理,學(xué)生選課學(xué)分總數(shù)有一定的范圍,學(xué)生可以對(duì)課程進(jìn)行查詢(xún)、瀏覽,選完課后可以退選、重選,并且可以按學(xué)號(hào)、姓名、課程名稱(chēng)進(jìn)行查詢(xún)、統(tǒng)計(jì)。按照系統(tǒng)提示輸入能進(jìn)行下一步的選擇并得到相應(yīng)的正確結(jié)果,當(dāng)輸入錯(cuò)誤時(shí)會(huì)得到錯(cuò)誤提示,返回進(jìn)行下一步操作。 2.1.2 確切了解客戶(hù)的需求(1) 用
8、戶(hù)類(lèi)型:教務(wù)處管理員,教師,學(xué)生。(2) 各類(lèi)用戶(hù)擁有的權(quán)限:教務(wù)處管理員可以添加,修改,查詢(xún)學(xué)生的資料和學(xué)生的選課情況。學(xué)生只能查詢(xún)自己的資料、選修課程、修改密碼。教師可以選擇教授的課程,對(duì)課程進(jìn)行評(píng)分。2.1.3 掌握系統(tǒng)需求(1) 管理員使用本系統(tǒng)對(duì)全部數(shù)據(jù)進(jìn)行維護(hù)。(2) 教師對(duì)自己相關(guān)的數(shù)據(jù)實(shí)體進(jìn)行操作。(3) 學(xué)生對(duì)數(shù)據(jù)實(shí)體只有查詢(xún),選修操作。2.1.4 掌握功能需求(1) 設(shè)計(jì)不同用戶(hù)操作的登錄名與密碼。(2) 管理員可以操作教師與學(xué)生的所有信息。(3) 學(xué)生可以查詢(xún)信息,選修課程。2.1.5 掌握數(shù)據(jù)需求(1) 學(xué)生信息:學(xué)號(hào),姓名,性別,系部,專(zhuān)業(yè)班級(jí),密碼,年齡。(2) 課
9、程信息:課程編號(hào),課程名稱(chēng),學(xué)分,學(xué)時(shí),開(kāi)課學(xué)期。(3) 選課信息:學(xué)號(hào),課程編號(hào),課程名稱(chēng),學(xué)生姓名,學(xué)分,學(xué)生成績(jī)。(4) 教師信息:教師編號(hào),姓名,性別,密碼,教授課程編號(hào),年齡。(5) 教務(wù)處管理員信息:姓名,編號(hào),密碼。2.1.6 性能需求,出錯(cuò)處理需求,設(shè)計(jì)數(shù)據(jù)字典綜上所述我們知道學(xué)生選課管理系統(tǒng),是學(xué)校管理學(xué)生選課信息的重要系統(tǒng)。系統(tǒng)中分別涉及到不同管理部門(mén)所管理的學(xué)生信息,因而將系統(tǒng)的信息分類(lèi),分別由教務(wù)處、學(xué)生處、各系老師管理具體的信息。 因此學(xué)生選課管理系統(tǒng)這樣設(shè)計(jì)的目的是:(1)利用查詢(xún)分析器可以查找學(xué)生在學(xué)校的一些基本情況(2)為用戶(hù)提供充足的信息和快捷的查找手段(3)
10、提高文件的查找、維護(hù)和更新(4)提高教學(xué)信息管理的效率 (5)為了更好的管理學(xué)生的基本信息第3章 相關(guān)設(shè)計(jì)3.1 后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)與相關(guān)操作設(shè)計(jì)3.1.1 E-R模型設(shè)計(jì)學(xué)生選課管理系統(tǒng)中采用“實(shí)體聯(lián)系模型”(E-R模型)來(lái)描述數(shù)據(jù)庫(kù)的結(jié)構(gòu)與語(yǔ)義,是對(duì)現(xiàn)實(shí)世界進(jìn)行第一次抽象。E-R模型直接從現(xiàn)實(shí)世界抽象出實(shí)體類(lèi)型及實(shí)體間聯(lián)系,然后用E-R圖來(lái)表示數(shù)據(jù)模型。它有兩個(gè)明顯的優(yōu)點(diǎn):接近于人的思維,容易理解;與計(jì)算機(jī)無(wú)關(guān),用戶(hù)容易接受。但E-R模型只能說(shuō)明實(shí)體間語(yǔ)義的聯(lián)系,不能進(jìn)一步說(shuō)明詳細(xì)的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一步。根據(jù)以上對(duì)系統(tǒng)所作的需求分析,系統(tǒng)設(shè)計(jì),規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)實(shí)體。因此學(xué)
11、生選課管理系統(tǒng)的E-R圖如下:系部密碼姓名專(zhuān)業(yè)班級(jí)學(xué)號(hào)學(xué)生表 性別年齡 圖1 學(xué)生表實(shí)體E-R圖年齡教師編號(hào)教授課程編號(hào)密碼教師表 性別姓名 圖2 教師表實(shí)體E-R圖姓名密碼編號(hào)管理員信息表 圖3 管理員信息表E-R圖課程編號(hào)學(xué)分課程名稱(chēng)課程信息表 開(kāi)課學(xué)期學(xué)時(shí) 圖4 課程信息表E-R圖學(xué)生成績(jī)課程編號(hào)學(xué)分課程名稱(chēng)選課信息表 學(xué)號(hào)學(xué)生姓名 圖5 選課信息表E-R圖綜合上述的E-R圖,我們可以清晰的看到畫(huà)出E-R圖對(duì)于建立表提供了依據(jù),同樣表與表之間的連接通過(guò)各表相同候選碼連接起來(lái)。這也是為了后臺(tái)數(shù)據(jù)庫(kù)建立視圖,索引,觸發(fā)器,數(shù)據(jù)庫(kù)的完整性等編寫(xiě)代碼打下基礎(chǔ),由此可見(jiàn)E-R圖對(duì)于本次課設(shè)后臺(tái)數(shù)據(jù)
12、庫(kù)建立起相當(dāng)重要的地位。3.1.2后臺(tái)數(shù)據(jù)庫(kù)與基本表的設(shè)計(jì)圖6 創(chuàng)建學(xué)生選課管理student數(shù)據(jù)庫(kù)(采用界面方式創(chuàng)建)圖7 創(chuàng)建基本表表(采用界面方式創(chuàng)建)3.1.3 建立數(shù)據(jù)庫(kù)索引(1)設(shè)計(jì)思想:為了從數(shù)據(jù)庫(kù)的大量數(shù)據(jù)中迅速找到需要的內(nèi)容,也采用類(lèi)似于書(shū)目錄的索引技術(shù),不必順序查找,就能迅速查到所需要的內(nèi)容。索引是根據(jù)表中一列或若干列按照一定順序建立的列值與記錄行之間的對(duì)應(yīng)關(guān)系表,在數(shù)據(jù)庫(kù)中的作用如下:快速存取數(shù)據(jù)、保證數(shù)據(jù)記錄的唯一性、實(shí)現(xiàn)表與表之間的參照完整性、減少排序和分組的時(shí)間。(2)索引建立的說(shuō)明:學(xué)生選課管理系統(tǒng)中有五個(gè)表,而聚集索引一個(gè)表只能有一個(gè),因此有五個(gè)聚集索引。一個(gè)表
13、可以有一個(gè)或者多個(gè)非聚集索引,因此非聚集索引不限。圖8 命令方式創(chuàng)建索引3.1.4 數(shù)據(jù)庫(kù)完整性設(shè)計(jì)(1)設(shè)計(jì)思想:數(shù)據(jù)完整性是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯上的一致性與準(zhǔn)確性,數(shù)據(jù)庫(kù)的完整性一般包括:實(shí)體完整性,域完整性,參照完整性性。下面分開(kāi)介紹三種完整性:1:實(shí)體完整性:實(shí)體完整性又稱(chēng)行完整性,要求表中有一個(gè)主鍵,其值不能為空且能唯一的標(biāo)識(shí)對(duì)應(yīng)的記錄。通過(guò)索引、UNIQUE約束、PRIMARY KEY約束或IDENTITY屬性可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)體完整性。2:域完整性:域完整性又稱(chēng)列完整性,指給定列輸入的有效性。實(shí)現(xiàn)域完整的方法有:限制類(lèi)型,格式(通過(guò)CHECK約束和規(guī)則)或可能的取值范圍(通過(guò)CH
14、ECK約束、DEFALUT定義、NOT NULL定義和規(guī)則)等。3:參照完整性:又稱(chēng)引用完整性。參照完整性保證主表中的數(shù)據(jù)與從表中數(shù)據(jù)的一致性。在SQL Server 2008中,參照完整性的實(shí)現(xiàn)是通過(guò)定義外鍵與主鍵之間或者外鍵與唯一鍵之間的對(duì)應(yīng)關(guān)系來(lái)實(shí)現(xiàn)的。參照完整性確保鍵值在所有表中的一致性。(2)具體實(shí)現(xiàn):圖9 命令方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)的完整性第4章 相關(guān)軟件介紹4.1 簡(jiǎn)要論述ODBC數(shù)據(jù)源 3.1.1 ODBC簡(jiǎn)介ODBC(Open DataBase Conectivity)是標(biāo)準(zhǔn)編程接口,只要有相應(yīng)的ODBC驅(qū)動(dòng)程序,就可以通過(guò)ODBC連結(jié)操作各種不同的數(shù)據(jù)庫(kù)。通常通過(guò)控制面板中的ODB
15、C Data Source來(lái)配置ODBC的數(shù)據(jù)源。所謂ODBC數(shù)據(jù)源就是命名的一組信息,包括需要連結(jié)的數(shù)據(jù)庫(kù)所在位置(可以是磁盤(pán)目錄文件,也可以是網(wǎng)絡(luò)服務(wù)器)、對(duì)應(yīng)的ODBC驅(qū)動(dòng)程序以及訪問(wèn)數(shù)據(jù)庫(kù)所需的其他相關(guān)信息,用戶(hù)可以通過(guò)數(shù)據(jù)源的名稱(chēng)來(lái)指定所需的ODBC連接。 3.1.2 前臺(tái)與后臺(tái)數(shù)據(jù)源連接圖10 數(shù)據(jù)源連接4.2 簡(jiǎn)要論述MFC 4.2.1 MFC簡(jiǎn)介MFC是用于在C+環(huán)境下編寫(xiě)應(yīng)用程序的一個(gè)框架和引擎。MFC的本質(zhì)就是一個(gè)包含了許多微軟公司已經(jīng)定義好的對(duì)象的類(lèi)庫(kù),我們知道,雖然我們要編寫(xiě)的程序在功能上是千差萬(wàn)別的,但從本質(zhì)上來(lái)講,都可以化歸為用戶(hù)界面的設(shè)計(jì),對(duì)文件的操作
16、,多媒體的使用,數(shù)據(jù)庫(kù)的訪問(wèn)等等一些最主要的方面。這一點(diǎn)正是微軟提供MFC類(lèi)庫(kù)最重要的原因,在這個(gè)類(lèi)庫(kù)中包含了一百多個(gè)程序開(kāi)發(fā)過(guò)程中最常用到的對(duì)象。在進(jìn)行程序設(shè)計(jì)的時(shí)候,如果類(lèi)庫(kù)中的某個(gè)對(duì)象能完成所需要的功能,這時(shí)我們只要簡(jiǎn)單地調(diào)用已有對(duì)象的方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類(lèi)庫(kù)中的已有對(duì)象派生出我們自己的對(duì)象,這時(shí)派生出來(lái)的對(duì)象除了具有類(lèi)庫(kù)中的對(duì)象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個(gè)更專(zhuān)門(mén)的,功能更為強(qiáng)大的對(duì)象。當(dāng)然,也可以在程序中創(chuàng)建全新的對(duì)象,并根據(jù)需要不斷完善對(duì)象的功能。 4.2.2 建立MFC工程圖11 建立MFC工程
17、第5章系統(tǒng)實(shí)現(xiàn)過(guò)程5.1 華科學(xué)生選課管理系統(tǒng)前臺(tái)界面設(shè)計(jì)5.1.1 資源視圖(Resource View)設(shè)計(jì)建立完MFC工程之后進(jìn)入前臺(tái)界面制作,在C+中界面制作分為三個(gè)模塊:類(lèi)視圖,資源視圖,文件視圖。資源視圖的設(shè)計(jì)是前臺(tái)制作的第一步,資源視圖里分為對(duì)話(huà)框制作與菜單制作,下面就分別介紹:(1) 主菜單設(shè)計(jì):學(xué)生選課管理系統(tǒng)主菜單分為學(xué)生選課與管理員管理兩個(gè)主菜單。(2) 對(duì)話(huà)框設(shè)計(jì):學(xué)生選課管理系統(tǒng)對(duì)話(huà)框設(shè)計(jì)為25個(gè),具體見(jiàn)截圖:圖12 對(duì)話(huà)框設(shè)計(jì)5.1.2 文件視圖(File View)設(shè)計(jì)我們知道C+編程需要有頭文件,界面涉及的頭文件更多,在文件視圖里我們可以看到學(xué)生選課對(duì)話(huà)框涉及的
18、所有頭文件,本次課程設(shè)計(jì)選課系統(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由于頭文件代碼過(guò)于多,所以選取截圖作說(shuō)明,具體詳細(xì)代碼見(jiàn)附錄。圖13 頭文件代碼5.1.3 類(lèi)視圖(Class View)設(shè)計(jì)由于類(lèi)是在對(duì)話(huà)框創(chuàng)建時(shí)一并創(chuàng)建的,因此截圖說(shuō)明類(lèi)的種類(lèi),代碼見(jiàn)附錄。圖14 類(lèi)視圖設(shè)計(jì)5.1.4 界面與界面之間實(shí)現(xiàn)連接設(shè)計(jì)(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("用戶(hù)名或密碼或類(lèi)別不能為空!");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("用戶(hù)名或密碼錯(cuò)誤!");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("用戶(hù)名或密碼錯(cuò)誤!");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("用戶(hù)名或密碼錯(cuò)誤!");SetDlgItemText(IDC_USER,"");SetDlgItemText(IDC_KEY,"");return;rs.GetFieldValue("Name",username);usernumber=user;SendMessage(WM_CLOSE);CStuDialog stu;stu.DoModal();els
29、eAfxMessageBox("沒(méi)有該類(lèi)型!");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) 此外還有登錄界面與教師評(píng)分界面連接、登錄界面與學(xué)生修改密碼界面連接、與學(xué)生刪除選修課程界面之間的連接等等。由于代碼過(guò)于繁多,詳細(xì)界面連接見(jiàn)附錄。5.2 方達(dá)學(xué)生選課管理系統(tǒng)功能展示5.2.1 方達(dá)選課系統(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é)生查看自己成績(jī)圖20 學(xué)生查看自己成績(jī)5.2.7 學(xué)生修改密碼圖21 學(xué)生修改密碼5.2.8 教師登錄給學(xué)生評(píng)分圖22 教師評(píng)分6章 總計(jì)及感想6.1 本次課程設(shè)計(jì)總結(jié) 這次課程設(shè)計(jì)花了將近兩個(gè)星期的時(shí)間。剛拿到這個(gè)課題時(shí),覺(jué)得這個(gè)課題以前講過(guò),有些掉以輕心。今天回過(guò)去看看,原來(lái)所有一切見(jiàn)在細(xì)微處通過(guò)我們的努力終于完成
41、了。雖然這不是我讀大學(xué)以來(lái)的檢驗(yàn)。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì)我的能力有了很大的提高比如操作能力、分析問(wèn)題的能力、合作精神、嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)等方方面面都進(jìn)步了。這期間凝結(jié)我們的心血,在此我表示由衷的感謝。沒(méi)有他們的幫助,我將無(wú)法順利完成這次設(shè)計(jì)。6.2 課程設(shè)計(jì)體會(huì)與感想通過(guò)本次課程設(shè)計(jì),我對(duì)SQL2008與VC+6.0有了更深的了解,數(shù)據(jù)庫(kù)和表是SQL2008中用于組織和管理數(shù)據(jù)的基本對(duì)象,用戶(hù)使用SQL2008設(shè)計(jì)和實(shí)現(xiàn)查詢(xún)信息,首要的任務(wù)是實(shí)現(xiàn)數(shù)據(jù)庫(kù)的表示和儲(chǔ)存,即創(chuàng)建數(shù)據(jù)庫(kù)和表,在設(shè)計(jì)中我深知自己掌握的知識(shí)還遠(yuǎn)遠(yuǎn)不夠掌握的一些理論知識(shí)應(yīng)用到實(shí)踐中去總會(huì)出現(xiàn)這樣或那樣的問(wèn)題不是理論沒(méi)有掌握好而是光知道
42、書(shū)本上的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的一定要把理論知識(shí)和實(shí)踐結(jié)合起來(lái)。把學(xué)到的知識(shí)應(yīng)用到實(shí)踐中去多做多練才可以把理論的精華發(fā)揮出來(lái)。知識(shí)不是知道了解就好一定要去應(yīng)用它發(fā)展它讓它在現(xiàn)實(shí)生活中得到充分的應(yīng)用從而解決一些問(wèn)題這才是學(xué)習(xí)的根本目的。而且知識(shí)又不是單一的它是互相聯(lián)系的學(xué)科與學(xué)科之間都有著內(nèi)在的聯(lián)系。計(jì)算機(jī)是一門(mén)非常復(fù)雜且龐大的學(xué)科一項(xiàng)課題往往需要多項(xiàng)技術(shù)才可以完成的。在設(shè)計(jì)階段通過(guò)對(duì)課題的深入分析與研究迫使我對(duì)技術(shù)有了一定的了解。在遇到問(wèn)題時(shí)得到了指導(dǎo)老師與同學(xué)的悉心幫助使我感受到集體的力量是無(wú)窮的。在整個(gè)設(shè)計(jì)階段感受最為深刻的是掌握學(xué)習(xí)的方式和解決問(wèn)題的方法。首先是解決問(wèn)題的方式,雖然面臨的信息有很
43、多,但是如何從大量的信息中篩選出所需的信息,有用的信息,才是解決問(wèn)題的關(guān)鍵。另外一個(gè)就是解決問(wèn)題的方法,就像是我在解決問(wèn)題中的很多問(wèn)題一樣,一開(kāi)始總是看書(shū),和書(shū)上的例子,題目對(duì)比,雖然說(shuō)書(shū)本上的大部分是有價(jià)值的,正確的,但是實(shí)際上每個(gè)人的設(shè)計(jì)思想和編程思路,對(duì)數(shù)據(jù)的處理方法,處理思想都是不同的,這就要求我們一定要通過(guò)實(shí)踐才能找到解決問(wèn)題的方案。在整個(gè)設(shè)計(jì)過(guò)程中,我深刻地體會(huì)到了這一點(diǎn)的重要性也牢記住了這一點(diǎn),在今后的學(xué)習(xí)和研究中我也會(huì)繼續(xù)將這種方法延續(xù)下去。參考文獻(xiàn)1 數(shù)據(jù)庫(kù)原理及應(yīng)用 錢(qián)雪忠主編 北京郵電大學(xué)出版社 2007.8 第二版2 SQL Server2008實(shí)用教程 鄭阿奇主編 電
44、子工業(yè)出版社 2012.5 第三版3 數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用 中央廣播電視大學(xué)出版社 1997年4 數(shù)據(jù)庫(kù)技術(shù)與聯(lián)機(jī)分析處理 王珊主編 北京科學(xué)出版社 19985.Visual C+從入門(mén)到精通. 劉銳寧主編 北京:清華大學(xué)出版社,2010 6.數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)實(shí)踐教程 . 楊長(zhǎng)興主編 北京:中國(guó)鐵道出版社,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("課程編號(hào)不能為空!");return;strSQL.Format("select * from Course where courseNum='%s'",temp1);rs.Open(CRecordset
49、:snapshot,strSQL);int i=rs.GetRecordCount();if(i!=0)AfxMessageBox("課程編號(hào)已經(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能農(nóng)業(yè)農(nóng)藥化肥供應(yīng)及服務(wù)合同3篇
- 2025年度年度城市經(jīng)濟(jì)適用房購(gòu)置合同3篇
- 2025年度股東借款及股權(quán)激勵(lì)計(jì)劃合同3篇
- 2025年農(nóng)村個(gè)人承包土地經(jīng)營(yíng)權(quán)與農(nóng)村信息化建設(shè)合同3篇
- 二零二五年度農(nóng)業(yè)機(jī)械租賃與農(nóng)業(yè)人才培養(yǎng)合作合同3篇
- 二零二五年度醫(yī)療耗材研發(fā)與創(chuàng)新合作合同3篇
- 二零二五年度合伙經(jīng)營(yíng)中式快餐店合同書(shū)2篇
- 個(gè)人承包城市照明設(shè)施維護(hù)2025年度合同3篇
- 2025年度綠色生態(tài)豬肉直供基地合作協(xié)議合同3篇
- 公墓墓位買(mǎi)賣(mài)及墓園墓碑售后服務(wù)保障協(xié)議3篇
- 南京大學(xué)碩士論文模板
- 少兒春晚合同模板
- 醫(yī)用機(jī)械外骨骼產(chǎn)品供應(yīng)鏈分析
- 2024年氫工藝作業(yè)考試題庫(kù)及答案(700題)
- 海洋工程裝備的修理與維護(hù)
- 廣西柳州鐵一中、南寧三中 2025屆高一數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- 2024年高等教育教育類(lèi)自考-03372團(tuán)體心理咨詢(xún)考試近5年真題集錦(頻考類(lèi)試題)帶答案
- 部編版小學(xué)三年級(jí)上冊(cè)道德與法治教案設(shè)計(jì)(全冊(cè))
- 自考證據(jù)法學(xué)講義(大全)
- 光合作用(光合作用的研究歷程)課件-2024-2025學(xué)年北師大版生物七年級(jí)上冊(cè)
- 2024年安徽六年級(jí)數(shù)學(xué)第一學(xué)期期末考試試題含解析
評(píng)論
0/150
提交評(píng)論