实现一个简单的计算器,可以进行加、减、乘、除、三角函数、乘方、平 方根及阶乘等运算,除此之外,还可以进行清屏,程序可以关闭等。
时间: 2024-09-11 20:06:58 浏览: 69
jisuanqi.rar_加减乘除C语言_可重复使用
实现一个这样的计算器,你可以使用Python编写,因为它有丰富的数学库如`math`和易于操作的交互界面。下面是一个基本的控制台版计算器设计:
```python
import math
class Calculator:
def __init__(self):
self.clear_screen = "\033[2J\033[H" # 清屏命令
self.exit_program = "退出程序,请按q键"
def add(self, a, b):
return a + b
def subtract(self, a, b):
return a - b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
if b != 0:
return a / b
else:
print("错误:除数不能为零")
return None
def trigonometry(self, func, arg):
if func == 'sin':
return math.sin(arg)
elif func == 'cos':
return math.cos(arg)
elif func == 'tan':
return math.tan(arg)
else:
print("无效的三角函数")
def power(self, base, exponent):
return pow(base, exponent)
def square_root(self, num):
if num >= 0:
return math.sqrt(num)
else:
print("错误:平方根只能计算非负数")
return None
def factorial(self, n):
if n >= 0 and n == int(n):
return math.factorial(n)
else:
print("错误:阶乘只适用于非负整数")
return None
def run(self):
while True:
print("选择操作:")
print("1. 加")
print("2. 减")
print("3. 乘")
print("4. 除")
print("5. 正弦")
print("6. 余弦")
print("7. 正切")
print("8. 指数")
print("9. 平方根")
print("10. 阶乘")
print("11. 清屏")
print("12. 退出")
user_input = input()
if user_input.lower() == '11':
print(self.clear_screen)
elif user_input.lower() == '12':
print(self.exit_program)
break
else:
try:
choice = int(user_input)
if choice < 1 or choice > 12:
continue
if choice in [1, 2, 3, 4]:
num1 = float(input("请输入第一个数字:"))
num2 = float(input("请输入第二个数字:"))
if choice in [1, 2]:
result = self.__get_operation(choice)(num1, num2)
else:
result = self.__get_operation(choice)(num1)
elif choice == 5 or choice == 6 or choice == 7:
angle = float(input("请输入角度:"))
result = self.trigonometry(chr(ord('a') + (choice - 5)), angle)
elif choice == 8:
base = float(input("请输入底数:"))
exp = float(input("请输入指数:"))
result = self.power(base, exp)
elif choice == 9:
number = float(input("请输入一个非负数求平方根:"))
result = self.square_root(number)
elif choice == 10:
num = int(input("请输入一个非负整数求阶乘:"))
result = self.factorial(num)
else:
print("无效操作")
continue
print(f"结果是:{result}")
except ValueError:
print("输入错误,请输入有效数值。")
def main():
calc = Calculator()
calc.run()
if __name__ == "__main__":
main()
```
在这个示例中,我们创建了一个`Calculator`类,包含了各种基础数学运算以及一些额外功能。用户可以通过控制台交互选择不同的操作,并按照提示输入相应的数据。
阅读全文