![學(xué)生信息管理程序_第1頁](http://file4.renrendoc.com/view11/M03/37/19/wKhkGWWKHFWAUAUhAAL84f7jOEg918.jpg)
![學(xué)生信息管理程序_第2頁](http://file4.renrendoc.com/view11/M03/37/19/wKhkGWWKHFWAUAUhAAL84f7jOEg9182.jpg)
![學(xué)生信息管理程序_第3頁](http://file4.renrendoc.com/view11/M03/37/19/wKhkGWWKHFWAUAUhAAL84f7jOEg9183.jpg)
![學(xué)生信息管理程序_第4頁](http://file4.renrendoc.com/view11/M03/37/19/wKhkGWWKHFWAUAUhAAL84f7jOEg9184.jpg)
![學(xué)生信息管理程序_第5頁](http://file4.renrendoc.com/view11/M03/37/19/wKhkGWWKHFWAUAUhAAL84f7jOEg9185.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MFC應(yīng)用程序開發(fā)學(xué)生信息管理設(shè)計(jì)人:張燕指導(dǎo)老師:劉老師時(shí)間:2010-12-27◆設(shè)計(jì)思想:鑒于數(shù)據(jù)庫的應(yīng)用,對剛做完學(xué)生學(xué)籍管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)的報(bào)告的同時(shí),我想對于這一方面的社會(huì)需求也是必然的,本程序的主要功能是實(shí)現(xiàn)學(xué)生的相關(guān)信息的查詢,修改,刪除,添加等的操作。隨著學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍的增長。面對龐大的信息量需要有學(xué)生管理系統(tǒng)來提高學(xué)生管理工作的效率。通過這樣的系統(tǒng)可以做到信息的標(biāo)準(zhǔn)管理、科學(xué)統(tǒng)計(jì)和快速查詢,修改、增加、刪除等,從而減少管理方面的工作量。本系統(tǒng)主要用于學(xué)校學(xué)生信息管理,總體認(rèn)為是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化,其主要任務(wù)是用計(jì)算機(jī)對學(xué)生的各種信息進(jìn)行日常管理,如查詢、修改、刪除等。針對這些要求設(shè)計(jì)了學(xué)生信息管理系統(tǒng)的程序。本程序沒有建立數(shù)據(jù)庫,就基于一般的應(yīng)用程序編輯來實(shí)現(xiàn)相關(guān)的功能需求,◆編程思路:創(chuàng)立一個(gè)新的工程,工程名為MfcDesign,利用建立工程向?qū)梢粋€(gè)單文檔的應(yīng)用程序。鑒于在本工程中要實(shí)現(xiàn)不同的學(xué)生信息的相關(guān)操作,所以在工程中必然要更具實(shí)際的需求去新建一些讓功能實(shí)現(xiàn)的相關(guān)類,如對話框類等。對對應(yīng)的類編寫代碼,使得所需的功能能一一實(shí)現(xiàn)。即分別實(shí)現(xiàn)各個(gè)區(qū)域的功能。在程序的設(shè)計(jì)過程中,再根據(jù)具體的需要,可以再添加一些功能?!魧?shí)際操作步驟:新建一個(gè)單文檔的應(yīng)用程序,命名為MfcDesign,生成一個(gè)單文檔的應(yīng)用程序。為了滿足需要,需要新建幾個(gè)類,如幾個(gè)對話框類〔添加,刪除,查詢,修改,以及全部信息〕的學(xué)生信息的對話框類,以及成績類和學(xué)生根本信息記錄類。新建添加學(xué)信息類,修改信息類,查詢信息類,刪除信息類,分別命名為CAddDlg類,CAlterDlg類,CFindDlg類,CDelDlg類,他們都基類為對話框類,在新建的這個(gè)對話框中,一一對應(yīng)對話框,添加需要的學(xué)生信息的相關(guān)控件,并對對應(yīng)的控件進(jìn)行消息映射,定義對應(yīng)的變量。新建CStudent類和CScore類以及CPerson類,用來編輯學(xué)生信息的實(shí)現(xiàn)函數(shù)。編寫相應(yīng)的代碼,使得功能得以實(shí)現(xiàn),如對話框中的相應(yīng)的按鈕的消息響應(yīng)函數(shù)代碼的編譯。調(diào)試程序。◆添加代碼:第一局部:CAddDlg類功能的實(shí)現(xiàn)代碼:在這個(gè)添加記錄類中,主要添加了如下列圖所示的控件:圖1(對話框設(shè)計(jì)圖)對圖1中相應(yīng)的編輯控件聲明相應(yīng)的變量,如圖2所示:圖2對對話框中的【OK】按鈕添加消息相應(yīng),實(shí)現(xiàn)其功能的代碼如下所示:voidCAddDlg::OnOK(){CStudent*pCStudent=newCStudent;pCStudent->m_strName=this->m_strEditName;pCStudent->m_strSex=this->m_strEditSex;pCStudent->m_nAge=this->m_nEditAge;pCStudent->m_strTel=this->m_strEditTel;pCStudent->m_strStuNum=this->m_strEditStuNum;pCStudent->m_strEducation=this->m_strEditEducation;pCStudent->m_csScore.m_nComputer=this->m_nEditComputer;pCStudent->m_csScore.m_nEnglish=this->m_nEditEnglish;pCStudent->m_csScore.m_nEthic=this->m_nEditEthic;CMfcDesignDoc*pDoc=theApp.GetDocPointer();pDoc->m_StudentList.AddTail(pCStudent);MessageBox("增加成功");}第二局部:CAlterDlg類功能的實(shí)現(xiàn)代碼:在這個(gè)修改記錄類中,主要添加了如下列圖所示的控件:圖3對圖3中相應(yīng)的編輯控件聲明相應(yīng)的變量,如圖4所示:〔只有一局部〕對話框初始化函數(shù):BOOLCAlterDlg::OnInitDialog(){ this->m_Pos=NULL;}對對話框中的【OK】按鈕添加相應(yīng)映射,實(shí)現(xiàn)其功能的代碼如下所示:voidCAlterDlg::OnOK(){if(this->m_Pos==NULL) {AfxMessageBox("請先確定要修改的記錄");} else {CMfcDesignDoc*pDoc=theApp.GetDocPointer();CStudent*pCStudent=newCStudent;GetData(this,pCStudent);pDoc->m_StudentList.SetAt(this->m_Pos,pCStudent); } }按鈕【先查后改】添加消息響應(yīng)函數(shù),添加代碼如下所示:voidCAlterDlg::OnFind(){intn_Status=0;CStringsz_StuNum;this->m_nEditStuNum.GetWindowText(sz_StuNum);CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);if(pCStudent->m_strStuNum==sz_StuNum){this->m_Pos=pos; SetData(this,pCStudent);n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {MessageBox("沒有此記錄");}}第三局部:CDelDlg類功能的實(shí)現(xiàn)代碼:在這個(gè)刪除記錄類中,主要是按學(xué)號(hào)來查詢到學(xué)生的相關(guān)信息,并刪除其記錄,主要添加了如下列圖所示的控件:對對應(yīng)的控件添加消息映射編寫【OK】按鈕的消息相應(yīng)函數(shù),添加代碼如下:voidCDelDlg::OnOK(){ intn_Status=0; CDialog::OnOK(); CStringsz_StuNum; sz_StuNum=this->m_strEditStuNum;//取出要?jiǎng)h除記錄的學(xué)號(hào)CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition(); while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);if(pCStudent->m_strStuNum==sz_StuNum) {pDoc->m_StudentList.RemoveAt(pos);//刪除記錄 n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {MessageBox("刪除失敗!");} else {MessageBox("刪除成功!");}}第四局部:CFindDlg類功能的實(shí)現(xiàn)代碼:在這個(gè)查詢記錄類中,查詢學(xué)生信息:添加變量:添加代碼如下所示:voidClearListBox(CListBox*List)//清空列表筐{intnum; num=List->GetCount(); for(inti=0;i<num;i++) {List->DeleteString(i);}}voidCFindDlg::OnOK(){ClearListBox(&this->m_ResultList);intn_Status=0;charsz_Buffer[200]; CStringsz_StuNum;this->m_strEditStuNum.GetWindowText(sz_StuNum);//取出要?jiǎng)h除記錄的學(xué)號(hào)CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos); if(pCStudent->m_strStuNum==sz_StuNum) {ShowRecord(sz_Buffer,pCStudent);this->m_ResultList.AddString(sz_Buffer); n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {this->m_ResultList.AddString("沒有此記錄");}}第五局部:CMainDlg類功能的實(shí)現(xiàn)代碼:在這個(gè)信息顯示記錄類中,主要是顯示學(xué)生的主要信息,對話框設(shè)計(jì)如下所示:對應(yīng)的控件列表中聲明成員變量:對話框變量初始化函數(shù):BOOLCMainDlg::OnInitDialog(){CDialog::OnInitDialog();CMfcDesignDoc*pDoc=theApp.GetDocPointer();// ar<<m_StudentList.GetCount();//節(jié)點(diǎn)個(gè)數(shù) POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { charsz_Buffer[200];CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);ShowRecord(sz_Buffer,pCStudent);this->m_MainList.AddString(sz_Buffer);pDoc->m_StudentList.GetNext(pos); }returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}顯示信息函數(shù):voidShowRecord(charBuffer[200],CStudent*pCStudent){ intj=0; j=sprintf(Buffer,"%-6s",pCStudent->m_strStuNum); j+=sprintf(Buffer+j,"%-6s",pCStudent->m_strName); j+=sprintf(Buffer+j,"%-3s",pCStudent->m_strSex); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_nAge); j+=sprintf(Buffer+j,"%-6s",pCStudent->m_strEducation); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nComputer); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nEnglish); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nEthic);j+=sprintf(Buffer+j,"%-9s",pCStudent->m_strTel);}第六局部:文檔類的序列化函數(shù):voidCMfcDesignDoc::Serialize(CArchive&ar){ if(ar.IsStoring())//保存 {//保存鏈表所有節(jié)點(diǎn) ar<<m_StudentList.GetCount();//節(jié)點(diǎn)個(gè)數(shù) POSITIONpos=m_StudentList.GetHeadPosition(); while(pos!=NULL) { CStudent*pCStudent=m_StudentList.GetAt(pos); ar<<pCStudent;//保存 m_StudentList.GetNext(pos); } } else//翻開 {CFile*pFile=ar.GetFile(); m_strFileName=pFile->GetFileName(); AfxMessageBox(m_strFileName);//釋放鏈表所有節(jié)點(diǎn) m_StudentList.RemoveAll();//加載鏈表所有節(jié)點(diǎn) intnNodeCount=0; ar>>nNodeCount;//節(jié)點(diǎn)個(gè)數(shù) for(inti=0;i<nNodeCount;i++) { CStudent*pCStudent=NULL; ar>>pCStudent;//加載 m_StudentList.AddTail(pCStudent); }MessageBox(NULL,"dd","dd",MB_OK); // CMainDlgMainDisplay; // MainDisplay.DoModal();}}第七局部:學(xué)生信息〔姓名,性別,年齡,〕的序列化函數(shù):voidCPerson::Serialize(CArchive&ar){ //對象序列化保存 if(ar.IsStoring()) {ar<<m_strName<<m_strSex<<m_nAge<<m_strTel;} else {ar>>m_strName>>m_strSex>>m_nAge>>m_strTel;}}第八局部:學(xué)生信息〔計(jì)算機(jī),英語,素質(zhì)〕序列化函數(shù)voidCScore::Serialize(CArchive&ar){//對象序列化保存 if(ar.IsStoring()) {ar<<m_nComputer<<m_nEnglish<<m_nEthic;} else {ar>>m_nComputer>>m_nEnglish>>m_nEthic;}}第九局部:學(xué)生信息(成績,學(xué)歷,學(xué)號(hào))序列化函數(shù):voidCStudent::Serialize(CArchive&ar){//對象序列化保存 if(ar.IsStoring()) {ar<<this->m_strEduca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 30105-2:2024 EN Information technology - IT Enabled Services-Business Process Outsourcing (ITES-BPO) lifecycle processes - Part 2: Process assessment model (PAM)
- 【正版授權(quán)】 ISO 13315-2:2025 EN Environmental management for concrete and concrete structures - Part 2: System boundary and inventory data
- 2025年度公共設(shè)施裝修工期延誤賠償及質(zhì)量保證協(xié)議
- 2025年度電子商務(wù)交易安全保障合同
- 2025高考作文預(yù)測:正確“出圈”才能出彩
- 個(gè)人職業(yè)能力提升計(jì)劃
- 未來年的市場拓展計(jì)劃
- 提升職業(yè)道德與素養(yǎng)的工作計(jì)劃
- 班級(jí)網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)的搭建與維護(hù)計(jì)劃
- 2025年休閑專用車及其零附件項(xiàng)目建議書
- 小學(xué)期末班級(jí)頒獎(jiǎng)典禮動(dòng)態(tài)PPT模板
- 液堿生產(chǎn)工序及生產(chǎn)流程敘述
- 心理抗壓能力測試?yán)}
- 三年級(jí)學(xué)生《成長記錄》模板
- 好書推薦——《三毛流浪記》
- 方菱F2100B中文系統(tǒng)說明書
- 人教版動(dòng)手動(dòng)腦學(xué)物理答案 八下
- 九宮格數(shù)獨(dú)題目(打印版)
- 內(nèi)燃機(jī)基本知識(shí)
- 抹灰工程施工合同-
- 2019.2青島版五四制五年級(jí)下冊數(shù)學(xué)教學(xué)計(jì)劃(附教學(xué)進(jìn)度表)
評(píng)論
0/150
提交評(píng)論