MFC開發(fā)學(xué)生信息管理系統(tǒng)(詳細(xì))_第1頁
MFC開發(fā)學(xué)生信息管理系統(tǒng)(詳細(xì))_第2頁
MFC開發(fā)學(xué)生信息管理系統(tǒng)(詳細(xì))_第3頁
MFC開發(fā)學(xué)生信息管理系統(tǒng)(詳細(xì))_第4頁
MFC開發(fā)學(xué)生信息管理系統(tǒng)(詳細(xì))_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 學(xué)生信息管理系統(tǒng)(一) 用microsoft office access創(chuàng)建一個(gè)數(shù)據(jù)庫student.mdb (圖1.1) 在表中添加字段和數(shù)據(jù)類型,如下圖所示: (圖1.2) (圖1.3) (圖1.4) 創(chuàng)建ODBC數(shù)據(jù)源選擇控制面板管理工具數(shù)據(jù)源(ODBC)系統(tǒng)DSN標(biāo)簽單擊“添加” 出現(xiàn)下圖所示的界面。選擇Drive do Microsoft Access (*.mdb),單擊“完成”。輸入數(shù)據(jù)源名,單擊“選擇、”,選擇c/student.mdb 單擊“確定”,將會(huì)出現(xiàn)如圖(圖1.7)所示。 (圖1.5) (圖1.6) (圖1.7)(二).MFC圖形建立(圖2.1)特別注意:創(chuàng)建的應(yīng)用

2、程序類型是單文檔(single document應(yīng)用程序) (圖2.2)將CSTUDXINXIView 的基類改為CScrollView 然后單擊“完成”。 (圖2.3)為數(shù)據(jù)表創(chuàng)建CRecordSet用戶類 按“Ctrl+W ”進(jìn)入“建立類向?qū)В碝FC ClasWizard)” 單擊“Add Class.”選擇“New.”如圖(圖2.4)所示.按照(圖2.5)(圖2.6)(圖2.7)的安裝順序。即可完成創(chuàng)建CRecordSet用戶類的工作。 (圖2.4) (圖2.5) (圖2.6) (圖2.7)在stdafx.h文件中添加CRecordSet包含語句:#include<afxdb.h

3、> 如圖(圖2.8)所示 (圖2.8)(三)構(gòu)建班級(jí)信息對(duì)話框類 按“Ctrl+R”鍵,打開“插入資源”,選擇dialog(對(duì)話框),選擇新建。將名字改為IDD_CLASSINFO,標(biāo)題為“班級(jí)信息輸入”。按照(圖3.1)添加控件。添加的控件ID號(hào)標(biāo)題其他屬性編輯框(班級(jí)號(hào))IDC_EDIT_CLASSNO默認(rèn)編輯框(所在院系)IDC_EDIT_DEPART默認(rèn)編輯框(專業(yè))IDC_EDIT_SPECIAL默認(rèn)組合框(學(xué)制)IDC_COMBO_YEAR默認(rèn)日期/時(shí)間控件(入學(xué)時(shí)間)IDC_DATETIMEPICKER1默認(rèn) 對(duì)于學(xué)制框:使用Data頁面來添加數(shù)據(jù)項(xiàng),按Ctrl+Enter

4、 換行。 (圖3.1) 完成控件添加后,選擇“建立類向?qū)А?,?chuàng)建一個(gè)新類、即CClassInfoDlg,如圖(3.2)所示。然后按照下圖,為控件添加成員變量。 (圖3.2) (圖3.3)控件ID號(hào)變量類別變量類型變量名IDC_EDIT_CLASSNOValueCStringm_strClassNOIDC_EDIT_DEPARTValueCStringm_strDepartIDC_EDIT_SPECIALValueCStringm_strSpecialIDC_COMBO_YEARValueCStringm_strYearIDC_DATETIMEPICKER1ValueCTimem_tEnter

5、(圖3.4)使用類向?qū)镃ClassInfoDlg類添加WM_INITDIALOG消息映射。 代碼位于附錄1。 見(圖3.5)使用類向?qū)镃ClassInfoDlg類添加IDOK按鈕的BN_CLICKED消息映射。 代碼位于附錄2。 見(圖3.6) (圖3.5) (圖3.6)鑒于添加代碼都是從類向?qū)д业较鄳?yīng)的代碼區(qū)域,以后就不詳細(xì)截圖了。 (四)實(shí)現(xiàn)班級(jí)基本信息添加和顯示功能 為CSTUDXINXIView類添加一個(gè)LOGFONT型成員變量m_lfFont 選擇Add Member Variable. 出現(xiàn)(圖4.1)所示 輸入下面表格的變量類型和名稱即可。連續(xù)三次。變量類型變量名稱LOGFO

6、NTm_lfFontCStringm_strClassNOCStringm_strSQL 在CSTUDXINXIView:CSTUDXINXIView() 添加代碼。代碼位于附錄3. (圖4.1)添加一個(gè)成員函數(shù) 如(圖4.2)所示。 (圖4.2)添加代碼,位于附錄4.在STUDXINXIView.cpp文件的前面添加CClassInfo類的包含語句 :#include"ClassInfoSet.h"打開菜單資源,添加如(圖4.3)所示的菜單項(xiàng)。 (圖4.3)用類向?qū)镃STUDXINXIView類添加該菜單項(xiàng)的COMMAND消息映射,并添加代碼。代碼位于附錄5在CSTUD

