版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生信息管理系统1. 课程设计的目的随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已 逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要 高效率地把部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。VC+程序设计课程设计是计算机科学与技术专业的VC+程序设计课程的综合性 实践环节。VC+程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问 题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良 好的基础。2. 需求分析用计算
2、机技术实现的科学化管理,是在信息技术迅速发展的今天学校提高管理效率 的必需选择。学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备、易使用等特点。学生信息管理系统用来将某一个院系按专业、班级来管理学生的基本信息、课程信 息和学生成绩。下面就其系统功能作简单的说明。该系统主要是方便查询学生的信息, 用该系统可以查到学生的,年龄,学号,性别,学院,班级等。可以统计学生在某一学 期的总学分或者单科成绩、总成绩。系统主要功能包括:信息操作功能、查询
3、功能、统计功能、分析功能。2.1信息操作功能(1) 学生基本信息的添加、修改和删除。学生基本信息包括:学号(学号的前6 位为班级号)、性别、出生日期和所在专业。(2)学生成绩信息的添加、修改和删除。学生成绩信息包括:学号、课程号、成 绩和和学分。2. 2查询功能可以通过学号来查询学生基本信息,通过学号可以查询学生的选课信息,通过学号 和学期查询学生的成绩,通过课程号查询该课程的信息。2. 3统计功能统计学生某个学期或所有学期课程的总学分,统计学生某个学期的或所有学期的单 科成绩或者总成绩。2.4运行环境(1)硬件环境处理器:In ter Cen tri no Duo。存:521MB硬盘空间:8
4、0G(2)软件环境操作系统:WindowsXPMicrosoft visual C+ Microsoft access数据库3. 总体设计3.1系统的结构图系銃包括6犬模块,添加信息,成绩导入,信息查询,咸绩查询,个人信息,查看学生信息管理系统是对学生的基本信息和成绩信息进行管理,主要包括添加、修改 和删除学生的基本信息及课程的基本信息;录入、修改和删除学生的成绩信息,对基本 信息、成绩信息进行查询、排序及统计等操作,从而实现学生信息管理的自动化与计算 机化。本课题将实现一个简化的学生信息管理系统。(1) 添加信息:使用这个模块,可以添加学生的基本信息,包括学生的学号,民 族,性别,籍贯,出生
5、年月日,政治面貌,学院,专业,所在年级,寝室地址,毕业院校,身份证号,电子,联系,家庭住址,备注等。(2)成绩导入:包括学号,课程编号,课程名称,学分,成绩。(3)信息查询:包括学号,班级,学院。(4)成绩查询:包括课程名称,课程编号。(5)个人信息:当点击这个按钮时,可以显示当前某个人的信息。(6)查看成绩:点击这个按钮时,可以显示当前这个人的所有成绩。3.2设计数据库用Microsoft Access 创建一个数据库 main.mdb,含有3个主要数据表:学生基本 信息表student、课程信息表couese和学生成绩表score。这3个数据表的结构如表13 所示。这几个表中,学号stud
6、e ntno和课程号course no容都是唯一的,分别是stude nt 和course表中的主关键字。Score表中的studentno和student表中的同名字段相对应, 字段 course 和 course 表中的 course no 字段相对应。说明:由于 stude nt 和 course 表 中都有专业字段,因此为便于用户操作,需要一个专业数据字典。该数据字典也作为数 据库main.mdb的一个数据表speical,其结构如表4所示。表1学生基本信息表(student )结构序号字段名称数据类型字段大小小数位字段含义1stude ntn ame文本202stude ntno文本
7、10学号3xb是/否50性别4birthday日期/时间出生年月5speical文本专业表2课程信息表(course )结构序号字段名称数据类型字段大小小数位字段含义1course no文本7】田千口 i=r. 课程号2special文本50所属专业3course name文本50课程名4coursetype文本10课程类型5ope nterm数字字节开学学期6hours数字字节课时数7credit数字单精度1学分表3学生课程成绩表(score )结构序号字段名称数据类型字段大小小数位字段含义1stude ntno文本8学号2course文本7】田千口 i=r. 课程号3score数字单精度1
8、成绩4credit数字单精度1学分4.详细设计该系统包含多个模块,期中重要的有6大模块,添加信息,成绩导入,信息查询,成绩查询,个人信息,查看成绩。该系统的主界面如图2所示。F A屯亠丄箱1堆竽儀出雀工E 斤.FetfE -口旳曲机唏倾tmECLJOB ULUJUb皓 WOT 口 4 険0匸1屹 rmvirwi2£0;® JJJ嵌1J65555E5E5 :JjlizHtfelkJ-3»;i?弟肝Q離朋10 = 95m;级riRR'Rew*戸三年诵“手¥理一空室tfc址T H Q 3 A W血®宜审图2系统的主界面4.1信息查询的设计下面
9、我们对信息查询做详细的设计。信息查询这个模块的功能主要通过某个学生的 某一项信息,比如学号,班级,专业,年级,然后查询到这个学生的多个信息。比如 通过学生的学号,可以查询到这个学生所在学院,所在班级等。当我们点击信息查询这 个按钮时,显示一个对话框,如图 3所示。1 g谨谒起査追5-壬暂£尺JSi=SKlE3-.J2QW u脚皿i> I I > Kjcrccra 鼻汕Vtmw 鱼銅8K2D ."丄.KJCKCJOE till网令鋼srtt-_:-_聖霍* :.0图3信息查询的界面当我们点击信息查询按钮时,会立刻弹出一个对话框,期中对话框中包括一个列表 框,列表框
10、中包括学号,学院,专业,年级,列表框中还包括 2个按钮,一个查找按 钮,一个取消按钮。使用CRecordSet类的成员变量 m_strFilter 、m_strSort和成员函数 Open可以对 表进行记录查询。(1)打开Ex_ODB应用程序的表的单资源,按如图 4所示的布局添加控件,七宗 添加的编辑框ID号设为IDC_EDIT_QUER查询按钮的ID号设为IDC_BUTTON_QUERY.图4添加控件(2) 用 MFC classwizard 为控件 IDC_EDIT_QUEF添加关联变量 m_strQuery.(3) 在CEx_ODBCVie类中添加按钮控件IDC_BUTTON_QUE的Y
11、3N_CLICKE消息映 射,并在映射函数中添加下列代码:void CMemberView:RemoveAII()/增加指针变量指向ListView 的CListCtrlCListCtrl *ctl;ctl=&GetListCtrl();/删除CListCtrl中的所有记录ctl->DeleteAllltems();/strSearch 查询条件strMember关键字void CMemberView:ListMember(CStri ng strSearch,CStri ng strMember)/前此输出的用户记录RemoveAII();/建立一个指针,用以操作ListCtr
12、l输出用户记录CListCtrl *ctl;ctl=&GetListCtrl();/创建CMemberReSe的实例CMemberReSet m_MemberReSet;/记录用户序号int i=0;/定义一个变量来保存"%"以便设置SQL语句char chrTemp='%'CStri ng strTemp;tryif(m_MemberReSet.lsOpe n()m_MemberReSet.Close();/ 设置查询条件"MemName=strMemberName"if(strMember="")AfxMe
13、ssageBox("请输入关键字");return;,然后5所示。进入信息查询模块之后就可以对信息进行查询,我们选择选择框里选择“ 在输入框里输入“一”,然后点查找按钮,然后就会弹出一的个人信息,如图图5一的个人信息在个人信息的模块里包括多个输入框, 比如学号,性别,民族,籍贯,出生年月日, 政治面貌,学院专业,所在年级,寝室地址,毕业院校,身份证号,电子,联系,家庭 住址,家庭,备注。又包括2个单击按钮,一个修改,一个取消。我们可以在输入框里输入各种信息,也可以修改当前的信息,修改完然后点“修改”按 钮,然后就会弹出一个消息对话框,如图 6所示。图6消息提示在这个操作过程
14、中我们需要建立一个映射控件消息。(1)打开Ex_DlgCtrls应用程序项目。(2)将项目工作区窗口切换到 ResourseView页面,双击Dialog资源下的标识IDD_EX_DLGCTRLS_DLAJLOl开该对话框资源模板(3)删除“ TODO在这里设置对话控制”控件,添加一个按钮控件,保留其默认属性。(4)按快捷键CTRL+,打开""MFC CLASSWIZA对话框,查看“ class name列表中是 否选择了 CEx_DlgCtrlsDlg,在IDs列表中选择IDS_BUTTON这是添加按钮后,系统自 动为此按钮设置的默认标示符,然后在 Messages框中选
15、择BN_CKICKE消息。(5)单吸“Add function ”按钮或者双击 BN_CLICKE消息,出现“Add Member Function对话框。在这里可以输入成员函数的名称,系统默认的函数为ONButto n1。(6)单吸"OK按钮,在 MFC Class Wizard的“ Member function ”列表中将列出新增 加的成员函数。选择此函数,单吸“ Edit Code ”按钮,开发环境的文档窗口中将自动 打开该函数的源代码文件,并定位到该函数的实现代码处。在此成员函数中添加下列代 码:Void CEx_DlgCtrlsDlg:o nButto n() Messa
16、geBox("确定修改记录?") (7) 编译并运行,当单击按钮时,就会执行ONButto n1函数,弹出一个消息一个对话 框。5. 心得体会刚看到课程设计题目的时候,总感觉对 visual C+处于一知半解的状态,开始分工 也比较混乱,但是在划分模块后明确的各自分工,渐渐的有了点眉目。在设计的过程中,经常会遇到这样那样的问题,比如说怎样才能实现我们所要的功 能,设计过程中的图的画法,程序的编写、文档的编写、排版等。由于课本上的知识太 多,平时课间的学习并不能很好的理解和运用知识,面对这些问题,我们就自己上图书 馆借书,网上搜素资料,相互讨论来解决我们的问题。真的是体会到了
17、只有理论知识是 远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正 的为我所用,从而提高自己的实际动手能力和独立思考的能力。此次课程设计,让我们学到了很多课学不到的东西,比如独立思考解决问题,出现 差错的随机应变,和与人合作共同提高等等,无不让我们受益非浅。6. 参考文献1王珊,萨师煊编著.vc+实用教程M.北京高等教育出版社,2007.7 83-1262越编著.Visual C+数据库开发自学教程M.人民邮电出版社2003.7 50-753王彬华,建华编著.Visual C+实例教程M电子科技大学出版社2004.48-954春葆,曾平编著数据库原理与应用M.北京清华
18、大学出版社,2006.1 41-74附录:#i nclude "stdafx.h"#i nclude "member.h"#i nclude "memberDoc.h"#i nclude "memberView.h"#i nclude "Mai nF rm.h"#include "MemberReSet.h"#i nclude "MemberDialog.h"#include "MemberEditDlg.h"#i nclude &qu
19、ot;ScoreDlg.h"#i nclude "ScoreReSet.h"#include "MemberAdd.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CMemberViewIMPLEMENT_DYNCREATE(CMemberView, CListView) BEGIN_MESSAGE_MAP(CMemberView, CListView) AFX MSG MAP(CMemberView)ON
20、_NOTIFY_REFLECT(NM_DBLCLK, On Dblclk)AFX_MSG_MAP/ Stan dard prin ti ng comma ndsON_COMMAND(ID_FILE_PRINT, CListView:O nFilePri nt)ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView:O nF ilePri nt)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView:O nF ilePri ntPreview) END_MESSAGE_MAP()/ CMemberView con structio n
21、/destructio nCMemberView:CMemberView()/ TODO: add con structi on code hereCMemberView:CMemberView()BOOL CMemberView:PreCreateWi ndow(CREATESTRUCT & cs)/ TODO: Modify the Window class or styles here by modifyi ng/ the CREATESTRUCT cs/ 设置 CListCtrl的格式为:LVS_REPOR并且 LVS_SINGLESELcs.style|=LVS_REPORT
22、|LVS_SINGLESEL;return CListView:PreCreateWi ndow(cs);/ CMemberView draw ingvoid CMemberView:。nDraw(CDC* pDC)CMemberDoc* pDoc = GetDocume nt();ASSERT_VALID(pDoc);/ TODO: add draw code for n ative data herevoid CMemberView: Onln itialUpdate()/创建一个CListCtrl 指针CListCtrl *ctl;ctl=&GetListCtrl(); /指向
23、CListView 的 CListCtrl/表格风格ctl->SetExte ndedStyle(ctl->GetExte ndedStyle()|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);/利用CLisrCtrl 设置列的题头ctl->InsertColumn(0,"学号 ”,LVCFMT_LEFT,100);ctl->I nsertColu mn (1,"", LVCFMT_LEFT,100);ctl->I nsertColu mn (2," ctl->I nsertColu m
24、n (4,"ctl->I nsertColu mn (5," ctl->I nsertColu mn (6," ctl->I nsertColu mn (7,"性别",LVCFMT_LEFT,80); 学院",LVCFMT_LEFT,100);专业",LVCFMT_LEFT,100); 所在年级",LVCFMT_LEFT,100);联系",LVCFMT_LEFT,100);.专业整理.ctl->InsertColumn(8," 寝室地址 ”,LVCFMT_LEFT,200
25、);On Pai nt();CListView:O nlni tialUpdate();/获取CMainFrame的指针CMa inF rame *m_Frm=(CMai nF rame*):AfxGetMai nWnd();/将CMainFrame的m_ListViet 指针变量指向 CMemberView的实列 m_Frm->m_ListView=this;/ TODO: You may populate your ListView with items by directly access ing / its list control through a call to GetLi
26、stCtrl()./ CMemberView prin ti ngBOOL CMemberView:。nPreparePri nti ng(CPri ntlnfo* plnfo)/ default preparati onretur n DoPreparePri nti ng(p In fo);void CMemberView:。nBegi nPrintin g(CDC* /*pDC*/, CPri ntl nfo* /*pl nfo*/)/ TODO: add extra initialization before printingvoid CMemberView:O nEndPrintin
27、 g(CDC* /*pDC*/, CPri ntl nfo* /*pl nfo*/)/ TODO: add clea nup after printing/ CMemberView diag no stics#ifdef _DEBUGvoid CMemberView:AssertValid() constCListView:AssertValid();void CMemberView:Dump(CDumpCo ntext & dc) constCListView:Dump(dc);CMemberDoc* CMemberView:GetDocume nt() / non-debug ve
28、rsion is in li ne ASSERT(m_pDocume nt->lsKi ndOf(RUNTIME_CLASS(CMemberDoc); retur n (CMemberDoc*)m_pDocume nt;#e ndif /_DEBUG/ CMemberView message han dlersvoid CMemberView:RemoveAll()/增加指针变量指向ListView 的CListCtrlCListCtrl *ctl;ctl=&GetListCtrl();/删除CListCtrl中的所有记录ctl->DeleteAllltems();/str
29、Search查询条件 strMember 关键字void CMemberView:ListMember(CStri ng strSearch,CStri ng strMember)/前此输出的用户记录RemoveAll();/建立一个指针,用以操作ListCtrl 输出用户记录CListCtrl *ctl;ctl=&GetListCtrl();/创建CMemberReSet的实例CMemberReSet m_MemberReSet;/记录用户序号int i=0;/定义一个变量来保存""以便设置SQL语句char chrTemp='%'CStri ng
30、 strTemp;tryif(m_MemberReSet.lsOpe n()m_MemberReSet.Close();/ 设置查询条件"MemName=strMemberName"if(strMember="")AfxMessageBox("请输入关键字");return;if(strSearch=" 学号")CStri ng str;str.Format("select * from member where MemID = '%s' order by MemIDASC",s
31、trMember);m_MemberReSet.Ope n( CRecordset:s napshot,str,CRecordset: non e);else if(strSearch="")ASC",chrTemp,strMember.operator LPCTSTR(),chrTemp);m_MemberReSet.Ope n(CRecordset:s napshot,NULL,CRecordset: non e);else if(strSearch=" 学院")m_MemberReSet.Ope n(CRecordset:s napsho
32、t,NULL,CRecordset: non e);else if(strSearch=" 专业")m_MemberReSet.Ope n(CRecordset:s napshot,NULL,CRecordset: non e);else if(strSearch=" 年级")m_MemberReSet.Ope n(CRecordset:s napshot,NULL,CRecordset: non e);else if(strSearch=" 年级 tree")m_MemberReSet.Ope n(CRecordset:s naps
33、hot,NULL,CRecordset: non e); else AfxMessageBox("条件选择错误");return;/输出匹配上查询到的用户记录,直到记录为空while(!m_MemberReSet.lsEOF()ctl->I nsertltem(i,m_MemberReSet.m_MemlD); ctl->SetltemText(i,1,m_MemberReSet.m_MemName); ctl->SetltemText(i,2,m_MemberReSet.m_MemSex); ctl->SetltemText(i,3,m_Membe
34、rReSet.m_Meml ns); ctl->SetltemText(i,4,m_MemberReSet.m_MemSpe); ctl->SetltemText(i,5,m_MemberReSet.m_MemYear); ctl->SetltemText(i,6,m_MemberReSet.m_MemPho ne); ctl->SetltemText(i,7,m_MemberReSet.m_MemBed);m_MemberReSet.MoveNext();if(m_MemberReSet.lsOpe n()m_MemberReSet.Close();catch(CDB
35、Exception *e)e->Delete();return; void CMemberView:EditCurUser()/建立一个指针,用以操作ListCtrl输出用户记录CListCtrl *ctl;ctl=&GetListCtrl();/寻找当前选中的记录的位置POSITION pos=ctl->GetFirstSelectedltemPositio n();if (pos=NULL)/如果没有选择记录,则提示并退出AfxMessageBox("请先选择一条信息!"); return;/获取当前记录的位置游标int m_CurUser=ctl-
36、>GetNextSelectedltem(pos);/创建一个 MemberEditDIg的实例 CMemberEditDlg m_MemberEditDlg; CMemberReSet m_MemberReSet;/创建一个临时字符串来保存当前用户信息char chrTemp201 = '0'/ 查找学号 ctl->GetltemText(m_CurUser,0,chrTemp,sizeof(char20);if(m_MemberReSet.lsOpe n() m_MemberReSet.Close();/输出匹配上条件用户记录,直到记录为空if(m_Member
37、ReSet.lsOpe n() && !m_MemberReSet.lsEOF()/开始显示记录的容m_MemberEditDlg.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_M
38、emPolity; m_MemberEditDlg.m_MemNative=m_MemberReSet.m_MemNative; m_MemberEditDlg.m_MemPlace=m_MemberReSet.m_MemPlace; m_MemberEditDlg.m_MemI ns=m_MemberReSet.m_Meml ns; m_MemberEditDlg.m_MemSpe=m_MemberReSet.m_MemSpe; m_MemberEditDlg.m_MemSchool=m_MemberReSet.m_MemSchool; m_MemberEditDlg.m_MemBed=m_
39、MemberReSet.m_MemBed; m_MemberEditDlg.m_MemEmail=m_MemberReSet.m_MemEmail; m_MemberEditDlg.m_MemYear=m_MemberReSet.m_MemYear; m_MemberEditDlg.m_MemCard=m_MemberReSet.m_MemCard; m_MemberEditDlg.m_MemPh on e=m_MemberReSet.m_MemPho ne; m_MemberEditDlg.m_MemHadd=m_MemberReSet.m_MemHadd;m_MemberEditDlg.m
40、_MemHph on e=m_MemberReSet.m_MemHph one; m_MemberEditDlg.m_Remark=m_MemberReSet.m_Remark;if(m_MemberEditDlg.DoModal()!=IDOK)/如果用户选择取消按钮,则退出return;UpdateData(FALSE);if(MessageBox("确定修改记录?",” 修改确认 ”,MB_YESNO|MB_ICONQUESTION)=IDYES) tryif(m_MemberReSet.lsOpe n()m_MemberReSet.Close();/设置查询条件m_
41、MemberReSet.Ope n(CRecordset:s napshot,NULL,CRecordset: non e);/如果用户记录存在,则进行修改操作if(m_MemberReSet.lsOpe n()&&!m_MemberReSet.lsEOF()/设置编辑当前记录m_MemberReSet.Edit();/开始编辑该条记录的容m_MemberReSet.m_MemID=m_MemberEditDlg.m_MemID; m_MemberReSet.m_MemName=m_MemberEditDlg.m_MemName; m_MemberReSet.m_MemSex=
42、m_MemberEditDlg.m_MemSex;m_MemberReSet.m_MemBorn=m_MemberEditDlg.m_MemBorn;if(m_MemberReSet.Ca nUpdate()m_MemberReSet.Update();/更新完毕,关闭数据库m_MemberReSet.Close(); else/关闭数据库if(m_MemberReSet.lsOpe n()m_MemberReSet.Close();/提示用户AfxMessageBox("该记录不存在,无法修改!");return;catch(CDBExceptio n*e)e->R
43、eportError ();return;/将用户信息及时更新到ListCtrl 中ctl->SetltemText(m_CurUser,O,m_MemberEditDlg.m_MemlD);ctl->SetltemText(m_CurUser,1,m_MemberEditDlg.m_MemName); ctl->SetltemText(m_CurUser,2,m_MemberEditDlg.m_MemSex); ctl->SetltemText(m_CurUser,3,m_MemberEditDlg.m_Meml ns); ctl->SetltemText(m_
44、CurUser,4,m_MemberEditDlg.m_MemSpe); ctl->SetltemText(m_CurUser,5,m_MemberEditDlg.m_MemYear); ctl->SetltemText(m_CurUser,6,m_MemberEditDlg.m_MemPho ne); ctl->SetltemText(m_CurUser,7,m_MemberEditDlg.m_MemBed);void CMemberView:O nDblclk(NMHDR* pNMHDR, LRESULT* pResult)/ TODO: Add your con tro
45、l no tificati on han dler code here *pResult = 0;EditCurUser();void CMemberView:LookMember()/创建一个MemberDialog的实例CMemberDialog m_MemberDialog;CMemberReSet m_MemberReSet;CStri ng chrTemp=Fin dPositi on();if(chrTemp="")return;if(m_MemberReSet.lsOpe n()/输出匹配上条件用户记录,直到记录为空if(m_MemberReSet.lsOpe
46、 n() && !m_MemberReSet.lsEOF()/开始显示记录的容m_MemberDialog.m_MemID=m_MemberReSet.m_MemID;m_MemberDialog.m_MemName=m_MemberReSet.m_MemName; m_MemberDialog.m_MemSex=m_MemberReSet.m_MemSe x; m_MemberDialog.m_MemBorn=m_MemberReSet.m_MemBorn; m_MemberDialog.m_MemPolity=m_MemberReSet.m_MemPolity; m_Mem
47、berDialog.m_MemNative=m_MemberReSet.m_MemNative; m_MemberDialog.m_MemPlace=m_MemberReSet.m_MemPlace; m_MemberDialog.m_MemI ns=m_MemberReSet.m_Meml ns; m_MemberDialog.m_MemSpe=m_MemberReSet.m_MemSpe; m_MemberDialog.m_MemSchool=m_MemberReSet.m_MemSchool; m_MemberDialog.m_MemBed=m_MemberReSet.m_MemBed;
48、 m_MemberDialog.m_MemEmail=m_MemberReSet.m_MemEmail; m_MemberDialog.m_MemYear=m_MemberReSet.m_MemYear; m_MemberDialog.m_MemCard=m_MemberReSet.m_MemCard; m_MemberDialog.m_MemPh on e=m_MemberReSet.m_MemPh one; m_MemberDialog.m_MemHadd=m_MemberReSet.m_MemHadd; m_MemberDialog.m_MemHpho ne=m_MemberReSet.
49、m_MemHph one; m_MemberDialog.m_Remark=m_MemberReSet.m_Remark; if(m_MemberDialog.DoModal()=IDCANCEL) /如果用户选择取消按钮,则退出return;UpdateData(FALSE);void CMemberView:DelCurUser()/建立一个指针,用以操作ListCtrl输出用户记录CListCtrl *ctl;ctl=&GetListCtrl();/寻找当前选中的记录的位置POSITION pos=ctl->GetFirstSelectedltemPositio n();i
50、f (pos=NULL)/如果没有选择记录,则提示并退出AfxMessageBox("请先选中一条记录!");return; /获取当前记录的位置游标int m_CurUser=ctl->GetNextSelectedltem(pos);/创建一个临时字符串来保存当前用户信息char chrTemp21 = '0'/取得用户ID ctl->GetltemText(m_CurUser,0,chrTemp,sizeof(char20);/创建CMemberReSet的实例CMemberReSet m_MemberReSet;if(MessageBox
51、("删除该学生同时会删除该生所有成绩记录,确定删除记录?","删除确认”,MB_YESNO|MB_ICONQUESTION)=IDYES)try /删除个人信息if(m_MemberReSet.lsOpe n()m_MemberReSet.Close();/如果用户记录存在,则进行修改操作if(m_MemberReSet.lsOpen() && !m_MemberReSet.lsEOF()/设置编辑当前记录m_MemberReSet.Delete();/更新完毕,关闭数据库m_MemberReSet.Close();else /考虑特例,如果操作中
52、用户信息不存在了/关闭数据库if(m_MemberReSet.lsOpe n() m_MemberReSet.Close();/提示用户AfxMessageBox("该记录不存在,无法删除!”);return;/删除对应的所有个人成绩CScoreReSet m_ScoreReSet;if(m_ScoreReSet.lsOpe n()m_ScoreReSet.Close();CStri ng sql;sql.Format("select * from score where MemID='%s'",chrTemp); m_ScoreReSet.Ope
53、 n( CRecordset:s napshot,sql,CRecordset:non e);/如果用户记录存在,则进行修改操作 while(!m_ScoreReSet.lsEOF()/设置编辑当前记录m_ScoreReSet.Delete(); m_ScoreReSet.MoveNext();/更新完毕,关闭数据库m_ScoreReSet.Close();catch(CDBExceptio n*e)e->ReportError ();return;/在ListCtrl 中删除当前用户信息 ctl->Deleteltem(m_CurUser);void CMemberView:O
54、nPai nt()RemoveAll();II创建一个CListCtrl 指针CListCtrl *ctl;ctl=&GetListCtrl(); II指向 CListView 的 CListCtrlII记录用户序号int i = 0;CStri ng strTemp;CMemberReSet m_MemberReSet;try II关闭记录集if(m_MemberReSet.lsOpe n()m_MemberReSet.Close();m_MemberReSet.Ope n(CRecordset:s napshot,NULL,CRecordset: none);II如果用户记录存在,则进行修改操作while(!m_MemberReSet.lsEOF()II意外捕获catch(CDBExceptio n*e)e->ReportError ();return; CStri ng CMemberView:Fi ndPositio n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度坡屋面小青瓦施工质量监督与整改服务合同
- 二零二五年度新加坡留学就业辅导合同4篇
- 2025专业级防雷系统设计与施工监管合同3篇
- 商场自动扶梯安装与维护服务合同(2025年度)
- 二零二五版罗丝与杨洋的离婚协议及财产分割及子女抚养协议4篇
- 2025年度家具退货及维修保养服务协议范本
- 2025版GB∕T30057(环保)固体废物处理与资源化利用合同3篇
- 二零二五年度历史文化遗址草坪保护与旅游合同3篇
- 二零二五年度医疗信息化系统建设与维护合同2篇
- 2025版新型绿色建筑劳务分包合同范本3篇
- 副总经理招聘面试题与参考回答(某大型国企)2024年
- PDCA循环提高护士培训率
- 2024-2030年中国智慧水务行业应用需求分析发展规划研究报告
- 《狮子王》电影赏析
- 河北省保定市定州市2025届高二数学第一学期期末监测试题含解析
- 中医护理人文
- 2024-2030年中国路亚用品市场销售模式与竞争前景分析报告
- 货物运输安全培训课件
- 前端年终述职报告
- 2024小说推文行业白皮书
- 市人民医院关于开展“改善就医感受提升患者体验主题活动”2023-2025年实施方案及资料汇编
评论
0/150
提交评论