01/10/2018, 09:25
Cần giúp đỡ bài toán OOP cho lớp tam giác kế thừa từ lớp điểm
Xây dựng lớp điểm gồm các thành phần tung độ hoành độ. Với các phương thức sau:
+Nạp chồng toán tử nhập>> và xuất <<điểm
+tính khoảng cách 2 điểm
Xây dựng lớp tam giác kế thừa lớp điểm trên,với phương thức tính chu vi tam giác.
Viết chương trình ứng dụng lớp trên.
mình mới làm đc 1 phần mong mọi người giúp
using namespace std;
#include<iostream>
#include<math.h>
class Diem
{
private:
int x;
int y;
public:
friend ostream& operator<<(ostream &os,Diem d);
friend istream& operator>>(istream &is,Diem &d);
};
ostream& operator<<(ostream &os,Diem d)
{
os<<d.x<<";"<<d.y<<endl;
return os;
}
istream& operator>>(istream &is,Diem &d)
{
cout<<"nhap hoanh do:"<<endl;
is>>d.x;
cout<<"nhap tung do:"<<endl;
is>>d.y;
}
int main()
{
Diem diem1,diem2;
cin>>diem1;
cout<<"toa do diem 1 la:"<<diem1;
cin>>diem2;
cout<<"toa do diem 2 la:"<<diem2;
return 0;
}
Bài liên quan
Hi Trọng Hoàng.
Tam giác có phải là 1 điểm không mà lại kế thừ từ lớp điểm vậy ?
kế thừa từ lớp Điểm trên ạ
Hi Trọng Hoàng.
Tam giác có phải là 1 điểm không mà lại kế thừ từ lớp điểm vậy ??
t thấy đề bài vậy thui ạ.
Hi Trọng Hoàng.
Tam giác có phải là 1 điểm không mà lại kế thừ từ lớp điểm vậy ??
Đề bài vậy thì đừng làm nữa.
từ đề bài như vậy bạn hiểu như thế nào bạn làm như vậy hộ mk đc k
Hi Trọng Hoàng.
Tam giác có phải là 1 điểm không mà lại kế thừa từ lớp điểm vậy ?
mk k hiểu ý bạn.theo mk hiểu thì cái lớp tam giác ấy nó kế thừa phần tính khoảng cách và phần nhập xuất điểm.tam giác có 3 điểm
Mình không nghĩ là kế thừa, mà là mỗi đối tượng thuộc lớp tam giác sẽ có 3 thuộc tính điểm. Giống như mỗi đối tượng thuộc lớp điểm sẽ có 2 thuộc tính số thực thôi.
bạn có thể làm rõ hơn giúp mk đc k mk mới học nên k hiểu cho lắm
mình cũng mới học.
Mình nghĩ là phải là quan hệ kết tập chứ không phải kế thừa.
Vì tam giác là tập hợp của 3 điểm.
Nên mình nghĩ nó là quan hệ kết tập.
Còn kế thừa thì ví dụ như tam giac, hình chữ nhât, hình vuông kế thừa từ lớp Hình chẳng hạn.
Tức là nó phải gần như cùng kiểu ấy chỉ khác là thêm mỗi cái thêm một số thứ .
…
Mk cũng thấy nó thế nào ý.bạn làm đc bài trên k giúp mk
mình có la làm bản kế thừa bình thường và chưa dùng operator
#include
#include <math.h>
using namespace std;
class DIEM
{
private:
int x,y;
public:
float KC2D(DIEM d)
{
return sqrt((d.x-x,2)+(d.y-y,2));
}
void in()
{
cout<<"\nnhap hoanh do x:"; cin>>x;
cout<<“nhap tung do y :”; cin>>y;
}
void out()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
};
class TAMGIAC:public DIEM // lop TAMGIAC ke thua lop DIEM
{ private :
DIEM d1,d2,d3;
float AB,AC,BC;
public:
float Dientich();
float chuvi();
bool kiemtra();
void nhap()
{
cout<<“nhap dinh A:”;
d1.in();
cout<<“nhap dinh B:”;
d2.in();
cout<<“nhap dinh C:”;
d3.in();
}
void xuat()
{
cout<<"Dinh A co toa do la ";
d1.out();
cout<<“Dinh B co toa do la”;
d2.out();
cout<<“Dinh C co toa do la”;
d3.out();
AB=d1.KC2D(d2);
BC=d2.KC2D(d3);
AC=d1.KC2D(d3);
cout<<“AB=”<<AB<<endl;
cout<<“BC=”<<BC<<endl;
cout<<“AC=”<<AC<<endl;
}
};
float TAMGIAC::chuvi()
{
return AB+AC+BC;
}
float TAMGIAC::Dientich()
{
float p=chuvi()/2;
return sqrt(p*(p-AB)(p-BC)(p-AC));
}
bool TAMGIAC::kiemtra()
{
if(AB+BC>AC&&AB+AC>BC&&BC+AC>AB)
return true;
}
main()
{
TAMGIAC TG;
TG.nhap();
TG.xuat();
if(TG.kiemtra()==true)
{
cout<<“dien tich tam giac =”<<TG.Dientich()<<endl;
cout<<“chu vi tam giac =”<<TG.chuvi();
} else cout<<“TOA DO BA DINH TAM GIAC KHONG HOP LE!!”;
}
Đoạn dưới void xuất khó xem quá bạn ơi
Vs ở chỗ khoảng cách bạn thiếu pow sao ý
http://codepad.org/BEtq3cM2
đúng r mình có thiếu pow đó
Bh có cách nào mk dùng operator đc k bạn