基于面向对象编程,编写一个具备+、-、*、/四则运算的计算器,要求采用连续计算模式。例如:计算(2+6-4)*5,程序调用应为:
时间: 2024-05-27 09:11:10 浏览: 8
Calculator calc = new Calculator();
calc.input(2);
calc.input(6);
calc.input("-");
calc.input(4);
calc.input("*");
calc.input(5);
double result = calc.getResult();
相关问题
利用python GUI之tkinter编写界面计算器,基于面向对象编程,编写一个具备+、-、*、/四则运算的计算器,要求采用连续计算模式
(即支持多次连续计算)。
以下是代码实现:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("计算器")
# 创建显示框
self.display = tk.Entry(master, width=24, font=('Arial', 16))
self.display.grid(row=0, column=0, columnspan=4, pady=10)
# 创建按钮
self.create_button("7", 1, 0)
self.create_button("8", 1, 1)
self.create_button("9", 1, 2)
self.create_button("/", 1, 3)
self.create_button("4", 2, 0)
self.create_button("5", 2, 1)
self.create_button("6", 2, 2)
self.create_button("*", 2, 3)
self.create_button("1", 3, 0)
self.create_button("2", 3, 1)
self.create_button("3", 3, 2)
self.create_button("-", 3, 3)
self.create_button("0", 4, 0)
self.create_button(".", 4, 1)
self.create_button("C", 4, 2)
self.create_button("+", 4, 3)
self.create_button("=", 5, 0, columnspan=4)
# 初始化变量
self.result = 0
self.operator = "+"
self.is_new_number = True
def create_button(self, text, row, column, rowspan=1, columnspan=1):
button = tk.Button(self.master, text=text, width=6, height=2, font=('Arial', 16),
command=lambda:self.button_click(text))
button.grid(row=row, column=column, rowspan=rowspan, columnspan=columnspan, padx=5, pady=5)
def button_click(self, text):
if text.isdigit() or text == ".":
if self.is_new_number:
self.display.delete(0, tk.END)
self.is_new_number = False
self.display.insert(tk.END, text)
elif text == "C":
self.display.delete(0, tk.END)
self.result = 0
self.operator = "+"
elif text in ["+", "-", "*", "/"]:
self.calculate()
self.result = float(self.display.get())
self.operator = text
self.is_new_number = True
elif text == "=":
self.calculate()
self.operator = "+"
self.is_new_number = True
def calculate(self):
number = float(self.display.get())
if self.operator == "+":
self.result += number
elif self.operator == "-":
self.result -= number
elif self.operator == "*":
self.result *= number
elif self.operator == "/":
self.result /= number
self.display.delete(0, tk.END)
self.display.insert(tk.END, str(self.result))
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
```
运行程序,即可得到一个简单的计算器界面。
![calculator](https://cdn.jsdelivr.net/gh/1077645536/CDN/blog/images/calculator.png)
¢编写一个计算器,完成+-*/ 运算 ¢ (1)定义一个接口Compute含有一个方法 int computer(int a,int b); (2)设计四个类分别实现此接口,完成+-*/运算 (3)设计一个测试类,完成+-*/运算,输出如下运行结果:
以下是 Java 代码实现:
```java
// 计算器接口
interface Compute {
int compute(int a, int b);
}
// 加法类
class Add implements Compute {
public int compute(int a, int b) {
return a + b;
}
}
// 减法类
class Subtract implements Compute {
public int compute(int a, int b) {
return a - b;
}
}
// 乘法类
class Multiply implements Compute {
public int compute(int a, int b) {
return a * b;
}
}
// 除法类
class Divide implements Compute {
public int compute(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("除数不能为 0!");
}
return a / b;
}
}
// 测试类
public class Calculator {
public static void main(String[] args) {
Compute add = new Add();
Compute subtract = new Subtract();
Compute multiply = new Multiply();
Compute divide = new Divide();
int a = 10, b = 5;
System.out.println(a + " + " + b + " = " + add.compute(a, b));
System.out.println(a + " - " + b + " = " + subtract.compute(a, b));
System.out.println(a + " * " + b + " = " + multiply.compute(a, b));
System.out.println(a + " / " + b + " = " + divide.compute(a, b));
}
}
```
输出结果:
```
10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
10 / 5 = 2
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)