📄 radar.cpp
字号:
/********************************************************************/
/* 文本文件的使用,构造函数打开文件,把源文件拷贝到目的文件中 */
/* 并能对文件中的数据进行简单操作 */
/********************************************************************/
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double MyMethod()
{
return 3.1415926/180;
}
double MyMethodX(int i,double S)
{
double d=30;
double L=29,R=29;
double a1,X1,Y1,a,X0,Y0;
double Xa,Xb,r,Xc,Xd,Yc,Yd,A,B,X;
a1=MyMethod()*i;
X1=S*cos(a1);
Y1=S*sin(a1);
Xa=-d/2;
Xb=d/2;
if(L==R){
a=0;
X0=0;
X=X1+X0;
}
else if(L>R){
a=(L-R)/d;
r=R/a;
Xc=Xb+r-(r+d)*cos(a);
Xd=Xb+r-r*cos(a);
Yc=(r+d)*sin(a);
Yd=r*sin(a);
X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
A=-X0*cos(-a)+Y0*sin(-a);
B=-X0*sin(-a)-Y0*cos(-a);
X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
}
else if(L<R){
a=(R-L)/d;
r=L/a;
Xc=Xa-r+r*cos(a);
Xd=Xa-r+(r+d)*cos(a);
Yc=r*sin(a);
Yd=(r+d)*sin(a);
X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
A=-X0*cos(-a)+Y0*sin(-a);
B=-X0*sin(-a)-Y0*cos(-a);
X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
}
X=int(X+0.5);
return X;
}
double MyMethodY(int i,double S)
{
double d=30;
double L=29,R=29;
double a1,X1,Y1,a,X0,Y0;
double Xa,Xb,r,Xc,Xd,Yc,Yd,A,B,X,Y;
a1=MyMethod()*i;
X1=S*cos(a1);
Y1=S*sin(a1);
Xa=-d/2;
Xb=d/2;
if(L==R){
a=0;
Y0=L;
Y=Y1+Y0;
}
else if(L>R){
a=(L-R)/d;
r=R/a;
Xc=Xb+r-(r+d)*cos(a);
Xd=Xb+r-r*cos(a);
Yc=(r+d)*sin(a);
Yd=r*sin(a);
X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
A=-X0*cos(-a)+Y0*sin(-a);
B=-X0*sin(-a)-Y0*cos(-a);
X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
Y=X/tan(-a)-(X1-A)/sin(-a);
}
else if(L<R){
a=(R-L)/d;
r=L/a;
Xc=Xa-r+r*cos(a);
Xd=Xa-r+(r+d)*cos(a);
Yc=r*sin(a);
Yd=(r+d)*sin(a);
X0=(Xc+Xd)/2,Y0=(Yc+Yd)/2;
A=-X0*cos(-a)+Y0*sin(-a);
B=-X0*sin(-a)-Y0*cos(-a);
X=(Y1+(X1-A)/tan(-a)-B)/(sin(-a)+cos(-a)/tan(-a));
Y=X/tan(-a)-(X1-A)/sin(-a);
}
Y=int(Y+0.5);
return Y;
}
void main(){
char filename1[256],filename2[256];
cout<<"输入源文件名: ";
cin>>filename1;
cout<<"输出目的文件名:";
cin>>filename2;
ifstream infile(filename1,ios::in|ios::nocreate); //以文本文件的方式打开源文件
ofstream outfile(filename2); //以文本文件的方式打开目的文件
if(!infile){
cout<<"不能打开输入文件:"<<filename1<<'\n';
exit(0);
}
if(!outfile){
cout<<"不能打开目的文件:"<<filename2<<'\n';
exit(1);
}
float sum=0,temp;
int i=0,count=0,a,b;
double S;
while(infile>>temp){ //依次读一个实数
sum+=temp; //累加
S=temp;
a=MyMethodX(i,S); //每个数加2运算
b=MyMethodY(i,S);
i++;
i%=182;
outfile<<"("<<a<<","<<b<<")"<<'\t'; //将字符写到目的文件中
// if(i==0)outfile<<'\n';
count++;
}
cout<<"平均值="<<sum/count<<'\t'<<"count="<<S<<'\n';
infile.close();
outfile.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -