//数学模型小作业(雷达方程的简化形式)
//题目描述:
//1.已知雷达方程(雷达的最大探测距离)的简化形式如下:
//2.Rmax=(Pt*G*Ae*σ/(4PI*4PI*Smin))^0.25;
//3. Rmax-雷达最大作用距离(m).
//4. Pt-发射机脉冲功率(W).
//5. G-天线增益(>1).
//6. Ae-天线有效口径面积(m^2).
//7. σ-目标的雷达截面积(m^2).
//8. Smin-最小可检测信号(W).
//题目要求:当增大发射机功率时,雷达探测距离随发射机功率的变化规律.
//程序编制要求:
//1.Pt,G,Ae,Smin交互读取.
//2.σ交互读取.
//3.计算雷达探测距离随发射机功率的变化规律.
//4.绘制雷达探测距离随发射机功率的变化曲线.
//--------------------------------------------------------------------------------------------------------------------
/*#include <graphics.h>//包含Easyx模拟TC的BGI绘图库头文件
#include <math.h>//包含数学运算头文件
#include <iostream.h>//
#define DD 40//宏定义标题边框距离
#define DW 10//宏定义宽度边框距离
#define DH 10//宏定义高度边框距离
#define DC 200//宏定义控件区域宽度
#define nx 10//宏定义x轴刻度数量
#define ny 10//宏定义y轴刻度数量
#define PI 3.1415926//宏定义圆周率
#define PA 0//宏定义发射机最低脉冲功率(kW)
#define PB 1000//宏定义发射机最高脉冲功率(kW)
#define c1 RGB(38,47,86)//宏定义辅助线颜色1
#define c2 RGB(38,47,86)//宏定义辅助线颜色2
#define c3 RGB(255,255,255)//宏定义文字及边框颜色
#define c4 RGB(255,0,0)//宏定义曲线颜色1(红色)
#define c5 RGB(0,255,0)//宏定义曲线颜色2(绿色)
#define c6 RGB(0,0,255)//宏定义曲线颜色3(蓝色)
//定义结构体-------------------------------------------------------------------------------------------------------
typedef struct points
{
double x,y;//定义双精度变量
}DPOINT;//结束结构体
//定义全局变量-----------------------------------------------------------------------------------------------------
int W = GetSystemMetrics(SM_CXSCREEN);//获取整个屏幕右下角X坐标
int H = GetSystemMetrics(SM_CYSCREEN);//屏幕Y坐标
char is1[20]="10";//预定义:1.发射机脉冲功率(kW)
char is2[20]="3";//2.天线增益
char is3[20]="1";//3.天线有效面积(m^2)
char is4[20]="1";//4.最小可检测信号(E-12W)
char is5[20]="1";//5.目标雷达截面积(m^2)
char is6[20]="1000";//6.输入距离(m)
char is7[20],is8[20],is9[20],is10[20],is11[20],is12[20],is13[20];//定义字符数组(存储字符串)
double d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13;//定义双精度变量(存储计算值)
//函数声明---------------------------------------------------------------------------------------------------------
void sub_frame();//绘制框架子函数
void sub_calculate();//计算数据子函数
//主函数-----------------------------------------------------------------------------------------------------------
void main()
{
sub_frame();//绘图初始化
MOUSEMSG m;//定义鼠标消息
while(true)//循环
{
m=GetMouseMsg();//获取一条鼠标消息
switch(m.uMsg)//根据获得的消息选择分支
{
case WM_LBUTTONDOWN://鼠标左键单击时判断数据输入
{
//判断鼠标位置是否在指定的控件区域
//A.获取原始数据(横坐标在输入区域时输入数据)-------------------------------
if(m.x>=W-DW-DC && m.x<=W-DW)
{
//1.发射机脉冲功率(kW):------------------------------------------------------
if(m.y>=H-DH-16*36+1 && m.y<=H-DH-15*36-1)//
{
InputBox(is1,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-16*36+1,W-DW,H-DH-15*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-16*36+15,is1);//写控件字符串
}//结束if
//2.天线增益:-----------------------------------------------------
if(m.y>=H-DH-15*36+1 && m.y<=H-DH-14*36-1)//
{
InputBox(is2,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-15*36+1,W-DW,H-DH-14*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-15*36+15,is2);//写控件字符串
}//结束if
//3.天线有效面积(m^2):---------------------------------------------------
if(m.y>=H-DH-14*36+1 && m.y<=H-DH-13*36-1)//
{
InputBox(is3,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-14*36+1,W-DW,H-DH-13*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-14*36+15,is3);//写控件字符串
}//结束if
//4.最小可检测信号(E-12W):---------------------------------------------------
if(m.y>=H-DH-13*36+1 && m.y<=H-DH-12*36-1)//
{
InputBox(is4,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-13*36+1,W-DW,H-DH-12*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-13*36+15,is4);//写控件字符串
}//结束if
//5.目标雷达截面积(m^2):---------------------------------------------------
if(m.y>=H-DH-12*36+1 && m.y<=H-DH-11*36-1)//
{
InputBox(is5,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-12*36+1,W-DW,H-DH-11*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-12*36+15,is5);//写控件字符串
}//结束if
//6.输入距离(m):---------------------------------------------------
if(m.y>=H-DH-11*36+1 && m.y<=H-DH-10*36-1)//
{
InputBox(is6,9,"请输入数据");//读入数据
setfillcolor(BLACK);
fillrectangle(W-DW-DC+DC/2+10,H-DH-11*36+1,W-DW,H-DH-10*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-11*36+15,is6);//写控件字符串
}//结束if
}//结束if(横坐标在输入区域时输入数据)
sub_frame();//重绘框架
//B.计算并绘图(横坐标在绘图区域时计算绘图)---------------------------------
if(m.x>=DW && m.x<=W-DW-DC)
{
sub_calculate();//调用计算绘图函数
}//结束if
break;//
}//结束case(结束鼠标左键单击事件消息处理)
case WM_RBUTTONDOWN://鼠标移动的时候画个空心的圆
return;//返回while
}//结束switch(结束鼠标消息)
}//结束while
}//结束主函数
//绘制框架子函数
void sub_frame()
{
//1.全屏效果---------------------------------------------------------------------------
initgraph(W,H);//初始化绘图窗口
HWND hWnd = GetHWnd();//获取窗口句柄
LONG style = GetWindowLong(hWnd,-16);//获得窗口风格
style = style & ~WS_CAPTION & ~WS_SIZEBOX; //窗口全屏显示且不可改变大小
SetWindowLong(hWnd,-16,style);//设置窗口风格
SetWindowPos(hWnd, NULL,0,0,W,H,SWP_NOZORDER);//改变窗口位置,尺寸和Z序
//ShowCursor(FALSE);//显示时隐藏鼠标
//------------------------------------------------------------------------------------
//2.绘制工作区边框
setcolor(c3);
rectangle(DW,DD,W-DW,H-DH);//外边框
rectangle(W-DW-DC,DD,W-DW,H-DH);//控件区域边框
//3.输出标题
setfont(16,0,"黑体");
outtextxy(5,10,"数学模型小作业(雷达方程的简化形式)");
//4.输出简单说明
RECT r={W-DW-DC+10,DD+10,W-DW-10,H-DH-10};//
setfont(12,0,"宋体");//
drawtext("数学模型小作业:\n \n \
雷达方程的简化形式\
\
\n\n\
操作说明:\n\n\
鼠标左键 : 数据输入\n\
鼠标右键 : 退出程序\n\
\n\
1~6为输入数据 7~9为计算数据\n\
\n\n\
\n\n\
\
\n", &r, DT_WORDBREAK);//
//5.调整说明文字下面的矩形控件
int c_h=36;//定义控件高度
int c_x1=W-DW-DC,c_x2=W-DW;//控件左右x坐标
int c_y1=H-DH;//第1个控件下y坐标
for(int i=1;i<=16;i++)
{
rectangle(c_x1,c_y1,c_x2,c_y1-c_h);//
c_y1=c_y1-c_h;
}//结束for
//6.绘制控件说明文字
outtextxy(c_x1+10,H-DH-16*c_h+15,"1.发射机功率(kW):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-15*c_h+15,"2.天线增益:");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-14*c_h+15,"3.天线有效面积(m^2):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-13*c_h+15,"4.最小可检测信号(E-12W):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-12*c_h+15,"5.目标雷达截面积(m^2):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-11*c_h+15,"6.输入距离(m):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-10*c_h+15,"7.功率密度(mW/m^2):");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-9*c_h+15,"8.回波功率密度:");//输出字符串模拟控件文字
outtextxy(c_x1+10,H-DH-8*c_h+15,"9.最大探测距离(m):");//输出字符串模拟控件文字
//7.初始化原始数据
outtextxy(W-DW-DC+DC/2+60,H-DH-16*36+15,is1);//写控件字符串
outtextxy(W-DW-DC+DC/2+60,H-DH-15*36+15,is2);//写控件字符串
outtextxy(W-DW-DC+DC/2+60,H-DH-14*36+15,is3);//写控件字符串
outtextxy(W-DW-DC+DC/2+60,H-DH-13*36+15,is4);//写控件字符串
outtextxy(W-DW-DC+DC/2+60,H-DH-12*36+15,is5);//写控件字符串
outtextxy(W-DW-DC+DC/2+60,H-DH-11*36+15,is6);//写控件字符串
}//结束子程序
//计算数据子函数
void sub_calculate()
{
//1.原始数据转化为双精度数
d1=atof(is1);//1.发射机功率(kW)
d2=atof(is2);//2.天线增益
d3=atof(is3);//3.天线有效面积(m^2)
d4=atof(is4);//4.最小可检测信号(E-12W)
d5=atof(is5);//5.目标雷达截面积(m^2)
d6=atof(is6);//6.输入距离(m)
//2.根据数据计算要求项目---------------------------------------------------------------------------
d7=1000000.0*d1*d2/(4.0*PI*d6*d6);//7.功率密度(mW/m^2)
d8=d7*d5/(4.0*PI*d6*d6);//8.回波功率密度
d9=pow(d1*d2*d3*d5/(16.0*PI*PI*d4),0.25)*1000.0*pow(1000.0,0.25);//9.最大探测距离(m)
d10=pow(1000.0*d2*d3*d5/(16.0*PI*PI*d4),0.25)*1000.0*pow(1000.0,0.25);//10.最大探测距离(m)
//3.将计算结果转化为字符串--------------------------------------------------------------------------
gcvt(d7,6,is7);//
gcvt(d8,6,is8);//
gcvt(d9,6,is9);//
//4.将字符串写入控件中
setfillcolor(BLACK);
//------------------------------------------------------------
fillrectangle(W-DW-DC+DC/2+10,H-DH-10*36+1,W-DW,H-DH-9*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-10*36+15,is7);//写控件字符串
//------------------------------------------------------------
fillrectangle(W-DW-DC+DC/2+10,H-DH-9*36+1,W-DW,H-DH-8*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-9*36+15,is8);//写控件字符串
//------------------------------------------------------------
fillrectangle(W-DW-DC+DC/2+10,H-DH-8*36+1,W-DW,H-DH-7*36);
outtextxy(W-DW-DC+DC/2+15,H-DH-8*36+15,is9);//写控件字符串
//------------------------------------------------------------
//5.绘制工作区坐标线
//画x轴刻度标线及文字---------------------------
double value;//定义双精度变量
char stt[10];//定义字符数组
double xstep=(W-2*DW-DC)/(1.0*nx);//x方向步长(nx个刻度)(对应的绘图单位)
double ystep=(H-DH-DD)/(1.0*ny);//y方向步长(ny个刻度)(对应的绘图单位)
for(int i=0;i<=nx;i++)
{
setcolor(c1);//竖直辅助线颜色
line(DW+xstep*i,H-DH,DW+xstep*i,DD);//画竖直小刻度线
setcolor(c3);//文字颜色
value=xstep*i*(PB-PA)/(W-2*DW-DC);//所在的刻度数值
gcvt(value,5,stt);//将浮点数value转换为字符串stt
outtextxy(DW+xstep*i-10,H-DH-20,stt);//在规定的位置放置字符串
}//结束for
//画y轴刻度标线及文字---------------------------
for(i=0;i<=ny;i++)
{
setcolor(c2);//水平辅助线颜色
line(DW,DD+ystep*i,W-DW-DC,DD+ystep*i);//画水平小刻度线
setcolor(c3);//文字颜色
value=ystep*(ny-i)*d10/(H-DH-DD);//所在的刻度数值
gcvt(value,3,stt);//将浮点数value转换为字符串stt
outtextxy(DW+15,DD+ystep*i+5,stt);//在规定的位置放置字符串
}//结束for
//6.重新绘制工作区边框
setcolor(c3);
rectangle(DW,DD,W-DW,H-DH);//外边框
rectangle(W-DW-DC,DD,W-DW,H-DH);//控件区域边框
//7.获取时间从(0~5τ)变化时电压电流及瞬时功率的变化曲线------------------------------------------------
double x_scale=(W-2*DW-DC)*1.0/(PB-PA);//每个数学单位x对应的屏幕单位
double y_scale=(H-DH-DD)*1.0/d10;//每个数学单位y对应的屏幕单位
double n1;//
int j;//
double t_step=(PB-PA)/100.0;//将过渡时间分段为100个区间,时间步长
DPOINT *p1;//定义指向点表的指针
p1=new DPOINT[100];//定义N1点表
for(j=0;j<=100;j++)//时间从0~5τ
{
n1=pow((j*t_step+PA)*d2*d3*d5/(16.0*PI*PI*d4),0.25)*1000.0*pow(1000.0,0.25);//9.最大探测距离(m)
p1[j].x=DW+j*t_step*x_scale;
p1[j].y=H-DH-n1*y_scale;
}//结束for
//8.绘制时间从(0~5τ)变化时电压电流及瞬时功率的变化曲线------------------------------------------------
setcolor(c4);//曲线颜色1
for(j=0;j<100;j++)//时间从0~5τ
{
line(p1[j].x,p1[j].y,p1[j+1].x,p1[j+1].y);
}//结束for
//for(j=0;j<100;j++)//时间从0~5τ
//{
//cout<<j<<" "<<p1[j].x<<" "<<p1[j].y<<endl;
//}//
}//结束子函数*/
//--------------------------------------------------------------------------------------------------------------------
文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文
文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作 导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释: cwy_init/init_123..._达梦数据库导入导出
文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js
文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6
文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输
文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...
文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure
文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割
文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答
文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。
文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入
文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf