空间后方交会C++程序代码剖析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摄影测量后方交会程序(c/c++) 输入数据截图: 结果截图: 程序源代码(其中的矩阵求逆在前面已经有了,链接): #include stdio.h #include stdlib.h #include math.h const double PRECISION=1e-5; typedef double DOUBLE[5]; int InputData(int Num, DOUBLE *Data,double m,double f); int Resection(const int Num,const DOUBLE *Data,const double m,const double f); int InverseMatrix(double *matrix,const int row); int main(int argc, char* argv[]) { DOUBLE *Data=NULL; int Num; double f(0),m(0); if(InputData(Num,Data,m,f)) { ?? if (Data!=NULL) ?? { ??? delete []Data; ?? } ?? return 1; } if(Resection(Num,Data,m,f)) { ?? if (Data!=NULL) ?? { ??? delete []Data; ?? } ?? return 1; } if (Data!=NULL) { ?? delete []Data; } printf(解算完毕...\n); do{?? ?? printf(计算结果保存于\结果.txt\文件中\n ??? 请选择操作(输入P打开结果数据,R打开原始数据,其它退出程序):); ?? fflush(stdin);?? //刷新输入流 ?? char order=getchar();?? ?? if (P==order || p==order) ?? {?? ??? system(结果.txt); ?? } ?? else if (R==order || r==order) ?? { ??? system(data.txt); ?? } ?? else ??? break; ?? system(cls); }while(1); system(PAUSE); return 0; } /********************************************** *函数名:InputData????? *函数介绍:从文件(data.txt)中读取数据, *文件格式如下: *点数 m(未知写作0) * 内方位元素(f x0 y0) *编号 x y X Y Z *下面是一个实例: 4 0 153.24 0 0 1 -86.15 -68.99 36589.41 25273.32 2195.17 2 -53.40 82.21 37631.08 31324.51 728.69 3 -14.78 -76.63 39100.97 24934.98 2386.50 4 10.46 64.43 40426.54 30319.81 757.31 *参数:(in/out)Num(点数), *(in/out)Data(存放数据),m,f,x0,y0 *返回值:int ,0成功,1文件打开失败,2控制点个 *数不足,3文件格式错误 *作者:vcrs *完成时间:09-10-4 **********************************************/ int InputData(int Num, DOUBLE *Data,double m,double f) { double x0,y0; FILE *fp_input; if (!(fp_input=fopen(data.txt,r))) { ?? return 1; } fscanf(fp_input,%d%lf,Num,m); if (Num4) { ?? return 2; } fscanf(fp_input,%lf%lf%lf,f,x0,y0); f/=1000; if (m0 || f0) { ?? return 3; } Data=new DOUBLE[Num]; double *temp= new double[Num-1]; double scale=0; int i; for (i=0;iNum;i++) { ?? //读取数据,忽略编号 ?? if(fscanf(fp_input,%*d%lf%lf%lf%lf%lf, ??? Data[i][0],Data[i][1],Data[i][2], ??? Data[i][3],Data[i][4])!=5)

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档