
一个具备变量赋值以及表达式计算功能的四则乘方括号运算计算器。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
calculator.cpp 能够执行四则运算以及求幂运算,同时具备赋值和错误报告功能,构建了一个全面的计算器程序。该程序于2018年12月4日开发完成。
本程序的输入包含三种类型的元素:指令、赋值语句和计算式。所有这三种类型的输入均允许在基本元素之间添加任意数量的空格。当程序在处理过程中遇到错误时,它会显示“Error”并提供详细的错误原因说明。
* **指令**:指令集包括三个功能:exit,用于退出程序;printvar,用于输出所有已定义的变量及其对应的值;emptyvar,用于清除所有变量。请注意,所有变量名均不能与指令名称相同。
* **赋值语句**:赋值语句的基本格式为“变量名=数值”,其中“数值”可以是一个完整的计算式。
* **计算式**:所有非指令和赋值语句都将被视为计算式进行计算并得出结果。本程序能够对输入的一行计算式的值进行评估并输出结果。若结果为整数,则输出整数形式;若结果为浮点数,则保留两位小数的格式进行显示。计算式中可以包含变量、数字以及各种运算符号。直接以运算符开头的表达式会引发“出现连续的运算符”的错误,但如果表达式以+或-直接开头,则会被识别为数的正负号。
输入的基本元素包括变量、数字和运算符号。
* **变量名**:变量名必须以字母或下划线字符开头,其后可以跟随由字母、数字或下划线构成的字符序列,并且不能与任何指令名称重复使用。
* **数字**:数字可以是整数、小数或者分数(以/表示)。目前暂不支持除十进制外的其他进制输入,但支持如.23这样的省略整数部分0的输入方式。例如支持32.这样的输入, 但.不会被认为是0而导致报错.
* **运算符号**:运算符号包括加号(+), 减号(-), 乘号(*), 除号(/), 括号( ), 以及乘方(^)。除法运算中的除数不能为零;乘方的底数如果为负数,则指数必须是整数值;零的零次幂没有意义可言。
请务必在使用时采用英文输入或选择半角字符!需要特别注意的是,当语句中存在多个错误时,程序只会提示最先发现的错误信息 。与其他C/C++表达式计算器不同的是, 本程序在输出时会将整数相除产生的浮点数自动转换为浮点数类型, 也会将浮点数运算得到的整数自动转换为整数类型, 这意味着1/2=0.50, 2.0/1.0=2 (C++的自动取整机制确实有些不直观)。此外, C/C++为了避免与函数冲突, 不允许使用a(b+c)或2(3+1)这样的写法; 而本程序默认会在括号前执行乘法运算, 即2(3+1)=2*(3+1)=8, a(b+c)=a*(b+c)。cmath库中的pow函数对于底数为零且指数为零的情况会返回1; 然而, 零的零次幂是没有明确定义的概念, 因此本程序会对这种情况报错 。鉴于C++支持+-+-+-1=-1这种连续正号或负号的情况虽然可行, 但出现连+或连-时会报错的混乱情况, 本程序允许在数字和变量前添加一个正号或负号来改变数值符号(例如: 2+-1 , 3*-x , -3++2 是有效的), 但是多于一个额外的正号或负号将会导致报错(例如: 3+-+2 , +-1 不支持)。
全部评论 (0)


