计算器基于_C++MFC实现.doc_第1页
计算器基于_C++MFC实现.doc_第2页
计算器基于_C++MFC实现.doc_第3页
计算器基于_C++MFC实现.doc_第4页
计算器基于_C++MFC实现.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程实验报告课程名称c+面向对象程序设计班级xxxxx实验日期2015-05-19姓名xxx学号xxxxx实验成绩实验名称 c+简单程序设计实验目的及要求1. 学习使用visual c+的mfc开发程序的步骤。2. 综合运用所学的类、继承和多态的知识开发程序。3. 进一步熟练掌握程序调试方法。实验环境 microsoft visual c+实验内容1. 利用mfc的向导创建基于对话框的应用程序,添加按钮、编辑框等控件。2. 实现算数“加、减、乘、除”的运算。算法描述及实验步骤设计步骤:(1) 打开microsoft visual c+ 6.0,在文件中点击新建,在弹出框内选择mfc appwizardexe工程,输入工程名jisuanqi并在其所在的位置点击确定。(2) 将弹出mfc appwizard-step1对话框,选择基本对话框点击完成。(3) 基于对话窗口的程序框架建立成功。界面设计:(1) 创建控件:在resource view选项卡中打开dialog资源组,双击idd_jisuanqi,在右边的窗口中显示待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。(2) 在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出edit属性对话框。(3) 在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也会弹出 push button对话框。 标题 id 说明 编辑框 id_edit 结果显示 按钮 id_button0 0 按钮 id_button1 1 按钮 id_button2 2 按钮 id_button3 3 按钮 id_button4 4 按钮 id_button5 5 按钮 id_button6 6 按钮 id_button7 7 按钮 id_button8 8 按钮 id_button9 9 按钮 id_buttonjia + 按钮 id_buttonjian - 按钮 id_buttoncheng * 按钮 id_buttonchu / 按钮 id_buttonequal = 按钮 id_buttonc 0链接代码和变量:(1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出的菜单中选择classwizard菜单项,弹出mfc classwizard对话框选择member variables选项卡。(2) 在control ids列表框中选择idc_edit,单击add variables按钮,在弹出的对话框中链接变量m_num。变量类型设定为double型。m_num属性设置:给x按钮链接代码。在x按钮上单击鼠标右键,选择classwizard菜单项,在弹出的对话框中选择message maps选项卡,然后在object ids列表框中选择bn_clicked项,即单击按钮事件。菜单设计:(1)选择插入/资源命令,将显示插入资源对话框。选择menu,点击新建即可。(2)resource view选项卡中打开menu资源组,双击idr_menu1,然后给菜单添加相应的标题,并把每个菜单对应的id值与相应的按钮一致。(3)在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择properties命令,弹出dialog properties对话框,在对话框中的菜单组合框中选择idr_menu1。结构图:调试过程及实验结果1. 初始化状态: 2. 加法运算: 3. 乘法运算: 4. 清零运算: 总结 通过此次试验极大的锻炼了编码能力,巩固了之前所学的知识。实验过程中出现了些许问题,所幸都可以解决,并为以后的实验提供了经验。附录#include stdafx.h#include jisuanqi.h#include jisuanqidlg.h#includemath.hbool ele2;int addt;int i;int dint;bool ele;double num1;double num2;class caboutdlg : public cdialogpublic:caboutdlg();enum idd = idd_aboutbox ;protected:virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv supportprotected:declare_message_map();bool cjisuanqidlg:oninitdialog()onbuttonc();cdialog:oninitdialog();assert(idm_aboutbox & 0xfff0) = idm_aboutbox);assert(idm_aboutbox appendmenu(mf_separator);psysmenu-appendmenu(mf_string, idm_aboutbox, straboutmenu);seticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small iconreturn true; / return true unless you set the focus to a controlvoid cjisuanqidlg:onsyscommand(uint nid, lparam lparam)if (nid & 0xfff0) = idm_aboutbox)caboutdlg dlgabout;dlgabout.domodal();elsecdialog:onsyscommand(nid, lparam);void cjisuanqidlg:onpaint()if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);int cxicon = getsystemmetrics(sm_cxicon);int cyicon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y = (rect.height() - cyicon + 1) / 2;dc.drawicon(x, y, m_hicon);elsecdialog:onpaint();void cjisuanqidlg:onbutton0()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+0;else m_num=m_num*10-0;if(ele=true) num1=0; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton1()/ todo: add your control notification handler code hereint i;if(addt=0)num2=0;if(ele2=true)m_num=m_num*10+1;else m_num=m_num*10-1;if(ele=true) num1=1; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton2()/ todo: add your control notification handler code hereint i;if(addt=0)num2=0;if(ele2=true)m_num=m_num*10+2;else m_num=m_num*10-2;if(ele=true) num1=2; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton3()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+3;else m_num=m_num*10-3;if(ele=true) num1=3; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton4()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+4;else m_num=m_num*10-4;if(ele=true) num1=4; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton5()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+5;else m_num=m_num*10-5;if(ele=true) num1=5; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton6()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+6;else m_num=m_num*10-6;if(ele=true) num1=6; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton7()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+7;else m_num=m_num*10-7;if(ele=true) num1=7; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton8()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+8;else m_num=m_num*10-8;if(ele=true) num1=8; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbutton9()/ todo: add your control notification handler code hereif(addt=0)num2=0;if(ele2=true)m_num=m_num*10+9;else m_num=m_num*1019;if(ele=true) num1=9; dint=dint+; for(i=0;idint;i+) num1=num1/10; if(ele2=true) m_num=(m_num-1)/10+num1; else m_num=(m_num+1)/10-num1; updatedata(false);void cjisuanqidlg:onbuttonpoint()/ todo: add your control notification handler code herevoid cjisuanqidlg:onbuttonequal()/ todo: add your control notification handler code hereswitch(addt) case 0: updatedata(false); break; case 1: m_num=num2+m_num; updatedata(false); break; case 2: m_num=num2-m_num; updatedata(false); break; case 3: m_num=num2*m_num; updatedata(false); break; case 4: m_num=num2/m_num; updatedata(false); break;num2=m_num;m_num=0;num1=0;dint=0;ele=false;addt=0;ele2=true;void cjisuanqidlg:onbuttonjia()/ todo: add your control notification handler code hereif(addt!=0) onbuttonequal(); if(num2=0) num2=m_num; m_num=0; ele=false; ele2=true; d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论