C++求教编写一个简单的计算器(带界面如下图)

如题所述

先考虑编写一个命令行版本的。关键是如何处理运算符的优先级以及将读取的字符串翻译成数据。
例如:你编写的命令行版本的输入是2.890 + 3.1 * 2-5.1 / 3.0
对于上述的式子,你首先要通过解析出2.890,然后解析出加号,然后是3.1, 乘号, 2.5, 除号 ,3.0等等。如果你想简单的来,那就不考虑运算符优先级,上述的式子会每输入一个运算符就开始运算,这样就会对上述式子进行类似如下运算: ((2.890+3.1)*2.5-5.1)/3.0,很多古董的计算器都是这样的,屏幕不显示算式,只显示结果,用户每输入一个符号就开始计算,也就没有什么算符优先级了。
界面其后考虑,我没有怎么用过c去编写界面,因此也不太清楚界面上的按钮该如何生成。原来用过一个graphic.h的头文件,可以画图,没有关注过是否可以创建按钮。界面用mfc做会更快一点,但是就不是命令行式的程序,你可以上网搜搜相关的命令行界面生成按钮的程序。命令行版本的只要编写完成了,界面就是点击按钮,判断按钮类型进行改变buf缓冲区的操作或者计算buf缓冲区结果的操作,不难。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-09
控制台方式的计算器,真还没有做过,是不是没输入一个数字,都要重新刷新一次屏幕,再显示新的输入的组合呀追问

要求是要可以一直输入,可多次运算……

追答

你的绘制界面的代码是不是写好了,发上来,在你的基础之上修改,比较快

追问

没有,是老师给出的样图

追答

再问你一个问题,你这个题目的要求是DOS下运行还是控制台输出的?

追问

DOS下运行

追答

好不容易让代码写了一个界面呀

追问

膜拜大神,求教>_<

追答

哎,不容易呀,DOS下的计算器,雏形基本完了,可以做整数的加减乘除的运算了

看了你是不需要了,那就自己留着玩吧

本回答被提问者采纳

用c语言 (c++) 编写计算器程序
01 首先我们需要在Dev C++软件中创建一个C语言项目,项目类型选择控制台程序,如下图所示 02 接下来我们在项目下面

急:mfc编程,用C++写一个简易的计算器,有图形界面的..请求各位大虾给出详...
1.新建一个对话框程序。2.添加计算器的各个按键及编辑框(用来显示输入和结果)3.为对话框添加一些变量:一个状态标志(计算加减乘除),一个标志(对运算两个数的哪个进行处理),两个double变量(用于运算的两个数),用类向导为编辑框绑定一个变量。定义一个计算函数(进行加减乘除)4.在对话框.h头文件中...

用c语言设计一个简单的加减乘除计算器
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include \/*函数头:输入输出头文件*\/,void main()\/*空类型:主函数*\/。3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/,char c;\/*定义变量的数据类型为字符型*\/。4、输入四则运算式:pri...

利用C语言完成迷你计算器程序编写
float cal(float a,char c,float b){float m;switch(c){case'*':m=a*b;break;case'\/':m=a\/b;break;}return m;}void main(){ float x[10000]={0};float fsum=0;char y[10000]={0};int i=0,j,k,l,r; do{i++;scanf("%f%c",&x[i],&y[i]);}while(y[i]!=...

c++使用宏的计算器?
代码:#include <stdio.h>#define PLUS(a,b) a+b#define MINUS(a,b) a-b#define MULTI(a,b) a*b#define DIVIDE(a,b) a\/bint main(){float a,b;scanf("%f %f",&a,&b);printf("%f\\n",PLUS(a,b));printf("%f\\n",MINUS(a,b));printf("%f\\n",MULTI(a,b));printf("...

用C++设计一简单的计算器模拟程序
6-1. 简单计算器(20)时间限制 400 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式...

用C++写出以下程序一元多项式简单的计算器
void main(){ float a,b,c,s,x1,x2;double t;cout<<"请输入三个数字:a,b,c"<<endl;cin>>a>>b>>c;cout<<"方程"<<a<<"x*x"<<"+"<<c<<"x"<<"+"<<c<<"=0"<<"根如下:"<<endl;if(a==0.0)if(b!=0.0)cout<<"方程的根为:"<<-c\/b<<endl;else if (c==...

用C++编写一个计算器程序。用户输入两个运算数和四则运算符,输出计算结 ...
用C++编写的”输入两个运算数和四则运算符,输出计算结果”计算器程序代码具体如下:include<stdio.h> void main(){int a,b,d;char c;printf("请输入一种运算符:\\n");scanf("%c",&c);printf("请输入两个数:\\n");scanf("%d",&a);scanf("%d",&b);switch(c){ case '+':d=a+...

用c语言做一个加减乘除还有乘方的计算器,做出来界面要好看好看好看。一...
const int N=30;\/\/定义数组长度,可以修改更大;计算能力更强 char unnum[N];\/\/模拟栈符号数组,用来存放运算符 int i=-1,len;int numarrow=0;\/\/模拟栈数字数组指针,用来控制模拟栈数字数组数的存取位置 int chararrow=0;\/\/模拟栈符号数组指针,用来控制模拟栈符号数组运算符的存取位置 char ...

用C++编写一下计算器程序
简单的计算器:#include <iostream>using namespace std;int main(){double x,y;char z;cout<<"请输入第一个数字:"<<endl;cin>>x;cout<<"请输入第二个数字:"<<endl;cin>>y;cout<<"请输入输入运算符号(+、-、*、\/):"<<endl;cin>>z;cout.precision(7);switch(z){case '+':cout<<"结果:"<...

相似回答