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源码进行了一次研究,那时看源码的方式基本 ...
随机推荐
- Oracle笔记(十四) 用户管理
SQL语句分为三类:DML.DDL.DCL,之前已经讲解完了DML和DDL,现在就差DCL操作的,DCL主要表示的是数据库的控制语句,控制的就是操作权限,而在DCL之中,主要有两个语法:GRANT.R ...
- linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit
一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...
- Srping事物的隔离策略
spring事务: 什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 事务特性(4种): 原子性 (atomicity):强调事务的不可分割. 一致性 (c ...
- 一周死磕fastreport ----ASP.NET (一)
https://blog.csdn.net/wuyuander/article/details/52692435 原文链接,点击跳转 首先是安装好FastReport .net: 然后在vs2012中 ...
- Django:forms局部函数、cookie、sesion、auth模块
一.forms组件 二.cookie和session组件 三.auth组件 一.forms组件 1.校验字段功能 针对一个实例:注册用户讲解 模型:models class UserInfo(mode ...
- 002.MVC开发方法和步骤--用一个简单的加法程序来演示
MVC的工作原理: 注:ASP.NET MVC中的url 特殊:构成 http//....../控制器名/方法名 默认: 1.Url请求直接来到Controller中 2.Controller从Mod ...
- 通过JDBC驱动加载深刻理解线程上下文类加载器机制
关于线程上下文类加载器已经在之前学得比较透了,作为一个收尾,这里用平常J2EE开发时JDBC连接Mysql数据库常见的一段代码通过分析它的底层进一步加深对线程上下文类加载器的理解,所以先来将连接应用代 ...
- linux基础_使用指令
1.指令运行级别 (0)关机 (1)单用户(找回丢失密码) (2)多用户无网络服务 (3)多用户有网络服务 (4)保留 (5)图形界面 (6)重启 /etc/inittab:系统的运行级别配置之文件 ...
- MySQL5.7.21解压版安装详细教程(转)
由于本人经常装系统,每次装完系统之后都要重新安装一些软件,安装软件的时候又要上网查找安装的教程,比较麻烦,所以自己整理了MySQL5.7.21解压版的安装方法,以便查看. 1.首先,你要下载MySQL ...
- Maven 配置问题 - could not find resource mybatis-config.xml
需要在pom中加入以下代码 <build> <resources> <resource> <directory>src/main/resources&l ...