

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于VC++的班級信息管理系統(tǒng)</p><p> 計算機科學系 計算機科學與技術專業(yè)</p><p> 學號: 姓名: 指導老師</p><p> 摘 要 隨著社會的發(fā)展與科技的全面進步,使得人們越來越向信息化、數字化發(fā)展,管理信息系統(tǒng)(MIS)是一個由人、計算機等組成的能進行信息收集、傳遞、加工、維
2、護和實用的系統(tǒng),必然會代替過去大量的、繁瑣的手工操作。對于學校來說,對學生的個各種信息進行統(tǒng)計并顯示是非常重要的,本文通過Visual C++6.0的編程環(huán)境編寫班級信息管理系統(tǒng),利用Microsoft SQL server 2005數據庫系統(tǒng)編寫數據表,采用ODBC數據庫訪問技術,用模塊化設計方式將系統(tǒng)各個功能模塊層層分解,設計出系統(tǒng)的模塊化結構,并根據系統(tǒng)的具體要求和需要實現功能,詳細的定義了各個模塊的具體功能。開發(fā)主要包括后期數據
3、庫的建立和維護以及前期應用程序的開發(fā)兩方面,實現了學生信息的創(chuàng)建及學生成績、違紀情況的輸入、瀏覽、維護和統(tǒng)計,使得系統(tǒng)具有功能強大,界面友好的特點。</p><p> 關鍵詞:信息管理;Visual C++6.0;SQL server 2005;ODBC</p><p><b> 目 錄</b></p><p> 第一章 引 言5&l
4、t;/p><p> 第二章 系統(tǒng)設計6</p><p> 2.1 需求分析6</p><p><b> 2.2系統(tǒng)目標6</b></p><p> 2.3 可行性分析7</p><p> 第三章 運行環(huán)境及系統(tǒng)技術簡介7</p><p> 3.1 Visu
5、al C++ 6.0簡介7</p><p> 3.2 Microsoft SQL Server 2005技術簡介7</p><p> 3.3 SQL數據庫的優(yōu)點 8</p><p> 3.4 ODBC技術簡介9</p><p> 3.5 C++語言簡介9</p><p> 第四章 系統(tǒng)結構功能分
6、析10</p><p> 4.1班級信息管理系統(tǒng)的功能結構10</p><p> 4.2學生管理系統(tǒng)的業(yè)務流程圖11</p><p> 4.3數據庫設置11</p><p> 4.3.1.數據庫分析11</p><p> 4.3.2.數據庫概念設置12</p><p>
7、4.3.3.數據庫設計邏輯結構13</p><p> 4.4.公共類的設置14</p><p> 第五章 主體窗設計及模塊功能實現15</p><p> 5.1主窗體設計15</p><p> 5.2科目信息管理模塊設計16</p><p> 5.2.1科目信息管理模塊概述16</p>
8、<p> 5.2.2科目信息管理技術分析16</p><p> 5.2.3科目信息管理實現過程17</p><p> 5.3學生信息管理模塊設計24</p><p> 5.3.1學生信息管理模塊概述24</p><p> 5.3.2學生信息管理實現過程25</p><p> 5.4學
9、生成績錄入模塊設置31</p><p> 5.4.1學生成績錄入模塊概述31</p><p> 5.4.2學生成績錄入技術分析31</p><p> 5.4.3學生成績錄入實現過程32</p><p> 5.5 學生違紀查詢模塊設置35</p><p> 5.5.1學生違紀查詢模塊概述35<
10、/p><p> 5.5.2學生違規(guī)查詢技術分析36</p><p> 5.5.3學生違規(guī)查詢實現過程36</p><p> 5.6學生成績報表打印模塊設計41</p><p> 第六章.項目文件清單45</p><p><b> 第七章軟件測46</b></p>&l
11、t;p><b> 結束語47</b></p><p><b> 致謝47</b></p><p><b> 參考文獻48</b></p><p><b> 第一章 引 言</b></p><p> 人類已經進入了一個科學技術突飛猛進
12、的時代,經濟知識和信息產業(yè)日漸重要。信息技術和網絡的迅猛發(fā)展和廣泛應用,對社會的各個領域產生了深刻的影響,極大地改變了人們的工作、學習和交流方式。信息的獲取、交流和應用能力,已經成為人們最重要的能力之一。在知識經濟占主導地位的將來,國家綜合國力和國際競爭能力越來越取決于教育發(fā)展、科學技術和知識創(chuàng)新的水平,教育在經濟和社會發(fā)展過程中呈現出越來越突出的重要作用。學生信息管理系統(tǒng)是一個教育代為不可或缺的部分,他的內容對于學校的決策者和管理者來
13、說都是至關重要的。這就要求學生信息管理系統(tǒng)擁有強大的功能,能夠提供用戶足夠的信息和快捷的查詢你手段。一直以來,人們實用傳統(tǒng)人工的方法管理學生信息,這種管理方式存在著許多缺點,入效率低、保密性差、數據容易出錯等。此外,時間一長將產生大量冗余的文件和數據,這對于查找、更新和維護都帶來了不少的困難。 科學技術的不斷發(fā)展和提高計算機科學日漸成熟,其強大的功能人們已經有了深刻的認識。作為計算機應用的一部分,使用計算機對學生信息管理系統(tǒng)進行信息管理
14、。有著手工管理無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命</p><p><b> 第二章 系統(tǒng)設計</b></p><p> 本班級信息管理系統(tǒng)可以說是一個綜合性的學校學生管理系統(tǒng),它集成了學生學籍管理系統(tǒng)、學生班級管理系統(tǒng)、學生成績管理系統(tǒng)和學生選課管理系統(tǒng)多種功能,因而具有較強的實用行和先進性。</p><p
15、><b> 2.1 需求分析</b></p><p> 通過對學生管理過程的研究和分析,要求本系統(tǒng)應該具有以下功能。</p><p> (1)學生信息錄入。</p><p> (2)學生成績錄入。</p><p> (3)成績等級設置。</p><p> (4)學生違規(guī)處理。&l
16、t;/p><p> ?。?)學生成績排行。</p><p> ?。?)學生信息查詢。</p><p> ?。?)學生成績查詢、打印。</p><p><b> 2.2系統(tǒng)目標</b></p><p> 學生信息管理系統(tǒng)以實現學生日常的信息管理為設計目標,加以強大的數據庫管理功能,可以方便對學生信息
17、進行管理,大大提高了學校日常工作的效率。本系統(tǒng)在設計時應該滿足以下幾點:</p><p> 1.采用人機對話的操作方式,信息查詢靈活、方便、快捷、準確,數據存儲安全可靠。</p><p> 2.對學生信息的操作簡單,可以方便地進行添加、修改和刪除操作。</p><p> 3.可以根據需要靈活地調整科目信息。</p><p> 4.可以
18、錄入教師信息,方便任命班級的班主任。</p><p> 5.編輯考試類別,更靈活地對學生測驗。</p><p> 6.打印學生成績報表,更直觀地了解學生成績。</p><p> 7.學生違規(guī)處理,對違反校規(guī)的學生進行處罰。</p><p> 8.對用戶輸入的數據,系統(tǒng)進行嚴格地數據檢驗,盡可能排除人為錯誤。</p>&l
19、t;p> 2.3 可行性分析 </p><p> 由于本系統(tǒng)的管理對象單一,都是在校學生,且每個數據內容具有較強的關聯性涉及的計算過程不是很復雜。因此,比較適合采用數據庫管理。而且學校用于學生管理計算機在存儲量、速度方面都能滿足數據庫運行要求。另一方面此小型管理系統(tǒng)從投入的人力、財力與物力來講是非常之小的。由于有指導老師的指導和相關參考文獻,特別是網上資料以及參考其他程序的功能,因此完全可以實
20、現。</p><p> 第三章 運行環(huán)境及系統(tǒng)技術簡介 </p><p> 本系統(tǒng)是基于Visual C++ 6.0 編程環(huán)境而開發(fā)的,利用Microsoft SQL Server 2005 建立數據庫,通過ODBC訪問數據庫。 </p><p> 3.1 Visual C++ 6.0簡介 </p><p> 本班級信息管理系
21、統(tǒng)是基于Visual C++ 6.0環(huán)境而進行開發(fā)的。Visual C++ 6.0 是Microsoft Visual Studio 6.0 系列組件之一,是微軟公司推出的一款C++集成開發(fā)工具。Visual C++是現在最為通用的開發(fā)工具之一,它提供了相當齊備類庫和友好的界面,為數據庫開發(fā)提供了比較好的開發(fā)環(huán)境。提供了多種數據庫訪問技術,可視化的編程環(huán)境,使操作更加直觀簡便。因此借助Visual C++可以開發(fā)出功能強大、速度快、應用
22、廣泛并且占用資源少的中小型數據庫信息管理系統(tǒng)。</p><p> 3.2 Microsoft SQL Server 2005技術簡介 </p><p> 本系統(tǒng)以Microsoft SQL Server 2005為后臺數據庫,Microsoft SQL Server 2005就是關系數據庫開發(fā)工具,它是一款比較方便易用的數據庫系統(tǒng)。數據庫能匯集各種信息以供查詢、存儲和檢索。所謂的數據庫
23、就是由一些有意義和有關系的數據(Data)組成的,一個數據庫中包含了許多條記錄(Record),而每條記錄是由多個字段(Field)所做成的,不同的字段存放不同的數據。所以數據庫的嚴格定義是一組相關記錄的集合。而字段則是最基本的數據項,也是數據庫中最小的單位。在計算機中用來幫助我們管理數據庫系統(tǒng),我們稱之為數據庫管理系統(tǒng)DataBase Management System(DBMS)。數據庫管理系統(tǒng)是架構在一個或多個數據庫之上的,并針對
24、數據庫中的數據進行管理運用。</p><p> 3.3 SQL數據庫的優(yōu)點 </p><p> 1、存儲方式簡單,易于維護管理。SQL管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為.mdf或.ldf的數據庫文件中,便于用戶的操作和管理。 </p><p> 2、面向對象 SQL是一個面向對象的開發(fā)工具,利用面向對象的方式將數
25、據庫系統(tǒng)中的各種功能對象化,將數據庫管理的各種功能封裝在各類對象中。它將一個應用系統(tǒng)當作是由一系列對象組成的,對每個對象它都定義一組方法和屬性,以定義該對象的行為和外圍用戶還可以按需要給對象擴展方法和屬性。通過對象的方法、屬性完成數據庫的操作和管理,極大地簡化了用戶的開發(fā)工作。同時,這種基于面向對象的開發(fā)方式使得開發(fā)應用程序更為簡便。 </p><p> 3、界面友好、易操作。SQL是一個可視化工具,
26、是風格與Windows完全一樣,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報表設計器以及數據庫向導、表向導、查詢向導、窗體向導、報表向導等工具,使得操作簡便,容易使用和掌握。 </p><p> 4、集成環(huán)境、處理多種數據信息。SQL基于Windows操作系統(tǒng)下的集成開發(fā)環(huán)境。該環(huán)境集成了各種向導和生成器工具,極大地提高了開發(fā)人員的作效率,使得建
27、立數據庫、創(chuàng)建表、設計用戶界面、設計數據查詢、報表打印等可以方便有序地進行。 5、SQL支持ODBC開發(fā)數據庫互連Open Data Base Connectivity。利用SQL強大的DDE(動態(tài)數據交換)和OLE(對象的聯接和嵌入)特性,可以在一個數據表中嵌入位圖、聲音、Excel表格、Word文檔,還可以建立動態(tài)的數據庫報表和窗體等。SQL還可以將程序應用于網絡,并與網絡上的動態(tài)數據相聯接。利用數據庫訪
28、問對象生成HTML文件,輕松構建Internet/Intranet的應用。 </p><p> 6、支持廣泛、易于擴展、彈性較大,能夠將通過鏈接表的方式來打開EXCEL文件、格式化文本文件等。這樣就可以利用數據庫的高效率對其中的數據進行查詢、處理。還可以通過以Access作為前臺客戶端,以SQL Server作為后臺數據庫的方式,如ADP開發(fā)大型數據庫應用系統(tǒng)。總之,SQL是一個既可以只用來存放數據的
29、數據庫,也可以作為一個客戶端開發(fā)工具來進行數據庫應用系統(tǒng)開發(fā),即可以開發(fā)方便易用的小型軟件,也可以用來開發(fā)大型的應用系統(tǒng)。</p><p> 3.4 ODBC技術簡介</p><p> 開放式數據庫互連(Open-DataBase-Connectivity,簡稱ODBC)。ODBC的基本思想是為用戶提供簡單、標準、透明的數據庫連接的公共編程接口,開發(fā)廠商根據ODBC的標準去實現底層的驅
30、動程序,這個驅動對用戶是透明的,并允許根據不同的DBMS采用不同的技術加以優(yōu)化實現,概括起來,ODBC具有以下靈活的特點:</p><p> 1. 使用戶程序有很高的互操作性,相同的目標代碼適用于不同的DBMS;</p><p> 2. 由于ODBC的開放性,它為程序集成提供了便利,為客戶機/服務器結構提供了技術支持;</p><p> 3. 由于應用與底層網
31、絡環(huán)境和DBMS分開,簡化了開發(fā)維護上的困難。</p><p> 3.5 C++語言簡介 </p><p> C++語言是一種優(yōu)秀的面向對象程序設計語言。它在C語言的基礎上發(fā)展而來,但它比C語言更容易為人們學習和掌握。C++以其獨特的語言機制在計算機科學的各個領域中得到了廣泛的應用。面向對象的設計思想是在原來結構化程序設計方法基礎上的一個質的飛躍,C++完美地體現了面向對象的各
32、種特性。 C++所提供的抽象機制能夠被應用于那些對效率和可適應性具有極高要求的程序設計任務之中。 C++的一個目標就是提供更易用并具有一定承受能力的設計思想和程序設計技術,進一步提高程序的質量。然而,C++的設計目標總還是在于要支持一定范圍內的各種程序設計風格和設計思想。這與一般在語言設計方面的觀點形成一定對比。一般在語言設計上總是試圖將所有系統(tǒng)內建于單獨一個被重點支持的、帶有強制性的程序設計風格之中或稱典范(paradigm)。 C+
33、+提供了class、namespace和訪問控制,使設計決策的各異化(locality)成為可能。</p><p> 第四章 系統(tǒng)結構功能分析</p><p> 4.1班級信息管理系統(tǒng)的功能結構</p><p> 班級信息管理系統(tǒng)的功能結構如圖4.1所示</p><p> 圖4.1 學生管理系統(tǒng)功能結構圖</p><
34、;p> 4.2學生管理系統(tǒng)的業(yè)務流程圖</p><p> 圖4.2 學生管理業(yè)務流程圖</p><p><b> 4.3數據庫設置</b></p><p> 4.3.1.數據庫分析</p><p> 在學生管理系統(tǒng)中由于涉及大量的學生信息,因此在設計該系統(tǒng)時選擇使用了Microsoft SQL Serve
35、r 2005來滿足系統(tǒng)的要求,數據庫的名稱是db_student,在數據庫中創(chuàng)建11張表用于存儲不同信息。</p><p> 4.3.2.數據庫概念設置</p><p> 根據前面的需求分析和系統(tǒng)設計規(guī)劃,本系統(tǒng)中使用的數據庫實體對象分別為管理員實體、教師信息實體、學生信息實體、違紀信息實體、成績段實體和成績信息實體等,下面將給出幾個關鍵實體的E—R圖。</p><
36、p> 管理員實體:包括管理員名稱和管理員密碼。管理員實體E_R如圖4.3所示</p><p> 教師信息實體:教師信息實體包括教師編號實體、教師姓名實體、教師性別實體、所在辦公室實體、教師文憑實體和教師職稱實體,教師信息實體E_R圖如4.4所示</p><p> 圖4.3 管理員實體E_R圖 圖4.4 教師信息實體E_R圖<
37、/p><p> 學生信息實體:學生信息實體包括學生編號實體、學生姓名實體、學生年齡實體、學生性別實體、聯系電話實體、家庭地址實體和所在班級實體。學生信息實體E_R圖如圖4.5所示</p><p> 違規(guī)信息實體:違規(guī)信息實體包括:違規(guī)編號實體、違規(guī)內容實體、處理結果實體、備注信息實體和違規(guī)時間實體。違規(guī)信息實體E_R圖如圖4.6所示</p><p> 圖4.5 學
38、生信息實體E_R圖 圖4.6 違規(guī)信息實體E_R圖</p><p> 成績等級實體:成績等級實體包括等級名稱實體、成績上限實體、成績下限實體、成績等級實體E_R圖如圖4.7所示</p><p> 成績信息實體:成績信息實體包括學生編號實體、考試科目實體、考試成績實體、考試類別實體、考試時間實體。成績信息實體E_R圖如圖4.8所示</p>
39、<p> 圖4.7成績實體等級E_R圖 圖4.8成績信息實體E_R圖</p><p> 4.3.3.數據庫設計邏輯結構</p><p> 下面給出學生管理系統(tǒng)數據庫中主要表的表結構。</p><p> tb_user(管理員信息表):管理員信息表用于保存管理員的信息,如表4.1所示</p&g
40、t;<p> 表4.1 表tb_user的結構</p><p> tb_teacher(教師信息表):用于保存教師的信息,如表4.2所示</p><p> 表4.2 表tb_teacher的結構</p><p> tb_studentinfo(學生信息表):用于保存學生的信息,如表4.3所示</p><p> 表4.3
41、 表tb_studentinfo的結構</p><p> tb_regbreakinfo(違規(guī)信息表):用于保存違規(guī)事件的信息,如表4.4所示</p><p> 表4.4 表tb_regbeakinfo的結構</p><p> tb_gradelevel(成績等級表):成績等級表用于保存學生成績等級信息,如表4.5所示</p><p>
42、 表4.5 表tb_gradelevel的結構</p><p> tb_examinfo_sub(成績信息表):成績信息表用于保存學生的等級信息,如表4.6所示</p><p> 表4.6 表tb_examinfo_sub的結構</p><p> 4.4.公共類的設置</p><p> 本系統(tǒng)是由ODBC連接的數據源,可以通過CDa
43、tabase類的Open函數連接數據源Open函數用于創(chuàng)建數據源的連接,語法如下:</p><p> virtual BOOL Open(LPCTSTR lpszDSN,BOOL bExclusive=FALSE,BOOL bReadonly FALSE,LPCTSTR lpszConnect=”O(jiān)DBC;”,BOOL bUseCursorLib=TURE);</p><p> Ope
44、n函數中的參數說明如表4.7所示。</p><p> 表4.7 Open函數的參數說明</p><p> 在CMystudentsysApp類中構造一個CDatabase類對象,在InitInstance方法中連接數據源,代碼如下:</p><p> if(CoInitialize(NULL)!=0) //初始化COM環(huán)境&
45、lt;/p><p><b> {</b></p><p> AfxMessagebox(“初始化COM支持庫失敗!”);</p><p><b> exit(1);</b></p><p><b> }</b></p><p><b>
46、try{</b></p><p> CString strConnect;</p><p> strConnect.Format(“DSN=mystudentsys;”); //設置連接字符串</p><p> //判斷連接數據庫是否成功</p><p> if(m_DB.Open(NULL,false,f
47、alse,”O(jiān)DBC;DSN=mystudentsys;UID=Sa;pwd=;”)==0);</p><p><b> {</b></p><p> AfxMessageBox(“Unable to the Specified Data Source”);</p><p> return FALSE;</p><p&
48、gt;<b> }</b></p><p><b> }</b></p><p> catch(CDBRxception *pE)</p><p><b> {</b></p><p> pE—>ReportError();</p><p&g
49、t; pE—>Delete(); //刪除</p><p> return FLASE;</p><p><b> }</b></p><p> 第五章 主體窗設計及模塊功能實現</p><p><b> 5.1主窗體設計</b></p><p
50、> “學生信息管理系統(tǒng)”主窗口由菜單和客戶區(qū)域組成,其中,其中客戶區(qū)域顯示了一幅位圖,主窗體效果如圖5.1所示</p><p> 圖5.1 主窗體效果圖</p><p> 主窗體設計步驟如下:</p><p> ?。?)啟動Visual C++6.0,選擇“File”/“New”命令,打開“New”對話框,。</p><p>
51、(2)在“New”對話框左方的列表視圖中選擇“MFC AppWizard(exe)”選項,在“Project name”文本框中輸入工程名稱,在“Location”文本框中設置工程保存的路徑。單機“OK”按鈕進入“MFC AppWizard-Step 1”對話框。 (3)單機“Finish”按鈕完成工程的創(chuàng)建。</p><p> ?。?)在主窗口中放置1個圖像控件,并導入1幅位圖資源,適當調整圖像控件的位
52、置。</p><p> (5)創(chuàng)建一個菜單資源,并設置各個菜單項的ID和名稱。</p><p> ?。?)通過類向導向主窗口添加菜單項的單擊事件。</p><p> 5.2科目信息管理模塊設計</p><p> 5.2.1科目信息管理模塊概述</p><p> 科目信息管理用于維護科目信息,主要實現科目的添加,
53、修改和刪除等操作,“科目信息管理”窗口如圖5.2所示</p><p> 圖5.2 科目信息管理</p><p> 5.2.2科目信息管理技術分析</p><p> 本系統(tǒng)是用ODBC連接的數據源,在進行對數據表的操作時可以以CRecordset類為基類派生一個數據表映射類,這樣可以方便地操作數據表。派生數據表映射類的步驟如何:</p><p
54、> ?。?)創(chuàng)建一個與數據表映射的類CSubjectinfo,打開“New Class”對話框,單擊“Add Class”按鈕,在彈出菜單中選擇“New”命令,打開新建類窗口。</p><p> ?。?)在“Name”文本框中輸入類名“CSubjectinfo”,在“Base class”下拉列表框中選擇基類“CREcordset”,單擊“OK”按鈕,打開“Database Options”對話框。<
55、/p><p> ?。?)在“ODBC”下拉列表框中選擇一個數據源,本例為“mystudentsys”?!癿ystudentsys”是學生管理系統(tǒng)所需的數據源,用于連接tb_subject數據庫。</p><p> (4)單擊“OK”按鈕,打開“SQL Server登陸”對話框。</p><p> ?。?)單擊“確定”按鈕,打開“Select Database Tabl
56、e”對話框。</p><p> ?。?)選擇“dbo.tb_subject”選項,單擊“OK”按鈕創(chuàng)建映射類。</p><p> (7)在映射類CSubjectinfo的頭文件中引入afxdb.h頭文件。</p><p> 5.2.3科目信息管理實現過程</p><p> ?。?)創(chuàng)建一個對話框類,打開對話框屬性窗口,將對話框的“ID”改
57、為“IDD_DIg_subjectinfo”,將對話框標題改為“科目信息管理”。</p><p> ?。?)向對話框中添加一個群組控件、2個靜態(tài)文本控件和2個編輯框控件,各個控件的屬性設置如表所示。</p><p> (3)創(chuàng)建一個工具欄資源“IDR_TOOLBAR_subjectinfo”。</p><p> ?。?)為創(chuàng)建的對話框添加一個類,類名為“CSubj
58、ectdlg”。在該類的頭文件中引入Subjectinfo.h頭文件,使其可以使用映射類CSubjectinfo。</p><p> ?。?)向對話框中添加OnInitDialog()方法,在對話框初始化時創(chuàng)建工具欄并打開本模塊使用的數據表,代碼如下:</p><p> BOOL CSubjectdlg::OnInitDialog()</p><p><b&
59、gt; {</b></p><p> CDialog::OnInitDialog();</p><p> //創(chuàng)建工具欄并設置工具欄屬性</p><p> if(!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS
60、|CBRS_SIZE_DYNAMIC)||!M_ToolBar.LoadToolBar(IDR_TOOLBAR_subjectinfo))</p><p><b> {</b></p><p> TRACE90(_T(“創(chuàng)建工具條失敗\n”));</p><p> return FALSE;</p><p><
61、;b> }</b></p><p><b> //顯示工具欄</b></p><p> RepositionBars(AFX_IDW_CONTROLBAR_FIRTS,AFX_IDW_CONTROLBAR_LAST,0);</p><p> //設置工具欄按鈕風格</p><p> m_Too
62、lBar.SetButtonStyle(0,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(3,TBB
63、S_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);</p>&
64、lt;p><b> //設置SQL語句</b></p><p> CString sqlStr;</p><p> sqlStr="SELECT * FROM tb_subject";</p><p> mysubjectset = new CSubjectinfo(&((CMystudentsysAp
65、p*)AfxGetApp())->m_DB);</p><p> if(!mysubjectset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)) </p><p><b> {</b></p><p> AfxMessageBox("tb_subject 表打開失敗!");&
66、lt;/p><p><b> }</b></p><p> return TRUE;</p><p><b> }</b></p><p> ?。?)自定義一個DisplayRecord()方法,在記錄集指針移動時為控件賦值,代碼如下:</p><p> bool CSu
67、bjectdlg::DisplayRecord()</p><p> //判斷是否移動到開頭和結尾</p><p><b> {</b></p><p> if(mysubjectset->IsEOF()&&mysubjectset->IsBOF()) </p><p><b>
68、; {</b></p><p> m_subjectname = ""; //為控件賦空值</p><p> m_subjectid = "";</p><p><b> }</b></p><p><b>
69、 else</b></p><p><b> {</b></p><p> if(mysubjectset->IsBOF()) //如果移動到了開頭,就向后移動</p><p><b> {</b></p><p> mysubjectset-&
70、gt;MoveNext(); //向下移動記錄集指針</p><p><b> }</b></p><p> else //否則前移</p><p><b> {</b></p><p> if(mysu
71、bjectset->IsEOF())</p><p><b> {</b></p><p> mysubjectset->MovePrev(); //向上移動記錄集指針</p><p><b> }</b></p><p><b> }</b>&
72、lt;/p><p><b> }</b></p><p> m_subjectname = mysubjectset->m_subject; //為對應的變量賦值</p><p> m_subjectid = mysubjectset->m_code;</p><p> UpdateData(
73、FALSE);</p><p> return TRUE;</p><p><b> }</b></p><p> (7)處理工具欄中的“添加”按鈕的單擊事件,當單擊“添加”按鈕時,將清空控件中的數據,以便用戶進行輸入,代碼如下:</p><p> void CSubjectdlg::Onsubjectinfot
74、oolbaradd() </p><p><b> {</b></p><p> //清空控件中的數據</p><p> m_subjectname = "";</p><p> m_subjectid = "";</p><p> Updat
75、eData(FALSE);</p><p><b> }</b></p><p> ?。?)處理工具欄中的“保存”按鈕的單擊事件,當單擊“保存”按鈕時,將控件中的數據保存到數據庫中,代碼如下:</p><p> void CSubjectdlg::Onsubjectinfotoolbarsave() </p><p>
76、;<b> {</b></p><p> UpdateData(TRUE); //更新控件信息</p><p> //判斷控件中的數據是否為空</p><p> if(m_subjectname.IsEmpty()||m_subjectid.IsEmpty())</p>
77、<p><b> {</b></p><p> AfxMessageBox("請輸入相應的數據!");</p><p><b> return ;</b></p><p><b> }</b></p><p><b> //設置
78、SQL數據</b></p><p> CString sqlStr_findid;</p><p> sqlStr_findid = "SELECT * FROM tb_subject WHERE tb_subject.code='"+m_subjectid+"' ";</p><p> my
79、subjectset_find = new CSubjectinfo(&((CMystudentsysApp*)AfxGetApp())->m_DB);</p><p><b> //打開數據表</b></p><p> if(!mysubjectset_find->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_fin
80、did))</p><p><b> {</b></p><p> AfxMessageBox("tb_subject 打開失敗!");</p><p><b> }</b></p><p> //判斷記錄集中是否有要保存的數據信息</p><p>
81、; if(mysubjectset_find->GetRecordCount()!=0)</p><p><b> {</b></p><p> AfxMessageBox("科目代碼不能重復,請修改后再輸入!");</p><p> if(mysubjectset_find->IsOpen())
82、 //判斷數據表是否打開</p><p><b> {</b></p><p> mysubjectset_find->Close(); //關閉數據表</p><p> delete mysubjectset_find;
83、 //釋放指針</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> if(mysubjectset_find->IsOpen())
84、 //判斷數據表是否打開</p><p><b> {</b></p><p> mysubjectset_find->Close(); //關閉數據表</p><p> delete mysubjectset_find; //釋
85、放指針</p><p><b> } </b></p><p> mysubjectset->AddNew(); //調用添加記錄的函數出理</p><p> mysubjectset->m_subject = m_subjectname; //為記
86、錄中的字段賦值</p><p> mysubjectset->m_code = m_subjectid;</p><p><b> try</b></p><p><b> {</b></p><p> mysubjectset->Update();
87、 //更新記錄集</p><p> mysubjectset->Requery(); //刷新記錄集</p><p> AfxMessageBox("成功保存數據!");</p><p><b> }</b>&l
88、t;/p><p> catch( CDBException* e )</p><p><b> {</b></p><p> AfxMessageBox( e->m_strError,MB_ICONEXCLAMATION );</p><p> e->Delete();</p><p&
89、gt;<b> }</b></p><p> DisplayRecord(); //¸更新顯示</p><p><b> }</b></p><p> ?。?)處理工具欄中的“刪除”按鈕的單擊事件,當單擊“刪除”按鈕時,將控
90、件中的數據對應的數據庫中的記錄刪除,代碼如下:</p><p> void CSubjectdlg::Onsubjectinfotoolbardel() </p><p><b> {</b></p><p> // 設置SQL語句</p><p> CString sqlStr_findid;</p>
91、;<p> sqlStr_findid="SELECT*FROMtb_class_subject WHERE tb_class_subject.code='"+m_subjectid+"' ";</p><p> myclass_subject_findref=newCClass_subjectset(&((CMystudentsy
92、sApp*)AfxGetApp())->m_DB);</p><p><b> //打開數據表</b></p><p> if(!myclass_subject_findref->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid))</p><p><b> {</b>
93、</p><p> AfxMessageBox("tb_class_subject 表打開失敗!");</p><p><b> }</b></p><p> //判斷記錄集中是否有要保存的數據信息</p><p> if(myclass_subject_findref->GetReco
94、rdCount() != 0)</p><p><b> {</b></p><p> AfxMessageBox("科室名稱在<班級科目表>里有引用,不能刪除!");</p><p> if(myclass_subject_findref->IsOpen()) //
95、判斷數據表是否打開</p><p><b> {</b></p><p> myclass_subject_findref->Close(); //關閉數據表</p><p> delete myclass_subject_findref; //釋放指針<
96、;/p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> if(myclass_subject_findref->IsOpen()) //判斷數據表是否
97、打開</p><p><b> {</b></p><p> myclass_subject_findref->Close(); //關閉數據表</p><p> delete myclass_subject_findref; //釋放指針</p><
98、;p><b> } </b></p><p> mysubjectset->Delete(); //刪除記錄</p><p> mysubjectset->Requery(); //刷新記錄</p><p>
99、 DisplayRecord(); </p><p> } (10)分別處理工具欄中的“第一條”、“上一條”、“下一條”、和“末一條”按鈕的單擊事件,當工具欄按鈕按下時,實現顯示“第一條”、“上一條”、“下一條”和“末一條”記錄的功能,代碼如下:</p><p> void CSubjectdlg::Onsubjectinfotoolbarfirst() </p>&
100、lt;p><b> {</b></p><p> if(!mysubjectset->IsBOF())</p><p><b> {</b></p><p> mysubjectset->MoveFirst(); //移動到第一條記錄</p><p> DisplayRe
101、cord(); //¸更新窗口顯示</p><p><b> }</b></p><p><b> }</b></p><p> void CSubjectdlg::Onsubjectinfotoolbarlast() </p><p><b> {&
102、lt;/b></p><p> if(!mysubjectset->IsEOF())</p><p><b> {</b></p><p> mysubjectset->MoveLast(); //移動到末一條記錄</p><p> DisplayRecord(); /
103、/更新窗口顯示</p><p><b> }</b></p><p><b> }</b></p><p> void CSubjectdlg::Onsubjectinfotoolbarnext() </p><p><b> {</b></p><
104、p> // TODO: Add your command handler code here</p><p> if(!mysubjectset->IsEOF())</p><p><b> {</b></p><p> mysubjectset->MoveNext(); //移動到下一條記錄</p>
105、;<p> DisplayRecord(); //更新窗口顯示</p><p><b> } </b></p><p><b> }</b></p><p> void CSubjectdlg::Onsubjectinfotoolbarpre() </p>
106、<p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> if(!mysubjectset->IsBOF())</p><p><b> {</b></p><p> mys
107、ubjectset->MovePrev(); //移動到上一條記錄</p><p> DisplayRecord(); //更新窗口顯示</p><p><b> } </b></p><p><b> }</b></p><p> ?。?/p>
108、11)處理對話框的WM_CLOSE事件,當窗口關閉時,斷開與數據表的連接,并且釋放指針,代碼如下:</p><p> void CSubjectdlg::OnClose() </p><p><b> {</b></p><p> if(mysubjectset->IsOpen()) //判斷數據表是否打開
109、</p><p><b> {</b></p><p> mysubjectset->Close(); //關閉數據表</p><p> delete mysubjectset; //釋放指針</p><p><b> }</b><
110、;/p><p> CDialog::OnClose();</p><p><b> }</b></p><p> 5.3學生信息管理模塊設計</p><p> 5.3.1學生信息管理模塊概述</p><p> 信息管理用于設置學生的基本信息,主要表現對學生信息的添加、修改和刪除等操作,“學生
111、信息管理”界面如圖5.3所示</p><p> 圖5.3 學生信息管理</p><p> 修改記錄使用CRecordset類的Edit函數,調用了Edit函數以后,就可以重新設定當前記錄中的每個字段的值了,但是這時修改的記錄值只是被保存起來,只有在調用了CRecordset類的Updata函數以后才修改,否則不對記錄作修改。</p><p> 刪除記錄需要使用
112、CRecordset類的Delete函數,并且在調用Delete函數之后不需要再調用Updata函數,但是在調用Delete函數時,記錄集中必須具有有效記錄。</p><p> 5.3.2學生信息管理實現過程</p><p> ?。?)創(chuàng)建一個對話框,打開對話框屬性窗口,將對話框的“ID”改為“IDD_DIginfostudent”將對話框的標題改為“學生信息管理”。</p>
113、<p> ?。?)向對話框中添加一個組群控件、七個靜態(tài)文本控件和七個編輯框控件,各控件的屬性設置如表所示</p><p> 表 控件的資源設置</p><p> (3)以CRecordset類為基類派生一個CStudentinfoset類,具體步驟請參考中的是實現過程。</p><p> ?。?)向對話框中添加OnInitDialog()方法在對
114、話框初始化時創(chuàng)建工具欄并打開本模塊使用的數據表,代碼如下:</p><p> BOOL CInfoStudent::OnInitDialog() </p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p><b> //創(chuàng)建工具欄</
115、b></p><p> if(!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP</p><p> |CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)</p><p> ||!m_ToolBar.LoadToolBar(IDR_
116、TOOLBAR_subjectinfo))</p><p><b> {</b></p><p> TRACE0(_T("創(chuàng)建工具條失敗\n"));</p><p> return FALSE;</p><p><b> }</b></p><p>
117、;<b> //顯示工具欄</b></p><p> RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);</p><p> m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX);</p><p> m_ToolBar.S
118、etButtonStyle(1,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(4,TBBS_CHEC
119、KBOX);</p><p> m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);</p><p> m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);</p><p><b> //設置SQL語句</b></p><p> CString sq
120、lStr;</p><p> sqlStr="SELECT * FROM tb_studentinfo";</p><p> mystudentset = new CStudentinfoset(&((CMystudentsysApp*)AfxGetApp())->m_DB);</p><p> if(!mystudentse
121、t->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)) //´打開數據表</p><p><b> {</b></p><p> AfxMessageBox("tb_studentinfo表打開失敗!");</p><p><b> }</b></p
122、><p> return TRUE;</p><p> ?。?)自定義一個DisplayRecrod()方法,在記錄集指針移動時為控件賦值,代碼如何:</p><p> bool CInfoStudent::DisplayRecord()</p><p><b> {</b></p><p>
123、 if(mystudentset->IsBOF()&&mystudentset->IsEOF())//判斷記錄集中是否有數</p><p><b> { </b></p><p> //情況數據中的數據</p><p> m_studentaddr = "";</p>&
124、lt;p> m_studentage = 0.0f;</p><p> m_studentclass = "";</p><p> m_studentname = "";</p><p> m_studentphone = "";</p><p> m_stud
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于vc++的班級信息管理系統(tǒng)畢業(yè)論文
- 基于vc++的班級信息管理系統(tǒng)_畢業(yè)論
- vc++賓館管理管理系統(tǒng)畢業(yè)論文
- 班級信息管理系統(tǒng)(畢業(yè)論文)
- 基于vc++的學生信息管理系統(tǒng)課設報告
- 畢業(yè)論文---基于vc教學信息管理系統(tǒng)的設計與實現
- [vc++畢設]vc++06全國天氣信息管理系統(tǒng)
- [vc++畢設]vc++醫(yī)藥管理系統(tǒng)+論文
- [vc++畢設]vc++經濟管理出版社期刊書目信息管理系統(tǒng)
- vc++火車票信息管理系統(tǒng)課程設計報告
- [vc++畢設]vc++航空檢票系統(tǒng)+論文
- [vc++畢設]vc++運動會成績管理系統(tǒng)(源碼+論文)
- 教師信息管理系統(tǒng)——畢業(yè)論文
- 校友信息管理系統(tǒng)---畢業(yè)論文
- 期刊信息管理系統(tǒng)——畢業(yè)論文
- 車間信息管理系統(tǒng)畢業(yè)論文
- 超市信息管理系統(tǒng)畢業(yè)論文
- 學生信息管理系統(tǒng) 畢業(yè)論文
- 學生信息管理系統(tǒng) 畢業(yè)論文
- 畢業(yè)論文---學生信息管理系統(tǒng)
評論
0/150
提交評論