.


:




:

































 

 

 

 





CRocket objRocket[5];

void RocketControl(int rock, double h0,

double p0, double speed);

void main(void)

{

int i;

char variant;

double x,y,z,h,p;

printf( .\n);

printf(15 \n);

printf(p \n);

printf(x \n);

while(1)

{

//

scanf(%c,&variant);

switch(variant)

{

/

case 1:

RocketControl(1,45.0,45.0,100.0);

break;

case 2:

RocketControl(2,0.0,60.0,100.0);

break;

case 3:

RocketControl(3,90.0,90.0,100.0);

break;

case 4:

RocketControl(4,60.0,30.0,100.0);

break;

case 5:

RocketControl(5,20.0,80.0,100.0);

break;

case p:

for(i=0;i<5;i++)

{

if(objRocket[i].GetState());

{

printf( #%d\n,i)

objRocket[i].GetPosition(&x,&y,&z,

&h,&p);

printf(x=%Lg y=%Lg z=%Lg h=%Lg

p=%Lg\n, x,y,z);

}

}

break;

case x:

return;

default:

break;

}

}

}

void RocketControl(int rock, double h0,

double p0, double speed)

{

if(objRocket[rock].GetState())

{

objRocket[rock]. ExplodeRocket();

printf(Roket #%d exploded\n,rock);

}

Else

{

objRocket[rock].LaunchRocket(h0,p0,speed);

printf(Roket #%d started\n,rock);

}

}


1.

 

( ).

Rocket.h.

 

#include "stdafx.h"

class CRocket

{

public:

//

CRocket(void);

//

~CRocket(void);

//

bool GetState(void);

//- .

 

void GetPosition(double *x, double *y, double *z, double *h, double *p);

 

//-

void LaunchRocket(double h0,double p0,double speed);

 

//-

void ExplodeRocket(void);

private:

//

bool m_state;

//

double m_H0,m_P0;

//

double m_X,m_Y,m_Z;

//

double m_speed;

 

// .

void CRocket::ComputeRockCoords(void);

};

 

Rocket.cpp.

 

#include "stdafx.h"

#include "Rocket.h"

#include <math.h>

 

//

CRocket::CRocket()

{

//

m_state=false;

}

 

//

CRocket::~CRocket(void){};

 

//

bool CRocket::GetState(void)

{

return m_state;

}

 

//- .

void CRocket::GetPosition(double *x,double *y,double *z,double *h,double *p)

{

//

ComputeRockCoords();

*x=m_X;

*y=m_Y;

*z=m_Z;

*h=m_H0*180.0/3.1416;

*p=m_P0*180.0/3.1416;

}

 

//-

void CRocket::LaunchRocket(double h0,double p0,double speed)

{

//

double m_t=0.0;

 

//

m_X=0.0;

m_Y=0.0;

m_Z=0.0;

m_H0=h0*3.1416/180.0;

m_P0=p0*3.1416/180.0;

m_speed=speed;

 

//

m_state=true;

printf("Roket've started.\n");

}

 

//-

void CRocket::ExplodeRocket(void)

{

//

m_state=false;

printf("Roket exploded\n");

}

 

// .

void CRocket::ComputeRockCoords(void)

{

if(m_state) //

{

//

double dt=0.1;

// dt

m_X+=m_speed*cos(m_P0)*sin(m_H0)*dt;

m_Y+=m_speed*cos(m_P0)*cos(m_H0)*dt;

m_Z+=m_speed*sin(m_P0)*dt;

}

}

 

.

 

#include <stdafx.h>

#include <stdio.h>

#include <stdlib.h>

#include "Rocket.h"

 

//

CRocket objRocket[5];

 

//

void RocketControl(int rock, double h0, double p0, double speed);

 

void main(void)

{

int i;

char variant;

double x,y,z,h,p;

 

printf("Vvedite deystvie\n");

printf("1-5 start or rocket explode\n");

printf("p - iteration\n");

printf("x - exit\n");

 

while(1)

{

//

variant=0;

scanf("%c",&variant);

 

switch(variant)

{

// /

case '1':

RocketControl(1,45.0,45.0,100.0);

break;

case '2':

RocketControl(2,0.0,60.0,100.0);

break;

case '3':

RocketControl(3,90.0,90.0,100.0);

break;

case '4':

RocketControl(4,60.0,30.0,100.0);

break;

case '5':

RocketControl(5,20.0,80.0,100.0);

break;

 

//

case 'p':

for(i=0;i<5;i++)

{

if(objRocket[i].GetState())

{

printf("Rocket flying #%d\n",i);

objRocket[i].GetPosition(&x,&y,&z,&h,&p);

printf("x=%Lg y=%Lg z=%Lg h=%Lg p=%Lg\n",x,y,z,h,p);

}

}

break;

 

//

case 'x':

return;

 

default:

break;

}

}

}

 

void RocketControl(int rock, double h0,double p0, double speed)

{

if(objRocket[rock].GetState())

{

//

objRocket[rock]. ExplodeRocket();

printf("Roket #%d exploded\n",rock);

}

else

{

//

objRocket[rock].LaunchRocket(h0,p0,speed);

printf("Roket #%d started\n",rock);

}

}

 





:


: 2016-11-24; !; : 256 |


:

:

, .
==> ...

1477 - | 1417 -


© 2015-2024 lektsii.org - -

: 0.03 .