一、设计目的与内容
设计一个程序来模拟一个简单的手持计算器。程序支持+、-、*、/、=、C 等操作。
要求能实现操作者边输入边看到多个多位数数字并用运算符号对用户输入的数字进行运算
并得出结果展现给操作者,以此实现操作者使用该程序对数字进行十进制数字的加减乘除
运算。
1、界面类似于 windows 系统中的计算器界面,数字的输入和功能执行通过按键实现,并
能在显示区域及时显示出数据
2、要实现加减乘除等功能,需要“math.h”库函数文件,通过引用相应的函数来实现功能,
在输入第一个参数之后按下需要的执行的计算方式,再输入第二个参数以此类推,最后按
下回车按键得出计算的结果。
二、算法的基本思想
有关于这个简易计算器的编程主要运用 C++的进栈、出栈(通过网络学习、找人询问并
结合相关知识)的相关内容。刚开始我们认为运用一些直接的方法可以达到目的可是试了
不少方法没有得出相应的结果,最终比较多种程序的可行性、简易性选择了这个代码。
三、主要功能的设计
实现+、-、*、/基本运算以及多位数混合运算类型的运算。
1、赋予优先级:int symbol(char e)
{
switch (e)
{
case '#': return 0;
case '+': return 2;
case '-': return 2;
case '*': return 3;
case '/': return 3;
case '(': return 6;
case ')': return 1;
case '&': return 4;
case '|': return 4;
case '!': return 5;
default: break;
}
return 0;
}
2、判断运算符优先级:if (symbol(s2.top()) >= symbol(a[i]))
3、实现多位数的运算:for (; a[i + 1] > 47&& a[ i + 1 ] != 124 ; i++)
sum = sum * 10 + static_cast<int>(a[i + 1]) - 48;
四、系统测试
评论0