7、XINXIView:OnDraw 函數(shù)添加代碼。代碼位于附錄6在STUDXINXIView.cpp文件的前面添加ClassInfoDlg類的包含語句: #include"ClassInfoDlg.h"(五)查詢班級(jí)信息添加一個(gè)新的對(duì)話資源框,名字改為ID_SEEKCLASS 標(biāo)題定為“查詢班級(jí)信息”。按照下面的表格添加控件。布局如(圖5.1所示)添加的控件ID號(hào)標(biāo)題其他屬性單選按鈕(按所在院系)IDC_RADIO1默認(rèn)單選按鈕(按專業(yè))IDC_RADIO2默認(rèn)編輯框IDC_EDIT1默認(rèn) (圖5.1)建立新類,為IDC_EDIT1添加一個(gè)CString型變量m_strSee

8、k為CSeekClassDlg類添加消息映射,代碼位于附錄7為CSeekClassDlg類添加CString型成員變量m_strSQL用類向?qū)镮DOK按鈕添加消息映射。代碼位于附錄8打開菜單資源,添加菜單項(xiàng)如(圖5.2)所示。用類向?qū)砑酉⒂成洹4a位于附錄9在STUDXINXIView.cpp文件的前面添加包含語句:#include"SeekClassDlg.h" (圖5.2)運(yùn)行,編譯。附錄:1 m_strYear="4" /有關(guān)于消息映射 UpdateData(FALSE);2UpdateData();m_strClassNO.TrimLeft

9、();m_strDepart.TrimLeft();m_strSpecial.TrimLeft();if(m_strDepart.IsEmpty()MessageBox("必須要有所院系!");else if(m_strSpecial.IsEmpty()MessageBox("必須要有班級(jí)!");else if(m_strClassNO.IsEmpty()MessageBox("必須要有班級(jí)號(hào)!"); else3memset(&m_lfFont,0,sizeof(LOGFONT);m_lfFont.lfHeight=12; m

10、_lfFont.lfCharSet=GB2312_CHARSET;strcpy(m_lfFont.lfFaceName,"宋體");m_strClassNO=m_strSQL=""4CFont font;LOGFONT lf=m_lfFont;lf.lfWeight=700;strcpy(lf.lfFaceName,"幼圓");font.CreateFontIndirect(&lf);TEXTMETRIC tm;pDC->GetTextMetrics(&tm);int nLineHeight=(int)(tm.t

11、mHeight+tm.tmExternalLeading)*1.5);/行高為1.5倍字符高度int x=0,y=0,nWidth;CFont*oldFont=pDC->SelectObject(&font); /使用新字體/輸出表頭CString strHeader="班級(jí)號(hào)","所在院系","專業(yè)名稱","學(xué)制","入學(xué)時(shí)間"int nStrWidth=10,25,25,8,10; CClassInfoSet cSet;cSet.m_strFilter=strSQL;cSet.

12、Open();for(UINT i=0;i<cSet.m_nFields;i+)/計(jì)算每一個(gè)字段所需的長度nWidth=tm.tmAveCharWidth*nStrWidthi;pDC->TextOut(x,y,strHeaderi);x+=nWidth;pDC->SelectObject(oldFont);/顯示具體內(nèi)容CString str;while(!cSet.IsEOF()if(strClass=cSet.m_classno)/這是要強(qiáng)調(diào)顯示的班級(jí)lf.lfWeight=0;strcpy(lf.lfFaceName,"楷體_GB2312");fo

13、nt.DeleteObject();font.CreateFontIndirect(&lf);pDC->SelectObject(&font);elsepDC->SelectObject(oldFont); /使用原來的字體 x=0;y+=nLineHeight;for(UINT i=0;i<cSet.m_nFields;i+)cSet.GetFieldValue(i,str);/計(jì)算每一個(gè)字段需要的長度nWidth=tm.tmAveCharWidth*nStrWidthi;pDC->TextOut(x,y,str);x+=nWidth;cSet.Mov

14、eNext();cSet.Close();/設(shè)置視圖滾動(dòng)大小CSize sizeTotal;sizeTotal.cx=x+nWidth; sizeTotal.cy=y+nLineHeight;SetScrollSizes(MM_TEXT,sizeTotal);5CClassInfoDlg dlg;if(dlg.DoModal()!=IDOK) return;/向classinfo表添加新的記錄,為了防止添加相同的記錄,這里先來判斷CClassInfoSet infoSet; infoSet.m_strFilter.Format("classno='%s' AND de

15、part='%s'",dlg.m_strClassNO,dlg.m_strDepart,dlg.m_strSpecial);infoSet.Open();if(!infoSet.IsEOF()MessageBox(dlg.m_strClassNO+"班級(jí)記錄已被添加過! "); /if(infoSet.IsOpen() infoSet.Close();return;if(infoSet.IsOpen()infoSet.Close();CClassInfoSet addSet;if(addSet.Open()/添加一個(gè)新的 記錄addSet.AddN

16、ew();addSet.m_classno=dlg.m_strClassNO;addSet.m_depart=dlg.m_strDepart; addSet.m_special=dlg.m_strSpecial;addSet.m_studyyear=(float)atof(dlg.m_strYear);addSet.m_entertime=dlg.m_tEnter;addSet.Update();addSet.Requery();if(addSet.IsOpen()addSet.Close();/更新視圖m_strClassNO=dlg.m_strClassNO; m_strSQL="

17、;"MessageBox("稍等幾分鐘后,單擊“確定”按鈕!O(_)O謝謝","特別提示",MB_OK|MB_ICONINFORMATION);Invalidate(); /重新調(diào)用OnDraw6CFont font;font.CreateFontIndirect(&m_lfFont); CFont*oldFont=pDC->SelectObject(&font);DispClassInfo(pDC,m_strClassNO,m_strSQL);pDC->SelectObject(oldFont);7CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);8 UpdateData();m_strSeek.TrimLeft();if(m_strSeek.IsEmpty()MessageBox("查詢內(nèi)容不能為空!");return;int nID=GetCheckedRadi

溫馨提示

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

評(píng)論

0/150

提交評(píng)論