em có 1 cái đề bài như trên, đã hoàn thành các hàm cần thiết, nhưng lại không biết viết hàm
main()
như nào ạ
phần khởi tạo class và kế thừa:
#include <iostream>
#include <math.h>
using namespace std;
class Ptb1
{
protected:
float b, c;
public:
Ptb1(float m=0, float n=0);
void Nhap(float x, float y);
void Xuat();
void Giai_B1();
};
// ========= Lop Phuong trinh bac 2 ========= //
class Ptb2 : public Ptb1
{
private:
float a;
public:
Ptb2(float m=0, float n=0, float o=0);
void Nhap(float x, float y, float z);
void Xuat();
void Giai_B2();
};
Các hàm trong class Pt bậc 1:
//======== Ham khoi tao phuong trinh bac 1 ========//
Ptb1::Ptb1(float m, float n)
{
b = m;
c = n;
}
//============= Ham nhap b, c ==============//
void Ptb1::Nhap(float x, float y)
{
b = x;
c = y;
}
//============= Ham xuat b, c ==============//
void Ptb1::Xuat()
{
cout << "(" << b << ")x + (" << c << ") = 0";
}
//============= Ham Giai phuong trinh bac 1 ============//
void Ptb1::Giai_B1()
{
if (b !=0)
cout << "x= " << (-c) / b;
else if (c == 0)
cout << "Phuong trinh vo nghiem";
else
cout << "Phuong trinh co vo so nghiem";
}
Các hàm trong class con Pt bậc 2:
//============= Ham khoi tao phuong trinh bac 2 ============//
Ptb2::Ptb2(float m, float n, float o) : Ptb1()
{
a = m;
}
//============= Ham nhap a ==============//
void Ptb2::Nhap(float x, float y, float z)
{
//cin >> x;
Ptb1::Nhap(y, z);
}
//============= Ham xuat phuong trinh bac 2 ==============//
void Ptb2::Xuat()
{
if (a != 0)
cout << "(" << a << ")x*x + (" << b << ")x + (" << c << ") = 0";
else
Ptb1::Xuat();
}
//============= Ham Giai phuong trinh bac 2 ============//
void Ptb2::Giai_B2()
{
float delta;
if (a != 0)
{
delta = b*b - 4*a*c;
cout << "delta = " << delta;
if (delta < 0)
cout << "Phuong trinh vo nghiem!";
else if (delta = 0)
cout << "Phuong trinh co nghiem x = " << (-b) / (2*a);
else
cout << "Phuong trinh co 2 nghiem\n\t x1 = " << ((-b) - sqrt(delta)) / (2*a) << " ; x2 = " << ((-b) + sqrt(delta)) / (2*a);
}
else
Ptb1::Giai_B1();
}
Hàm main()
:
int main()
{
Ptb2 x;
float a, b, c;
cout << "Nhap gia tri a, b, c: ";
cin >> a;
cin >> b;
cin >> c;
x.Nhap(a, b, c);
cout << "Phuong trinh co dang: ";
x.Xuat();
return 0;
}
- Em thử viết kiểu này nhưng khi nhập giá trị thì nó Không nhận biến
a
mà chỉ nhậnb
vàc
và xuất ra dạng của Pt bậc 1 luôn ạ.
- Có thể còn nhiều phần thiếu sót nhưng xin mấy anh chị chỉ ra lỗi sai của bài làm của em ạ
- Em cảm ơn