




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易计算器实验报告实 验 题 目 简易计算器 学 生 姓 名 吴云 学 号 2013051205 所 在 学 院 计算机学院 年 级 班 级 计科5班 成都信息工程学院 计算机学院一、 题目:简易计算器 题目概述: 学习MFC的应用,做出相对精美的界面;学习面向对象的思想,即用C+,考虑到类。 模仿Windows的计算器,用图形界面实现加减乘除开根号求倒数等等基本操作。 实现括号运算。二、 开发环境Win7操作系统的电脑一台 + VC6.0编程软件三、 设计步骤(1) 界面设计:首先打开VC+6.0 建立一个MFC的基本对话框,添加所需的按钮的编辑框如下图:(2) 添加变量:点击菜单栏的:查看-建立类向导-添加成员变量:给编辑框添加一个CString类型的变量m_result。(3) 为按钮添加事件:为按钮和编辑框改了名字和ID后点击每一个按钮,为每一个按钮添加一个对应的事件,即:为每一个按钮添加算法代码。(4) 个性化程序:即修改程序一些细节的地方,如程序的图标,程序的界面颜色、图案等等。(5) 调试并运行程序:将写好的程序调试好了后运行。四、 程序的主要函数及其释义: void CCalculatorDlg:OnButton1() /按下数字键1时出现的事件/ TODO: Add your control notification handler code hereif(fff = 1)/当fff = 0时,此时刚算完上次的数据,再按数字键时自动清空上次的数据m_result = _T(); /对字符串处理需要_T()函数实现fff = 0;m_result += _T(1);UpdateData(FALSE); /将数据送到编辑窗口void CCalculatorDlg:OnButton2() /按下数字键2时出现的事件,同上/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(2);UpdateData(FALSE);void CCalculatorDlg:OnButton3() / 3/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(3);UpdateData(FALSE);void CCalculatorDlg:OnButton4() / 4 / TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(4);UpdateData(FALSE);void CCalculatorDlg:OnButton5() / 5/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(5);UpdateData(FALSE);void CCalculatorDlg:OnButton6() / 6/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(6);UpdateData(FALSE);void CCalculatorDlg:OnButton7() / 7/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(7);UpdateData(FALSE);void CCalculatorDlg:OnButton8() / 8/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(8);UpdateData(FALSE);void CCalculatorDlg:OnButton9() / 9/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(9);UpdateData(FALSE);void CCalculatorDlg:OnButton10() / 0/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(0);UpdateData(FALSE);void CCalculatorDlg:OnButton11() /按下.后出现的事件/ TODO: Add your control notification handler code hereif(fff = 1)m_result = _T();fff = 0;m_result += _T(.);UpdateData(FALSE);void CCalculatorDlg:OnBUTTONpi() / 按下PI后出现的事件/ TODO: Add your control notification handler code herefff = 0;m_result = _T(3.14159265358979);UpdateData(FALSE);void CCalculatorDlg:OnBUTTONjia() / 按下+键,后发生的事件/ TODO: Add your control notification handler code heren = 1;data = strtod(m_result,NULL); / 将之前输入的字符串转化为double型的数并保存起来m_result = _T(); /清空输入屏void CCalculatorDlg:OnBUTTONjian() /减,同理/ TODO: Add your control notification handler code heren = 2;data = strtod(m_result,NULL);m_result = _T();void CCalculatorDlg:OnBUTTONchen() /乘/ TODO: Add your control notification handler code heren = 3;data = strtod(m_result,NULL);m_result = _T();void CCalculatorDlg:OnBUTTONchu() /除/ TODO: Add your control notification handler code heren = 4;data = strtod(m_result,NULL);m_result = _T();void CCalculatorDlg:OnBUTTONcifang() /次方/ TODO: Add your control notification handler code heren = 5;data = strtod(m_result,NULL);m_result = _T();void CCalculatorDlg:OnBUTTONDel() /退格/ TODO: Add your control notification handler code herem_result = m_result.Left(m_result.GetLength() - 1);UpdateData(FALSE);void CCalculatorDlg:OnBUTTONdengyu() /等于,按下=键后发生的事件/ TODO: Add your control notification handler code hereif(n=1)/加data += strtod(m_result,NULL);/将先前保存的数据与后输入的数据相加m_result.Format(_T(%lf), data);/将数据转化为CString型并显示在屏上UpdateData(FALSE);/刷新显示数据if(n=2)/减 同上类似data -= strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);if(n=3)/乘data *= strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);if(n=4)/除if(strtod(m_result,NULL) = 0) / 如果判断出被除数为0,就在输出框中输出以下文字。GetDlgItem(IDC_EDIT1)-SetWindowText(error!除数不能为0!);elsedata /= strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);if(n=5)/当判断运算符为次方时,根据幂底数的正负性有不同的情况if(data 0)data = exp(strtod(m_result,NULL)*log(data);m_result.Format(_T(%lf),data);UpdateData(FALSE);else if(data = 0)data = 0;m_result.Format(_T(%lf),data);UpdateData(FALSE);elseif(int)strtod(m_result,NULL) - strtod(m_result,NULL) != 0) /如计算(-2)3.2时,即指数有小数,输入以下文字。GetDlgItem(IDC_EDIT1)-SetWindowText(“该计算结果无意义!”);else/ 如计算(-2)3时,即指数没小数double i = strtod(m_result,NULL), data1 = data;for(; i 1; i-)data *= data1; m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnButtonAc() /AC,即按清除键。/ TODO: Add your control notification handler code herem_result = _T();UpdateData(FALSE);void CCalculatorDlg:OnBUTTONsin() /sin/ TODO: Add your control notification handler code heredata = sin(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONcos() /cos/ TODO: Add your control notification handler code heredata = cos(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONtan() /tan/ TODO: Add your control notification handler code heredata = tan(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONsqrt() /sqrt,即取平方根/ TODO: Add your control notification handler code hereif(strtod(m_result,NULL) SetWindowText(根号下不能负数哦);elsedata = sqrt(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONjiecheng() /阶乘/ TODO: Add your control notification handler code heredata = strtod(m_result,NULL);double i =data-1;for(;i 0; i-)data *= i;m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONlog() /lg/ TODO: Add your control notification handler code heredata = log10(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONln() /ln/ TODO: Add your control notification handler code heredata = log(strtod(m_result,NULL);m_result.Format(_T(%lf),data);UpdateData(FALSE);fff = 1;void CCalculatorDlg:OnBUTTONzhengfu() /正负取反/ TODO: Add your control notification handler code heredata = -strtod(m_result,NULL);m_result.Format(_T(%lf),data
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饭店抵押合同5篇
- 建设工程项目施工廉政合同4篇
- 婚前房产协议书范文5篇
- 新解读《GB-T 32612-2016纺织品 2-甲氧基乙醇和2-乙氧基乙醇的测定》
- 螺蛳粉运输合同范本
- 整形诊所合作合同范本
- 租赁水果树合同范本
- 建设合同范本哪里
- 玻璃代理销售 合同范本
- 车辆转换合同范本
- 建设工程项目协同作业方案
- GB/T 45972-2025装配式建筑用混凝土板材生产成套装备技术要求
- 变频及伺服应用技术(郭艳萍 钟立)全套教案课件
- 秋冬季安全知识培训
- 2024新译林版英语八年级上单词汉译英默写表(开学版)
- 美的集团工作流程体系
- 2025年中国冷冻治疗仪市场调查研究报告
- 新学期+心动力+课件-2025-2026学年高二上学期开学第一课主题班会
- (2025年标准)出资收车协议书
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 《家具与陈设设计》课件(共十章)
评论
0/150
提交评论