📄 6_9.cpp
字号:
// 6_9.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "110.h"
double x[100],y[100],s[100];
long kt[100],ja[100],jb[100],jc[100],ia[200],ib[200];
//初始化坐标,已知值kt[i]=1;未知值kt[i]=0
void InitCoordinate(long ne,long nzd)
{
for(long i=1;i<=nzd;i++)
{
if(i<=ne) kt[i]=1;
else
{
kt[i]=0;
x[i]=0.0;
y[i]=0.0;
}
}
}
//根据两点号得到边长
double GetSide(long ne,long ns,long iv,long iu)
{
double dx,dy;
if(iv<=ne&&iu<=ne)
{
dx=x[iu]-x[iv];
dy=y[iu]-y[iv];
return(DxDyToS(dx,dy));
}
for(long i=1;i<=ns;i++)
{
if(ia[i]==iv&&ib[i]==iu) return(s[i]);
if(ia[i]==iu&&ib[i]==iv) return(s[i]);
}
return(0.0);
}
//纯边网根据三点编号自动计算坐标
BOOL CalculateCoordinate(long ne,long nw,long ns)
{
for(long i=1;i<=nw;i++)
{
double s1=GetSide(ne,ns,jb[i],jc[i]);
double s2=GetSide(ne,ns,ja[i],jc[i]);
double s3=GetSide(ne,ns,ja[i],jb[i]);
kt[jc[i]]=SideMeetCoordinate(s1,s2,s3,ja[i],jb[i],jc[i],x,y);
if(kt[jc[i]]==0)
{
printf("Error is data");
return FALSE;
}
}
return TRUE;
}
//输出美化头说明
void WriteCoordinateHead(FILE *out)
{
fprintf(out," num x y\n");
fprintf(out,"-------------------------------------\n");
}
//输出坐标
void WriteCoordinate(FILE *out,long nzd,bool bGraph)
{
for(long i=1;i<=nzd;i++)
{
if(bGraph)
fprintf(out,"%14.4lf %14.4lf\n",x[i],y[i]);
else
fprintf(out,"%6d %14.4lf %14.4lf\n",i,x[i],y[i]);
}
}
//输出坐标
void WriteCoordinate(long nzd)
{
for(long i=1;i<=nzd;i++)
printf("%4d %14.4lf %14.4lf\n",i,x[i],y[i]);
}
//输出绘图文件
void WriteGraphFile(FILE *out,long ne,long nw,long ns)
{
fprintf(out,"图形\n");
fprintf(out,"%6ld %6ld %6ld\n",ne,nw,ns);
WriteCoordinate(out,ne+nw,TRUE);
for(long k=1;k<=ns;k++)
{
fprintf(out,"%6ld %6ld\n",ia[k],ib[k]);
}
}
int main(int argc, char* argv[])
{
FILE *in,*out,*gra;
char InFile[128]="\0";
char OuFile[128]="\0";
char GrFile[128]="\0";
long ne,nw,ns,nzd,nn;
for(;;)
{
printf("Input your InFileName:");
scanf("%s",InFile);
getchar();
if((in=fopen(InFile,"r"))!=NULL) break;
}
int Len=strlen(InFile);
strncpy(OuFile,InFile,Len-4);//自动形成输出文件名
strcat(OuFile,".out");
if((out=fopen(OuFile,"w"))==NULL)
{
for(;;)
{
printf("Input your OutFileName:");
scanf("%s",OuFile);
getchar();
if((out=fopen(OuFile,"w"))!=NULL) break;
}
}
strncpy(GrFile,InFile,Len-4);//自动形成输出绘图文件名
strcat(GrFile,".map");
if((gra=fopen(GrFile,"w"))==NULL)
{
for(;;)
{
printf("Input your GraphFileName:");
scanf("%s",GrFile);
getchar();
if((gra=fopen(GrFile,"w"))!=NULL) break;
}
}
fscanf(in,"%ld %ld %ld ",&ne,&nw,&ns);
for(long i=1;i<=ne;i++)
fscanf(in,"%lf %lf",&x[i],&y[i]);
if(ns>0)
{
for(long i=1;i<=nw;i++)
fscanf(in,"%ld %ld %ld",&ja[i],&jb[i],&jc[i]);
for(i=1;i<=ns;i++)
fscanf(in,"%ld %ld %lf",&ia[i],&ib[i],&s[i]);
}
nzd=ne+nw;
nn=2*nw;
InitCoordinate(ne,nzd);
CalculateCoordinate(ne,nw,ns);
WriteCoordinate(out,nzd,FALSE);
WriteGraphFile(gra,ne,nw,ns);
WriteCoordinate(nzd);
fclose(in);
fclose(out);
fclose(gra);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -