VC++实现标准型计算器步骤及源码
VC++实现标准型计算器步骤及源码
- int numb;
- int h; //.计数
- double temp4;
- double temp1;
- double temp3;
- double temp2;
- CString ss;
- char sign;
- int a; //减法计数
- int b; //乘法计数
- int c; //除法计数
- int d; //加法计数
- sign=0;
- CString ss="0";
- temp4=0;
- temp2=0;
- a=b=c=d=0;
- h=0;
- numb=0;
- void CShiyanDlg::OnOn1()
- {
- UpdateData(1);//上传数据开启
- if(numb==1)//判断是否已经按下=号建
- {
- ss="";
- m_text;
- numb=0;
- }
- int a;
- a=ss.GetLength();//截取当前显示框字符串长度
- ss.Insert(a,"1");//插入字符
- m_text=ss;
- UpdateData(0);//上传数据关闭
- // TODO: Add your control notification handler code here
- }
“+”号键程序:
- void CShiyanDlg::Onadd()
- {
- h=0;
- a=b=c=0;
- d++;
- UpdateData(1);
- temp1=atof(ss);
- if((sign=='-')||(sign=='*')||(sign=='/'))
- {
- switch(sign)//change
- {
- case'-':
- {
- temp1=atof(ss);
- temp4=temp4-temp1;
- break;
- }
- case'*':
- {
- temp1=atof(ss);
- temp4=temp4*temp1;
- break;
- }
- case'/':
- {
- temp1=atof(ss);
- temp4=temp4/temp1;
- break;
- }
- }
- }
- else
- {
- if (d==1)///carefull!!
- temp4=temp1;
- else
- temp4=temp4+temp1;
- }
- ss="";
- m_text=ss;
- m_show=temp4;
- sign='+';
- //numb++;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“-”号键程序:
- void CShiyanDlg::Onsub()
- {
- h=0;
- b=c=d=0;
- a++;
- UpdateData(1);
- temp1=atof(ss);
- if((sign=='+')||(sign=='*')||(sign=='/'))
- {
- switch(sign)//change
- {
- case'+':
- {
- temp1=atof(ss);
- temp4=temp4+temp1;
- break;
- }
- case'*':
- {
- temp1=atof(ss);
- temp4=temp4*temp1;
- break;
- }
- case'/':
- {
- temp1=atof(ss);
- temp4=temp4/temp1;
- break;
- }
- }
- }
- else
- {
- if (a==1)///carefull!!
- temp4=temp1;
- else
- temp4=temp4-temp1;
- }
- ss="";
- m_text=ss;
- m_show=temp4;
- sign='-';
- //numb++;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“*”号键程序:
- void CShiyanDlg::Onmul()
- {
- a=c=d=0;
- h=0;
- b++;
- UpdateData(1);
- temp1=atof(ss);
- if((sign=='+')||(sign=='-')||(sign=='/'))
- {
- switch(sign)//change
- {
- case'+':
- {
- temp1=atof(ss);
- temp4=temp4+temp1;
- break;
- }
- case'-':
- {
- temp1=atof(ss);
- temp4=temp4-temp1;
- break;
- }
- case'/':
- {
- temp1=atof(ss);
- temp4=temp4/temp1;
- break;
- }
- }
- }
- else
- {
- if (b==1)///carefull!!
- temp4=temp1;
- else
- temp4=temp4*temp1;
- }
- ss="";
- m_text=ss;
- m_show=temp4;
- sign='*';
- //numb++;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“.”键程序:
- void CShiyanDlg::Onpoint()
- {
- UpdateData(1);
- int a;
- if(h==0)
- {
- a=ss.GetLength();
- ss.Insert(a,".");
- m_text=ss;
- }
- else
- {;}
- h=1;
- UpdateData(0);
- //sign=0;
- //a=0;
- // TODO: Add your control notification handler code here
- }
乘方键程序:
- void CShiyanDlg::Onsqrt() //try again
- {
- UpdateData(1);
- temp4=atof(ss)*atof(ss);
- ss.Format(_T("%f"),temp4);
- m_text=ss;
- m_show=temp4;
- //sign=0;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“+/-”键程序:
- void CShiyanDlg::Onsign()
- {
- UpdateData(1);
- numb=0;
- temp2=-atof(ss);
- ss.Format(_T("%f"),temp2);
- m_text=ss;
- m_show=temp2;
- temp2=0;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“C”键程序:
- void CShiyanDlg::OnCE() //C
- {
- numb=0;
- h=0;
- UpdateData(1);
- ss="";
- m_text=ss;
- m_show=atof(ss);
- temp1=0;
- temp2=0;
- temp3=0;
- temp4=0;
- sign='o';
- UpdateData(0);
- a=b=c=d=0;
- // TODO: Add your control notification handler code here
- }
“DEL”键程序:
- void CShiyanDlg::Ondel()
- {
- UpdateData(1);
- int u,v;
- ss=m_text;
- v=ss.GetLength();
- u=v-1;
- ss.Format("%s",ss.Left(u));
- m_text=ss;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
“=”号建:
- void CShiyanDlg::Onequ()
- {
- numb=1;
- h=0;
- UpdateData(1);
- switch(sign)
- {
- case '+':
- {
- a=b=c=0;
- temp1=atof(ss);
- d++;
- if (d==1)
- temp4=temp1;
- else
- temp4=temp4+temp1;
- ss.Format(_T("%f"),temp4);
- m_text=ss;
- m_show=temp4;
- temp1=0;
- temp4=0;
- d=0;
- break;
- }
- case '-':
- {
- b=c=d=0;
- temp1=atof(ss);
- a++;
- if (a==1)
- temp4=temp1;
- else
- temp4=temp4-temp1;
- ss.Format(_T("%f"),temp4);
- m_text=ss;
- m_show=temp4;
- temp1=0;
- temp4=0;
- a=0;
- break;
- }
- case '*':
- {
- a=c=d=0;
- temp1=atof(ss);
- b++;
- if (b==1)
- temp4=temp1;
- else
- temp4=temp4*temp1;
- ss.Format(_T("%f"),temp4);
- m_text=ss;
- m_show=temp4;
- temp1=0;
- temp4=0;
- b=0;
- break;
- }
- case '/':
- {
- a=b=d=0;
- temp1=atof(ss);
- c++;
- if (c==1)
- temp4=temp1;
- else
- temp4=temp4/temp1;
- ss.Format(_T("%f"),temp4);
- m_text=ss;
- m_show=temp4;
- temp1=0;
- temp4=0;
- c=0;
- break;
- }
- //a=b=c=d=0;
- }
- sign=0;
- UpdateData(0);
- // TODO: Add your control notification handler code here
- }
VC++实现标准型计算器步骤及源码的更多相关文章
- PHP 使用GD库合成带二维码的海报步骤以及源码实现
PHP 使用GD库合成带二维码的海报步骤以及源码实现 在做微信项目开发过程中,经常会遇到图片合成的问题,比如将用户的二维码合成到宣传海报中,那么,遇到这种情况,利用PHP的GD库也是很容易实现的,实现 ...
- PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现
PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现 之前记录过一篇文章,不过那只是简单将二维码合成到海报中去,这次还要合成头像,而且是圆形.所需要素材就不一一列举,直接代码吧 1.先获取用 ...
- Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码
在文章:Mybatis源码解析,一步一步从浅入深(一):创建准备工程,中我们为了解析mybatis源码创建了一个mybatis的简单工程(源码已上传github,链接在文章末尾),并实现了一个查询功能 ...
- ubuntu安装qt步骤(源码)
1.安装gcc,g++ sudo apt-get install gcc sudo apt-get install g++ 2.解压源码包 tar xvzf qt-xxxx 3.安装xlib库 sud ...
- C语言实现计算器,附源码,超简单!
#include<stdio.h> #include<math.h> void main() { calculator(); } double calculator() { / ...
- 微信小程序实例源码大全
微信小程序实例源码大全下载 微信小应用示例代码(phodal/weapp-quick)源码链接:https://github.com/phodal/weapp-quick 微信小应用地图定位demo( ...
- Android源码之Gallery专题研究(1)
前言 时光飞逝,从事Android系统开发已经两年了,总想写点什么来安慰自己.思考了很久总是无法下笔,觉得没什么好写的.现在终于决定写一些符合大多数人需求的东西,想必使用过Android手机的人们一定 ...
- 近期热门微信小程序demo源码下载汇总
近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...
- jQuery源码研究——怎么看源码
废话 这几天有想看源码的想法,于是就开始了源码的研究,经过几天的摸索发现看源码还是有点技巧在里面的,想着把这些东东写下来作为一个小总结. 在一个多月前我对Vue源码进行了一次研究,那时看源码的方式基本 ...
随机推荐
- datagrid如何获取选中行的索引
//datagrid获取选中行 var row =baseSelectgrid.datagrid('getSelected'); // 获取被选中行的索引 index var index=baseSe ...
- WinPE基础知识之头部
1.DOS头 // DOS MZ头,大小为64个字节 typedef struct _IMAGE_DOS_HEADER { WORD e_magic; // EXE标志,“MZ”(有用,解析时作为是否 ...
- Mysql与java对应的类型表
1. 概述 在使用Java JDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案. 2. 类型映射 java.sql.Types定义了常 ...
- 19.SSM整合_配置式开发
1.定义实体类Student 2.定义Student表 3.定义index页面 4.定义处理器 5.定义Service 6.定义Dao接口 7.定义Dao的Mapper配置文件 8.定义MyBatis ...
- Spring Cloud(四)服务提供者 Eureka + 服务消费者 Feign
上一篇文章,讲述了如何通过RestTemplate + Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...
- functools.lru_cache装饰器
functools.lru_cache装饰器 functools.lru_cache是非常实用的装饰器,他实现了备忘功能它把耗时的函数的结果保存起来,避免传入相同的参数时重复计算.LRU是Least ...
- kubernetes之download api
download api作用: 可以通过环境变量或Volume挂载将pod信息注入到容器内部 apiVersion: apps/v1 kind: Deployment metadata: name: ...
- 关于linux一些备份、还原,压缩,归档的命令
15.1 gzipgzip(1) 是GNU的压缩程序.它只对单个文件进行压缩.基本用法如下:$ gzip filename程序执行以后,文件名会变成filename.gz,而且一般情况下大小会比原文件 ...
- rpm的specs学习
参考 制作rpm包: https://wangbin.io/blog/it/yum-rpm-make.html linux rpm安装mysql: https://www.jianshu.com ...
- macos下简单的socket服务器+客户端
TCP客户端服务器编程模型: 服务器: 调用socket函数创建套接字 调用bind绑定本地IP和端口 调用listen启动监听(准备好接收客户端链接的队列) 调用accept从已连接队列中提取第一个 ...