![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/1e2b890a-a083-410e-85eb-3b03c9769a14/1e2b890a-a083-410e-85eb-3b03c9769a14pic.jpg)
![面向對象c++課程設計--學生信息管理系統(tǒng)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/1e2b890a-a083-410e-85eb-3b03c9769a14/1e2b890a-a083-410e-85eb-3b03c9769a141.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> C++課程設計報告</b></p><p> ——學生信息管理系統(tǒng)</p><p> 學院: 數(shù)學與計算科學學院 </p><p> 專業(yè): 信息與計算科學 </p><p> 班級: 10級信計1班 </p><p>
2、 學號: </p><p> 姓名: __</p><p> 指導老師: _</p><p> 設計日期: 2011年11月29日—2011年12月21日 </p><p> 目 錄</p>&
3、lt;p> 一、摘要··································
4、183;······························2</p><p> 二、緒論·
5、183;····································
6、···························3</p><p> 1、課程設計的背景····&
7、#183;····································
8、;········3</p><p> 2、課程設計的意義·······················
9、··························3</p><p> 3、可行性分析·····
10、83;····································&
11、#183;···········3</p><p> 4、課程設計的相關理論···················
12、························4 </p><p> 三、系統(tǒng)總體設計·······&
13、#183;····································
14、;········6</p><p> 1、系統(tǒng)功能設計·······················&
15、#183;·····························6</p><p> 2、系統(tǒng)結構設計·
16、83;····································&
17、#183;··············6</p><p> 3、系統(tǒng)概念設計················
18、83;····································7
19、</p><p> 4、系統(tǒng)邏輯設計·······························
20、83;·····················7</p><p> 5、系統(tǒng)物理設計··········
21、;····································
22、83;······7</p><p> 四、系統(tǒng)實現(xiàn)過程·························
23、;···························7</p><p> 五、系統(tǒng)創(chuàng)新之處····&
24、#183;····································
25、;··········23</p><p> 六、系統(tǒng)存在的問題與不足····················
26、183;··················24</p><p> 七、課程設計的收獲與感想············
27、;···························24</p><p> 八、課程設計總結····
28、····································
29、3;··········24</p><p><b> 學生信息管理系統(tǒng)</b></p><p><b> 一、摘要</b></p><p> 自從19世紀60年代電子計算機誕生以來,它就憑借自身強大的功能和充分增強人
30、類生活、工作效率的作用而深受人類推崇。特別在21世紀,這個飛速發(fā)展的時代,計算機的應用更是深入到社會的各個角落。作為當代最具潛力的大學生群體,我們更應推動和實踐計算機信息系統(tǒng)在生活、娛樂、管理等方面的應用,為將來的工作和發(fā)展奠定基礎。</p><p> 本系統(tǒng)為簡易的學生信息管理系統(tǒng)(姑且這么稱呼吧),主要作用是實現(xiàn)對學生的基本信息和學籍成績的管理。</p><p> 本系統(tǒng)采用了Mi
31、crosoft Visual C++ 6.0中的MFC類庫和Microsoft Office Access 2003相結合的結構開發(fā)程序。Visual C++ 6.0是Microsoft推出的一個功能強大的可視化集成開發(fā)環(huán)境,其中MFC是Microsoft的基礎類庫,其核心是以C++類的形式封裝了Windows的API函數(shù),其中的類可以充分支持Windows應用程序開發(fā),而且它提供了對數(shù)據庫程序設計的強大支持。Access 2003是M
32、icrosoft Office 2003套件產品之一,是世界上最流行的桌面數(shù)據庫系統(tǒng)之一,最突出的優(yōu)點是:不用編寫一行代碼,就可以在很短的時間內開發(fā)出一個功能強大的數(shù)據庫應用程序。</p><p> 本報告充分展現(xiàn)了整個系統(tǒng)從分析到設計再到實現(xiàn)的具體過程,其耗費了我巨大的心血,從中我學到了許多知識和技能,我相信它們對我今后的工作和處世方面都將有不可磨滅的貢獻。</p><p> 關鍵詞
33、:學生信息管理系統(tǒng) MFC類庫 Access數(shù)據庫</p><p><b> 二、緒論</b></p><p><b> 1、課程設計的背景</b></p><p> 隨著現(xiàn)代社會信息技術的發(fā)展,社會經濟結構、生產方式和消費結構已經發(fā)生了重大變化,這些變化深刻影響著人類生活的各個方面。尤其是近幾年人們對計
34、算機的依賴性越來越強,可以說,現(xiàn)代社會就是建立在計算機基礎上的,但是人們對于計算機系統(tǒng)也提出了更高的要求。隨著計算機信息系統(tǒng)的不斷發(fā)展,傳統(tǒng)的Visual C++編程技術已經滿足不了社會的要求,因此能支持數(shù)據庫的MFC類庫應運而生。微型計算機在商業(yè)上的應用,就要求用戶能快速訪問一個大型數(shù)據庫中的單個記錄,而VC里面就包含了編寫Microsoft Windows環(huán)境下C++數(shù)據庫應用程序所需的所有組件。最受歡迎的C++編程軟件和最流行的A
35、ccess數(shù)據庫軟件的完美搭配,無疑是給管理人員提供了一個方便之門。</p><p><b> 2課程設計的意義</b></p><p> 當前國內各類企業(yè)對IT技術人員的需求日益旺盛,已經遠遠超過了傳統(tǒng)學歷教育所能滿足的數(shù)量。據不完全統(tǒng)計,中國在本世紀初的IT人才需求量為60萬,缺口則高達40多萬,而每年大學培養(yǎng)的專業(yè)人才僅有5萬,供需的巨大差距造成軟件人才的極
36、度缺乏。C++課程設計是我們大學生在大學中面臨的第一次軟件編程的實戰(zhàn)演練,它不同于我們以往我們普通的編程,這需要我們很強的邏輯思考能力和必要的程序編程知識,這是對我們這些教育理論與實踐脫節(jié)的大學生的一次嚴峻考驗。它讓我們了解到自己對書本的過度依賴這一缺點,借用這次機會,我們不僅可以掌握自學的要領,而且能夠鍛煉自己充分把書本知識用于實踐的能力。另外,我們可以掌握并實踐C++中許多平時不知道的功能,這對我們今后從事軟件開發(fā)和網絡技術都有很大
37、幫助。</p><p><b> 3、可行性分析</b></p><p> 學生管理系統(tǒng)是對學生基本信息和學籍成績的管理,可以說是學校教務系統(tǒng)的一個簡單的分支。本系統(tǒng)使用C++的MFC類庫進行實現(xiàn),而MFC類庫提供了對Access數(shù)據庫的支持。先在Access中編寫一個小型數(shù)據庫,在通過C++與Access的信息連接來實現(xiàn)用MFC對數(shù)據庫的操作,這樣的可行性是非常
38、大的。而且這個學生信息管理系統(tǒng)包含的信息雖然不是很多,但仍有一定的實用價值,可以展現(xiàn)學生的基本信息,而且可以實時對數(shù)據庫做出一定的更改??傊?,本學生信息管理系統(tǒng)無論在設計、實現(xiàn),還是應用上,可行性都比較高。</p><p> 4、課程設計的相關理論</p><p> 課程設計就是在學完一門理論之后自己動手實現(xiàn)的一個較復雜的系統(tǒng),它是對我們所學知識的檢驗和提升。下面就Microsoft
39、Visual C++ 6.0、MFC類庫和Access數(shù)據庫作簡要介紹。</p><p> ?、?Microsoft Visual C++ 6.0</p><p> Microsoft Visual C++,這套功能強大的Windows應用程序開發(fā)系統(tǒng)是由Microsoft C/C++演化而來的,它包含了支持Windows 95、Windows NT 4.0及Windows 98的Win
40、 32 SDK 文檔,是Visual Studio的重要組成元素,是集創(chuàng)建、編譯、鏈接、運行和調試為一體的軟件集成開發(fā)環(huán)境。Visual C++最主要的特點:可視化編程和支持面向對象的編程技術,其中包括項目工作區(qū)、ClassWizard、AppWizard、WizardBar等。此外,Visual C++ 6.0的主要特點還有集成開發(fā)環(huán)境、向導、最快的集成數(shù)據庫訪問(采用ODBC類或ADO類)、強有力的Internet支持。在Visua
41、l C++開發(fā)環(huán)境中,程序員可以利用Windows提供的API(應用程序編程接口)函數(shù)編寫Windows應用程序。</p><p><b> ?、?MFC類庫</b></p><p> MFC(Microsoft Foundation Class)是一個應用程序的框架結構。MFC不僅僅是一個類集合,他還幫助定義了應用程序的結構并為應用程序處理許多雜務。MFC框架定義
42、了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。</p><p> MFC的特點:MFC完整的封裝了Windows API函數(shù);減少了大量在建立Windows程序時必須編寫的代碼;效率高,可靠性高。</p><p> MFC的類層次:Visual C++ 6.0版本的MFC類庫包含200多個類,下面著重介紹幾個常
43、用。</p><p> ?。?) CObject類,MFC中最重要也最基本的類之一,派生出窗口類、文件類、網絡類等,包含對運行時類信息的支持、對動態(tài)創(chuàng)建的支持、對串行化的支持、對象診斷輸出等。</p><p> ?。?)文件類,用于文檔數(shù)據的存儲、調出以及修改文檔數(shù)據,包括CFile類等。</p><p> ?。?)窗口類,包括窗口支持類(CWnd)、窗口框架類(C
44、FrameWnd)、視圖類、空間類和對話框類。</p><p> ?。?)視圖類,CView,廣泛用于基于文檔的應用程序。</p><p> (5)對話框類,CDiolog,包括選擇顏色、選擇字體、打印、查找、替換等通用對話框。</p><p> (6)網絡類,用于開發(fā)網絡程序。</p><p> ?。?)ODBC類,包括Cdatabas
45、e(封裝了對數(shù)據源的連接操作)、CRecordset(封裝了從數(shù)據源中選擇記錄)、CRecordView(封裝了對記錄集的數(shù)據顯示操作)、CDBException(數(shù)據庫操作的異常類)</p><p> ?、?Windows應用程序的基本結構</p><p> ?、?Microsoft Office Access 2003</p><p> 數(shù)據庫,顧名思義就是存
46、放數(shù)據的一些倉庫,是一些關于每個特定主題或目的的信息集合,它以一定的格式存放在計算機的存儲器上,用戶能方便的管理這些數(shù)據。數(shù)據庫有4個主要部分:數(shù)據、聯(lián)系、約束和模式。Access 2003是一個面向對象的、采用事件驅動機制的新型關系數(shù)據庫管理系統(tǒng)。一般情況下,Access數(shù)據庫包括表、查詢、窗體、報表、數(shù)據訪問頁、宏和模塊7個對象,這些對象用于收集、存儲和操作各種不同的信息。在Access中,用戶可以為每一種類型的信息創(chuàng)建一個表,將數(shù)
47、據分別存放在自己創(chuàng)建的表中,然后可以通過聯(lián)機窗體方便的查看、添加及更新表中的數(shù)據。</p><p> MFC的ODBC(開放數(shù)據庫互聯(lián))類對較復雜的ODBC API函數(shù)進行了封裝,提供了簡化的調用接口,從而大大方便了數(shù)據庫應用程序的開發(fā)。</p><p><b> 三、系統(tǒng)總設計</b></p><p> 本系統(tǒng)是為了實現(xiàn)對學生信息的基本
48、管理而編寫的,其中包括學生信息日常工作中的基本操作。本系統(tǒng)的項目名稱為學生信息管理系統(tǒng)1.0版。</p><p><b> 1、系統(tǒng)功能設計</b></p><p> 本系統(tǒng)包括對學生基本信息的處理操作,主要有以下幾個功能:</p><p> (1)信息輸入 實現(xiàn)對學生基本信息的輸入和添加,并保存到數(shù)據庫</p>&l
49、t;p> ?。?)信息排序 實現(xiàn)對學生信息的排序,包括按學號排序、按姓名排序和按學籍成績排序(由低到高)</p><p> ?。?)信息修改 實現(xiàn)對學生基本信息的修改,并保存到數(shù)據庫</p><p> ?。?)信息查詢 實現(xiàn)對學生信息的查詢,包括按學號查詢和按姓名查詢</p><p> (5)信息刪除 實現(xiàn)刪除當前記錄的功能</
50、p><p> ?。?)信息瀏覽 通過工具欄中的游標按鈕來實現(xiàn)對信息的瀏覽</p><p><b> 2、系統(tǒng)結構設計</b></p><p><b> 3、系統(tǒng)概念設計 </b></p><p> 學生信息管理系統(tǒng)實現(xiàn)對學生基本信息的輸入、添加、排序、修改、查詢、刪除、瀏覽、保存等功能。通過
51、MFC與數(shù)據庫的連接來實現(xiàn)對“學生信息表”中數(shù)據的各項操作:通過系統(tǒng)登錄進入系統(tǒng),通過調用對話框來進行輸入和修改,通過按鈕控件來實現(xiàn)信息的修改和查詢,通過菜單操作來實現(xiàn)信息的排序和刪除。在MFC的類框架中添加一定的代碼來實現(xiàn)諸多功能。</p><p><b> 4、系統(tǒng)邏輯設計</b></p><p> 用Access建立一張學生信息表Students,其中包括學
52、生的學院、專業(yè)、學號、姓名、性別、年齡、學科、學籍成績、家庭住址、宿舍區(qū)號和聯(lián)系方式。用Windows操作界面下的“控制面板”來實現(xiàn)對ODBC數(shù)據源的連接,這樣在MFC中就可實現(xiàn)對數(shù)據庫中數(shù)據的操作。</p><p><b> 5、系統(tǒng)物理設計</b></p><p> ?。?)用Access建立的學生信息表如下:</p><p><b
53、> 圖3</b></p><p> (2)Visual C++中使用登錄對話框、信息輸入對話框和主窗口實現(xiàn)對學生信息的基本操作</p><p><b> 四、系統(tǒng)實現(xiàn)過程</b></p><p> 系統(tǒng)實現(xiàn)過程是課程設計的關鍵一步,下面我就對整個課程設計的具體實現(xiàn)過程作如下闡述:</p><p>
54、; 1、利用Microsoft Access 2003新建一個數(shù)據庫Students,“使用設計器創(chuàng)建表”新建一張學生信息表,不設置主鍵,編輯表,此時可以設置其初始信息,以便在程序中使用,保存,退出Access。如圖</p><p><b> 圖4</b></p><p> 注:所設計的表格見上頁</p><p> 2、在Windows
55、 XP環(huán)境下打開“控制面板”,雙擊“管理工具” 圖標。雙擊“數(shù)據源(ODBC)”圖標,彈出ODBC數(shù)據源管理器對話框,如圖。</p><p><b> 圖5</b></p><p> 3、在“ODBC數(shù)據源管理器”對話框中選中MS Access Datebase選項,單擊“添加”按鈕,彈出創(chuàng)建新數(shù)據源對話框,如圖。</p><p><
56、b> 圖6</b></p><p> 4、選擇數(shù)據源驅動程序,再次選擇Microsoft Access Driver(*.mdb)程序后,單擊“完成”按鈕,彈出ODBC Microsoft Access安裝對話框,如圖。</p><p><b> 圖7</b></p><p> 5、在“數(shù)據源名”文本框中輸入新建數(shù)據源
57、的名稱,在“說明”文本框中可以對該數(shù)據源進行說明。完成后,單擊“選擇”按鈕,彈出選擇數(shù)據庫對話框,選擇合適的數(shù)據庫后,打擊“確定”按鈕,此時就已經完成了數(shù)據源與數(shù)據庫的連接,應用程序對該數(shù)據源進行操作。</p><p><b> 圖8</b></p><p> 6、啟動Visual C++6.0,選擇文件|新建命令(或使用快捷鍵Ctrl + N),彈出新建對話框,
58、選擇工程標簽,然后在列表中選擇MFC AppWizard[exe]選項。在“工程”文本框中輸入工程名王星星(1007020101)。在“C位置:”文本框中指定應用程序創(chuàng)建的位置。單擊確定按鈕,如圖。</p><p><b> 圖9</b></p><p> 7、彈出MFC AppWizard - Step 1對話框,選擇“S單個文檔”單選按鈕。單擊“N下一個”按鈕
59、,彈出MFC AppWizard - Step 2 of 6對話框,選擇數(shù)據源支持,選擇“D查看數(shù)據庫不使用文件支持”單選按鈕(此時工具欄會生成游標按鈕,可以對記錄進行移動)。單擊Data Source按鈕,彈出Database Options對話框,在ODBC下拉列表框中選擇Students數(shù)據源后,單擊OK按鈕,彈出Select Database Tables對話框,如圖。選擇后,單擊“OK”按鈕回到主對話框。如圖。</p&g
60、t;<p><b> 圖10</b></p><p><b> 圖11</b></p><p> 8、單擊“N下一個>”按鈕,彈出MFC AppWizard - Step 3 of 6對話框,根據需要選擇文檔所支持的功能。再次選擇“O不”單選按鈕,單擊“N下一個>”按鈕,彈出MFC AppWizard - Step
61、 4 of 6對話框,根據需要選擇文檔形式。在此保留默認設置。單擊單擊“N下一個>”按鈕,彈出MFC AppWizard - Step 5 of 6對話框,根據需要選擇工程形式。在此保留默認設置。單擊單擊“N下一個>”按鈕,彈出MFC AppWizard - Step 6 of 6對話框,在對話框中列出向導所生成的類,同時程序員可以改變類的基類,以實現(xiàn)新的功能。在此不改變基類。單擊“完成”按鈕,彈出“新建工程信息”對話框,該
62、對話框中列出了新建立的應用程序中項目的詳細信息,包括項目的類型、向導創(chuàng)建的類、文檔的樣式特征,以及工程的目錄等。單擊“確定”按鈕,此時應用程序向導已經為用戶生成了一個可執(zhí)行的應用程序框架。</p><p> 9、選擇Build(F7)圖標。選擇Build Execute(Ctrl+F5)圖標,彈出無標題 – 王星星(1007020101)文檔,如圖。</p><p><b>
63、 圖12</b></p><p> 10、在項目工作區(qū)中,單擊Resource View面板,然后單擊Menu前面的加號圖標,顯示,雙擊此圖標,在工作區(qū)彈出新建的菜單資源,右擊菜單資源右邊的空白項,在彈出的快捷菜單中選擇“屬性”命令,彈出Menu Item Properties對話框,如圖,在該對話框中可以對菜單資源的樣式進行設計。在“信息管理(M)”下設計其它菜單,如圖。</p>&
64、lt;p><b> 圖13</b></p><p> 11、右擊“信息輸入”菜單,選擇“建立類向導”命令,彈出MFC ClassWizard對話框。選擇Message Maps標簽,在Objects IDs列表框中選擇ID_Input,即“信息輸入”菜單的ID。雙擊Message列表框的COMMAND選項,彈出Add Member Funtion對話框,單擊OK即可,這樣就添加了C
65、OMMAND的消息映射,其他菜單選項依此設計,如圖。</p><p><b> 圖14</b></p><p><b> 圖15</b></p><p> 12、在工程工作區(qū)選擇“Resource View”標簽,顯示應用程序的資源,單擊文件夾中的“王星星1007020101resources”選項,將資源樹展開。打
66、開Dialog資源文件夾。雙擊ID為IDD_MY1007020101_FORM的對話框,在資源編輯器中打開此對話框,然后添加相應的Group Box(標題為學生信息)和11個靜態(tài)文本(標題分別為學院、專業(yè)、學號、姓名、性別、年齡、學科、學籍成績、家庭住址、宿舍區(qū)號、聯(lián)系方式)和11個編輯框,設置屬性,建立類向導,添加變量,m_pSet->m_column1、m_pSet->m_column2、m_pSet->m_col
67、umn3,……,m_pSet->m_column11,這就建立了數(shù)據源和各控件之間數(shù)據流的連接,為了對數(shù)據進行修改和刪除,在主對話框上添加三個按鈕控件,分別是“修改”、“按姓名查詢”、“按學號查詢”,設置屬性并利用類向導添加單擊按鈕的消息映射,如圖。</p><p><b> 圖16</b></p><p> ?、?添加修改按鈕的消息映射</p>
68、<p> void CMy1007020101View::OnCorrect() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(TRUE); //刷
69、新控件的值到對應的變量(外部輸入值交給內部變量)</p><p> CInput correct;</p><p> correct.m_College=m_pSet->m_column1;</p><p> correct.m_Major=m_pSet->m_column2;</p><p> correct.m_Num
70、ber=m_pSet->m_column3;</p><p> correct.m_Name=m_pSet->m_column4;</p><p> correct.m_Sex=m_pSet->m_column5;</p><p> correct.m_Age=m_pSet->m_column6;</p><p>
71、; correct.m_Subject=m_pSet->m_column7;</p><p> correct.m_Score=m_pSet->m_column8;</p><p> correct.m_Address=m_pSet->m_column9;</p><p> correct.m_DormitoryNumber=m_pSet-
72、>m_column10;</p><p> correct.m_Contaction=m_pSet->m_column11;</p><p> CString str1=correct.m_College;</p><p> CString str2=correct.m_Major;</p><p> CString st
73、r3=correct.m_Number;</p><p> CString str4=correct.m_Name;</p><p> CString str5=correct.m_Sex;</p><p> CString str6=correct.m_Age;</p><p> CString str7=correct.m_Sub
74、ject;</p><p> CString str8=correct.m_Score;</p><p> CString str9=correct.m_Address;</p><p> CString str10=correct.m_DormitoryNumber;</p><p> CString str11=correct.m
75、_Contaction;</p><p> if(correct.DoModal()==IDOK)</p><p><b> {</b></p><p> m_pSet->Edit(); //準備實現(xiàn)當前記錄的更改</p><p> m_pSet->m_column1=corre
76、ct.m_College;</p><p> m_pSet->m_column2=correct.m_Major;</p><p> m_pSet->m_column3=correct.m_Number;</p><p> m_pSet->m_column4=correct.m_Name;</p><p> m_pS
77、et->m_column5=correct.m_Sex;</p><p> m_pSet->m_column6=correct.m_Age;</p><p> m_pSet->m_column7=correct.m_Subject;</p><p> m_pSet->m_column8=correct.m_Score;</p>
78、;<p> m_pSet->m_column9=correct.m_Address;</p><p> m_pSet->m_column10=correct.m_DormitoryNumber;</p><p> m_pSet->m_column11=correct.m_Contaction;</p><p> m_pSet-
79、>Update();</p><p> UpdateData(FALSE); //拷貝變量值到控件顯示(變量的最終運算結果值交給外部輸出顯示)</p><p><b> }</b></p><p><b> }</b></p><p> 注釋:本段代碼首先將當前數(shù)據庫中的信
80、息顯示在信息輸入對話框上,然后通過交換變量的方式來實現(xiàn)對數(shù)據庫中信息的修改</p><p> ?、?添加按姓名查詢按鈕的消息映射</p><p> void CMy1007020101View::OnNameCheck() </p><p><b> {</b></p><p> // TODO: Add your
81、 control notification handler code here</p><p> UpdateData(TRUE); //更新數(shù)據</p><p> CString name="姓名";</p><p> m_pSet->Close();</p><p> m_pSet-
82、>m_strFilter=name+"='"+m_NameCheck+"'"; //按字段進行查詢</p><p> m_pSet->Open();</p><p> UpdateData(FALSE); //更新數(shù)據,顯示結果</p><p><b>
83、}</b></p><p> 注釋:本段代碼通過用戶輸入的姓名和數(shù)據庫中的“姓名”進行比較,然后查詢出結果,更新數(shù)據并顯示結果。</p><p> ?、?添加按學號查詢按鈕的消息映射</p><p> void CMy1007020101View::OnNumberCheck() </p><p><b> {&l
84、t;/b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(TRUE); //更新數(shù)據</p><p> CString name="學號";</p><p> m
85、_pSet->Close();</p><p> m_pSet->m_strFilter=name+"='"+m_NumberCheck+"'"; //按字段進行查詢</p><p> m_pSet->Open();</p><p> UpdateData(FALSE);
86、 //更新數(shù)據,顯示結果</p><p><b> }</b></p><p> 注釋:本段代碼通過用戶輸入的學號和數(shù)據庫中的“學號”進行比較,然后查詢出結果,更新數(shù)據并顯示結果。</p><p> 13、新建一個對話框,對其進行設計,并建立類向導,如圖</p><p><b> 圖17&l
87、t;/b></p><p> 14、單擊項目工作區(qū)的“Class View”面板,展開面板里面的內容。單擊CMainFrame前面的加號圖標,顯示,雙擊此圖標,在其中添加代碼如下:</p><p> CMainFrame::CMainFrame()</p><p><b> {</b></p><p> /
88、/ TODO: add member initialization code here</p><p> CWelcome welcome; </p><p> CString m_username="王星星",m_password="2000wxx"; </p><p> int count=0;&l
89、t;/p><p> while(count<3)</p><p><b> {</b></p><p> if(welcome.DoModal()==IDCANCEL)</p><p><b> {</b></p><p> MessageBox("您確
90、定退出系統(tǒng)嗎?","登錄對話框",MB_YESNO|MB_ICONQUESTION);</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p>&l
91、t;b> {</b></p><p> if(welcome.m_UserName!=m_username)</p><p><b> {</b></p><p> AfxMessageBox("對不起,您輸入的用戶名不正確,請檢查后重新輸入!");</p><p><
92、b> count++;</b></p><p> if(count==3)</p><p><b> {</b></p><p> AfxMessageBox("您不是系統(tǒng)用戶,確認后系統(tǒng)自動退出!");</p><p><b> exit(0);</b&g
93、t;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(welcome.m_Passwor
94、d!=m_password)</p><p><b> {</b></p><p> AfxMessageBox("對不起,您輸入的密碼不正確,請檢查后重新輸入");</p><p><b> count++;</b></p><p> if(count==3)</
95、p><p><b> {</b></p><p> AfxMessageBox("您是非法用戶,確認后系統(tǒng)自動退出!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p>
96、<b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox("恭喜您,登錄成功!");</p><p><b> break;</b>&
97、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p
98、><p> 注:① 此段代碼實現(xiàn)登錄時的用戶名和密碼輸入,分別對用戶名和密碼進行判斷,只有兩者都正確時才能正常登錄系統(tǒng),否則將根據不同的錯誤輸出不同的結果,而且系統(tǒng)只給用戶提供三次機會。</p><p> ?、?在代碼所在文件頭部學要添加#include "Welcome.h"</p><p> 15、新建一個對話框,對其進行設計,建立類向導,如
99、圖。</p><p> 注:對于組合框,可以在“屬性”對話框中進行添加。方法為右擊組合框,在彈出的快捷菜單中選擇“屬性”命令,彈出Combo Box Properties對話框。選擇Data標簽,在編輯框控件中輸入選項,每一行對應組合框的一個選項。輸入數(shù)據時,每輸入一項后,俺Ctrl+Enter組合鍵可換到下一行繼續(xù)輸入。</p><p><b> 圖18</b>
100、</p><p> 16、在CMY1007020101VIEW.cpp文件中添加信息輸入函數(shù)的代碼,如下。</p><p> void CMy1007020101View::OnInput() </p><p><b> {</b></p><p> // TODO: Add your command handl
101、er code here</p><p> CInput input;</p><p> CString str;</p><p> CMy1007020101Set m_pdatabase;</p><p> if(input.DoModal()==IDOK)</p><p><b> {<
102、/b></p><p><b> try</b></p><p><b> {</b></p><p> if(m_pdatabase.IsOpen())</p><p> m_pdatabase.Close();</p><p> m_pdatabase.O
103、pen(CMy1007020101Set::snapshot,NULL,CMy1007020101Set::none);</p><p> m_pdatabase.AddNew(); //準備添加記錄</p><p> m_pdatabase.m_column1=input.m_College;</p><p> m_pdataba
104、se.m_column2=input.m_Major;</p><p> m_pdatabase.m_column3=input.m_Number;</p><p> m_pdatabase.m_column4=input.m_Name;</p><p> m_pdatabase.m_column5=input.m_Sex;</p><p&
105、gt; m_pdatabase.m_column6=input.m_Age;</p><p> m_pdatabase.m_column7=input.m_Subject;</p><p> m_pdatabase.m_column8=input.m_Score;</p><p> m_pdatabase.m_column9=input.m_Address;
106、</p><p> m_pdatabase.m_column10=input.m_DormitoryNumber;</p><p> m_pdatabase.m_column11=input.m_Contaction;</p><p> if(m_pdatabase.CanUpdate())</p><p> m_pdatabase.
107、Update(); //進行更新</p><p> m_pSet->Requery();</p><p> m_pdatabase.Close();</p><p> if(!m_pSet->IsBOF()) //判斷記錄集是否應定位在第一條記錄之前</p><p> m_p
108、Set->MoveNext(); //下一條記錄</p><p><b> }</b></p><p> catch(CDBException* e) //捕捉異常</p><p><b> {</b></p><p> e
109、->ReportError();</p><p><b> return;</b></p><p><b> }</b></p><p> str.Format("添加記錄[%s]成功",input.m_Name);</p><p> MessageBox(str,
110、NULL,MB_OK|MB_ICONINFORMATION); //彈出消息框</p><p><b> }</b></p><p><b> else</b></p><p> MessageBox("對不起,系統(tǒng)信息輸入中斷,信息沒有存儲",NULL,MB_OK|MB_ICONASTERI
111、SK);</p><p><b> }</b></p><p> //上面的代碼就是利用CMy1007020101Set的成員函數(shù)添加新的紀錄,同時利用CDBException類控制一些異常,此時選擇菜單“信息輸入”后會彈出剛才所建的對話框,加入信息以后,單擊確定按鈕,會在數(shù)據庫中增加這一新的紀錄</p><p> 注釋:在本段代碼所在文
112、件頭部添加#include "Input.h"</p><p> 17、在CMY1007020101VIEW.cpp文件中添加信息排序的代碼,如下:</p><p><b> ?。?)按學號排序</b></p><p> void CMy1007020101View::OnNumberSort() </p>
113、<p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> m_pSet->Close();</p><p> m_pSet->m_strSort="學號"; //學號是表的字段的
114、名字</p><p> m_pSet->Open();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> ?。?)按姓名的首字母排序</p><p> void CMy1007020101View::OnNameSort(
115、) </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> m_pSet->Close();</p><p> m_pSet->m_strSort="姓名";
116、 //姓名是表的字段的名字</p><p> m_pSet->Open();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> ?。?)按成績由高到低排序</p><p> void CMy1007020101View
117、::OnScoreSort() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> m_pSet->Close();</p><p> m_pSet->m_strSort="學籍成
118、績"; //學籍成績是表的字段的名字</p><p> m_pSet->Open();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> //CRecordset類的公共數(shù)據成員m_strSort封裝了排序功能,用來設置對記
119、錄的排序</p><p> 18、在CMY1007020101VIEW.cpp文件中添加信息刪除的代碼,如下:</p><p> void CMy1007020101View::OnDelete() </p><p><b> {</b></p><p> // TODO: Add your command ha
120、ndler code here</p><p><b> try</b></p><p><b> {</b></p><p> CString str;</p><p> CMy1007020101Set m_pdatabase; //CRecordset中的數(shù)據成員
121、m_pdatabase實現(xiàn)了在應用程序向導的過程中,表和程序的聯(lián)系</p><p> if(m_pdatabase.IsOpen())</p><p> m_pdatabase.Close();</p><p> str.Format("%s",m_pSet->m_column4);</p><p> m_p
122、database.m_strFilter.Format("姓名='%s'",str);</p><p> m_pdatabase.Open(CMy1007020101Set::snapshot,NULL,CMy1007020101Set::none);</p><p> m_pdatabase.Delete(); //刪除
123、記錄</p><p> if(!m_pdatabase.IsEOF())//判斷記錄集是否應定位在第一條記錄之后</p><p> m_pdatabase.MoveLast(); //定位在最后一條記錄</p><p><b> else</b></p><p><b> {</b
124、></p><p> m_pdatabase.SetFieldNull(NULL);</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> if(m_pdatabase.IsOpen())</p><p> m_pdatab
125、ase.Close();</p><p> m_pSet->Requery(); //刷新來自數(shù)據源的CRecordset對象的全部內容</p><p> str.Format("刪除記錄["+m_pdatabase.m_column4+"]成功!");</p><p> MessageBox(str,NULL,M
126、B_OK|MB_ICONINFORMATION);</p><p><b> }</b></p><p> catch(CDBException* e) //捕捉異常</p><p><b> {</b></p><p> e->ReportError
127、();</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> //CDBException表示數(shù)據庫引起的異常條件,CDBException對象由數(shù)據庫類成員函數(shù)構造和產生,上面的
128、代碼是利用CRecordsetAdd的成員函數(shù)刪除記錄,利用CDBException類控制一些異常,此時選擇“信息刪除菜單”即可刪除當前記錄</p><p> 19、編譯,構建程序,確定無誤后即可運行。</p><p><b> 五、系統(tǒng)創(chuàng)新之處</b></p><p> 本學生信息管理系統(tǒng)采用Visual C++ 6.0的MFC類庫和A
129、ccess數(shù)據庫結合的方式。用MFC的ODBC類實現(xiàn)對數(shù)據庫的訪問,用ODBC管理器注冊一個數(shù)據源,建立起ODBC與具體數(shù)據庫的聯(lián)系。只有在建立了連接之后才可以進行對數(shù)據源的操作,進而操作數(shù)據庫。</p><p> 六、系統(tǒng)存在的問題與不足</p><p> 由于設計者(也就是我)的水平有限,該系統(tǒng)不免有一些不足之處,現(xiàn)總結如下:</p><p> 1、本學生
130、信息系統(tǒng)在信息刪除過程中,數(shù)據庫中的數(shù)據雖已刪除,但在主窗口中仍然顯示出了這組數(shù)據。</p><p> 2、信息輸入后,如果想把這組數(shù)據刪除,則選擇當前數(shù)據,選定“信息刪除”菜單后,會使數(shù)據庫中的信息發(fā)生重復和刪除其他數(shù)據,甚至會更新多組數(shù)據。</p><p> 3、系統(tǒng)的實用價值不是很高,信息量不是很大,操作無法滿足現(xiàn)代教務管理的要求。</p><p> 七
131、、課程設計的收獲與感想</p><p> 本次課程設計讓我明白自己理論上的不足與實踐能力的缺乏,雖然時間僅有短短的四個星期,但我深刻體會到過程的艱辛與成功的喜悅。從本次課程設計中,我懂得了Visual C++的另類神奇的功能和數(shù)據庫的基本知識,在實踐中,我的邏輯思維能力和程序編寫能力都獲得了大幅度提高。雖然這個學生信息管理系統(tǒng)沒有達到預期的目標,但這畢竟是我耗費了巨大心血的作品,我將永遠留住這份珍貴的回憶。我相
132、信,在以后的學習與工作中,當遇到棘手的難題時,我會記得這次課程設計,記得我是如何過關斬將,到時,我一定會努力解決問題并享受解決問題后的快感。</p><p><b> 八、課程設計總結</b></p><p> 1、本次課程設計對我來說,難度很大,不過收獲也很大,不僅讓我了解了MFC的用法以及各種運行方式方法,還讓我對C++和Access的靈活運用有了更深的認識,
133、并且激發(fā)了我強烈的學習興趣。</p><p> 2、通過本次課程設計我了解到自己對C++語言運用還不是很熟練,所以我在課程設計過程中花了很多的時間,雖然失敗次數(shù)很多,但是通過不斷努力,并向老師和同學積極請教,我最終還是做出了一些成績,希望在以后的時間,通過自己進一步的學習,能讓我更快地掌握C++語言和MFC的應用以及數(shù)據庫的相關知識。</p><p> 3、本系統(tǒng)中的許多代碼是參考書本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《c++面向對象程序設計》課程設計——職工信息管理系統(tǒng)
- c++課程設計---學生信息管理系統(tǒng)
- c++課程設計報告--學生信息管理系統(tǒng)
- c++課程設計——學生信息管理系統(tǒng)課程設計報告
- 課程設計--c++編寫的學生信息管理系統(tǒng)
- c++課程設計---高校學生信息管理系統(tǒng)
- c++程序設計課程設計---學生信息管理系統(tǒng)
- c++課程設計--藥品信息管理系統(tǒng)
- c++客戶信息管理系統(tǒng)課程設計
- c++課程設計--超市信息管理系統(tǒng)
- c++課程設計--職工信息管理系統(tǒng)
- c++課程設計面向對象課程設計--銀行管理系統(tǒng)
- c++面向對象課程設計報告
- c++課程設計-- c++面向對象程序設計
- c++課程設計--職工信息管理
- 面向對象課程設計--職工信息管理系統(tǒng)
- c++課程設計---公司人員信息管理系統(tǒng)
- c++課程設計——圖書信息管理系統(tǒng)
- 面向對象課程設計---用java開發(fā)的學生信息管理系統(tǒng)
- c++課程設計報告---圖書信息管理系統(tǒng)
評論
0/150
提交評論