Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 giúp đỡ về bài tập C++
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
trinhquocviet
Member

trinhquocviet
Member
Giới tính : Nam
Tuổi : 28
Posts Posts : 2
Coins Coins : 7
Thanked Thanked : 0
giúp đỡ về bài tập C++ Empty

Chào mấy anh chị, em ở khóa 09 có bài tập lập trình HDT bị lỗi, tất cả chạy đúng riêng chỉ có hàm ToaDo TrongTam() là báo lỗi không thể kết nối dc vào trong thằng ToaDo được, mong dc mấy anh chị giúp đỡ


Code:

#include <stdio.h>
#include <conio.h>
#include <math.h>
class ToaDo
{
   private:
      float x,y;
   public:
      void Nhap();
      void Xuat();
      float KhoangCach(ToaDo B);
};

class TamGiac
{
   private:
      ToaDo A, B, C;
   public:
      void Nhap();
      float ChuVi();
      float DienTich();
      ToaDo TrongTam();
};

void main()
{
   TamGiac X;
   X.Nhap();
   float kq = X.ChuVi();
   printf ("\nChu vi la: %0.2f\n", kq);
   kq = X.DienTich();
   printf ("Dien tich la: %0.2f\n", kq);
   ToaDo k;
   k = X.TrongTam();
   k.Xuat();
}
void ToaDo::Xuat()
{
   printf ("%f - %f \n", x, y);
}
void TamGiac::Nhap()
{
   printf ("Nhap toa do diem A\n");
   A.Nhap();
   printf ("Nhap toa do diem B\n");
   B.Nhap();
   printf ("Nhap toa do diem C\n");
   C.Nhap();
}

void ToaDo::Nhap()
{
   printf ("Nhap x: ");
   scanf ("%f", &x);
   printf ("Nhap y: ");
   scanf ("%f", &y);
}

float TamGiac::ChuVi()
{
   float d1, d2, d3;
   d1= A.KhoangCach(B);
   d2= B.KhoangCach(C);
   d3= C.KhoangCach(A);
   return d1+d2+d3;
}

float TamGiac::DienTich()
{
   float kq;
   kq = ChuVi();
   kq /=2;
   float d1, d2, d3;
   d1= A.KhoangCach(B);
   d2= B.KhoangCach(C);
   d3= C.KhoangCach(A);
   return sqrt(kq*(kq-d1)*(kq-d2)*(kq-d3));
}

ToaDo TamGiac::TrongTam()
{
   ToaDo D;
   D.x= (A.x + B.y + C.y)/3;
   D.y= (A.y + B.y + C.y)/3;
   return D;
}

float ToaDo::KhoangCach(ToaDo B)
{
   float d1, d2;
   d1 = x-B.x;
   d2 = y-B.y;
   return sqrt(d1*d1 + d2*d2);
}

※ Bài viết cùng chuyên mục


http://09dba.com
Tác giảThông điệp
thanhhuyit18
Member

thanhhuyit18
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 6
Coins Coins : -9
Thanked Thanked : 2
giúp đỡ về bài tập C++ Empty


ToaDo TamGiac::TrongTam()
{
ToaDo D;
D.x= (A.x + B.x + C.x)/3;
D.y= (A.y + B.y + C.y)/3;
return D;
}
Suspect

※ Bài viết cùng chuyên mục


Tác giảThông điệp
daokiem_votinh64
Member

daokiem_votinh64
Member
Giới tính : Nam
Tuổi : 31
Posts Posts : 556
Coins Coins : 2157
Thanked Thanked : 168
giúp đỡ về bài tập C++ Empty

[You must be registered and logged in to see this link.] đã viết:
Code:

ToaDo TamGiac::TrongTam()
{
  ToaDo D;
  D.x= (A.x + B.y + C.y)/3;
  D.y= (A.y + B.y + C.y)/3;
  return D;
}

bạn khai báo biến ToaDo D thì dc nhưng đâu có truy xuất tới x,y của D dc vì bạn khai báo x,y private mà
bạn phải tạo ra phương thức lấy x,y của d mới truy xuất dc.Mình học HDT = c#,không biết nói vậy có đúng k?

※ Bài viết cùng chuyên mục


Tác giảThông điệp
trinhquocviet
Member

trinhquocviet
Member
Giới tính : Nam
Tuổi : 28
Posts Posts : 2
Coins Coins : 7
Thanked Thanked : 0
giúp đỡ về bài tập C++ Empty

vậy là chỉ có 2 cách là khai báo x, y trong phần public hoặc là tạo một hàm tính riêng trong phần khai báo lớp ToaDo thôi ah, có cách nào khác ko anh

※ Bài viết cùng chuyên mục


http://09dba.com
Tác giảThông điệp
daokiem_votinh64
Member

daokiem_votinh64
Member
Giới tính : Nam
Tuổi : 31
Posts Posts : 556
Coins Coins : 2157
Thanked Thanked : 168
giúp đỡ về bài tập C++ Empty

Khai báo x,y public thì HDT dc nhưng HDT không cho phép điều đó(thuộc tính luôn luôn dc che dấu).
Tạo phương thức để lấy giái trị của tọa độ là nhanh gọn lẹ và dễ hiểu nhất

Còn nếu bạn biết kế thừa thì mình khai báo x,y protected,thì không cần tạo phương thức để lấy nữa.đứng trong lớp TamGiac vẫn truy xuất dc tới x,y(vì lúc đó TamGiac kế thừa từ ToaDo nên có thể truy xuất mọi thuộc tính của ToaDo.

※ Bài viết cùng chuyên mục


Tác giảThông điệp
Sponsored content


giúp đỡ về bài tập C++ Empty

※ Bài viết cùng chuyên mục


 
giúp đỡ về bài tập C++
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Góc Học Tập :: Những vấn đề chung-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom