Code C\C++: Sử dụng struct trong hình không gian


/*

Viết chương trình:
-          Nhập vào tọa độ 3 điểm A,B,C trong không gian
-          Kiểm tra tính thẳng hàng của A,B,C
-          Nếu A,B,C không thẳng hàng thì tìm tọa độ trọng tâm G của
-          Ghi tọa độ A,B,C và tọa độ trọng tâm tam giác ABC vào file có tên là TamGiac.txt trong ổ đĩa E:\


*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
 // khai bao cau truc
 struct ToaDo{
float x,y,z;
 };
 ToaDo A,B,C; // khai bao 3 bien có kiem la ToaDo
 // nhap toa do
 void Nhap(){
  printf("\n Nhap toa do diem A: ");
printf("\n x : ");   scanf("%f",&A.x);
printf("\n y : ");   scanf("%f",&A.y);
printf("\n z : ");   scanf("%f",&A.z);
  printf("\n Nhap toa do diem B: ");
printf("\n x : ");   scanf("%f",&B.x);
printf("\n y : ");   scanf("%f",&B.y);
printf("\n z : ");   scanf("%f",&B.z);
  printf("\n Nhap toa do diem C: ");
printf("\n x : ");   scanf("%f",&C.x);
printf("\n y : ");   scanf("%f",&C.y);
printf("\n z : ");   scanf("%f",&C.z);
 }
 // kiem tra tinh thang hang
 int KiemTraThangHang(){
  float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));//AB
  float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));//AC
  float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));//BC

  if (d1+d2==d3||d1+d3==d2||d2+d3==d1)
return 1; // thang hang
  return 0;// khong thang hang
 }
 // chu vi, dien tich tam giac
 void ChuVi_DienTich(){
if(KiemTraThangHang()==1) printf("\n 3 diem A,B,C thang hang");
else {
float d1=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));
float d2=sqrt((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y)+(A.z-C.z)*(A.z-C.z));
float d3=sqrt((C.x-B.x)*(C.x-B.x)+(C.y-B.y)*(C.y-B.y)+(C.z-B.z)*(C.z-B.z));
// chu vi
float c=d1+d2+d3;
// dien tich
float p=c/2;
float s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
printf("\n Chu vi = %f ; Dien tich = %f ",c,s);

}
 }
 // Tinh toa do trong tam G
 ToaDo TrongTam(){
ToaDo G;
  G.x=(A.x+B.x+C.x)/3;
  G.y=(A.y+B.y+C.y)/3;
  G.z=(A.z+B.z+C.z)/3;
  return G;
 }
 // GHI VAO FILE
 void GhiFile(){
  FILE *f;
  f=fopen("E:\\TamGiac.txt","w");
  fwrite(&A,sizeof(A),1,f);
  fwrite(&B,sizeof(B),1,f);
  fwrite(&C,sizeof(C),1,f);
  fclose(f);
 }
int main(){
Nhap();
ChuVi_DienTich();
printf("\n Toa do trong tam G:(%f,%f,%f)",TrongTam().x,TrongTam().y,TrongTam().z );
GhiFile();
 getch();
 return 0;
}