c++日期计算器编程 要求写出完整程序
1个回答
展开全部
您好,这样:
int main()
{
cout << "Please enter expression (we can handle +,-,* and /)\n";
cout << "add an x to end expression (e.g. 1+2*3;):";
int lval = 0;
int rval = 0;
char op;
cin >> lval;
if(!cin) error("no firs operand");
while (cin >> op)
{
if (op != ';')
{
cin >> rval;
}
if (!cin)
{
error("no second operand");
}
switch(op)
{
case '+':
lval += rval;
break;
case '-':
lval -= rval;
break;
case '*':
lval *= rval;
break;
case '/':
lval /= rval;
break;
default:
cout << "Result:" << lval << '\n';
keep_window_open();
return 0;
}
}
error("bad expression");
}
相较于上一个版本,在升级版中添加了:
更干净的代码
添加了对乘法和除法的支持
支持多个操作符
但是还存在一些问题:
运算法则的优先权(数值计算的顺序)
一行表达式
如何找到运算操作符,区别于数字
记录操作符所处的位置
如何处理那些严格从左到右的式子 。
int main()
{
cout << "Please enter expression (we can handle +,-,* and /)\n";
cout << "add an x to end expression (e.g. 1+2*3;):";
int lval = 0;
int rval = 0;
char op;
cin >> lval;
if(!cin) error("no firs operand");
while (cin >> op)
{
if (op != ';')
{
cin >> rval;
}
if (!cin)
{
error("no second operand");
}
switch(op)
{
case '+':
lval += rval;
break;
case '-':
lval -= rval;
break;
case '*':
lval *= rval;
break;
case '/':
lval /= rval;
break;
default:
cout << "Result:" << lval << '\n';
keep_window_open();
return 0;
}
}
error("bad expression");
}
相较于上一个版本,在升级版中添加了:
更干净的代码
添加了对乘法和除法的支持
支持多个操作符
但是还存在一些问题:
运算法则的优先权(数值计算的顺序)
一行表达式
如何找到运算操作符,区别于数字
记录操作符所处的位置
如何处理那些严格从左到右的式子 。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询