//散点计算.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "c:\胡兴宏\hxh.h"
struct gccg
{
char cz[10];
char cd[10];
double spj;
double cjj;
double sd;
double yg;
double zg;
}cg[5000];
struct yzdcg
{725
char dm[10];
double x;
double y;
double z;
}yzd[500];
struct ffyzdcg
{
char dm[10];
char x[20];
char y[20];
char z[20];
}ffyzd[5000];
struct sjkcg
{
char dm[10];
double x;
double y;
double z;
}kcg[5000];
struct ffsjkcg
{
char dm[10];
char x[20];
char y[20];
char z[20];
}ffkcg[5000];
struct jscg
{
char dm[10];
double x0;
double y0;
double z0;
}cggg[5000];
void main()
{
FILE *fp11;
FILE *fp12;
char yssj[5000][150];
char *spjj,*ccjj,*ccd,*zzg,*czd,*b,*ygg,*hsd,*czqz,*hssp,*hssj;
double spj,cjj,fw,czx,czy,hsx,hsy,czz,pdf;
int yzds,jlgs,kgs;
int i,j,k,qzd,czddd,hsddd,h;
char *wj1="c:/Program Files/拓普康测试版/";
char *wj3=".cor";
char wj2[20];
char wj[80];
int zfcd;
int dhwz[7];
char *da[7];
int cggs,dhgs,czcg;
printf("请输入拓普康数据文件名:(C:/Program Files/拓普康测试版/*.cor)\n");
scanf("%s",wj2);
for(i=0;wj1[i]!='\0';i++)
wj[i]=wj1[i];
for(j=0;wj2[j]!='\0';j++)
wj[i+j]=wj2[j];
for(k=0;wj3[k]!='\0';k++)
wj[i+j+k]=wj3[k];
wj[i+j+k]='\0';
if((fp11=fopen(wj,"r"))==NULL)
{
printf("C:/Program Files/拓普康测试版没有%s.cor文件\n",wj2);
return;
}
fp12=fopen("c:/胡兴宏/散点计算/观测记录.txt","w");
i=0;
while(!feof(fp11))
{
i++;
fscanf(fp11,"%s",&yssj[i]);
}
jlgs=i+1;
cggs=0;
czcg=0;
for(i=1;i<jlgs;i++)
{
//取测站点号
dhgs=zfgs(yssj[i],',');
b=yssj[i];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
zfcd=strlen(da[0]);
czqz=zfdw(da[0],1,4);
if(strcmp(czqz,"测站")==0)
{
czd=zfdw(da[0],7,zfcd);
for(j=0;czd[j]!='\0';j++)
cg[cggs].cz[j]=czd[j];
cg[cggs].cz[j]='\0';
//取后视点号、仪高
dhgs=zfgs(yssj[i+1],',');
b=yssj[i+1];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[0]);
ygg=zfdw(da[0],7,zfcd);
cg[cggs].yg=bsz1(ygg);
da[1]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[1]);
hsd=zfdw(da[0],7,zfcd);
for(j=0;hsd[j]!='\0';j++)
cg[cggs].cd[j]=hsd[j];
cg[cggs].cd[j]='\0';
dhgs=zfgs(yssj[i+2],',');
b=yssj[i+2];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[0]);
hssp=zfdw(da[0],9,zfcd);
cg[cggs].spj=jdzfbh(hssp);
da[1]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[1]);
hssj=zfdw(da[1],9,zfcd);
cg[cggs].cjj=jdzfbh(hssj);
dhgs=zfgs(yssj[i+3],',');
b=yssj[i+3];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
cg[cggs].sd=bsz1(da[0]);
dhgs=zfgs(yssj[i+4],',');
b=yssj[i+4];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[0]);
zzg=zfdw(da[0],9,zfcd);
cg[cggs].zg=bsz1(zzg);
i=i+4;
czcg=cggs;
cggs++;
}
else
{
for(j=0;cg[czcg].cz[j]!='\0';j++)
cg[cggs].cz[j]=cg[czcg].cz[j];
cg[cggs].cz[j]='\0';
cg[cggs].yg=cg[czcg].yg;
//取点号、水平角、垂直角
ccd=zfdw(da[0],7,zfcd);
for(j=0;ccd[j]!='\0';j++)
cg[cggs].cd[j]=ccd[j];
cg[cggs].cd[j]='\0';
da[1]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[1]);
spjj=zfdw(da[1],9,zfcd);
cg[cggs].spj=jdzfbh(spjj);
da[2]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[2]);
ccjj=zfdw(da[2],9,zfcd);
cg[cggs].cjj=jdzfbh(ccjj);
//取斜距
dhgs=zfgs(yssj[i+1],',');
b=yssj[i+1];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
cg[cggs].sd=bsz1(da[0]);
//取砧高
dhgs=zfgs(yssj[i+2],',');
b=yssj[i+2];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[0]);
zzg=zfdw(da[0],9,zfcd);
cg[cggs].zg=bsz1(zzg);
i=i+2;
cggs++;
}}
//成果输出
for(i=0;i<cggs;i++)
fprintf(fp12,"%s %s %8.4f %8.4f %9.3f %6.3f %6.3f\n",cg[i].cz,cg[i].cd,cg[i].spj,cg[i].cjj,cg[i].sd,cg[i].yg,cg[i].zg);
//////////////
jlgs=cggs;
FILE *fp1;
FILE *fp2;
FILE *fp3;
FILE *fp4;
FILE *fp5;
FILE *fp6;
fp1=fopen("c:/胡兴宏/散点计算/已知点成果.txt","r");
fp2=fopen("c:/胡兴宏/散点计算/观测记录.txt","r");
fp3=fopen("C:/Program Files/AutoCAD R14/hkgtxt/jzdcg.txt","w");
fp4=fopen("c:/胡兴宏/散点计算/数据成果库.txt","a+");
fp5=fopen("c:/胡兴宏/散点计算/数据成果.txt","w");
fp6=fopen("c:/胡兴宏/散点计算/KASS数据格式.txt","w");
i=0;
while(!feof(fp1))
{
fscanf(fp1,"%s %s %s %s",&yzd[i].dm,&ffyzd[i].x,&ffyzd[i].y,&ffyzd[i].z);
yzd[i].x=bsz1(ffyzd[i].x);
yzd[i].y=bsz1(ffyzd[i].y);
yzd[i].z=bsz1(ffyzd[i].z);
i++;
}
yzds=i;
i=0;
while(!feof(fp4))
{
fscanf(fp4,"%s %s %s %s",&kcg[i].dm,&ffkcg[i].x,&ffkcg[i].y,&ffkcg[i].z);
kcg[i].x=bsz1(ffkcg[i].x);
kcg[i].y=bsz1(ffkcg[i].y);
kcg[i].z=bsz1(ffkcg[i].z);
i++;
}
if(strcmp(kcg[i].dm,"")==0)
kgs=i-1;
else
kgs=i;
cggs=jlgs-1;
qzd=0;k=1;h=0;
pdf=1.0;czx=0.0;
//从已知点成果、库成果找测站点、后视点
for(j=0;j<yzds;j++)
if(strcmp(cg[qzd].cz,yzd[j].dm)==0)
{czddd=j;
czx=yzd[czddd].x;
czy=yzd[czddd].y;
czz=yzd[czddd].z;
pdf=9.9;
}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cz,kcg[j].dm)==0)
{
czddd=j;
czx=kcg[czddd].x;
czy=kcg[czddd].y;
czz=kcg[czddd].z;pdf=9.9;
}
if(pdf<9.9){printf("找不到已知点:%s\n",cg[qzd].cz);}
pdf=1.0;
hsx=0.0;
for(j=0;j<yzds;j++)
if(strcmp(cg[qzd].cd,yzd[j].dm)==0)
{hsddd=j;
hsx=yzd[hsddd].x;
hsy=yzd[hsddd].y;pdf=9.9;
}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cd,kcg[j].dm)==0)
{
hsddd=j;
hsx=kcg[hsddd].x;
hsy=kcg[hsddd].y;pdf=9.9;}
if(pdf<9.9){printf("找不到后视点:%s\n",cg[qzd].cd);}
fw=zbfs(czx,czy,hsx,hsy);
for(i=1;i<jlgs;i++)
{
if(strcmp(cg[i].cz,cg[qzd].cz)==0)
{
k++;
spj=jdhhd(cg[i].spj);
cjj=jdhhd(cg[i].cjj);
spj=spj+fw;
strcpy(cggg[h].dm,cg[i].cd);
cggg[h].x0=cg[i].sd*sin(cjj)*cos(spj)+czx;
cggg[h].y0=cg[i].sd*sin(cjj)*sin(spj)+czy;
cggg[h].z0=czz+cg[i].sd*cos(cjj)+cg[i].yg-cg[i].zg;h++;
}
else
{qzd=k;k++;
cggs=cggs-1;
czx=0.0;pdf=2.0;
//从已知点成果、库成果、计算成果找测站点、后视点
for(j=0;j<yzds;j++)
{
if(strcmp(cg[qzd].cz,yzd[j].dm)==0)
{czddd=j;
czx=yzd[czddd].x;
czy=yzd[czddd].y;
czz=yzd[czddd].z;pdf=9.9;}
}
if(pdf<9.9)
for(j=0;j<h;j++)
if(strcmp(cg[qzd].cz,cggg[j].dm)==0)
{
czddd=j;
czx=cggg[czddd].x0;
czy=cggg[czddd].y0;
czz=cggg[czddd].z0;pdf=9.9;}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cz,kcg[j].dm)==0)
{
czddd=j;
czx=kcg[czddd].x;
czy=kcg[czddd].y;
czz=kcg[czddd].z;pdf=9.9;}
if(pdf<9.9){printf("找不到已知点:%s\n",cg[qzd].cz);break;}
hsx=0.0;pdf=2.0;
for(j=0;j<yzds;j++)
{
if(strcmp(cg[qzd].cd,yzd[j].dm)==0)
{
hsddd=j;
hsx=yzd[hsddd].x;
hsy=yzd[hsddd].y;pdf=9.9;}
}
if(pdf<9.9)
for(j=0;j<h;j++)
if(strcmp(cg[qzd].cd,cggg[j].dm)==0)
{
hsddd=j;
hsx=cggg[hsddd].x0;
hsy=cggg[hsddd].y0;pdf=9.9;}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cd,kcg[j].dm)==0)
{
hsddd=j;
hsx=kcg[hsddd].x;
hsy=kcg[hsddd].y;pdf=9.9;}
if(pdf<9.9){printf("找不到后视点:%s\n",cg[qzd].cd);break;}
fw=zbfs(czx,czy,hsx,hsy);
}}
for(i=0;i<cggs;i++)
{
fprintf(fp3,"\"%-s\" %12.3f %12.3f \"%6.2f\"\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
/*fprintf(fp3,"\"%-s\" %12.3f %12.3f %6.3f\n",cg[i].dm,cg[i].x0,cg[i].y0,cg[i].z0);*/
fprintf(fp4,"%-s %12.3f %12.3f %12.3f\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
fprintf(fp5,"%-s %12.3f %12.3f %12.3f\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
fprintf(fp6,"%-s,,%.3f,%.3f,%.3f\n",cggg[i].dm,cggg[i].y0,cggg[i].x0,cggg[i].z0);
}
fclose(fp11);
fclose(fp12);
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
fclose(fp5);
fclose(fp6);
printf("******程序运行正常,转换计算完毕!******\n");
printf("******若要进一步检查观测数据,可在观测记录中查找!******\n");
}
//
#include "stdafx.h"
#include "c:\胡兴宏\hxh.h"
struct gccg
{
char cz[10];
char cd[10];
double spj;
double cjj;
double sd;
double yg;
double zg;
}cg[5000];
struct yzdcg
{725
char dm[10];
double x;
double y;
double z;
}yzd[500];
struct ffyzdcg
{
char dm[10];
char x[20];
char y[20];
char z[20];
}ffyzd[5000];
struct sjkcg
{
char dm[10];
double x;
double y;
double z;
}kcg[5000];
struct ffsjkcg
{
char dm[10];
char x[20];
char y[20];
char z[20];
}ffkcg[5000];
struct jscg
{
char dm[10];
double x0;
double y0;
double z0;
}cggg[5000];
void main()
{
FILE *fp11;
FILE *fp12;
char yssj[5000][150];
char *spjj,*ccjj,*ccd,*zzg,*czd,*b,*ygg,*hsd,*czqz,*hssp,*hssj;
double spj,cjj,fw,czx,czy,hsx,hsy,czz,pdf;
int yzds,jlgs,kgs;
int i,j,k,qzd,czddd,hsddd,h;
char *wj1="c:/Program Files/拓普康测试版/";
char *wj3=".cor";
char wj2[20];
char wj[80];
int zfcd;
int dhwz[7];
char *da[7];
int cggs,dhgs,czcg;
printf("请输入拓普康数据文件名:(C:/Program Files/拓普康测试版/*.cor)\n");
scanf("%s",wj2);
for(i=0;wj1[i]!='\0';i++)
wj[i]=wj1[i];
for(j=0;wj2[j]!='\0';j++)
wj[i+j]=wj2[j];
for(k=0;wj3[k]!='\0';k++)
wj[i+j+k]=wj3[k];
wj[i+j+k]='\0';
if((fp11=fopen(wj,"r"))==NULL)
{
printf("C:/Program Files/拓普康测试版没有%s.cor文件\n",wj2);
return;
}
fp12=fopen("c:/胡兴宏/散点计算/观测记录.txt","w");
i=0;
while(!feof(fp11))
{
i++;
fscanf(fp11,"%s",&yssj[i]);
}
jlgs=i+1;
cggs=0;
czcg=0;
for(i=1;i<jlgs;i++)
{
//取测站点号
dhgs=zfgs(yssj[i],',');
b=yssj[i];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
zfcd=strlen(da[0]);
czqz=zfdw(da[0],1,4);
if(strcmp(czqz,"测站")==0)
{
czd=zfdw(da[0],7,zfcd);
for(j=0;czd[j]!='\0';j++)
cg[cggs].cz[j]=czd[j];
cg[cggs].cz[j]='\0';
//取后视点号、仪高
dhgs=zfgs(yssj[i+1],',');
b=yssj[i+1];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[0]);
ygg=zfdw(da[0],7,zfcd);
cg[cggs].yg=bsz1(ygg);
da[1]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[1]);
hsd=zfdw(da[0],7,zfcd);
for(j=0;hsd[j]!='\0';j++)
cg[cggs].cd[j]=hsd[j];
cg[cggs].cd[j]='\0';
dhgs=zfgs(yssj[i+2],',');
b=yssj[i+2];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[0]);
hssp=zfdw(da[0],9,zfcd);
cg[cggs].spj=jdzfbh(hssp);
da[1]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[1]);
hssj=zfdw(da[1],9,zfcd);
cg[cggs].cjj=jdzfbh(hssj);
dhgs=zfgs(yssj[i+3],',');
b=yssj[i+3];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
cg[cggs].sd=bsz1(da[0]);
dhgs=zfgs(yssj[i+4],',');
b=yssj[i+4];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[0]);
zzg=zfdw(da[0],9,zfcd);
cg[cggs].zg=bsz1(zzg);
i=i+4;
czcg=cggs;
cggs++;
}
else
{
for(j=0;cg[czcg].cz[j]!='\0';j++)
cg[cggs].cz[j]=cg[czcg].cz[j];
cg[cggs].cz[j]='\0';
cg[cggs].yg=cg[czcg].yg;
//取点号、水平角、垂直角
ccd=zfdw(da[0],7,zfcd);
for(j=0;ccd[j]!='\0';j++)
cg[cggs].cd[j]=ccd[j];
cg[cggs].cd[j]='\0';
da[1]=zfdw(b,dhwz[1]+1,dhwz[2]-1);
zfcd=strlen(da[1]);
spjj=zfdw(da[1],9,zfcd);
cg[cggs].spj=jdzfbh(spjj);
da[2]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[2]);
ccjj=zfdw(da[2],9,zfcd);
cg[cggs].cjj=jdzfbh(ccjj);
//取斜距
dhgs=zfgs(yssj[i+1],',');
b=yssj[i+1];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[0]+1,dhwz[1]-1);
cg[cggs].sd=bsz1(da[0]);
//取砧高
dhgs=zfgs(yssj[i+2],',');
b=yssj[i+2];
k=0;
for(j=0;j<dhgs;j++)
{
for(h=k;b[h]!='\0';h++)
{
if(b[h]==',') {dhwz[j+1]=h+1;k=h+1;break;}}}
dhwz[0]=0;
j=0;
for(h=0;b[h]!='\0';h++) j++;
zfcd=j;
dhwz[dhgs+1]=zfcd+1;
da[0]=zfdw(b,dhwz[2]+1,dhwz[3]-1);
zfcd=strlen(da[0]);
zzg=zfdw(da[0],9,zfcd);
cg[cggs].zg=bsz1(zzg);
i=i+2;
cggs++;
}}
//成果输出
for(i=0;i<cggs;i++)
fprintf(fp12,"%s %s %8.4f %8.4f %9.3f %6.3f %6.3f\n",cg[i].cz,cg[i].cd,cg[i].spj,cg[i].cjj,cg[i].sd,cg[i].yg,cg[i].zg);
//////////////
jlgs=cggs;
FILE *fp1;
FILE *fp2;
FILE *fp3;
FILE *fp4;
FILE *fp5;
FILE *fp6;
fp1=fopen("c:/胡兴宏/散点计算/已知点成果.txt","r");
fp2=fopen("c:/胡兴宏/散点计算/观测记录.txt","r");
fp3=fopen("C:/Program Files/AutoCAD R14/hkgtxt/jzdcg.txt","w");
fp4=fopen("c:/胡兴宏/散点计算/数据成果库.txt","a+");
fp5=fopen("c:/胡兴宏/散点计算/数据成果.txt","w");
fp6=fopen("c:/胡兴宏/散点计算/KASS数据格式.txt","w");
i=0;
while(!feof(fp1))
{
fscanf(fp1,"%s %s %s %s",&yzd[i].dm,&ffyzd[i].x,&ffyzd[i].y,&ffyzd[i].z);
yzd[i].x=bsz1(ffyzd[i].x);
yzd[i].y=bsz1(ffyzd[i].y);
yzd[i].z=bsz1(ffyzd[i].z);
i++;
}
yzds=i;
i=0;
while(!feof(fp4))
{
fscanf(fp4,"%s %s %s %s",&kcg[i].dm,&ffkcg[i].x,&ffkcg[i].y,&ffkcg[i].z);
kcg[i].x=bsz1(ffkcg[i].x);
kcg[i].y=bsz1(ffkcg[i].y);
kcg[i].z=bsz1(ffkcg[i].z);
i++;
}
if(strcmp(kcg[i].dm,"")==0)
kgs=i-1;
else
kgs=i;
cggs=jlgs-1;
qzd=0;k=1;h=0;
pdf=1.0;czx=0.0;
//从已知点成果、库成果找测站点、后视点
for(j=0;j<yzds;j++)
if(strcmp(cg[qzd].cz,yzd[j].dm)==0)
{czddd=j;
czx=yzd[czddd].x;
czy=yzd[czddd].y;
czz=yzd[czddd].z;
pdf=9.9;
}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cz,kcg[j].dm)==0)
{
czddd=j;
czx=kcg[czddd].x;
czy=kcg[czddd].y;
czz=kcg[czddd].z;pdf=9.9;
}
if(pdf<9.9){printf("找不到已知点:%s\n",cg[qzd].cz);}
pdf=1.0;
hsx=0.0;
for(j=0;j<yzds;j++)
if(strcmp(cg[qzd].cd,yzd[j].dm)==0)
{hsddd=j;
hsx=yzd[hsddd].x;
hsy=yzd[hsddd].y;pdf=9.9;
}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cd,kcg[j].dm)==0)
{
hsddd=j;
hsx=kcg[hsddd].x;
hsy=kcg[hsddd].y;pdf=9.9;}
if(pdf<9.9){printf("找不到后视点:%s\n",cg[qzd].cd);}
fw=zbfs(czx,czy,hsx,hsy);
for(i=1;i<jlgs;i++)
{
if(strcmp(cg[i].cz,cg[qzd].cz)==0)
{
k++;
spj=jdhhd(cg[i].spj);
cjj=jdhhd(cg[i].cjj);
spj=spj+fw;
strcpy(cggg[h].dm,cg[i].cd);
cggg[h].x0=cg[i].sd*sin(cjj)*cos(spj)+czx;
cggg[h].y0=cg[i].sd*sin(cjj)*sin(spj)+czy;
cggg[h].z0=czz+cg[i].sd*cos(cjj)+cg[i].yg-cg[i].zg;h++;
}
else
{qzd=k;k++;
cggs=cggs-1;
czx=0.0;pdf=2.0;
//从已知点成果、库成果、计算成果找测站点、后视点
for(j=0;j<yzds;j++)
{
if(strcmp(cg[qzd].cz,yzd[j].dm)==0)
{czddd=j;
czx=yzd[czddd].x;
czy=yzd[czddd].y;
czz=yzd[czddd].z;pdf=9.9;}
}
if(pdf<9.9)
for(j=0;j<h;j++)
if(strcmp(cg[qzd].cz,cggg[j].dm)==0)
{
czddd=j;
czx=cggg[czddd].x0;
czy=cggg[czddd].y0;
czz=cggg[czddd].z0;pdf=9.9;}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cz,kcg[j].dm)==0)
{
czddd=j;
czx=kcg[czddd].x;
czy=kcg[czddd].y;
czz=kcg[czddd].z;pdf=9.9;}
if(pdf<9.9){printf("找不到已知点:%s\n",cg[qzd].cz);break;}
hsx=0.0;pdf=2.0;
for(j=0;j<yzds;j++)
{
if(strcmp(cg[qzd].cd,yzd[j].dm)==0)
{
hsddd=j;
hsx=yzd[hsddd].x;
hsy=yzd[hsddd].y;pdf=9.9;}
}
if(pdf<9.9)
for(j=0;j<h;j++)
if(strcmp(cg[qzd].cd,cggg[j].dm)==0)
{
hsddd=j;
hsx=cggg[hsddd].x0;
hsy=cggg[hsddd].y0;pdf=9.9;}
if(pdf<9.9)
for(j=0;j<kgs;j++)
if(strcmp(cg[qzd].cd,kcg[j].dm)==0)
{
hsddd=j;
hsx=kcg[hsddd].x;
hsy=kcg[hsddd].y;pdf=9.9;}
if(pdf<9.9){printf("找不到后视点:%s\n",cg[qzd].cd);break;}
fw=zbfs(czx,czy,hsx,hsy);
}}
for(i=0;i<cggs;i++)
{
fprintf(fp3,"\"%-s\" %12.3f %12.3f \"%6.2f\"\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
/*fprintf(fp3,"\"%-s\" %12.3f %12.3f %6.3f\n",cg[i].dm,cg[i].x0,cg[i].y0,cg[i].z0);*/
fprintf(fp4,"%-s %12.3f %12.3f %12.3f\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
fprintf(fp5,"%-s %12.3f %12.3f %12.3f\n",cggg[i].dm,cggg[i].x0,cggg[i].y0,cggg[i].z0);
fprintf(fp6,"%-s,,%.3f,%.3f,%.3f\n",cggg[i].dm,cggg[i].y0,cggg[i].x0,cggg[i].z0);
}
fclose(fp11);
fclose(fp12);
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
fclose(fp5);
fclose(fp6);
printf("******程序运行正常,转换计算完毕!******\n");
printf("******若要进一步检查观测数据,可在观测记录中查找!******\n");
}
