#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main(void)
{
double x1,y1,z1,x2,y2,z2;
double d1,d2,d,p,s;
char name[20];
int k;
FILE *fp;
for(k=1;k<=80;k++)
{
if(k<=20)
printf(" ");
else if(k>20&&k<61)
printf("-");
else if(k>=61)
printf(" ");
}
printf("\n");
printf(" | 空间点面计算工具 | \n");
for(k=1;k<=80;k++)
{
if(k<=20)
printf(" ");
else if(k==21)
printf("|");
else if(k>21&&k<60)
printf(" ");
else if(k==60)
printf("|");
else if(k>60)
printf(" ");
}
printf("\n");
printf(" | 作者: 马季 | ");
for(k=1;k<=80;k++)
printf("-");
printf("输入a点坐标:");
scanf("%lf %lf %lf",&x1,&y1,&z1);
printf("\n");
printf("输入b点坐标:");
scanf("%lf %lf %lf",&x2,&y2,&z2);
for(k=1;k<=80;k++)
printf("-");
d1=sqrt(x1*x1+y1*y1+z1*z1);
d2=sqrt(x2*x2+y2*y2+z2*z2);
d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));
if((x1/x2!=-1)&&(y1/y2!=-1)&&(z1/z2!=-1))
{
p=(d1+d2+d)/2;
s=sqrt(p*(p-d1)*(p-d2)*(p-d));
printf("\n");
printf("OA距离:%-10.4lf\n\n",d1);
printf("OB距离:%-10.4lf\n\n",d2);
printf("AB距离:%-10.4lf\n\n",d);
printf("OAB面积:%-10.4lf\n\n",s);
for(k=1;k<=80;k++)
printf("-");
printf("输入数据存储文件名:");
scanf("%s",name);
if((fp=fopen(name,"w+"))==NULL)
{
printf("文件出错!");
exit(0);
}
fprintf(fp,"OA距离: %-10.4lf\nOB距离: %-10.4lf\nAB距离: %-10.4lf\nOAB面积: %-10.4lf",d1,d2,d,s);
fclose(fp);
for(k=1;k<=80;k++)
printf("-");
}
else
{
printf("OA距离:%-10.4lf\n\n",d1);
printf("OB距离:%-10.4lf\n\n",d2);
printf("AB距离:%-10.4lf\n\n",d);
printf("OAB在一条直线上\n\n");
for(k=1;k<=80;k++)
printf("-");
printf("输入数据存储文件名:");
scanf("%s",name);
if((fp=fopen(name,"w+"))==NULL)
{
printf("文件出错!");
exit(0);
}
fprintf(fp,"OA距离: %-10.4lf\nOB距离: %-10.4lf\nAB距离: %-10.4lf\nOAB在一条直线上",d1,d2,d);
fclose(fp);
for(k=1;k<=80;k++)
printf("-");
}
system("pause");
}