资源简介
用于全站仪坐标导线平差、使用方法以及具体步骤在readme文件里。
代码片段和文件信息
#include
#include
#include
#include
void main()
{
int nicd;
double A;
double kfm;
double sh=0.0;
FILE *fp;
char tstr[5]; //变量名前加t表示临时变量
double tatbtz;
struct coordinate
{
char str[5];
double x;
double y;
double z;
};
struct coordinate *p;
double *_p*_H;
printf(“\n“);
printf(“=======================<全站仪闭合导线坐标平差程序>============================\n\a“);
for(i = 0; i <=2 ; i ++ )
{
printf(“\n\a“);
}
printf(“使用前请仔细阅读自述文件(readme.txt)\n\a“);
for(i = 0; i <=2 ; i ++ )
{
printf(“\n\a“);
}
printf(“请输入控制点闭合圈的标号\n\a“);
printf(“-->\a“);
scanf(“%d“&d);
printf(“请输入全部控制点个数\n\a“);
printf(“-->\a“);
scanf(“%d“&n);
p=(struct coordinate *)calloc(n+1sizeof(struct coordinate)); //用于存储坐标数据
_p=(double *)calloc(n-1sizeof(double)); //用于存贮边长的数组
_H=(double *)calloc(n-1sizeof(double));
printf(“下面开始按顺序输入控制点坐标\n\a“);
for(i = 0; i< n+1; i++)
{
printf(“-->\a“);
scanf(“%s“tstr);
strcpy((*(p+i)).str tstr);
scanf(“%lf%lf%lf“&ta&tb&tz);
(*(p+i)).x = ta;
(*(p+i)).y = tb;
(*(p+i)).z = tz;
}
printf(“=============================请检核你所输入的数据=============================\n\a“);
for(i = 0; i {
printf(“%5s x=%lfy=%lfz=%lf\n\a“(*(p+i)).str(*(p+i)).x(*(p+i)).y(*(p+i)).z);
}
printf(“下一步?Y<1>N<0>\n\a“);
printf(“-->\a“);
scanf(“%d“&c);
if(c==0)
{ printf(“程序已终止运行!\n\a“);
system(“PAUSE“);//窗口停留
exit(0);
}
else
{
//////////////////////////////////////////////////////////////////
if((fp = fopen(“log.txt““a“)) == NULL)
{
printf(“===========================日志创建失败!=============================\n\a“);
system(“PAUSE“);//窗口停留
exit(0);
}
else
{
fprintf(fp“============================第%d个控制点闭合圈=============================\n“d);
fprintf(fp“==============================坐标原始数据================================\n“);
for(i = 0; i< n+1; i++)
{
fprintf(fp“%5s x=%lfy=%lfz=%lf\n“(*(p+i)).str(*(p+i)).x(*(p+i)).y(*(p+i)).z);
}
fprintf(fp“=================================平差后坐标===============================\n“);
////////以上为创建日志////////////////////////////////////////////////////
printf(“======================================开始平差==============================\n\a“);
}
}
for(i = 1; i < n;i ++)
{
s=0.0;
s=sqrt(pow((*(p+i+1)).x-(*(p+i)).x2)+pow((*(p+i+1)).y-(*(p+i)).y2));
*(_p+i-1) = s;
h = h + s;
*(_H+i-1) = (*(p+i+1)).z-(*(p+i)).z;
}
printf(“<边长和为>:∑=%lf\n\a“h); //显示在屏幕上
fprintf(fp“<边长和为>:∑=%lf\n“h); //写进日志
printf(“<各边边长与高差如下>\n\a“); // 显示在屏幕上
fprintf(fp“<各边边长如下>\n“); //写进日志
for(i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6693 2012-08-04 17:56 CoordinateV3.0\coordinate.c
文件 1267 2012-06-17 22:04 CoordinateV3.0\readme.txt
文件 73728 2012-08-04 17:58 CoordinateV3.0\Release\coordinate.exe
文件 15187 2012-06-23 19:36 CoordinateV3.0\Release\coordinate.obj
文件 251716 2012-06-17 21:14 CoordinateV3.0\Release\coordinate.pch
文件 6861 2012-06-24 10:28 CoordinateV3.0\Release\log.txt
文件 33792 2012-06-23 19:36 CoordinateV3.0\Release\vc60.idb
目录 0 2012-12-24 11:25 CoordinateV3.0\Release
目录 0 2012-12-24 11:25 CoordinateV3.0
----------- --------- ---------- ----- ----
389244 9
- 上一篇:group lasso
- 下一篇:linpop neusoft
评论
共有 条评论