Data Types For Array Of Possible In Artillery Programming

Available Data Types

Define the Data types based upon Array of Possible for Artillery Programming.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

#include

#include

#include

                        struct Projectile

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

                        {

                                    char Pname[50];

                                    double blastradius;

                        };

                        struct Artillery

                        {

                                    char Aname[50];

                                    double mVelocity;

                                    double maxElevation;

                                    double minElevation;

                        };

        void PrintArtillery(struct Artillery artillery[])

        {          

                                    strcpy(artillery[0].Aname, “Cannon”);  artillery[0].mVelocity=200;  artillery[0].minElevation= 0;  artillery[0].maxElevation=45;                                //Populating the Artillery array

            strcpy(artillery[1].Aname, “Howitzer”); artillery[1].mVelocity=900;  artillery[1].minElevation= 20;  artillery[1].maxElevation=65;

            strcpy(artillery[2].Aname, “Mortar”);   artillery[2].mVelocity=805;  artillery[2].minElevation= 50;  artillery[2].maxElevation=85;          

            //display menu for artillery

                        printf(“Artillery Namett Muzzle Velocityt Minimum Elevationt Maximum Elevation”);

                                    int i;

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

                                                                        printf(“n%d.%stt %1.fm/s tt %1.f degreestt %1.f degrees”,i+1,artillery[i].Aname,artillery[i].mVelocity,artillery[i].minElevation,artillery[i].maxElevation);

                        }                      

                        void PrintProjectile(struct Projectile projectile[])

        {

            strcpy(projectile[0].Pname,”High Explosive Anti -Tank”); projectile[0].blastradius= 5;                                //Populating the Projectile array

                        strcpy(projectile[1].Pname,”M549 HERA     “); projectile[1].blastradius= 15;

                        strcpy(projectile[2].Pname,” W19 Katie AFAP”); projectile[2].blastradius= 4200;                      

                        //display menu for projectile

                                                printf(“nnProjectile Namettt Blast Radius”);

                                                            int i;

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

                                                                        printf(“n%d.%stt %1.f meters”,i+1,projectile[i].Pname, projectile[i].blastradius);

                        }                      

                        double CalculateAirTime(double velocity, double angle)

                        {

                double t;

                t = (2 * velocity * sin(angle)) / 9.8;

                return t;

        }

                        double CalculateRange(double velocity, double angle)

                        {

            double max;      

                                    max = (velocity * velocity * sin(2 * angle)) / 9.8;      

                                    return max;

                        }

                        void SimulateProjectile(double * height, double * distance, double time, double velocity, double angle) // using  pass by reference function

                        {

            * height = velocity * time * sin(angle) – 0.5 * 9.8 * time * time; //formula to calculate height

                                    * distance = velocity * time * cos(angle); // distance calculation                      

                        }

