编写一个程序,求一元二次方程ax2+ bx + c =0的实根,系数 a 、 b 、 c 从键盘输入。(进行类的封装)
时间: 2024-09-26 07:13:07 浏览: 70
在Python中,我们可以编写一个名为`QuadraticEquation`的类,用于计算一元二次方程的解。这个类会包含私有变量(系数a、b和c)以及相应的公共方法,如`calculate_roots`。下面是一个简单的实现示例:
```python
class QuadraticEquation:
def __init__(self, a=0, b=0, c=0):
self.__a = float(a)
self.__b = float(b)
self.__c = float(c)
def get_coefficients(self):
return self.__a, self.__b, self.__c
def set_coefficients(self, a, b, c):
self.__a = float(a)
self.__b = float(b)
self.__c = float(c)
def calculate_roots(self):
delta = self.__b**2 - 4 * self.__a * self.__c
if delta < 0:
print("该方程无实数根")
elif delta == 0:
root = -self.__b / (2 * self.__a)
print(f"方程有一个实数根:{root}")
else:
root1 = (-self.__b + delta ** 0.5) / (2 * self.__a)
root2 = (-self.__b - delta ** 0.5) / (2 * self.__a)
print(f"方程有两个实数根:{root1} 和 {root2}")
# 用户输入系数
coeffs = input("请输入一元二次方程的系数(a, b, c),用逗号分隔:").split(',')
a, b, c = map(float, coeffs)
equation = QuadraticEquation()
equation.set_coefficients(a, b, c)
equation.calculate_roots()
阅读全文