用C++和解释器模式实现简易计算器
时间: 2023-11-26 21:06:53 浏览: 51
好的,我知道了。以下是用C语言实现简易计算器的程序:
```
#include <stdio.h>
// 定义函数指针类型
typedef int (*operation)(int, int);
// 加法运算
int add(int a, int b) {
return a + b;
}
// 减法运算
int subtract(int a, int b) {
return a - b;
}
// 乘法运算
int multiply(int a, int b) {
return a * b;
}
// 除法运算
int divide(int a, int b) {
if (b == 0) {
printf("除数不能为零\n");
return 0;
}
return a / b;
}
int main() {
char op; // 运算符
int a, b; // 运算数
operation ops[4] = {add, subtract, multiply, divide}; // 运算函数指针数组
printf("请输入表达式(例如:1+2):\n");
scanf("%d%c%d", &a, &op, &b);
switch (op) {
case '+':
printf("%d %c %d = %d\n", a, op, b, ops[0](a, b));
break;
case '-':
printf("%d %c %d = %d\n", a, op, b, ops[1](a, b));
break;
case '*':
printf("%d %c %d = %d\n", a, op, b, ops[2](a, b));
break;
case '/':
printf("%d %c %d = %d\n", a, op, b, ops[3](a, b));
break;
default:
printf("未知运算符\n");
break;
}
return 0;
}
```
解释器模式是一种行为型设计模式,它用于定义语言的结构、解释语言中的表达式,并执行这些表达式。在这个例子中,我们没有使用解释器模式。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)