导弹拦截系统

您所在的位置:网站首页 导弹拦截系统的原理图 导弹拦截系统

导弹拦截系统

2024-07-04 17:15| 来源: 网络整理| 查看: 265

Description:

假设你现在要为带有雷达的导弹拦截系统写一个判断程序,需要判断是否发射导弹拦截或者目标还有多久进入拦截区。

导弹发射井中一次填装有三枚导弹,每一枚导弹拦截半径为200km,拦截半径以内的范围即为拦截区,拦截区内的敌方目标均要拦截。

Input:

程序的输入数据是雷达传递过来的参数。

第一个参数N表示雷达捕获的目标数。

接下来传递N组参数。每组参数第一个数据判断敌友,要么为0表示敌方器械,要么为1表示己方器械。第二个数据表示雷达发射波段的原始频率f0,第三个数据表示雷达接收反射波的频率f1。f0、f1的单位都是吉赫兹(GHz),且在1~15之间,为了保证精度,小数点后保留八位。由相对论计算可知,f0、f1与目标的相对速度v(m/s)之间满足关系式f1=f0·(c+v)/(c-v),式中c表示光速,取c=299792458m/s,目标靠近雷达时v取正,反之取负。第四个数据是接收反射波与发射波之间的时间差,单位微秒(μs=10-6s)。

Output:

根据每组数据确定是否需要导弹出击拦截,导弹拦截最近的三个目标。若是暂时在拦截区外不需要出击拦截,则需计算出还有多长时间有目标进入拦截区(假设目标不改变航向、航速)或者是否朝向拦截区。

根据N组数据,对应输出对于每个目标的处理。共有五种情况:

拦截(YES)

不拦截:己方(NO:ONE OF US)

不拦截:下一次拦截(NO:NEXT TIME)

不拦截:(进入拦截区时间,单位秒(保留4位小数))

不拦截:远离(NO:AWAY)

Sample Input:

7

1 3.00000000 3.00001401 1334

0 3.00000000 3.00001402 1200

0 3.00000000 2.99998997 1321

0 2.99998997 3.00000000 1200

0 2.99998997 3.00000000 1225

0 3.00000000 3.00001103 1400

0 2.99998997 3.00000000 1250

Sample Output:

Target1:NO:ONE OF US Target2:YES Target3:NO:AWAY Target4:YES Target5:YES Target6:NO:17.8813 Target7:NO:NEXT TIME

#include using namespace std; const double C = 299792458; /** * BY kkmd66 * @return */ int main() { //N循环次数 int N; //友方 int flag; //输入参数 double f0, f1, t, v; //有三枚导弹 int count = 3; cin >> N; //N次循环 for (int i = 0; i > flag >> f0 >> f1 >> t; if (flag == 1) { cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3