《c++1学生信息管理系统.pdf》由会员分享,可在线阅读,更多相关《c++1学生信息管理系统.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 学生信息管理系统 1.课程设计的目的 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。VC+程序设计课程设计是计算机科学与技术专业的VC+程序设计课程的综合性实践环节。VC+程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。2.需求分析 用计算机技
2、术实现的科学化管理,是在信息技术迅速发展的今天学校提高管理效率的必需选择。学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备、易使用等特点。学生信息管理系统用来将某一个院系按专业、班级来管理学生的基本信息、课程信息和学生成绩。下面就其系统功能作简单的说明。该系统主要是方便查询学生的信息,用该系统可以查到学生的姓名,年龄,学号,性别,学院,班级等。可以统计学生在某一学期的总学分或者单科成绩、总成绩。系统主要功能包括:信息操作功能、查询功能、统
3、计功能、分析功能。2.1 信息操作功能(1)学生基本信息的添加、修改和删除。学生基本信息包括:学号(学号的前 6位为班级号)、姓名、性别、出生日期和所在专业。(2)学生成绩信息的添加、修改和删除。学生成绩信息包括:学号、课程号、成绩和和学分。22 查询功能 可以通过学号来查询学生基本信息,通过学号可以查询学生的选课信息,通过学号和学期查询学生的成绩,通过课程号查询该课程的信息。23 统计功能 统计学生某个学期或所有学期课程的总学分,统计学生某个学期的或所有学期的单科成绩或者总成绩。2.4 运行环境(1)硬件环境 处理器:Inter Centrino Duo。内存:521MB。硬盘空间:80G。
4、(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所示。这几个表中,学号 studentno 和课程号 coursen
6、o 内容都是唯一的,分别是 student和course 表中的主关键字。Score表中的studentno和student表中的同名字段相对应,字段 course 和 course 表中的 courseno 字段相对应。说明:由于 student 和 course 表中都有专业字段,因此为便于用户操作,需要一个专业数据字典。该数据字典也作为数据库 main.mdb 的一个数据表 speical,其结构如表 4 所示。表 1 学生基本信息表(student)结构 序号 字段名称 数据类型 字段大小 小数位 字段含义 1 2 3 4 5 studentname studentno xb birt
7、hday speical 文本 文本 是/否 日期/时间 文本 20 10 50 姓名 学号 性别 出生年月 专业 表 2 课程信息表(course)结构 序号 字段名称 数据类型 字段大小 小数位 字段含义 1 2 3 4 5 courseno special coursename coursetype openterm 文本 文本 文本 文本 数字 7 50 50 10 字节 课程号 所属专业 课程名 课程类型 开学学期 6 7 hours credit 数字 数字 字节 单精度 1 课时数 学分 表 3 学生课程成绩表(score)结构 序号 字段名称 数据类型 字段大小 小数位 字段含
8、义 1 2 3 4 studentno course score credit 文本 文本 数字 数字 8 7 单精度 单精度 1 1 学号 课程号 成绩 学分 4.详细设计 该系统包含多个模块,期中重要的有6 大模块,添加信息,成绩导入,信息查询,成绩查询,个人信息,查看成绩。该系统的主界面如图2 所示。图 2 系统的主界面 4.1 信息查询的设计 下面我们对信息查询做详细的设计。信息查询这个模块的功能主要通过某个学生的某一项信息,比如学号,班级,姓名,专业,年级,然后查询到这个学生的多个信息。比如通过学生的学号,可以查询到这个学生所在学院,所在班级等。当我们点击信息查询这个按钮时,显示一个
9、对话框,如图 3 所示。图 3 信息查询的界面 当我们点击信息查询按钮时,会立刻弹出一个对话框,期中对话框中包括一个列表框,列表框中包括学号,姓名,学院,专业,年级,列表框中还包括 2 个按钮,一个查找按钮,一个取消按钮。使用 CRecordSet 类的成员变量 m_strFilter、m_strSort 和成员函数 Open 可以对表进行记录查询。(1)打开 Ex_ODBC 应用程序的表的单资源,按如图 4 所示的布局添加控件,七宗添加的编辑框 ID 号设为 IDC_EDIT_QUERY,查询按钮的 ID 号设为 IDC_BUTTON_QUERY.图 4 添加控件(2)用 MFC class
10、wizard 为控件 IDC_EDIT_QUERY 添加关联变量 m_strQuery.(3)在 CEx_ODBCView 类中添加按钮控件 IDC_BUTTON_QUERY 的 BN_CLICKED 消息映射,并在映射函数中添加下列代码:void CMemberView:RemoveAll()/增加指针变量指向 ListView 的 CListCtrl CListCtrl*ctl;ctl=&GetListCtrl();/删除 CListCtrl 中的所有记录 ctl-DeleteAllItems();/strSearch 查询条件 strMember 关键字 void CMemberView
11、:ListMember(CString strSearch,CString strMember)/前此输出的用户记录 RemoveAll();/建立一个指针,用以操作 ListCtrl 输出用户记录 CListCtrl*ctl;ctl=&GetListCtrl();/创建 CMemberReSet 的实例 CMemberReSet m_MemberReSet;/记录用户序号 int i=0;/定义一个变量来保存%以便设置 SQL 语句 char chrTemp=%;CString strTemp;try if(m_MemberReSet.IsOpen()m_MemberReSet.Close(
12、);/设置查询条件MemName=strMemberName if(strMember=)AfxMessageBox(请输入关键字);return;进入信息查询模块之后就可以对信息进行查询,我们选择选择框里选择“姓名”,然后在输入框里输入“陈一”,然后点查找按钮,然后就会弹出陈一的个人信息,如图 5所示。图 5 陈一的个人信息 在个人信息的模块里包括多个输入框,比如学号,姓名,性别,民族,籍贯,出生年月日,政治面貌,学院专业,所在年级,寝室地址,毕业院校,身份证号,电子邮箱,联系号码,家庭住址,家庭电话,备注。又包括 2 个单击按钮,一个修改,一个取消。我们可以在输入框里输入各种信息,也可以修
13、改当前的信息,修改完然后点“修改”按钮,然后就会弹出一个消息对话框,如图 6 所示。图 6 消息提示 在这个操作过程中我们需要建立一个映射控件消息。(1)打开 Ex_DlgCtrls 应用程序项目。(2)将项目工作区窗口切换到 ResourseView 页面,双击 Dialog 资源下的标识IDD_EX_DLGCTRLS_DLALOG,打开该对话框资源模板(3)删除“TODO:在这里设置对话控制”控件,添加一个按钮控件,保留其默认属性。(4)按快捷键 CTRL+W,打开MFC CLASSWIZAD对话框,查看“class name”列表中是否选择了 CEx_DlgCtrlsDlg,在 IDs
14、列表中选择 IDS_BUTTON1,这是添加按钮后,系统自动为此按钮设置的默认标示符,然后在 Messages 框中选择 BN_CKICKED 消息。(5)单吸“Add function”按钮或者双击BN_CLICKED 消息,出现“Add Member Function”对话框。在这里可以输入成员函数的名称,系统默认的函数为 ONButton1。(6)单吸OK按钮,在 MFC Class Wizard 的“Member function”列表中将列出新增加的成员函数。选择此函数,单吸“Edit Code”按钮,开发环境的文档窗口中将自动打开该函数的源代码文件,并定位到该函数的实现代码处。在此
15、成员函数中添加下列代码:Void CEx_DlgCtrlsDlg:onButton()MessageBox(确定修改记录?)(7)编译并运行,当单击按钮时,就会执行 ONButton1 函数,弹出一个消息一个对话框。5.心得体会 刚看到课程设计题目的时候,总感觉对 visual c+处于一知半解的状态,开始分工也比较混乱,但是在划分模块后明确的各自分工,渐渐的有了点眉目。在设计的过程中,经常会遇到这样那样的问题,比如说怎样才能实现我们所要的功能,设计过程中的图的画法,程序的编写、文档的编写、排版等。由于课本上的知识太多,平时课间的学习并不能很好的理解和运用知识,面对这些问题,我们就自己上图书馆
16、借书,网上搜素资料,相互讨论来解决我们的问题。真的是体会到了只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的为我所用,从而提高自己的实际动手能力和独立思考的能力。此次课程设计,让我们学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高等等,无不让我们受益非浅。6.参考文献 1王珊,萨师煊编著.vc+实用教程M.北京高等教育出版社,2007.7 83-126 2孙越编著.Visual C+数据库开发自学教程M.人民邮电出版社 2003.7 50-75 3王彬华,李建华编著.Visual C+实例教程M电子科技大学出版
17、社 2004.48-95 4李春葆,曾平编著 数据库原理与应用M.北京清华大学出版社,2006.1 41-74 附录:#include stdafx.h#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#include MemberAdd.h#ifdef _DEBUG#defin
18、e new DEBUG_NEW#undef THIS_FILE static char THIS_FILE=_FILE_;#endif/CMemberView IMPLEMENT_DYNCREATE(CMemberView,CListView)BEGIN_MESSAGE_MAP(CMemberView,CListView)/AFX_MSG_MAP(CMemberView)ON_NOTIFY_REFLECT(NM_DBLCLK,OnDblclk)/AFX_MSG_MAP /Standard printing commands ON_COMMAND(ID_FILE_PRINT,CListView:
19、OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CListView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CListView:OnFilePrintPreview)END_MESSAGE_MAP()/CMemberView construction/destruction CMemberView:CMemberView()/TODO:add construction code here CMemberView:CMemberView()BOOL CMemberView:PreCreateWindow(C
20、REATESTRUCT&cs)/TODO:Modify the Window class or styles here by modifying /the CREATESTRUCT cs /设置 CListCtrl 的格式为:LVS_REPORT 并且 LVS_SINGLESEL cs.style|=LVS_REPORT|LVS_SINGLESEL;return CListView:PreCreateWindow(cs);/CMemberView drawing void CMemberView:OnDraw(CDC*pDC)CMemberDoc*pDoc=GetDocument();ASSE
21、RT_VALID(pDoc);/TODO:add draw code for native data here void CMemberView:OnInitialUpdate()/创建一个 CListCtrl 指针 CListCtrl*ctl;ctl=&GetListCtrl();/指向 CListView 的 CListCtrl /表格风格 ctl-SetExtendedStyle(ctl-GetExtendedStyle()|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);/利用 CLisrCtrl 设置列的题头 ctl-InsertColumn(0,学号,
22、LVCFMT_LEFT,100);ctl-InsertColumn(1,姓名,LVCFMT_LEFT,100);ctl-InsertColumn(2,性别,LVCFMT_LEFT,80);ctl-InsertColumn(4,学院,LVCFMT_LEFT,100);ctl-InsertColumn(5,专业,LVCFMT_LEFT,100);ctl-InsertColumn(6,所在年级,LVCFMT_LEFT,100);ctl-InsertColumn(7,联系号码,LVCFMT_LEFT,100);ctl-InsertColumn(8,寝室地址,LVCFMT_LEFT,200);OnPai
23、nt();CListView:OnInitialUpdate();/获取 CMainFrame 的指针 CMainFrame*m_Frm=(CMainFrame*):AfxGetMainWnd();/将 CMainFrame 的 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()./CMemberV
24、iew printing BOOL CMemberView:OnPreparePrinting(CPrintInfo*pInfo)/default preparation return DoPreparePrinting(pInfo);void CMemberView:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/TODO:add extra initialization before printing void CMemberView:OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/TODO
25、:add cleanup after printing /CMemberView diagnostics#ifdef _DEBUG void CMemberView:AssertValid()const CListView:AssertValid();void CMemberView:Dump(CDumpContext&dc)const CListView:Dump(dc);CMemberDoc*CMemberView:GetDocument()/non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMem
26、berDoc);return(CMemberDoc*)m_pDocument;#endif/_DEBUG/CMemberView message handlers void CMemberView:RemoveAll()/增加指针变量指向 ListView 的 CListCtrl CListCtrl*ctl;ctl=&GetListCtrl();/删除 CListCtrl 中的所有记录 ctl-DeleteAllItems();/strSearch 查询条件 strMember 关键字 void CMemberView:ListMember(CString strSearch,CString
27、strMember)/前此输出的用户记录 RemoveAll();/建立一个指针,用以操作 ListCtrl 输出用户记录 CListCtrl*ctl;ctl=&GetListCtrl();/创建 CMemberReSet 的实例 CMemberReSet m_MemberReSet;/记录用户序号 int i=0;/定义一个变量来保存%以便设置 SQL 语句 char chrTemp=%;CString strTemp;try if(m_MemberReSet.IsOpen()m_MemberReSet.Close();/设置查询条件MemName=strMemberName if(strM
28、ember=)AfxMessageBox(请输入关键字);return;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%c order by MemID ASC,chrTemp,s
29、trMember.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_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSearch=专业)m_Member
30、ReSet.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(strSearch=年级)m_MemberReSet.m_strFilter.Format(MemYear LIKE%c%s%c order by MemID ASC,chrTemp,strMember.operator LPCTSTR(),ch
31、rTemp);m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else if(strSearch=年级 tree)m_MemberReSet.m_strFilter.Format(MemYear=%s order by MemID ASC,strMember.operator LPCTSTR();m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecordset:none);else AfxMessageBox(条件选择错误);return;/输出匹配上查询到的用户记录,直到记录
32、为空 while(!m_MemberReSet.IsEOF()ctl-InsertItem(i,m_MemberReSet.m_MemID);ctl-SetItemText(i,1,m_MemberReSet.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-Set
33、ItemText(i,6,m_MemberReSet.m_MemPhone);ctl-SetItemText(i,7,m_MemberReSet.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();/寻找当前选中的记录的位置
34、POSITION pos=ctl-GetFirstSelectedItemPosition();if(pos=NULL)/如果没有选择记录,则提示并退出 AfxMessageBox(请先选择一条信息!);return;/获取当前记录的位置游标 int m_CurUser=ctl-GetNextSelectedItem(pos);/创建一个 MemberEditDlg 的实例 CMemberEditDlg m_MemberEditDlg;CMemberReSet m_MemberReSet;/创建一个临时字符串来保存当前用户信息 char chrTemp201=0;/查找学号 ctl-GetIt
35、emText(m_CurUser,0,chrTemp,sizeof(char20);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.
36、m_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_MemberEditDl
37、g.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_MemberEdit
38、Dlg.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_Mem
39、berEditDlg.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,chrTemp);m_MemberReSet.Open(CRecordset:snapshot,NULL,CRecor
40、dset: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_MemberReSet.m_MemSex=m_MemberEditDlg.m_MemSex;m_MemberReSet.m_MemBorn=m_MemberEdi
41、tDlg.m_MemBorn;if(m_MemberReSet.CanUpdate()m_MemberReSet.Update();/更新完毕,关闭数据库 m_MemberReSet.Close();else /关闭数据库 if(m_MemberReSet.IsOpen()m_MemberReSet.Close();/提示用户 AfxMessageBox(该记录不存在,无法修改!);return;catch(CDBException*e)e-ReportError();return;/将用户信息及时更新到 ListCtrl 中 ctl-SetItemText(m_CurUser,0,m_Mem
42、berEditDlg.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_MemIns);ctl-SetItemText(m_CurUser,4,m_MemberEditDlg.m_MemSpe);ctl-SetItemText(m_CurUser,5,m_MemberEditDlg.m_MemYear);ctl-SetI
43、temText(m_CurUser,6,m_MemberEditDlg.m_MemPhone);ctl-SetItemText(m_CurUser,7,m_MemberEditDlg.m_MemBed);void CMemberView:OnDblclk(NMHDR*pNMHDR,LRESULT*pResult)/TODO:Add your control notification handler code here *pResult=0;EditCurUser();void CMemberView:LookMember()/创建一个 MemberDialog 的实例 CMemberDialo
44、g m_MemberDialog;CMemberReSet m_MemberReSet;CString chrTemp=FindPosition();if(chrTemp=)return;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
45、()&!m_MemberReSet.IsEOF()/开始显示记录的内容 m_MemberDialog.m_MemID=m_MemberReSet.m_MemID;m_MemberDialog.m_MemName=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_MemN
46、ative=m_MemberReSet.m_MemNative;m_MemberDialog.m_MemPlace=m_MemberReSet.m_MemPlace;m_MemberDialog.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_MemEma
47、il=m_MemberReSet.m_MemEmail;m_MemberDialog.m_MemYear=m_MemberReSet.m_MemYear;m_MemberDialog.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_Rema
48、rk=m_MemberReSet.m_Remark;if(m_MemberDialog.DoModal()=IDCANCEL)/如果用户选择取消按钮,则退出 return;UpdateData(FALSE);void CMemberView:DelCurUser()/建立一个指针,用以操作 ListCtrl 输出用户记录 CListCtrl*ctl;ctl=&GetListCtrl();/寻找当前选中的记录的位置 POSITION pos=ctl-GetFirstSelectedItemPosition();if(pos=NULL)/如果没有选择记录,则提示并退出 AfxMessageBox(
49、请先选中一条记录!);return;/获取当前记录的位置游标 int m_CurUser=ctl-GetNextSelectedItem(pos);/创建一个临时字符串来保存当前用户信息 char chrTemp21=0;/取得用户 ID ctl-GetItemText(m_CurUser,0,chrTemp,sizeof(char20);/创建 CMemberReSet 的实例 CMemberReSet m_MemberReSet;if(MessageBox(删除该学生同时会删除该生所有成绩记录,确定删除记录?,删除确认,MB_YESNO|MB_ICONQUESTION)=IDYES)try
50、 /删除个人信息 if(m_MemberReSet.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();/更新完毕,关闭数据库 m_