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;
}
Tao Không Ngu. viết 11:32 ngày 01/10/2018

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 ?

Trọng Hoàng viết 11:33 ngày 01/10/2018

kế thừa từ lớp Điểm trên ạ

Tao Không Ngu. viết 11:35 ngày 01/10/2018

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 ??

Trọng Hoàng viết 11:37 ngày 01/10/2018

t thấy đề bài vậy thui ạ.

Tao Không Ngu. viết 11:37 ngày 01/10/2018

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.

Trọng Hoàng viết 11:38 ngày 01/10/2018

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

Tao Không Ngu. viết 11:41 ngày 01/10/2018

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 ?

Trọng Hoàng viết 11:38 ngày 01/10/2018

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

Trần Hoàn viết 11:36 ngày 01/10/2018

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.

Trần Hoàn viết 11:25 ngày 01/10/2018
class TamGiac
{
    private:
        Diem A;
        Diem B;
        Diem C;
    public:
        ...
}
Trọng Hoàng viết 11:35 ngày 01/10/2018

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

guo_da viết 11:41 ngày 01/10/2018

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ứ .

Trọng Hoàng viết 11:33 ngày 01/10/2018

Mk cũng thấy nó thế nào ý.bạn làm đc bài trên k giúp mk

tô đình duy viết 11:33 ngày 01/10/2018

mình có la làm bản kế thừa bình thường và chưa dùng operator

tô đình duy viết 11:35 ngày 01/10/2018

#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!!”;
}

Trọng Hoàng viết 11:32 ngày 01/10/2018

Đoạn dưới void xuất khó xem quá bạn ơi

Trọng Hoàng viết 11:29 ngày 01/10/2018

Vs ở chỗ khoảng cách bạn thiếu pow sao ý

tô đình duy viết 11:37 ngày 01/10/2018

http://codepad.org/BEtq3cM2

tô đình duy viết 11:31 ngày 01/10/2018

đúng r mình có thiếu pow đó

Trọng Hoàng viết 11:40 ngày 01/10/2018

Bh có cách nào mk dùng operator đc k bạn

Bài liên quan
0