




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 畜牧业粪污处理与资源循环利用考卷考核试卷
- 2025年微波辐射计、微波散射计、测高计合作协议书
- 《内部控制评估与培训》课件
- 洪水风险图编制与应用考核试卷
- 盾构机施工中的岩土工程设计与施工优化策略研究与应用考核试卷
- 创业投资投资决策风险控制策略优化与应用实践路径探索考核试卷
- 木材的抗风化和紫外线防御考核试卷
- 2025年毛织机项目建议书
- 《活力社区展示》课件
- 【可行性报告】2025年汽轮机项目可行性研究分析报告
- 2022年南京晓庄学院教师招聘考试真题
- 《音乐治疗》课程教学大纲
- 华南理工大学模板课件
- 朝花夕拾电子版打印
- 初中数学北师大八年级下册第五章分式与分式方程认识分式
- JJF 1984-2022 电子测量仪器内石英晶体振荡器校准规范
- 新北师大版二年级下册数学竞赛题
- 流体力学(清华大学张兆顺54讲) PPT课件 2
- 2023年春季高考机电专业知识高考题整理版
- 室内设计施工图
- 网络系统建设与运维初级理论试题附有答案
评论
0/150
提交评论