#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");

}