C++简单计算器课程设计报告.doc_第1页
C++简单计算器课程设计报告.doc_第2页
C++简单计算器课程设计报告.doc_第3页
C++简单计算器课程设计报告.doc_第4页
C++简单计算器课程设计报告.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

学 生 课 程 设 计 报 告 实验课程名称 C+语言程序设计教程与实验 实验项目名称 计算器 系、部 计科系 年级2013级 专业班级 软件132(对口)学 生 姓 名 学 号 实 验 时 间 2013年6月16日-6月19日 成 绩教师签名1 课程设计的目的 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。2 课程设计的任务 实现一个简单计算器。其类似于Windows附件中自带的计算器。 注: 1/x :求x分之1 Sqrt:求当前数的平方根 AC :清除所有运行数据 C :清除文本框内数据 +/- :正负号 3 流程图 软件设计1、创建控件在图5所示的Resoure View选项卡中打开Dialog资源组,双击IDD_ 09107xuzhujie_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图5中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图所示,在该对话框中输入ID属性。 Edit属性对话框2)在图3中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图所示,在该对话框中输入控件的ID值和标题属性。Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。表1 各按钮和编辑框等对象的属性对象ID标题或说明编辑框IDC_xianshi结果显示按钮IDC_BUTTON00按钮IDC_BUTTON11按钮IDC_BUTTON22按钮IDC_BUTTON33按钮IDC_BUTTON44按钮IDC_BUTTON55按钮IDC_BUTTON66按钮IDC_BUTTON77按钮IDC_BUTTON88按钮IDC_BUTTON99按钮IDC_change+/-按钮IDC_point.按钮IDC_add+按钮IDC_difference-按钮IDC_multiply*按钮IDC_devide/按钮IDC_sqrtsqrt按钮IDC_daoshu1/x按钮IDC_Onequal=按钮IDC_backspaceBackspace按钮IDC_OnclearC完成后界面如图所示。 计算器界面源代码void CCalculatorDemoDlg:OnBtnNo1() / TODO: Add your control notification handler code herePutIntoNum(1);void CCalculatorDemoDlg:OnBtnNo2() / TODO: Add your control notification handler code herePutIntoNum(2);void CCalculatorDemoDlg:OnBtnNo3() / TODO: Add your control notification handler code herePutIntoNum(3);void CCalculatorDemoDlg:OnBtnNo4() / TODO: Add your control notification handler code herePutIntoNum(4);void CCalculatorDemoDlg:OnBtnNo5() / TODO: Add your control notification handler code herePutIntoNum(5);void CCalculatorDemoDlg:OnBtnNo6() / TODO: Add your control notification handler code herePutIntoNum(6);void CCalculatorDemoDlg:OnBtnNo7() / TODO: Add your control notification handler code herePutIntoNum(7);void CCalculatorDemoDlg:OnBtnNo8() / TODO: Add your control notification handler code herePutIntoNum(8);void CCalculatorDemoDlg:OnBtnNo9() / TODO: Add your control notification handler code herePutIntoNum(9);void CCalculatorDemoDlg:OnBtnNo0() / TODO: Add your control notification handler code here/ TODO: Add your control notification handler code here /如果第一次输入数字 if (cs_Numm_i=0) return ; cs_Numm_i+=0; SetDlgItemText(IDC_EDIT_SHOW,cs_Numm_i); if (!b_Hasport) CString temp; GetDlgItemText(IDC_EDIT_SHOW,temp); temp+=.; SetDlgItemText(IDC_EDIT_SHOW,temp); void CCalculatorDemoDlg:OnBtnPort() /已有小数点时 if (b_Hasport) return; /无小数点 cs_Numm_i+=.; b_Hasport=TRUE; b_Start=TRUE; SetDlgItemText(IDC_EDIT_SHOW,cs_Numm_i);/四则运算符void CCalculatorDemoDlg:OnBtnAdd() if (!b_Start) return; if (en_LastSignl=en_none) en_LastSignl=en_add; RunOperation(en_LastSignl); en_LastSignl=en_add;void CCalculatorDemoDlg:OnBtnSub() if (!b_Start) return; / TODO: Add your control notification handler code here if (en_LastSignl=en_none) en_LastSignl=en_sub; RunOperation(en_LastSignl); en_LastSignl=en_sub;void CCalculatorDemoDlg:OnBtnMul() if (!b_Start) return; if (en_LastSignl=en_none) cs_Num1=1; en_LastSignl=en_mul; RunOperation(en_LastSignl); en_LastSignl=en_mul;void CCalculatorDemoDlg:OnBtnDiv() if (!b_Start) return; if (en_LastSignl=en_none) cs_Num1=1; en_LastSignl=en_div; RunOperation(en_LastSignl); en_LastSignl=en_div;void CCalculatorDemoDlg:OnBtnEquel() / TODO: Add your control notification handler code hereRunOperation(en_LastSignl); /*特殊* en_LastSignl=en_none; b_Start=TRUE;BOOL CCalculatorDemoDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereInitAllDate();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CCalculatorDemoDlg:PutIntoNum(int n) CString tem_i; tem_i.Format(%d,n); CString temp; /第一次输入 if (!b_Start) cs_Numm_i=tem_i; b_Start=TRUE; SetDlgItemText(IDC_EDIT_SHOW,cs_Numm_i); if (!b_Hasport) GetDlgItemText(IDC_EDIT_SHOW,temp); temp+=.; SetDlgItemText(IDC_EDIT_SHOW,temp); return; cs_Numm_i+=tem_i; SetDlgItemText(IDC_EDIT_SHOW,cs_Numm_i); if (!b_Hasport) GetDlgItemText(IDC_EDIT_SHOW,temp); temp+=.; SetDlgItemText(IDC_EDIT_SHOW,temp); void CCalculatorDemoDlg:InitAllDate() en_LastSignl=en_none; b_Hasport=FALSE; b_Start=FALSE; b_Hasmul=FALSE; b_Hasdiv=FALSE; cs_Num0=0; cs_Num1=0; m_i=0; SetDlgItemText(IDC_EDIT_SHOW,cs_Numm_i+.);void CCalculatorDemoDlg:RunOperation(eum_signl e_signl) / TODO: Add your control notification handler code heredouble sum;double nAdd1; double nAdd2; nAdd1=atof(cs_Num0); nAdd2=atof(cs_Num1); /sum=nAdd1+nAdd2; switch(e_signl) case en_add: sum=nAdd1+nAdd2; break; case en_sub: sum=nAdd1-nAdd2; break; case en_mul: sum=nAdd1*nAdd2; break; case en_div: sum=nAdd1/nAdd2; break; cs_Num0.Format(%g,sum); SetDlgItemText(IDC_EDIT_SHOW,cs_Num0); if (!b_Hasport & -1=cs_Num0.Find(.) CString temp; GetDlgItemText(IDC_EDIT_SHOW,temp); temp+=.; SetDlgItemText(IDC_EDIT_SHOW,temp); m_i = 1; b_Hasport=FALSE; b_Start=FALSE; cs_Numm_i=0;/void CCalculatorDemoDlg:RunOperation(eum_signl en_signl)/void CCalculatorDemoDlg:OnBtnC() / TODO: Add your control notification handler code hereInitAllDate();/ 根号void CCalculatorDemoDlg:OnBtnSqrt() / TODO: Add your control notification handler code hereif (!b_Start) return; double num; CString temp; GetDlgItemText(IDC_EDIT_SHOW,temp); num=atof(temp); num=sqrt(num); temp.Format(%lf,num); if (temp.Find(.)=-1) SetDlgItemText(IDC_EDIT_SHOW,temp+.); else SetDlgItemText(IDC_EDIT_SHOW,temp);/ %void CCalculatorDemoDlg:OnBtnPercent() / TODO: Add your control notification handler code here/ 1/xvoid CCalculatorDemoDlg:OnBtnDown() / TODO: Add your control notification handler code hereif (!b_Start) return; double num; CString temp; GetDlgItemText(IDC_EDIT_SHOW,temp); num=atof(temp); num=1/num; temp.Format(%lf,num); if (temp.Find(.)=-1) SetDlgItemText(IDC_EDIT_SHOW,temp+.); else SetDlgItemText(IDC_EDIT_SHOW,temp);/ +-void CCalculatorDemoDlg:OnBtnNequa() / TODO: Add your control notification handler code hereif (!b_Start) return; double num; CString temp; GetDlgItemText(IDC_EDIT_SHOW,temp); num=atof(temp); num=0-num; SetDlgItemText(IDC_EDIT_SHOW , b_Hasport ? temp:temp+.);/ 退格键void CCalculatorDemoDlg:OnBtnSpace() / TODO: Add your control notification handler code hereif (!b_Start) return; double num; CString temp; int len; CHAR temp_ch32; GetDlgItemTex

温馨提示

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

评论

0/150

提交评论