




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、【精品文檔】如有侵權,請聯系網站刪除,僅供學習與交流c+1學生信息管理系統.精品文檔.學生信息管理系統1.課程設計的目的隨著信息技術在管理上越來越深入而廣泛的應用,管理信息系統的實施在技術上已逐步成熟。管理信息系統是一個不斷發展的新型學科,任何一個單位要生存要發展,要高效率地把內部活動有機地組織起來,就必須建立與自身特點相適應的管理信息系統。VC+程序設計課程設計是計算機科學與技術專業的VC+程序設計課程的綜合性實踐環節。VC+程序設計是一門實用性很強的學科,是進行軟件開發的主要工具,只有進行實際操作,才能將理論知識和實際應用有機的結合起來,鍛煉學生分析解決實際問題的能力,提高學生實際運用的能
2、力,為學生畢業設計,日后工作中的軟件開發打下良好的基礎。2.需求分析 用計算機技術實現的科學化管理,是在信息技術迅速發展的今天學校提高管理效率的必需選擇。學生信息管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對于后者則要求應用程序功能完備、易使用等特點。學生信息管理系統用來將某一個院系按專業、班級來管理學生的基本信息、課程信息和學生成績。下面就其系統功能作簡單的說明。該系統主要是方便查詢學生的信息,用該系統可以查到學生的姓名,年齡,學號,性別,學院,班級等。可以統計學生在某
3、一學期的總學分或者單科成績、總成績。系統主要功能包括:信息操作功能、查詢功能、統計功能、分析功能。2.1 信息操作功能(1)學生基本信息的添加、修改和刪除。學生基本信息包括:學號(學號的前6位為班級號)、姓名、性別、出生日期和所在專業。(2)學生成績信息的添加、修改和刪除。學生成績信息包括:學號、課程號、成績和和學分。22查詢功能 可以通過學號來查詢學生基本信息,通過學號可以查詢學生的選課信息,通過學號和學期查詢學生的成績,通過課程號查詢該課程的信息。23統計功能統計學生某個學期或所有學期課程的總學分,統計學生某個學期的或所有學期的單科成績或者總成績。2.4運行環境(1)硬件環境處理器:Int
4、er Centrino Duo。內存:521MB。硬盤空間:80G。(2)軟件環境操作系統:WindowsXP Microsoft visual c+ Microsoft access數據庫3. 總體設計3.1系統的結構圖學生信息管理系統是對學生的基本信息和成績信息進行管理,主要包括添加、修改和刪除學生的基本信息及課程的基本信息;錄入、修改和刪除學生的成績信息,對基本信息、成績信息進行查詢、排序及統計等操作,從而實現學生信息管理的自動化與計算機化。本課題將實現一個簡化的學生信息管理系統。 (1)添加信息:使用這個模塊,可以添加學生的基本信息,包括學生的學號,姓名,民族,性別,籍貫,出生年月日,
5、政治面貌,學院,專業,所在年級,寢室地址,畢業院校,身份證號,電子郵箱,聯系電話,家庭住址,備注等。(2)成績導入:包括學號,課程編號,課程名稱,學分,成績。(3)信息查詢:包括學號,姓名,班級,學院。(4)成績查詢:包括課程名稱,課程編號。(5)個人信息:當點擊這個按鈕時,可以顯示當前某個人的信息。(6)查看成績:點擊這個按鈕時,可以顯示當前這個人的所有成績。3.2設計數據庫 用Microsoft Access創建一個數據庫main.mdb,含有3個主要數據表:學生基本信息表student、課程信息表couese和學生成績表score。這3個數據表的結構如表13所示。這幾個表中,學號stud
6、entno和課程號courseno內容都是唯一的,分別是student和course表中的主關鍵字。Score表中的studentno和student表中的同名字段相對應,字段course和course表中的courseno字段相對應。說明:由于student和course表中都有專業字段,因此為便于用戶操作,需要一個專業數據字典。該數據字典也作為數據庫main.mdb的一個數據表speical,其結構如表4所示。表1 學生基本信息表(student)結構序號字段名稱數據類型字段大小小數位字段含義12345studentnamestudentnoxbbirthdayspeical文本文本是/否
7、日期/時間文本201050姓名學號性別出生年月專業表2 課程信息表(course)結構序號字段名稱數據類型字段大小小數位字段含義1234567coursenospecialcoursenamecoursetypeopentermhourscredit文本文本文本文本數字數字數字7505010字節字節單精度1課程號所屬專業課程名課程類型開學學期課時數學分表3 學生課程成績表(score)結構序號字段名稱數據類型字段大小小數位字段含義1234studentnocoursescorecredit文本文本數字數字87單精度單精度11學號課程號成績學分4.詳細設計該系統包含多個模塊,期中重要的有6大模塊
8、,添加信息,成績導入,信息查詢,成績查詢,個人信息,查看成績。該系統的主界面如圖2所示。圖2系統的主界面4.1信息查詢的設計下面我們對信息查詢做詳細的設計。信息查詢這個模塊的功能主要通過某個學生的某一項信息,比如學號,班級,姓名,專業,年級,然后查詢到這個學生的多個信息。比如通過學生的學號,可以查詢到這個學生所在學院,所在班級等。當我們點擊信息查詢這個按鈕時,顯示一個對話框,如圖3所示。圖3信息查詢的界面 當我們點擊信息查詢按鈕時,會立刻彈出一個對話框,期中對話框中包括一個列表框,列表框中包括學號,姓名,學院,專業,年級,列表框中還包括2個按鈕,一個查找按鈕,一個取消按鈕。使用CRecordS
9、et類的成員變量m_strFilter、m_strSort和成員函數Open可以對表進行記錄查詢。(1) 打開Ex_ODBC應用程序的表的單資源,按如圖4所示的布局添加控件,七宗添加的編輯框ID號設為IDC_EDIT_QUERY,查詢按鈕的ID號設為IDC_BUTTON_QUERY.圖4添加控件(2) 用MFC classwizard為控件IDC_EDIT_QUERY添加關聯變量m_strQuery.(3) 在CEx_ODBCView類中添加按鈕控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函數中添加下列代碼:void CMemberView:RemoveAll(
10、)/增加指針變量指向ListView的CListCtrlCListCtrl *ctl;ctl=&GetListCtrl();/刪除CListCtrl中的所有記錄ctl->DeleteAllItems();/strSearch查詢條件 strMember關鍵字void CMemberView:ListMember(CString strSearch,CString strMember) /前此輸出的用戶記錄RemoveAll(); /建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&GetListCtrl();/創建CMemberRe
11、Set的實例CMemberReSet m_MemberReSet;/記錄用戶序號int i=0;/定義一個變量來保存"%"以便設置SQL語句char chrTemp='%'CString strTemp;tryif(m_MemberReSet.IsOpen()m_MemberReSet.Close();/設置查詢條件"MemName=strMemberName"if(strMember="")AfxMessageBox("請輸入關鍵字"); return;進入信息查詢模塊之后就可以對信息進行查詢,我
12、們選擇選擇框里選擇“姓名”,然后在輸入框里輸入“陳一”,然后點查找按鈕,然后就會彈出陳一的個人信息,如圖5所示。圖5陳一的個人信息 在個人信息的模塊里包括多個輸入框,比如學號,姓名,性別,民族,籍貫,出生年月日,政治面貌,學院專業,所在年級,寢室地址,畢業院校,身份證號,電子郵箱,聯系號碼,家庭住址,家庭電話,備注。又包括2個單擊按鈕,一個修改,一個取消。我們可以在輸入框里輸入各種信息,也可以修改當前的信息,修改完然后點“修改”按鈕,然后就會彈出一個消息對話框,如圖6所示。圖6消息提示在這個操作過程中我們需要建立一個映射控件消息。(1) 打開Ex_DlgCtrls應用程序項目。(2) 將項目工
13、作區窗口切換到ResourseView頁面,雙擊Dialog資源下的標識IDD_EX_DLGCTRLS_DLALOG,打開該對話框資源模板(3) 刪除“TODO:在這里設置對話控制”控件,添加一個按鈕控件,保留其默認屬性。(4) 按快捷鍵CTRL+W,打開""MFC CLASSWIZAD"對話框,查看“class name”列表中是否選擇了CEx_DlgCtrlsDlg,在IDs列表中選擇IDS_BUTTON1,這是添加按鈕后,系統自動為此按鈕設置的默認標示符,然后在Messages框中選擇BN_CKICKED消息。(5) 單吸“Add function”按鈕或者
14、雙擊BN_CLICKED消息,出現“Add Member Function”對話框。在這里可以輸入成員函數的名稱,系統默認的函數為ONButton1。(6) 單吸"OK"按鈕,在MFC Class Wizard 的“Member function”列表中將列出新增加的成員函數。選擇此函數,單吸“Edit Code”按鈕,開發環境的文檔窗口中將自動打開該函數的源代碼文件,并定位到該函數的實現代碼處。在此成員函數中添加下列代碼:Void CEx_DlgCtrlsDlg:onButton()MessageBox("確定修改記錄?")(7) 編譯并運行,當單擊按
15、鈕時,就會執行ONButton1函數,彈出一個消息一個對話框。5. 心得體會剛看到課程設計題目的時候,總感覺對visual c+處于一知半解的狀態,開始分工也比較混亂,但是在劃分模塊后明確的各自分工,漸漸的有了點眉目。 在設計的過程中,經常會遇到這樣那樣的問題,比如說怎樣才能實現我們所要的功能,設計過程中的圖的畫法,程序的編寫、文檔的編寫、排版等。由于課本上的知識太多,平時課間的學習并不能很好的理解和運用知識,面對這些問題,我們就自己上圖書館借書,網上搜素資料,相互討論來解決我們的問題。真的是體會到了只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正的為
16、我所用,從而提高自己的實際動手能力和獨立思考的能力。此次課程設計,讓我們學到了很多課內學不到的東西,比如獨立思考解決問題,出現差錯的隨機應變,和與人合作共同提高等等,無不讓我們受益非淺。6. 參考文獻1王珊,薩師煊編著.vc+實用教程M.北京高等教育出版社,2007.7 83-1262孫越編著.Visual C+數據庫開發自學教程M.人民郵電出版社2003.7 50-753王彬華,李建華編著.Visual C+實例教程M電子科技大學出版社2004.48-95 4李春葆,曾平編著數據庫原理與應用M. 北京清華大學出版社,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/設置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()/創建一個CListCtrl指針CListCtrl *ctl;ctl=&GetListCtrl(); /指向CListView的CListCtrl/表格風格ctl->SetExtendedStyle(ctl->GetExtendedStyle()|LVS_EX_GRIDLI
22、NES|LVS_EX_FULLROWSELECT); /利用CLisrCtrl設置列的題頭ctl->InsertColumn(0,"學號",LVCFMT_LEFT,100);ctl->InsertColumn(1,"姓名",LVCFMT_LEFT,100);ctl->InsertColumn(2,"性別",LVCFMT_LEFT,80);ctl->InsertColumn(4,"學院",LVCFMT_LEFT,100);ctl->InsertColumn(5,"專業"
23、;,LVCFMT_LEFT,100);ctl->InsertColumn(6,"所在年級",LVCFMT_LEFT,100);ctl->InsertColumn(7,"聯系號碼",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關鍵字void CMemberView:ListMember(CString strSearch,CString strMember) /前此輸出的用戶記錄RemoveAll(); /建立一個指針,用以操作ListCtrl輸出用戶記錄CListCtrl *ctl;ctl=&Get
28、ListCtrl();/創建CMemberReSet的實例CMemberReSet m_MemberReSet;/記錄用戶序號int i=0;/定義一個變量來保存"%"以便設置SQL語句char chrTemp='%'CString strTemp;tryif(m_MemberReSet.IsOpen()m_MemberReSet.Close();/設置查詢條件"MemName=strMemberName"if(strMember="")AfxMessageBox("請輸入關鍵字"); return
29、;if(strSearch="學號") 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="學院") 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="專業") 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);/創建一個MemberEditDlg的實例CMemberEditDlg m_MemberEditDlg;CMemberReSet m_MemberReSet;/創建一個臨時字符串來保存當前用戶信息char chrTemp201 = '0' /查找學號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()/開始顯示記錄的內容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(); /設置查詢條件"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() /設置編輯當前記錄 m_MemberReSet.Edit(); /開始編輯該條記錄的內容 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(); /更新完畢,關閉數據庫 m_MemberReSet.Close(); else /關閉數據庫 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() /創建一個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() /開始顯示記錄的內容 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);/創建一個臨時字符串來保存當前用戶信息char chrTemp21 = '0'/取得用戶IDctl->GetItemText(m_CurUser,0,chrTemp,sizeof(char20);/創建CMemberReSet的實例CMemberReSet m_MemberReSet;if(MessageBox("刪除該學生同時會刪除該生所有成績記錄,確定刪除記錄?","刪除確認",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()/設置編輯當前記錄m_MemberReSet.Delete();/更新完畢,關
54、閉數據庫m_MemberReSet.Close();else/考慮特例,如果操作中用戶信息不存在了/關閉數據庫if(m_MemberReSet.IsOpen()m_MemberReSet.Close();/提示用戶AfxMessageBox("該記錄不存在,無法刪除!");return;/刪除對應的所有個人成績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()/設置編輯當前記錄m_ScoreReSet.Delete();m_ScoreReSet.MoveNext();/更新完畢,關閉數據庫m_ScoreReSet.Close();catch(CDBException*e)e->ReportError ();return;/在ListCtrl中刪除當前用戶信息ctl->DeleteItem(m_CurUser);void CMemberView:OnPaint()RemoveAll();/創建一個CListCtrl指針CListCtrl *ct
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運輸木材協議合同協議
- 《辦公室管理》課件
- 變更撫養權協議書
- 房地產公司聯建協議書
- 車輛的買賣協議書
- 超市禮品采購合同協議
- 送材料合同協議
- 顯失公平協議書
- 酒店前廳部管理軟件采購合同
- 個人信用服務合同
- 打造媽祖文化品牌
- 內外科醫生聯合提高肝移植中長期生存
- 新北師大版二年級下冊數學競賽題
- 黃土隧道施工專項方案
- 室內設計施工圖
- 充電樁安全管理服務協議(8篇)
- 網絡系統建設與運維初級理論試題附有答案
- GB/T 10095.1-2022圓柱齒輪ISO齒面公差分級制第1部分:齒面偏差的定義和允許值
- GB/T 5271.8-2001信息技術詞匯第8部分:安全
- 第15章胃腸疾病病人的護理
- GB/T 13871.1-2007密封元件為彈性體材料的旋轉軸唇形密封圈第1部分:基本尺寸和公差
評論
0/150
提交評論