




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流c+1學(xué)生信息管理系統(tǒng).精品文檔.學(xué)生信息管理系統(tǒng)1.課程設(shè)計的目的隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個不斷發(fā)展的新型學(xué)科,任何一個單位要生存要發(fā)展,要高效率地把內(nèi)部活動有機地組織起來,就必須建立與自身特點相適應(yīng)的管理信息系統(tǒng)。VC+程序設(shè)計課程設(shè)計是計算機科學(xué)與技術(shù)專業(yè)的VC+程序設(shè)計課程的綜合性實踐環(huán)節(jié)。VC+程序設(shè)計是一門實用性很強的學(xué)科,是進行軟件開發(fā)的主要工具,只有進行實際操作,才能將理論知識和實際應(yīng)用有機的結(jié)合起來,鍛煉學(xué)生分析解決實際問題的能力,提高學(xué)生實際運用的能
2、力,為學(xué)生畢業(yè)設(shè)計,日后工作中的軟件開發(fā)打下良好的基礎(chǔ)。2.需求分析 用計算機技術(shù)實現(xiàn)的科學(xué)化管理,是在信息技術(shù)迅速發(fā)展的今天學(xué)校提高管理效率的必需選擇。學(xué)生信息管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備、易使用等特點。學(xué)生信息管理系統(tǒng)用來將某一個院系按專業(yè)、班級來管理學(xué)生的基本信息、課程信息和學(xué)生成績。下面就其系統(tǒng)功能作簡單的說明。該系統(tǒng)主要是方便查詢學(xué)生的信息,用該系統(tǒng)可以查到學(xué)生的姓名,年齡,學(xué)號,性別,學(xué)院,班級等??梢越y(tǒng)計學(xué)生在某
3、一學(xué)期的總學(xué)分或者單科成績、總成績。系統(tǒng)主要功能包括:信息操作功能、查詢功能、統(tǒng)計功能、分析功能。2.1 信息操作功能(1)學(xué)生基本信息的添加、修改和刪除。學(xué)生基本信息包括:學(xué)號(學(xué)號的前6位為班級號)、姓名、性別、出生日期和所在專業(yè)。(2)學(xué)生成績信息的添加、修改和刪除。學(xué)生成績信息包括:學(xué)號、課程號、成績和和學(xué)分。22查詢功能 可以通過學(xué)號來查詢學(xué)生基本信息,通過學(xué)號可以查詢學(xué)生的選課信息,通過學(xué)號和學(xué)期查詢學(xué)生的成績,通過課程號查詢該課程的信息。23統(tǒng)計功能統(tǒng)計學(xué)生某個學(xué)期或所有學(xué)期課程的總學(xué)分,統(tǒng)計學(xué)生某個學(xué)期的或所有學(xué)期的單科成績或者總成績。2.4運行環(huán)境(1)硬件環(huán)境處理器:Int
4、er Centrino Duo。內(nèi)存:521MB。硬盤空間:80G。(2)軟件環(huán)境操作系統(tǒng):WindowsXP Microsoft visual c+ Microsoft access數(shù)據(jù)庫3. 總體設(shè)計3.1系統(tǒng)的結(jié)構(gòu)圖學(xué)生信息管理系統(tǒng)是對學(xué)生的基本信息和成績信息進行管理,主要包括添加、修改和刪除學(xué)生的基本信息及課程的基本信息;錄入、修改和刪除學(xué)生的成績信息,對基本信息、成績信息進行查詢、排序及統(tǒng)計等操作,從而實現(xiàn)學(xué)生信息管理的自動化與計算機化。本課題將實現(xiàn)一個簡化的學(xué)生信息管理系統(tǒng)。 (1)添加信息:使用這個模塊,可以添加學(xué)生的基本信息,包括學(xué)生的學(xué)號,姓名,民族,性別,籍貫,出生年月日,
5、政治面貌,學(xué)院,專業(yè),所在年級,寢室地址,畢業(yè)院校,身份證號,電子郵箱,聯(lián)系電話,家庭住址,備注等。(2)成績導(dǎo)入:包括學(xué)號,課程編號,課程名稱,學(xué)分,成績。(3)信息查詢:包括學(xué)號,姓名,班級,學(xué)院。(4)成績查詢:包括課程名稱,課程編號。(5)個人信息:當點擊這個按鈕時,可以顯示當前某個人的信息。(6)查看成績:點擊這個按鈕時,可以顯示當前這個人的所有成績。3.2設(shè)計數(shù)據(jù)庫 用Microsoft Access創(chuàng)建一個數(shù)據(jù)庫main.mdb,含有3個主要數(shù)據(jù)表:學(xué)生基本信息表student、課程信息表couese和學(xué)生成績表score。這3個數(shù)據(jù)表的結(jié)構(gòu)如表13所示。這幾個表中,學(xué)號stud
6、entno和課程號courseno內(nèi)容都是唯一的,分別是student和course表中的主關(guān)鍵字。Score表中的studentno和student表中的同名字段相對應(yīng),字段course和course表中的courseno字段相對應(yīng)。說明:由于student和course表中都有專業(yè)字段,因此為便于用戶操作,需要一個專業(yè)數(shù)據(jù)字典。該數(shù)據(jù)字典也作為數(shù)據(jù)庫main.mdb的一個數(shù)據(jù)表speical,其結(jié)構(gòu)如表4所示。表1 學(xué)生基本信息表(student)結(jié)構(gòu)序號字段名稱數(shù)據(jù)類型字段大小小數(shù)位字段含義12345studentnamestudentnoxbbirthdayspeical文本文本是/否
7、日期/時間文本201050姓名學(xué)號性別出生年月專業(yè)表2 課程信息表(course)結(jié)構(gòu)序號字段名稱數(shù)據(jù)類型字段大小小數(shù)位字段含義1234567coursenospecialcoursenamecoursetypeopentermhourscredit文本文本文本文本數(shù)字數(shù)字數(shù)字7505010字節(jié)字節(jié)單精度1課程號所屬專業(yè)課程名課程類型開學(xué)學(xué)期課時數(shù)學(xué)分表3 學(xué)生課程成績表(score)結(jié)構(gòu)序號字段名稱數(shù)據(jù)類型字段大小小數(shù)位字段含義1234studentnocoursescorecredit文本文本數(shù)字數(shù)字87單精度單精度11學(xué)號課程號成績學(xué)分4.詳細設(shè)計該系統(tǒng)包含多個模塊,期中重要的有6大模塊
8、,添加信息,成績導(dǎo)入,信息查詢,成績查詢,個人信息,查看成績。該系統(tǒng)的主界面如圖2所示。圖2系統(tǒng)的主界面4.1信息查詢的設(shè)計下面我們對信息查詢做詳細的設(shè)計。信息查詢這個模塊的功能主要通過某個學(xué)生的某一項信息,比如學(xué)號,班級,姓名,專業(yè),年級,然后查詢到這個學(xué)生的多個信息。比如通過學(xué)生的學(xué)號,可以查詢到這個學(xué)生所在學(xué)院,所在班級等。當我們點擊信息查詢這個按鈕時,顯示一個對話框,如圖3所示。圖3信息查詢的界面 當我們點擊信息查詢按鈕時,會立刻彈出一個對話框,期中對話框中包括一個列表框,列表框中包括學(xué)號,姓名,學(xué)院,專業(yè),年級,列表框中還包括2個按鈕,一個查找按鈕,一個取消按鈕。使用CRecordS
9、et類的成員變量m_strFilter、m_strSort和成員函數(shù)Open可以對表進行記錄查詢。(1) 打開Ex_ODBC應(yīng)用程序的表的單資源,按如圖4所示的布局添加控件,七宗添加的編輯框ID號設(shè)為IDC_EDIT_QUERY,查詢按鈕的ID號設(shè)為IDC_BUTTON_QUERY.圖4添加控件(2) 用MFC classwizard為控件IDC_EDIT_QUERY添加關(guān)聯(lián)變量m_strQuery.(3) 在CEx_ODBCView類中添加按鈕控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函數(shù)中添加下列代碼:void CMemberView:RemoveAll(
10、)/增加指針變量指向ListView的CListCtrlCListCtrl *ctl;ctl=&GetListCtrl();/刪除CListCtrl中的所有記錄ctl->DeleteAllItems();/strSearch查詢條件 strMember關(guān)鍵字void CMemberView:ListMember(CString strSearch,CString strMember) /前此輸出的用戶記錄RemoveAll(); /建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&GetListCtrl();/創(chuàng)建CMemberRe
11、Set的實例CMemberReSet m_MemberReSet;/記錄用戶序號int i=0;/定義一個變量來保存"%"以便設(shè)置SQL語句char chrTemp='%'CString strTemp;tryif(m_MemberReSet.IsOpen()m_MemberReSet.Close();/設(shè)置查詢條件"MemName=strMemberName"if(strMember="")AfxMessageBox("請輸入關(guān)鍵字"); return;進入信息查詢模塊之后就可以對信息進行查詢,我
12、們選擇選擇框里選擇“姓名”,然后在輸入框里輸入“陳一”,然后點查找按鈕,然后就會彈出陳一的個人信息,如圖5所示。圖5陳一的個人信息 在個人信息的模塊里包括多個輸入框,比如學(xué)號,姓名,性別,民族,籍貫,出生年月日,政治面貌,學(xué)院專業(yè),所在年級,寢室地址,畢業(yè)院校,身份證號,電子郵箱,聯(lián)系號碼,家庭住址,家庭電話,備注。又包括2個單擊按鈕,一個修改,一個取消。我們可以在輸入框里輸入各種信息,也可以修改當前的信息,修改完然后點“修改”按鈕,然后就會彈出一個消息對話框,如圖6所示。圖6消息提示在這個操作過程中我們需要建立一個映射控件消息。(1) 打開Ex_DlgCtrls應(yīng)用程序項目。(2) 將項目工
13、作區(qū)窗口切換到ResourseView頁面,雙擊Dialog資源下的標識IDD_EX_DLGCTRLS_DLALOG,打開該對話框資源模板(3) 刪除“TODO:在這里設(shè)置對話控制”控件,添加一個按鈕控件,保留其默認屬性。(4) 按快捷鍵CTRL+W,打開""MFC CLASSWIZAD"對話框,查看“class name”列表中是否選擇了CEx_DlgCtrlsDlg,在IDs列表中選擇IDS_BUTTON1,這是添加按鈕后,系統(tǒng)自動為此按鈕設(shè)置的默認標示符,然后在Messages框中選擇BN_CKICKED消息。(5) 單吸“Add function”按鈕或者
14、雙擊BN_CLICKED消息,出現(xiàn)“Add Member Function”對話框。在這里可以輸入成員函數(shù)的名稱,系統(tǒng)默認的函數(shù)為ONButton1。(6) 單吸"OK"按鈕,在MFC Class Wizard 的“Member function”列表中將列出新增加的成員函數(shù)。選擇此函數(shù),單吸“Edit Code”按鈕,開發(fā)環(huán)境的文檔窗口中將自動打開該函數(shù)的源代碼文件,并定位到該函數(shù)的實現(xiàn)代碼處。在此成員函數(shù)中添加下列代碼:Void CEx_DlgCtrlsDlg:onButton()MessageBox("確定修改記錄?")(7) 編譯并運行,當單擊按
15、鈕時,就會執(zhí)行ONButton1函數(shù),彈出一個消息一個對話框。5. 心得體會剛看到課程設(shè)計題目的時候,總感覺對visual c+處于一知半解的狀態(tài),開始分工也比較混亂,但是在劃分模塊后明確的各自分工,漸漸的有了點眉目。 在設(shè)計的過程中,經(jīng)常會遇到這樣那樣的問題,比如說怎樣才能實現(xiàn)我們所要的功能,設(shè)計過程中的圖的畫法,程序的編寫、文檔的編寫、排版等。由于課本上的知識太多,平時課間的學(xué)習(xí)并不能很好的理解和運用知識,面對這些問題,我們就自己上圖書館借書,網(wǎng)上搜素資料,相互討論來解決我們的問題。真的是體會到了只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正的為
16、我所用,從而提高自己的實際動手能力和獨立思考的能力。此次課程設(shè)計,讓我們學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)差錯的隨機應(yīng)變,和與人合作共同提高等等,無不讓我們受益非淺。6. 參考文獻1王珊,薩師煊編著.vc+實用教程M.北京高等教育出版社,2007.7 83-1262孫越編著.Visual C+數(shù)據(jù)庫開發(fā)自學(xué)教程M.人民郵電出版社2003.7 50-753王彬華,李建華編著.Visual C+實例教程M電子科技大學(xué)出版社2004.48-95 4李春葆,曾平編著數(shù)據(jù)庫原理與應(yīng)用M. 北京清華大學(xué)出版社,2006.1 41-74附錄:#include "stdafx.h
17、"#include "member.h"#include "memberDoc.h"#include "memberView.h"#include "MainFrm.h"#include "MemberReSet.h"#include "MemberDialog.h"#include "MemberEditDlg.h"#include "ScoreDlg.h"#include "ScoreReSet.h"#
18、include "MemberAdd.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMemberViewIMPLEMENT_DYNCREATE(CMemberView, CListView)BEGIN_MESSAGE_MAP(CMemberView, CListView)/AFX_MSG_MAP(CMemberView)ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)/AFX_MSG_MAP/ Standard
19、 printing commandsON_COMMAND(ID_FILE_PRINT, CListView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMemberView construction/destructionCMemberView:CMemberView()/ TODO: add construction code hereCM
20、emberView:CMemberView()BOOL CMemberView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT cs/設(shè)置CListCtrl的格式為:LVS_REPORT并且LVS_SINGLESELcs.style|=LVS_REPORT|LVS_SINGLESEL;return CListView:PreCreateWindow(cs);/ CMemberView drawingvoid CMe
21、mberView:OnDraw(CDC* pDC)CMemberDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data herevoid CMemberView:OnInitialUpdate()/創(chuàng)建一個CListCtrl指針CListCtrl *ctl;ctl=&GetListCtrl(); /指向CListView的CListCtrl/表格風格ctl->SetExtendedStyle(ctl->GetExtendedStyle()|LVS_EX_GRIDLI
22、NES|LVS_EX_FULLROWSELECT); /利用CLisrCtrl設(shè)置列的題頭ctl->InsertColumn(0,"學(xué)號",LVCFMT_LEFT,100);ctl->InsertColumn(1,"姓名",LVCFMT_LEFT,100);ctl->InsertColumn(2,"性別",LVCFMT_LEFT,80);ctl->InsertColumn(4,"學(xué)院",LVCFMT_LEFT,100);ctl->InsertColumn(5,"專業(yè)"
23、;,LVCFMT_LEFT,100);ctl->InsertColumn(6,"所在年級",LVCFMT_LEFT,100);ctl->InsertColumn(7,"聯(lián)系號碼",LVCFMT_LEFT,100);ctl->InsertColumn(8,"寢室地址",LVCFMT_LEFT,200);OnPaint();CListView:OnInitialUpdate();/獲取CMainFrame的指針CMainFrame *m_Frm=(CMainFrame*):AfxGetMainWnd();/將CMainF
24、rame的m_ListViet指針變量指向CMemberView的實列m_Frm->m_ListView=this;/ TODO: You may populate your ListView with items by directly accessing/ its list control through a call to GetListCtrl()./ CMemberView printingBOOL CMemberView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrint
25、ing(pInfo);void CMemberView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CMemberView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CMemberView diagnostics#ifdef _DEBUGvoid CMemberView:AssertValid() co
26、nstCListView:AssertValid();void CMemberView:Dump(CDumpContext& dc) constCListView:Dump(dc);CMemberDoc* CMemberView:GetDocument() / non-debug version is inlineASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMemberDoc);return (CMemberDoc*)m_pDocument;#endif /_DEBUG/ CMemberView message handlersvoid
27、 CMemberView:RemoveAll()/增加指針變量指向ListView的CListCtrlCListCtrl *ctl;ctl=&GetListCtrl();/刪除CListCtrl中的所有記錄ctl->DeleteAllItems();/strSearch查詢條件 strMember關(guān)鍵字void CMemberView:ListMember(CString strSearch,CString strMember) /前此輸出的用戶記錄RemoveAll(); /建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&Get
28、ListCtrl();/創(chuàng)建CMemberReSet的實例CMemberReSet m_MemberReSet;/記錄用戶序號int i=0;/定義一個變量來保存"%"以便設(shè)置SQL語句char chrTemp='%'CString strTemp;tryif(m_MemberReSet.IsOpen()m_MemberReSet.Close();/設(shè)置查詢條件"MemName=strMemberName"if(strMember="")AfxMessageBox("請輸入關(guān)鍵字"); return
29、;if(strSearch="學(xué)號") CString str; str.Format("select * from member where MemID = '%s' order by MemID ASC",strMember); m_MemberReSet.Open(CRecordset:snapshot,str,CRecordset:none);else if(strSearch="姓名") m_MemberReSet.m_strFilter.Format("MemName LIKE '%c%s
30、%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp); m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSearch="學(xué)院") m_MemberReSet.m_strFilter.Format("MemIns = '%s' order by MemID ASC",strMember.operator LPCTSTR(); m_MemberR
31、eSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSearch="專業(yè)") m_MemberReSet.m_strFilter.Format("MemSpe LIKE '%c%s%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp); m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSe
32、arch="年級") m_MemberReSet.m_strFilter.Format("MemYear LIKE '%c%s%c' order by MemID ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp); m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSearch="年級tree") m_MemberReSet.m_strFilter.Format("
33、MemYear = %s order by MemID ASC",strMember.operator LPCTSTR(); m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);elseAfxMessageBox("條件選擇錯誤"); return; /輸出匹配上查詢到的用戶記錄,直到記錄為空while(!m_MemberReSet.IsEOF() ctl->InsertItem(i,m_MemberReSet.m_MemID);ctl->SetItemText(i,1,m_Memb
34、erReSet.m_MemName);ctl->SetItemText(i,2,m_MemberReSet.m_MemSex);ctl->SetItemText(i,3,m_MemberReSet.m_MemIns);ctl->SetItemText(i,4,m_MemberReSet.m_MemSpe);ctl->SetItemText(i,5,m_MemberReSet.m_MemYear);ctl->SetItemText(i,6,m_MemberReSet.m_MemPhone);ctl->SetItemText(i,7,m_MemberReSet.
35、m_MemBed); m_MemberReSet.MoveNext();if(m_MemberReSet.IsOpen()m_MemberReSet.Close();catch(CDBException *e)e->Delete();return;void CMemberView:EditCurUser()/建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&GetListCtrl();/尋找當前選中的記錄的位置POSITION pos=ctl->GetFirstSelectedItemPosition();if (pos=NULL)/
36、如果沒有選擇記錄,則提示并退出AfxMessageBox("請先選擇一條信息!");return;/獲取當前記錄的位置游標int m_CurUser=ctl->GetNextSelectedItem(pos);/創(chuàng)建一個MemberEditDlg的實例CMemberEditDlg m_MemberEditDlg;CMemberReSet m_MemberReSet;/創(chuàng)建一個臨時字符串來保存當前用戶信息char chrTemp201 = '0' /查找學(xué)號ctl->GetItemText(m_CurUser,0,chrTemp,sizeof(ch
37、ar20); if(m_MemberReSet.IsOpen()m_MemberReSet.Close();m_MemberReSet.m_strFilter.Format("MemID LIKE '%s'",chrTemp);m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);/輸出匹配上條件用戶記錄,直到記錄為空 if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF()/開始顯示記錄的內(nèi)容m_MemberEditDlg.m_
38、MemID=m_MemberReSet.m_MemID; m_MemberEditDlg.m_MemName=m_MemberReSet.m_MemName; m_MemberEditDlg.m_MemSex=m_MemberReSet.m_MemSex; m_MemberEditDlg.m_MemBorn=m_MemberReSet.m_MemBorn;m_MemberEditDlg.m_MemPolity=m_MemberReSet.m_MemPolity;m_MemberEditDlg.m_MemNative=m_MemberReSet.m_MemNative;m_MemberEditD
39、lg.m_MemPlace=m_MemberReSet.m_MemPlace;m_MemberEditDlg.m_MemIns=m_MemberReSet.m_MemIns;m_MemberEditDlg.m_MemSpe=m_MemberReSet.m_MemSpe;m_MemberEditDlg.m_MemSchool=m_MemberReSet.m_MemSchool;m_MemberEditDlg.m_MemBed=m_MemberReSet.m_MemBed;m_MemberEditDlg.m_MemEmail=m_MemberReSet.m_MemEmail;m_MemberEdi
40、tDlg.m_MemYear=m_MemberReSet.m_MemYear;m_MemberEditDlg.m_MemCard=m_MemberReSet.m_MemCard;m_MemberEditDlg.m_MemPhone=m_MemberReSet.m_MemPhone;m_MemberEditDlg.m_MemHadd=m_MemberReSet.m_MemHadd;m_MemberEditDlg.m_MemHphone=m_MemberReSet.m_MemHphone;m_MemberEditDlg.m_Remark=m_MemberReSet.m_Remark;if(m_Me
41、mberEditDlg.DoModal()!=IDOK)/如果用戶選擇取消按鈕,則退出return;UpdateData(FALSE);if(MessageBox("確定修改記錄?","修改確認",MB_YESNO|MB_ICONQUESTION)=IDYES) try if(m_MemberReSet.IsOpen() m_MemberReSet.Close(); /設(shè)置查詢條件"MemID=chrTemp" m_MemberReSet.m_strFilter.Format("MemID='%s'"
42、;,chrTemp); m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none); /如果用戶記錄存在,則進行修改操作 if(m_MemberReSet.IsOpen()&&!m_MemberReSet.IsEOF() /設(shè)置編輯當前記錄 m_MemberReSet.Edit(); /開始編輯該條記錄的內(nèi)容 m_MemberReSet.m_MemID=m_MemberEditDlg.m_MemID; m_MemberReSet.m_MemName=m_MemberEditDlg.m_MemName; m_Membe
43、rReSet.m_MemSex=m_MemberEditDlg.m_MemSex; m_MemberReSet.m_MemBorn=m_MemberEditDlg.m_MemBorn; if(m_MemberReSet.CanUpdate() m_MemberReSet.Update(); /更新完畢,關(guān)閉數(shù)據(jù)庫 m_MemberReSet.Close(); else /關(guān)閉數(shù)據(jù)庫 if(m_MemberReSet.IsOpen() m_MemberReSet.Close(); /提示用戶 AfxMessageBox("該記錄不存在,無法修改!"); return; cat
44、ch(CDBException*e) e->ReportError (); return; /將用戶信息及時更新到ListCtrl中 ctl->SetItemText(m_CurUser,0,m_MemberEditDlg.m_MemID); ctl->SetItemText(m_CurUser,1,m_MemberEditDlg.m_MemName); ctl->SetItemText(m_CurUser,2,m_MemberEditDlg.m_MemSex); ctl->SetItemText(m_CurUser,3,m_MemberEditDlg.m_Mem
45、Ins); ctl->SetItemText(m_CurUser,4,m_MemberEditDlg.m_MemSpe); ctl->SetItemText(m_CurUser,5,m_MemberEditDlg.m_MemYear); ctl->SetItemText(m_CurUser,6,m_MemberEditDlg.m_MemPhone); ctl->SetItemText(m_CurUser,7,m_MemberEditDlg.m_MemBed);void CMemberView:OnDblclk(NMHDR* pNMHDR, LRESULT* pResul
46、t) / TODO: Add your control notification handler code here*pResult = 0;EditCurUser();void CMemberView:LookMember() /創(chuàng)建一個MemberDialog的實例 CMemberDialog m_MemberDialog; CMemberReSet m_MemberReSet;CString chrTemp=FindPosition();if(chrTemp="")return; if(m_MemberReSet.IsOpen() m_MemberReSet.Clos
47、e(); m_MemberReSet.m_strFilter.Format("MemID LIKE '%s'",chrTemp);m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none); /輸出匹配上條件用戶記錄,直到記錄為空 if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF() /開始顯示記錄的內(nèi)容 m_MemberDialog.m_MemID=m_MemberReSet.m_MemID; m_MemberDialog.m_M
48、emName=m_MemberReSet.m_MemName; m_MemberDialog.m_MemSex=m_MemberReSet.m_MemSex; m_MemberDialog.m_MemBorn=m_MemberReSet.m_MemBorn; m_MemberDialog.m_MemPolity=m_MemberReSet.m_MemPolity; m_MemberDialog.m_MemNative=m_MemberReSet.m_MemNative; m_MemberDialog.m_MemPlace=m_MemberReSet.m_MemPlace; m_MemberDi
49、alog.m_MemIns=m_MemberReSet.m_MemIns; m_MemberDialog.m_MemSpe=m_MemberReSet.m_MemSpe; m_MemberDialog.m_MemSchool=m_MemberReSet.m_MemSchool; m_MemberDialog.m_MemBed=m_MemberReSet.m_MemBed; m_MemberDialog.m_MemEmail=m_MemberReSet.m_MemEmail; m_MemberDialog.m_MemYear=m_MemberReSet.m_MemYear; m_MemberDi
50、alog.m_MemCard=m_MemberReSet.m_MemCard; m_MemberDialog.m_MemPhone=m_MemberReSet.m_MemPhone; m_MemberDialog.m_MemHadd=m_MemberReSet.m_MemHadd; m_MemberDialog.m_MemHphone=m_MemberReSet.m_MemHphone; m_MemberDialog.m_Remark=m_MemberReSet.m_Remark; if(m_MemberDialog.DoModal()=IDCANCEL) /如果用戶選擇取消按鈕,則退出 re
51、turn; UpdateData(FALSE);void CMemberView:DelCurUser()/建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&GetListCtrl();/尋找當前選中的記錄的位置POSITION pos=ctl->GetFirstSelectedItemPosition();if (pos=NULL)/如果沒有選擇記錄,則提示并退出AfxMessageBox("請先選中一條記錄!");return;/獲取當前記錄的位置游標int m_CurUser=ctl->GetNextSele
52、ctedItem(pos);/創(chuàng)建一個臨時字符串來保存當前用戶信息char chrTemp21 = '0'/取得用戶IDctl->GetItemText(m_CurUser,0,chrTemp,sizeof(char20);/創(chuàng)建CMemberReSet的實例CMemberReSet m_MemberReSet;if(MessageBox("刪除該學(xué)生同時會刪除該生所有成績記錄,確定刪除記錄?","刪除確認",MB_YESNO|MB_ICONQUESTION)=IDYES) try /刪除個人信息 if(m_MemberReSet.
53、IsOpen()m_MemberReSet.Close(); m_MemberReSet.m_strFilter.Format("MemID LIKE '%s' order by MemID",chrTemp);m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);/如果用戶記錄存在,則進行修改操作if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF()/設(shè)置編輯當前記錄m_MemberReSet.Delete();/更新完畢,關(guān)
54、閉數(shù)據(jù)庫m_MemberReSet.Close();else/考慮特例,如果操作中用戶信息不存在了/關(guān)閉數(shù)據(jù)庫if(m_MemberReSet.IsOpen()m_MemberReSet.Close();/提示用戶AfxMessageBox("該記錄不存在,無法刪除!");return;/刪除對應(yīng)的所有個人成績CScoreReSet m_ScoreReSet;if(m_ScoreReSet.IsOpen()m_ScoreReSet.Close(); CString sql;sql.Format("select * from score where MemID=
55、39;%s'",chrTemp);m_ScoreReSet.Open(CRecordset:snapshot,sql,CRecordset:none);/如果用戶記錄存在,則進行修改操作while(!m_ScoreReSet.IsEOF()/設(shè)置編輯當前記錄m_ScoreReSet.Delete();m_ScoreReSet.MoveNext();/更新完畢,關(guān)閉數(shù)據(jù)庫m_ScoreReSet.Close();catch(CDBException*e)e->ReportError ();return;/在ListCtrl中刪除當前用戶信息ctl->DeleteItem(m_CurUser);void CMemberView:OnPaint()RemoveAll();/創(chuàng)建一個CListCtrl指針CListCtrl *ct
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班生化活動方案
- 大樹攝影寫真活動方案
- 外賣公司怎樣做活動方案
- 大學(xué)生電腦修理活動方案
- 夏季露營場活動方案
- 圣誕節(jié)公園活動方案
- 食用色素行業(yè)發(fā)展分析及投資價值研究咨詢報告2025-2028版
- 童裝產(chǎn)業(yè)政府戰(zhàn)略管理與區(qū)域發(fā)展戰(zhàn)略研究報告2025-2028版
- 文化創(chuàng)意園區(qū)玻璃門窗供應(yīng)與品牌形象設(shè)計合同
- 桉樹撫育施肥與林業(yè)碳匯交易承包合同
- 旅游服務(wù)禮儀 課件 7交談的語言表達技巧
- 室外健身器材投標方案(技術(shù)標)
- 分析化學(xué)期末復(fù)習(xí)
- Unit11Floraistall(課件)Lesson1新概念英語青少版StarterA教學(xué)課件
- 6S檢查表(工廠用)
- “兒科護理課件-新生兒臍炎的護理”
- 帶式輸送機選型設(shè)計
- 云南宇澤半導(dǎo)體有限公司年產(chǎn)3GW單晶硅片生產(chǎn)線項目環(huán)評報告
- MES系統(tǒng)操作手冊完整版
- 進出口貿(mào)易實務(wù)教程第七版課件
- 一號小米降噪耳機測試報告
評論
0/150
提交評論