版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
25-《VisualC++程序设计》课程设计报告班级:计算机系软件Z102班姓名:曹立红学号:104431引言该次课程设计后台数据库连接ACCESS并创建数据库应用程序。创建支持数据库的单文档的应用程序使用ListControl控件显示并操作原数据库表格内容,其功能可实现表格中信息项目的添加、修改、删除、刷新、查询,其中查询功能分为单条件查询和多条件查询两种。二.系统设计1.主页面如下:运行之后ACCESS表中的数据就会在ListControl控件中显示通过主页面可以对表格中信息项目进行简单的刷新,删除,单条件查询(按姓名,学号,所在系,性别,出生年份的单独查询)和多条件查询(按姓名,学号,所在系,性别,出生年份的组合查询)。2.点击添加按钮即可进入添加对话框如下:可以输入相关数据点击添加按钮之后即可在原数据表中进行添加一行,并且可以进行多次添加,点击确定之后刷新即可在ListControl控件中显示。3.点击修改按钮即可进入修改对话框如下:可以对已有的相关数据进行修改点击确定按钮之后即可改变原数据表中数据行,刷新即可在ListControl控件中显示。inti=0;CStringstr,str1;while(!m_pSet->IsEOF())//m_pSetCSet类的指针用于指向原数据库表格内容。m_column1,m_column2,m_column3,m_column4,m_column5分别对应原数据库表格的学号,姓名,性别,出生日期,系所在列。{m_Clist.InsertItem(i,m_pSet->m_column1);m_Clist.SetItemText(i,1,m_pSet->m_column2);m_Clist.SetItemText(i,2,m_pSet->m_column3);intyear=m_pSet->m_column4.GetYear();intmonth=m_pSet->m_column4.GetMonth();intday=m_pSet->m_column4.GetDay();str1.Format("%d/%d/%d",year,month,day);//将原数据库表格的第i行的相应列列的 m_Clist.SetItemText(i,3,str1);内容插到ListControl控件的i行各列中;m_Clist.SetItemText(i,4,m_pSet->m_column5);i++;m_pSet->MoveNext();//m_pSet所指向的行下移。}intn=m_Clist.GetItemCount();if(n==0)//如果ListControl控件中的显示的内容为空AfxMessageBox("sorry!没有找到匹配项!");}b.删除功能的实现:voidCKeView::Onshanchu(){intn=-1;n=m_Clist.GetSelectionMark();//n为选中的行号;if(n<0)//如果没有进行选择则给出提示{ AfxMessageBox("请选择删除项!"); return;}CStrings,str;if(m_pSet->IsOpen()) m_pSet->Close();/如果此时数据库表打开则进行关闭str=m_Clist.GetItemText(n,0);//取出第n行的第0列的字段即学号列s="select*fromstudentwhere学号='"+str+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);以S所示条件对数据库表进行打开。m_pSet->Delete();//删除m_pSet->Requery();Onchaxun();//调用刷新函数在ListControl控件中显示 }c.修改功能的实现:voidCKeView::Onxiugai(){ intn=m_Clist.GetSelectionMark();//n为选中的行号 if(n<0)//如果没有进行选择则给出提示 { AfxMessageBox("请选择修改项!"); return; } CStringstr,str1,s; str=m_Clist.GetItemText(n,0);//取出第n行的第0列的字段即学号列if(m_pSet->IsOpen()) m_pSet->Close();如果此时数据库表打开则进行关闭 str1="select*fromstudentwhere学号='"+str+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,str1);以S所示条件对数据库表进行打开。 CXgDlgobj;//修改对话框中建立的类的对象 obj.m_xh=m_pSet->m_column1; obj.m_xm=m_pSet->m_column2; obj.m_vc1=m_pSet->m_column3; obj.m_vrq=m_pSet->m_column4;obj.m_vc2=m_pSet->m_column5;//将需要修改的的行中的各列的内容传递给修改对话框的各变量中if(obj.DoModal()==IDOK)//修改完毕点击确定后则将修改后的修改对话框的各变量中的值传{递给数据表中对应行中的各列 m_pSet->Edit(); UpdateData(1);m_pSet->m_column1=obj.m_xh; m_pSet->m_column2=obj.m_xm; m_pSet->m_column3=obj.m_vc1; m_pSet->m_column4=obj.m_vrq; m_pSet->m_column5=obj.m_vc2;m_pSet->Update(); }}d.添加功能的实现:在主页面的“添加”按钮中写入下面的代码:voidCKeView::Ontianjia(){CTjDlgobj;//定义添加对话框类的对象obj.DoModal();//打开添加对话框; }在添加对话框中的添加按钮中加入以下代码:voidCTjDlg::Ontj(){UpdateData(1);if(m_xuehao=="")//如果添加时学号主键为空则提示错误信息 { AfxMessageBox("请输入完整信息项!"); return; } if(m_pSet2.IsOpen()) m_pSet2.Close();//如果此时数据库表打开则进行关闭m_pSet2.Open();//在进行打开 m_pSet2.AddNew();//为原数据添加新的一行 m_pSet2.m_column1=m_xingming; m_pSet2.m_column2=m_xuehao; m_pSet2.m_column3=m_xb; m_pSet2.m_column4=m_time; m_pSet2.m_column5=m_xi;//将添加对话框中新设定的值依此赋给原数据库表格中的各列;m_pSet2.Update();}刷新之后即可在ListControl控件中显示。d.查询功能的实现:1.单条件查询:选中单条件查询的单选按钮后则主页面中的总查询按钮不可用,而每一个组框中对应的查询按钮均可用,则在单条件查询的单选按钮中写入以下代码:voidCKeView::OnRadio6(){ GetDlgItem(IDC_BUTTON10)->EnableWindow(FALSE);//获取对应按钮的ID并设定相应按钮的 GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);EnableWindow 属性FALSE为不可用TRUE为GetDlgItem(IDC_BUTTON6)->EnableWindow(TRUE);可用;GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON8)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON9)->EnableWindow(TRUE);}(1)按姓名查询:在按姓名查询组框的查询按钮中写如以下代码:voidCKeView::Onchaxun(){UpdateData(1);if(m_pSet->IsOpen())m_pSet->Close();CStrings;s="select*fromstudentwhere姓名like'"+m_ve1+"%'";//在表中查询姓名列与edit中的输入的变量相匹m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);配的行。并以该条件打开数据表。m_pSet->Requery();m_Clist.DeleteAllItems();//将ListControl控件现有的数据项目全部删除。Disp();//调用Disp()函数将原数据库表中的内容重新显示。}(2)按学号查询:在按学号查询组框的查询按钮中写如以下代码:voidCKeView::Onchaxun1(){ UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings;s="select*fromstudentwhere学号='"+m_ve2+"'";//在表中查询学号列与edit中的输入的变量相匹m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);配的行。并以该条件打开数据表。m_pSet->Requery();m_Clist.DeleteAllItems();//将ListControl控件现有的数据项目全部删除。Disp(); //调用Disp()函数将原数据库表中的内容重新显示。 }(3)按性别查询:在按性别查询组框的查询按钮中写如以下代码:voidCKeView::Onchaxun3(){UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1;if(m_vr1==0)//如果单选按钮中选中第一个按钮s1="男";//则令单选按钮的变量赋值为“男”;elses1="女";//否则赋值为“女”;s="select*fromstudentwhere性别='"+s1+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp(); }(4)按所在系查询:在按所在系查询组框的查询按钮中写如以下代码:voidCKeView::Onchaxun2(){//UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1;intn=m_cc1.GetCurSel();//n为当前选中项的下标;m_cc1.GetLBText(n,s1);//获取当前选中项的值并赋给变量s1;m_vc1=s1;//并将该变量赋给组合框的变量。UpdateData(0);s="select*fromstudentwhere系='"+m_vc1+"'";m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp(); }(5)按出生年份查询:在按出生年份查询组框的查询按钮中写如以下代码:voidCKeView::Onchaxun4(){ UpdateData(1);if(m_pSet->IsOpen()) m_pSet->Close();CStrings,s1,s3;if(m_vr2==0)s1=">";//如果单选按钮选中第一项则为变量s1赋值为>elseif(m_vr2==1)s1="=";选中第二项则为变量s1赋值为=elses1="<";选中第三项则为变量s1赋值为<;s3.Format("%d",m_ve3);//将编辑框中的int类型的变量转换为字符串类型并赋给s3;s="select*fromstudentwhereyear(出生日期)"+s1+s3;m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,s);m_pSet->Requery();m_Clist.DeleteAllItems();Disp();}2.多条件查询选中多条件查询的单选按钮后则主页面中的总查询按钮可用,而每一个组框中对应的查询按钮均不可用,则在多条件查询的单选按钮中写入以下代码:voidCKeView::OnRadio7(){GetDlgItem(IDC_BUTTON10)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON6)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON7)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON8)->EnableWindow(FALSE);GetDlgItem(IDC_BUTTON9)->EnableWindow(FALSE);}在主页面中的总查询按钮中写入以下代码:voidCKeView::Onchaxun5(){ CStrings,s1,s2,s3;UpdateData(1); if(m_vk1==1)//如果姓名的复选框被选中则为str10进行赋值以下字符串str10="姓名like'"+m_ve1+"%'"; elsestr10="";//否则为其赋空值if(m_vk2==1)//如果姓名的复选框被选中则为str11进行赋值以下字符串str11="and系='"+m_vc1+"'";elsestr11="";//否则为其赋空值 if(m_vk3==1)// 如果性别的复选框被选中 { if(m_vr1==0)//如果选中第一项则为s1赋值为”男”否则为其赋值为“女”s1="男";elses1="女";str12="and性别='"+s1+"'"; } elsestr12="";if(m_vk4==1) {if(m_vr2==0)s2=">";elseif(m_vr2==1)s2="=";elses2="<";s3.Format("%d",m_ve3);str13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024短视频平台运营绩效评估与合作合同2篇
- 架子工单项承包合同
- 化工设计-ASPEN软件:第七章反应器模拟
- 二零二四年度土地使用权转让合同:商业用地使用权交易协议
- 人教版九年级化学第九单元2溶解度课时3溶解度曲线混合物的分离分层作业课件
- 幼儿园环境布置二零二四年度合作协议
- 八下英语课件4单元
- 银行老员工年度总结
- 人力资源团队规划
- 《selenium安装教程》课件
- 大学生创业英语智慧树知到期末考试答案章节答案2024年广西师范大学
- S7-1500 PLC应用技术 习题及答案
- 五年级上册语文课件-语文园地八 人教 部编版
- 2022年2022年普通话语流音变训练
- 钳工教学中钻孔方法的改进探究
- 水轮机结构介绍(经典)
- 高处作业基本知识高处不胜寒安全不能忘
- 管道支架载荷计算
- 防火门安装施工方案
- 无损检测射线常见缺陷图集及分析
- 最新外科疾病诊疗指南(精品课件)
评论
0/150
提交评论