找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 720|回复: 7

[求助]:帮忙把这个C程序改成lsp好么?万分感谢中

[复制链接]
发表于 2006-1-23 23:01:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "mem.h"
#define k 0.11
#define bj 6361730
main()
{
       FILE *f1,*m1,*f5;
       char a5[10],a33[10],b1[10],a3[10],a[10];
       char filename[15];
       int l,l1,l2,l3,i,i1;
       int l4,l5;
       float a1,a2,a4,a6;
       double f2,f3,jj1,jj2,jj3,jj4,jj5;
       double jd1,jd2,jd3,jd4,jd5,t;
       double x,y,t1,t2;
       double f4[200],gc;
       double pt ,pp,s1,s2;
       double yqg;
       double zx[300],zy[300],zz[300];
       char *sz[200];
       char f[200][10];
        char *a43="1";
        i=0;l5=0;
        printf("input the filename:");
        gets(filename);
       if ((f1=fopen(filename,"r"))==NULL)
       {
               puts("cannot open file");
               goto end;
       }
       strcat(filename,".XY1");
       if ((f5=fopen(filename,"w"))==NULL)
       {
               puts("cannot open file");
       }
                 fclose(f5);
       if ((m1=fopen("s2.txt","w"))==NULL)
       {
               puts("cannot open file");
       }
       if (!feof(f1))
       {
        fscanf(f1,"%s%f%f%s%f%s",&a,&a1,&a2,&a3,&a4,&a5);
        }
       while (!feof(f1))
       {
        l=strcmp(a43,a5);
        if (l==0)
          {
        fprintf(m1,"%s%s%10.4f%s%10.4f%s%s%s%10.4f%s%s\n",a," ",a1," ",a2," ",a3," ",a4," ",a5);
        kz1(a,&jj1,&jj2,&jj3,&jj4,&jj5);
        if (jj5==-8888)
          {
          int l5=50;
             for (i1=1 ;i1<=i;i1++)
             {
               l4=strcmp(a,sz[i1]);
             if (l4==0)
                 {
                 jj3=zx[i1];
                 jj4=zy[i1];
                 jj5=zz[i1];
                 i1=i+1;
                 l5=100;
                 }
             }
             if (l5==50)
               {
                printf("cannot find control point:");
                printf("%s\n",a);
                goto end;
               }

          }
        if (l5==0)
        {
          printf("%10.4lf%s%10.7lf\n",jj1," ",jj2);
          l5=1;
        }
        kz1(a3,&jd1,&jd2,&jd3,&jd4,&jd5);
        if (jd5==-8888)
          {
          int l5=50;
             for (i1=1 ;i1<=i;i1++)
             {
               l4=strcmp(a3,sz[i1]);
             if (l4==0)
                 {
                 jd3=zx[i1];
                 jd4=zy[i1];
                 jd5=zz[i1];
                 i1=i+1;
                 l5=100;
                 }
             }
             if (l5==50)
               {
                printf("cannot find control point:");
                printf("%s\n",a3);
                goto end;
               }

          }

        yqg=a2;
        fwj(&jj3,&jj4,&jd3,&jd4,&t);
        fscanf(f1,"%s%f%f%s%f%s",&a,&a1,&a2,&a3,&a4,&a5);
        pp=atof(a);
        pt=a1;
        fprintf(m1,"%s%s%10.4f%s%10.4f%s%s%s%10.4f%s%s\n",a," ",a1," ",a2," ",a3," ",a4," ",a5);
          }
        else
           {
          a6=atof(a3);
          jdhs(a1,&t1);
          t1=t+t1/180*3.141592654;
          if (t1>=2*3.141592654)
          {t1=t1-2*3.141592654;}
          jdhs(a2,&t2);
          t2=(90-t2)/180*3.141592654;

        s1=a6*(1.000279-0.0000002904*pp/(1+.0037*pt))*(1+jj2)+jj1;
        gc=s1*sin(t2)+s1*s1*(cos(t2)*cos(t2))*(1-k)/2/bj+yqg-a4+jj5;
        s1=s1*cos(t2)-(((2-k)/4)/bj)*s1*s1*sin(2*t2);
         x=s1*cos(t1)+jj3;
         y=jj4+s1*sin(t1);
         if (a4<0)
         {gc=-15000.0;}
       if ((f5=fopen(filename,"a"))==NULL)
       {
               puts("cannot open file");
       }
     fprintf(f5,"%6s%s%15.3f%s%15.3f%s%15.3f%s%s%s\n",a," ",x," ",y,"",gc," ",a5);
       fclose(f5);
       if (strlen(a5)>2)
           {
           char a9[10]="1";
           strupr(a5);
           memmove(a9,a5,2);
           l3=strcmp(a9,"2Y");
             if (l3==0)
              {
              i++;
               memmove(f,a5,strlen(a5)+1);
              sz=f+2;
              zx=x;
              zy=y;
              zz=gc;

              }

           }
        fprintf(m1,"%s%s%10.4f%s%10.4f%s%10.4f%s%10.4f%s%s\n",a," ",a1," ",a2," ",a6," ",a4," ",a5);
           }
        fscanf(f1,"%s%f%f%s%f%s",&a,&a1,&a2,&a3,&a4,&a5);
       }

   end: fclose(f1);
       fclose(m1);
}
      kz1(dh,j11,j12,j13,j14,j15)
   double *j11,*j12,*j13,*j14,*j15;
   char dh[10];
   {
   int k1,k2;
   FILE *m3,*m4;
   double j1,j2,j3,j4,j5;
   char z2[20],z3[10],z4[10];
   k2=100;
       if ((m3=fopen("sbjs.dat","r"))==NULL)
       {
               puts("cannot open file");
       }
       fscanf(m3,"%lf%lf%s",&j1,&j2,&z2);
       *j11=j1;
       *j12=j2;
       fclose(m3);
       if ((m4=fopen(z2,"r"))==NULL)
       {
               puts("cannot open file");
       }

              fscanf(m4,"%s%s%lf%lf%lf",&z3,&z4,&j3,&j4,&j5);
           while(!feof(m4))
             {
                   k1=strcmp(dh,z3);
                   if (k1!=0)
                    {
                          fscanf(m4,"%s%s%lf%lf%lf",&z3,&z4,&j3,&j4,&j5);
                    }
                    else
                    {
                    *j13=j3;
                    *j14=j4;
                    *j15=j5;
                    k2=101;
                    fseek(m4,0,SEEK_END);
                    z3[0]='';
                    }
             }
             if (k2==100)
             {
             *j15=-8888;
             }
                 fclose(m4);

   }

