c++面向对象:编写一个一元二次型方程的类,并将上述三个功能作为成员函数,求解一元二次型方程的实根,若不满足一元二次方程的条件或无法求出实根,则输出原因。
时间: 2023-06-11 19:10:43 浏览: 122
C 语言中的类模拟(C++编程思想) 在面向对象的语言里面,出现了类的概念。这是编程思想的一种进化
可以定义一个名为 "QuadraticEquation" 的类,包含三个私有成员变量:a、b、c,分别表示一元二次方程的三个系数。此外,还需要定义一个公有成员函数 "solveEquation",用于求解一元二次方程的实根。
具体实现如下:
```c++
#include <iostream>
#include <cmath>
class QuadraticEquation {
private:
double a;
double b;
double c;
public:
QuadraticEquation(double a, double b, double c) {
this->a = a;
this->b = b;
this->c = c;
}
void solveEquation() {
double delta = b * b - 4 * a * c;
if (delta < 0) {
std::cout << "无实数解" << std::endl;
} else if (delta == 0) {
double x = -b / (2 * a);
std::cout << "唯一实数解为:" << x << std::endl;
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
std::cout << "两个实数解分别为:" << x1 << " 和 " << x2 << std::endl;
}
}
};
int main() {
double a, b, c;
std::cout << "请输入一元二次方程的三个系数(以空格分隔):" << std::endl;
std::cin >> a >> b >> c;
QuadraticEquation equation(a, b, c);
equation.solveEquation();
return 0;
}
```
在上面的代码中,我们首先定义了一个名为 QuadraticEquation 的类,并在构造函数中初始化了 a、b、c 三个成员变量。接着,我们定义了一个公有成员函数 solveEquation,通过判断 delta 的值来确定一元二次方程的解,并输出结果。
最后,我们在主函数中读取用户输入的三个系数,创建一个 QuadraticEquation 的对象,并调用 solveEquation 函数来求解方程的实根。
阅读全文