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源码进行了一次研究,那时看源码的方式基本 ...
随机推荐
- 【Distributed】CDN
一.概述 1.1 Web前端优化 1.2 DNS域名解析过程 1.3 传统方式请求静态资源 二.CDN内容分发 2.1 什么是CDN 2.2 CDN内容分发原理 2.3 阿里云环境实战搭建CDN内容分 ...
- 智能指针原理及实现(2)unique_ptr
只允许基础指针的一个所有者. 可以移到新所有者(具有移动语义),但不会复制或共享(即我们无法得到指向同一个对象的两个unique_ptr). 替换已弃用的 auto_ptr. 相较于 boost::s ...
- Nginx配置客户端SSL双向认证
对于 NGINX 的 HTTPS 配置,通常情况下我们只需要实现服务端认证就行,因为浏览器内置了一些受信任的证书颁发机构(CA),服务器端只需要拿到这些机构颁发的证书并配置好,浏览器会自己校验证书的可 ...
- “System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 第一种,权限不够,在项目运行的时候弹出==>解决方法:以管理员权限运行vs ...
- elasticsearch联想加搜索实例
//搜索框具体的ajax如下: <form class="form-wrapper cf"> <img src="__PUBLIC__/Home/img ...
- JVM命令jinfo
jinfo也是jvm中参与的一个命令,可以查看运行中jvm的全部参数,还可以设置部分参数. 格式 jinfo [ option ] pid jinfo [ opti ...
- CSS3 -- column 实现瀑布流布局
本例使用 CSS column 实现瀑布流布局 关键点,column-count: 元素内容将被划分的最佳列数 关键点,break-inside: 避免在元素内部插入分页符 html div.g-co ...
- Java 正则表达式获取两个字符中间的内容
利用 正则表达式 获取两个字符串中间的值 直接上代码吧,不是很难. public static void main(String[] args) { // 内容 String value = &quo ...
- Java8-Stream-No.08
import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public c ...
- centos6.5解压及压缩zip压缩包
查看zip压缩文件的内容而不解压:unzip -l filename.zip 将zip包解压到指定路径(若不指定路径则为当前目录):unzip filename.zip -d /usr/file 压缩 ...