设计一个简单的计算器,具有加减乘除功能
时间: 2024-12-17 17:47:23 浏览: 6
设计一个简单的计算器,通常可以分为以下几个步骤:
1. **需求分析**:
- 确定用户界面,例如命令行交互或者图形用户界面(GUI),需要支持输入数字和操作符。
2. **数据结构**:
- 使用两个变量存储当前的运算数,一个栈保存历史操作数和运算符。
3. **函数设计**:
- 定义四个基本运算函数:add()、subtract()、multiply() 和 divide(),分别处理加、减、乘、除操作。
4. **主程序循环**:
- 用户输入数字和操作符,如 "1 + 2" 或者 "5 / 3"。
- 根据操作符调用相应的函数,并更新运算数。
- 检查是否遇到除数为零的情况(对于除法),防止错误。
- 记录结果,如果用户想要连续计算,就将结果显示并继续等待新的输入。
5. **实现错误处理**:
- 对非法输入(比如不是数字的操作符)给出提示,并提供正确的操作示范。
6. **结束条件**:
- 当用户输入特定的退出指令(如 "quit" 或者 "exit")时,跳出循环,结束计算器运行。
以下是简化的Python代码示例:
```python
class SimpleCalculator:
def __init__(self):
self.current_num = None
self.operator_stack = []
def add(self, num):
result = self.current_num + num if self.current_num else num
self.current_num = result
return result
def subtract(self, num):
result = self.current_num - num if self.current_num else num
self.current_num = result
return result
def multiply(self, num):
if not self.current_num:
self.current_num = num
else:
self.current_num *= num
return self.current_num
def divide(self, num):
if not self.current_num or num == 0:
print("错误:除数不能为零")
else:
self.current_num /= num
return self.current_num
def input_number(self):
try:
num = float(input("请输入数字: "))
return num
except ValueError:
print("错误:请输入有效数字")
def run(self):
while True:
command = input("请输入计算表达式 (如 '1 + 2', '3 * 4', 'quit'): ")
if command.lower() == "quit":
break
parts = command.split()
if len(parts) >= 2:
operator = parts[1]
num = self.input_number()
if operator in ["+", "-", "*", "/"]:
self.operator_stack.append((operator, num))
elif operator == "=":
result = self.perform_operation()
print(f"结果: {result}")
else:
print("错误:无效的操作符")
else:
print("错误:缺少操作数")
def perform_operation(self):
operator, num = self.operator_stack.pop()
last_num = self.current_num
self.current_num = self.__getattribute__(f"{operator}")(num)
return last_num
if __name__ == "__main__":
calculator = SimpleCalculator()
calculator.run()
```
阅读全文