fwj(x1,y1,x2,y2,t1)
double *x1,*y1,*x2,*y2,*t1;
{
double t;
    if ((*x2-*x1)==0)
    {
    t=3.141592654/2;
    }
    else
    {
      t=atan ((*y2-*y1)/(*x2-*x1));
      if (t<0)
      {
      t=t+3.141592654;
      }
    }
      if ((*y2-*y1)<0)
      {t=t+3.141592654;}
      *t1=t;

}

jdhs(tb,tc)
double tb,*tc;
{
double t1,t2,t3,t4,t5;
  t5=tb;
  if (t5<0)
  {t5=0-tb;}
  t5=0.000001+t5;
t1=modf(t5,&t2);
t3=modf((t1*100.00+0.000000000001),&t4);
if (tb >=0)
          {
          tb=t2+t4/60.0+t3/36;
          }
          else

          {
          tb=0-(t2+t4/60.0+t3/36);
          }

*tc=tb;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-24 02:46:20 | 显示全部楼层
不会
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-24 20:46:12 | 显示全部楼层

或者把他编译成独立运行的程序也行

万分感谢中
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10427个

财富等级: 富甲天下

发表于 2006-1-25 10:47:33 | 显示全部楼层
程序是干什么用的?
程序所需的数据在哪儿呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-25 21:04:57 | 显示全部楼层

其作用在于

计算用极坐标方法测量点的坐标

有2 个数据文件一个是控制点数据文件
一个是极坐标数据文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10427个

财富等级: 富甲天下

发表于 2006-1-25 23:29:01 | 显示全部楼层
文件格式是什么样的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-26 22:27:46 | 显示全部楼层

格式如下面

极坐标文件
E548    0.000    1.496  E547.000   0.000 1
1012   30.000    0.000     0.000   0.000 3
1000 353.2256  90.0543    56.736   1.465 2Y500
  500    0.000    1.462  E548.000   0.000 1
1012   30.000    0.000     0.000   0.000 3
1001   9.2731  90.3016    43.203   1.100 2HS
1002  15.5050  89.5202    39.912   1.600 2J
1003  15.2616  89.2020    38.429   2.100 2DX
1004  23.0056  89.5312    43.910   2.100 2S
1005  35.5444  90.0619    27.915   2.100 2S
1006  64.3308  91.0325    21.295   2.100 2S
1007  39.5250  88.1720    13.760   2.100 2S
1008  32.5446  91.5645    12.975   1.100 2HS
1009  13.4747  91.2224    15.113   1.100 2HS
1010 126.4310  93.0129    23.184   1.500 2S
1011  23.1543  90.1545    70.820   2.100 2TK
1012  26.2921  90.1618    70.872   4.000 2KX
1013  31.3335  90.1038    36.973   2.100 2TK
1014  37.4416  90.1035    37.168   3.500 2KX
1015 151.0208  96.4908     3.293   1.100 2HS
1016 122.3805  91.0304    20.911   2.100 2TK
1017 122.4533  92.2358    24.345   3.100 2KX


控制点文件
E547    E级 18517.432 121388.550 11.742  水准联测 地面标志
E548    E级 18531.466 121772.717 17.558  水准联测 地面标志
E549    E级 18222.139 122650.937 10.124  水准联测 地面标志
E550    E级 17942.761 122969.609 13.924  水准联测 地面标志
E551    E级 17178.331 124924.576 11.911  水准联测 地面标志
E552    E级 17026.174 123908.733  8.481  水准联测 地面标志
E553    E级 17011.772 123456.645  7.831  水准联测 地面标志
E554    E级 16975.972 122899.251  6.870  水准联测 地面标志
E555    E级 16850.059 122473.726  7.073  水准联测 地面标志
E556    E级 16749.155 122015.670  7.066  水准联测 地面标志
E557    E级 16376.694 121414.217  5.989  水准联测 地面标志
E558    E级 16799.067 121380.152  5.695  水准联测 地面标志
E559    E级 16959.706 121018.763  5.633  水准联测 地面标志
E560    E级 17164.424 124606.764  8.620  水准联测 地面标志
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2006-2-6 12:34:56 | 显示全部楼层
极坐标文件中各数据项的代表什么样的数据:
测站点,定向点,后视方向值,觇高,仪器高,所测极坐标点方向值、斜长(或边长)、天顶角、镜高???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-26 02:28 , Processed in 0.415144 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表