資源簡介
v3fe32.rar

代碼片段和文件信息
#include?
#include?
#include?
const?double?PRECISION=1e-5;
typedef?double?DOUBLE[5];
int?InputData(int?&Num?DOUBLE?*&Datadouble?&mdouble?&f);
int?Resection(const?int?&Numconst?DOUBLE?*&Dataconst?double?&mconst?double?&f);
int?InverseMatrix(double?*matrixconst?int?&row);
int?main(int?argc?char*?argv[])
{
DOUBLE?*Data=NULL;
int?Num;
double?f(0)m(0);
if(InputData(NumDatamf))
{
???if?(Data!=NULL)
???{
????delete?[]Data;
???}
???return?1;
}
if(Resection(NumDatamf))
{
???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(存放數據)mfx0y0
*返回值:int?,0成功,1文件打開失敗,2控制點個
*數不足,3文件格式錯誤
*作者:vcrs
*完成時間:09-10-4
**********************************************/
int?InputData(int?&Num?DOUBLE?*&Datadouble?&mdouble?&f)
{
double?x0y0;
FILE?*fp_input;
if?(!(fp_input=fopen(“E:\\data_280_2.txt““r“)))
{
???return?1;
}
fscanf(fp_input“%d%lf“&Num&m);
if?(Num<4)
{
???return?2;
}
fscanf(fp_input“%lf%lf%lf“&f&x0&y0);
f/=1000;
if?(m<0?||?f<0)
{
???return?3;
}
Data=new?DOUBLE[Num];
double?*temp=?new?double[Num-1];
double?scale=0;
int?i;
for?(i=0;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)
???{
????return?3;
???}
???//單位換算成m
???Data[i][0]/=1000.0;
???Data[i][1]/=1000.0;
}
//如果m未知則歸算其值
if?(0==m)
{
???for?(i=0;i ???{
????temp[i]=(Data[i][2]-Data[i+1][2])/(Data[i][0]-Data[i+1][0])+
?????(Data[i][3]-Data[i+1][3])/(Data[i][1]-Data[i+1][1]);
????scale+=temp[i]/2.0;
???}
???m=scale/(Num-1);
}
fclose(fp_input);
delete?[]temp;
return?0;
}
/**********************************************
*函數名:MatrixMul????
*函數介紹:求兩個矩陣的積
*參數:Jz1(第一個矩陣)row(第一個矩陣行數)
*Jz2(第二個矩陣)row(第二個矩陣列數)com(第一個
*矩陣列數)(out)JgJz(存放結果矩陣)
*返回值:void
*作者:vcrs
*完成時間:09-10-4
**********************************************/
void?MatrixMul(double?*Jz1const?int?&rowdouble?*Jz2
?????const?int?&lineconst?int?&comdouble?*JgJz)
{
for?(int?i=0;i
{
???for?(int?j=0;j ???{
????double?temp=0;
????for?(int?k=0;k ????{
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????41984??2014-04-09?16:11??空間后方交會\Debug\vc60.idb
?????文件??????53248??2014-04-09?16:11??空間后方交會\Debug\vc60.pdb
?????文件??????58368??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.bsc
?????文件?????237633??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.exe
?????文件?????265456??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.ilk
?????文件??????26489??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.obj
?????文件?????230040??2014-03-04?12:29??空間后方交會\Debug\空間后方交會.pch
?????文件?????574464??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.pdb
?????文件??????????0??2014-04-09?16:11??空間后方交會\Debug\空間后方交會.sbr
?????文件??????12053??2014-04-09?16:11??空間后方交會\空間后方交會.cpp
?????文件???????4362??2013-11-14?13:52??空間后方交會\空間后方交會.dsp
?????文件????????549??2013-11-14?13:52??空間后方交會\空間后方交會.dsw
?????文件??????41984??2014-04-09?16:14??空間后方交會\空間后方交會.ncb
?????文件??????54784??2014-04-09?16:14??空間后方交會\空間后方交會.opt
?????文件???????1498??2014-04-09?16:11??空間后方交會\空間后方交會.plg
?????文件??????????0??2013-11-14?14:03??空間后方交會\結果.txt
?????目錄??????????0??2014-04-09?16:11??空間后方交會\Debug
?????目錄??????????0??2014-04-09?16:14??空間后方交會
-----------?---------??----------?-----??----
??????????????1602912????????????????????18
- 上一篇:GIS繪制GPS 軌跡
- 下一篇:安卓醫藥助手源碼
評論
共有 條評論