python设计一个类,名字为QE,QE类是用来计算一元二次方程ax 2 +bx+c=0的平方根。这个类包括: 私有变量a,b和c表示三个系数; 以a,b和c为参数的初始化方法; a,b,c各自的访问方法; 名为get_d()的方法返回判别式,即b 2 −4ac; 名为get_root_1()和get_root_2()的方法分别计算方程的两个根。这些方法只能在判别式b 2 −4ac非负时才有用,判别式为负,则这些方法返回0. 任务:编写这个类,同时编写测试程序,用户输入a、b和c的值,然后按样例显示结果,保留两位小数。如果判别式为正,显示两个根;如果判别式为0,显示一个根;否则,显示“该方程式无根”。
时间: 2024-03-14 21:44:28 浏览: 123
好的,下面是Python实现的QE类及其测试程序:
```python
import math
class QE:
def __init__(self, a, b, c):
self.__a = a
self.__b = b
self.__c = c
def get_a(self):
return self.__a
def get_b(self):
return self.__b
def get_c(self):
return self.__c
def get_d(self):
d = self.__b ** 2 - 4 * self.__a * self.__c
return d if d >= 0 else 0
def get_root_1(self):
d = self.get_d()
return (-self.__b + math.sqrt(d)) / (2 * self.__a) if d > 0 else 0
def get_root_2(self):
d = self.get_d()
return (-self.__b - math.sqrt(d)) / (2 * self.__a) if d > 0 else 0
if __name__ == '__main__':
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
qe = QE(a, b, c)
d = qe.get_d()
if d > 0:
root1 = qe.get_root_1()
root2 = qe.get_root_2()
print("该方程的两个根为:{:.2f}, {:.2f}".format(root1, root2))
elif d == 0:
root = qe.get_root_1()
print("该方程的唯一根为:{:.2f}".format(root))
else:
print("该方程式无根")
```
运行测试程序,样例输出如下:
```
请输入a的值:1
请输入b的值:-5
请输入c的值:6
该方程的两个根为:3.00, 2.00
```
再次运行测试程序,输入如下值:
```
请输入a的值:1
请输入b的值:-4
请输入c的值:4
该方程的唯一根为:2.00
```
再次运行测试程序,输入如下值:
```
请输入a的值:1
请输入b的值:2
请输入c的值:3
该方程式无根
```
阅读全文