//main function

            int main()

            {

        //local variables      

int angleofelevation, muzzleVelocity, minelevation, maxelevation, flag = 0, choice_artillery = 0, choice_projectile=0, targetdistance;

        double convert, angleRadians, distancetravelled, maxtime, airtime = 1;

        double distance = 0;

        double height = 0;

        struct Artillery A[3];

        struct Projectile P[3];

            PrintArtillery(A);      

        do {                      

                                                printf(“nEnter choice for Artillery (1 to 3): “);

                //enter choice for artillery

                scanf(“%d”, & choice_artillery);

                if (choice_artillery == 1) {                     

                                                               angleofelevation = 45;

                                                               minelevation = 0, maxelevation = 45; //set minimum and maximum elevation

                                                               muzzleVelocity = 200; //set initial velocity

Code Explanation

                                                               angleRadians = 3.14159 / 180 * angleofelevation; //converting angle of elevation from degree into radian

                                                               maxtime = CalculateAirTime(muzzleVelocity, angleRadians);

                                                               distancetravelled = CalculateRange(muzzleVelocity, angleRadians);

                                                               printf(“nnThe maximum range of the selected gun: %.2f N n”, distancetravelled); //giving the output (distance travelled) after calculation in screen              

                                                }

                                                else if (choice_artillery == 2)

                                                {

                        angleofelevation = 65;                     

                                                               minelevation = 20, maxelevation = 65; //set minimum and maximum elevation

                                                               muzzleVelocity = 900; //set initial velocity

                                                               angleRadians = 3.14159 / 180 * angleofelevation; //converting angle of elevation from degree into radian

                                                               maxtime = CalculateAirTime(muzzleVelocity, angleRadians);

                                                               distancetravelled = CalculateRange(muzzleVelocity, angleRadians);

                                                               printf(“nnThe maximum range of the selected gun: %.2f N n”, distancetravelled); //giving the output (distance travelled) after calculation in screen

                }

                                                else if (choice_artillery == 3)

                                                {               

                                                                        angleofelevation = 85;

                                                                        minelevation = 50, maxelevation = 85; //set minimum and maximum elevation

                                                                        muzzleVelocity = 805; //set initial velocity

                                                                        angleRadians = 3.14159 / 180 * angleofelevation; //converting angle of elevation from degree into radian

                                                                        maxtime = CalculateAirTime(muzzleVelocity, angleRadians);

                                                                        distancetravelled = CalculateRange(muzzleVelocity, angleRadians);

                                                                        printf(“nnThe maximum range of the selected gun: %.2f N n”, distancetravelled); //giving the output (distance travelled) after calculation in screen

                }

                                    } while ((choice_artillery > 3) || (choice_artillery < 1));

            PrintProjectile(P);                                

                                    do{                                                          

                                                printf(“nEnter choice for Projectile (1 to 3): “);

                //enter choice for Projectile

                scanf(“%d”, & choice_projectile);

                                    }while(choice_projectile3);

                        //enter target distance

                                                printf(“nEnter the value of target distance in meters: “);

                                                scanf(“%d”, & targetdistance);

                        //loop to enter angle of elevation

        do {

                                                //enter angle of elevation

                                                printf(“nEnter the value of angle of elevation in degrees: “);

                                                scanf(“%d”, & angleofelevation);

                //check condition

                if (angleofelevation <= maxelevation && angleofelevation >= minelevation)

                                                {

                        flag = 0;

                                                }

                                                else

                                                {

                        printf(“nInvalid velocity!!! please enter valid angle of elevation”);

                                                                        flag = 1;

                }

        }

                        while (flag == 1);

                        angleRadians = 3.14159 / 180 * angleofelevation; //converting angle of elevation from degree into radian

        do {

                SimulateProjectile( & height, & distance, airtime, muzzleVelocity, angleRadians);// calling

                                                printf(“n At second %.2f , the shell is %.2f meters in the air and has travelled %.2f meters”, airtime, height, distance); //giving the output (distance travelled) after calculation in screen

                                                airtime++;

                                    }while (height > 0 );

        airtime = (muzzleVelocity * sin (angleRadians)) / (0.5 * 9.8); // time when shell is in the ground

                        distance = muzzleVelocity * airtime * cos(angleRadians); // total distance travelled by the shell             

        printf(“n At second %.2f , the shell has hit the ground and has travelled %.2f meters”, airtime, distance);

                        printf(“n stimulation completen“);

                        printf(“n Total Air Time: %.2f N n”, airtime);

                        printf(“n Total Distance : %.2f N n”, distance);

        if(P[choice_projectile-1].blastradius >= targetdistance) //check if target distance was less than or equal to the bladius radius or not

        {

            printf(“n Hitn “);

                        }

        else

        {

            printf(“n Too long n”);

                        }          

                        return 0;

            }

Calculate your order
Pages (275 words)
Standard price: $0.00
Client Reviews
4.9
Sitejabber
4.6
Trustpilot
4.8
Our Guarantees
100% Confidentiality
Information about customers is confidential and never disclosed to third parties.
Original Writing
We complete all papers from scratch. You can get a plagiarism report.
Timely Delivery
No missed deadlines – 97% of assignments are completed in time.
Money Back
If you're confident that a writer didn't follow your order details, ask for a refund.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00
Power up Your Academic Success with the
Team of Professionals. We’ve Got Your Back.
Power up Your Study Success with Experts We’ve Got Your Back.