编写一个求解一元二次方程的程序:输入三个整数a,b,c分别为各项系数,求出该方程的根,如果无实根,输出提示。基于例4.2,请使用基本路径测试法对下面的程序设计测试用例。要求:画出控制流图、计算圈复杂度、给出独立路径,并且设计测试用例。
时间: 2024-12-21 22:23:16 浏览: 54
编写一个求解一元二次方程的Python程序可以按照以下步骤:
```python
def solve_quadratic_equation(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b + discriminant ** 0.5) / (2 * a)
root2 = (-b - discriminant ** 0.5) / (2 * a)
return f"方程的两个实根为 {root1:.2f} 和 {root2:.2f}"
elif discriminant == 0:
root = -b / (2 * a)
return f"方程有一个重根,值为 {root:.2f}"
else: # 当判别式小于0时,即无实根
return "方程无实根"
# 控制流图(Control Flow Diagram, CFD)示意图:
# 输入:a, b, c
# 判断:discriminant > 0, discriminant == 0, discriminant < 0
# 分支:>0 -> 计算并返回两根;==0 -> 计算并返回单根;<0 -> 返回无实根
# 结束
# 计算圈复杂度(Cyclomatic Complexity)表示算法中的独立路径数目。在这个函数里,由于只有一个if-elif-else结构,其CC=1。
# 独立路径:
# 1. 当discriminant > 0时,有一条独立路径:进入第一个if分支,计算并返回两根。
# 2. 当discriminant == 0时,有一条独立路径:进入第二个elif分支,计算并返回单根。
# 3. 当discriminant < 0时,有一条独立路径:进入else分支,直接返回“无实根”。
# 测试用例设计(基本路径测试法):
# 1. 正常情况下的实根:a=1, b=-3, c=2 (判别式大于0)
# 2. 双重实根:a=1, b=-6, c=9 (判别式等于0)
# 3. 无实根:a=1, b=2, c=3 (判别式小于0)
阅读全文
相关推荐

















