📄 dianchazhi.cpp
字号:
#include<iostream.h>
#include<math.h>
struct _Node{
char F;
long ID; //空间点序号
float x;
float y;
double z; //空间点坐标
struct _SNum* likEgsPassNode; //经过该结点的边序号
struct _Node* next; //下一点指针
};
_Node* likNodeSet; //点链表
_Node* head;
_Node* CreatelikNodeSet()
{ _Node* ps;
_Node* pEnd;
cout<<"请输入点的坐标值:x,y,z"<<endl;
ps=new _Node;
cin>>ps->x>>ps->y>>ps->z;
ps->ID=1;
cout<<"\nx="<<ps->x<<" y="<<ps->y<<" z="<<ps->z<<" ID="<<ps->ID<<endl;
head=NULL;
pEnd=ps;
while(ps->F!='Q')
{if(head==NULL) head=ps;
else pEnd->next=ps;
pEnd=ps;
ps=new _Node;
ps->ID=pEnd->ID+1;
cout<<"\n请输入操作信息:(结束Q/否anykey)和"<<ps->ID<<"点的坐标值:x,y,z"<<endl;
cin>>ps->F>>ps->x>>ps->y>>ps->z;
cout<<"\nx="<<ps->x<<" y="<<ps->y<<" z="<<ps->z<<" ID="<<ps->ID<<endl;
}
pEnd->next=NULL;
delete ps;
return(head);
}
long LenNodelist(_Node* PS)
{ long n=0;
_Node* ps;
ps=PS;
while(ps!=NULL)
{ps=ps->next;n++;}
return(n);
}
void showlist(_Node* PS)
{ cout<<"\n现有的点为:"<<endl;
while(PS)
{cout<<"\nx="<<PS->x<<" y="<<PS->y<<" z="<<PS->z<<" ID="<<PS->ID<<endl;
PS=PS->next;}
}
double Cij(_Node* ps,_Node* PS)
{ double a,b,c;
a=ps->y-PS->y;
a=a*a;
b=ps->x-PS->x;
b=b*b;
c=sqrt(a+b);
return(c);
}
void main()
{ CreatelikNodeSet();
double c[100][100];
double c0[100];
_Node* ps;
_Node* PS;
_Node* pt;
_Node* padd;
_Node* pEnd;
_Node* p;
ps=head;
PS=head;
pt=head;
pEnd=head;
padd=new _Node;
while(pEnd){p=pEnd;pEnd=pEnd->next;}
padd->ID=p->ID+1;
cout<<"\n请输入插入点的坐标值:x,y"<<endl;
cin>>padd->x>>padd->y;
long i=0,j=0,k=0;
while(PS)
{while(ps)
{c[i][j]=Cij(ps,PS);
j++;ps=ps->next;}
i++;
k++;
PS=PS->next;}
i=0;
while(pt)
{c0[i]=Cij(pt,padd);
pt=pt->next;
}
double ch[100];
for(int a=0;a<10;a++){i=0;
j=0;
while(i<k+1)
{while(i<k+1)while(j<k+1){{if(j!=i)ch[i]=ch[i]+c[i][j]*c0[j];j++;}//j!=i;
i++;}}}
for(i=0;i<k+1;i++){ch[i]=ch[i]/c[i][i];}
_Node* pn;
pn=head;
i=0;double z;
while(pn)
{z=ch[i]*pn->z;i++;pn=pn->next;}
cout<<"\n插入点的z="<<z<<endl;
p=padd;
p->z=z;
padd=new _Node;
delete padd;
pEnd=p;
pEnd->next=NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -