如何用c++写一个简单的计算器程序
3个回答
展开全部
你的这个要求绝对不会有人满足的。因为你的这个要求不只是一个编写一个最简单的计算器问题。
主要是在编写这个程序的过程中,还涉及到了计算机软件专业中的“编译原理”这门课程的其中重要知识。即:表达式的分析与求值(即:何时将相应的数字、以及运算符压入堆栈,何时又需要将相应的数字、以及运算符弹出堆栈)、以及对运算符优先级的处理(例如:括号的最优先最高、乘除法的优先级高于加减法)。
所以说你的这个要求可以说是:至少是一个大作业了。而且了,另外还有一个别的任何人无法满足你的原因就是:对于编写任何程序来说,都是必须要通过自己上机编写程序源代码、编译、链接、通过花费很多的时间和精力去调试,最终才能够得出程序的正确运行结果。
主要是在编写这个程序的过程中,还涉及到了计算机软件专业中的“编译原理”这门课程的其中重要知识。即:表达式的分析与求值(即:何时将相应的数字、以及运算符压入堆栈,何时又需要将相应的数字、以及运算符弹出堆栈)、以及对运算符优先级的处理(例如:括号的最优先最高、乘除法的优先级高于加减法)。
所以说你的这个要求可以说是:至少是一个大作业了。而且了,另外还有一个别的任何人无法满足你的原因就是:对于编写任何程序来说,都是必须要通过自己上机编写程序源代码、编译、链接、通过花费很多的时间和精力去调试,最终才能够得出程序的正确运行结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <cstdio>
int calculator ( const int& a, const int& b, const char& s ) {
switch ( s ) {
case '+' :
return a + b;
case '-' :
return a - b;
case '*' :
return a * b;
case '/' :
if ( b == 0 ) {
puts( "error" ); return 0;
}
return a / b;
case '%' :
return a % b;
default :
puts( "error" );
return 0;
}
}
int main() {
int val_1 = 0;
int val_2 = 0;
char oprt = NULL;
puts( "equation? " );
scanf( "%d %c %d", &val_1, &oprt, &val_2 );
printf( "ans: %d\n", calculator( val_1, val_2, oprt ) );
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-11-16
展开全部
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
void main() {
string leftParStr;
int leftParInt;
int rightParInt;
string rightParStr;
string calculator;
while(true) {
cout << "Number1:";
cin >> leftParStr;
cout << "运算符:";
cin >> calculator;
if(calculator == "exit"){
return;
}
cout << "Number2:";
cin >> rightParStr;
leftParInt = atoi(leftParStr.c_str());
rightParInt = atoi(rightParStr.c_str());
if(calculator == "+") {
cout <<leftParInt + rightParInt << endl;
}else
if(calculator == "-") {
cout << leftParInt - rightParInt << endl;
}else if(calculator == "*") {
cout << leftParInt * rightParInt << endl;
}else if(calculator == "/") {
cout << leftParInt / rightParInt << endl;
}
}
}
#include <string>
#include <stdlib.h>
using namespace std;
void main() {
string leftParStr;
int leftParInt;
int rightParInt;
string rightParStr;
string calculator;
while(true) {
cout << "Number1:";
cin >> leftParStr;
cout << "运算符:";
cin >> calculator;
if(calculator == "exit"){
return;
}
cout << "Number2:";
cin >> rightParStr;
leftParInt = atoi(leftParStr.c_str());
rightParInt = atoi(rightParStr.c_str());
if(calculator == "+") {
cout <<leftParInt + rightParInt << endl;
}else
if(calculator == "-") {
cout << leftParInt - rightParInt << endl;
}else if(calculator == "*") {
cout << leftParInt * rightParInt << endl;
}else if(calculator == "/") {
cout << leftParInt / rightParInt << endl;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询