For this short project you are to design a function to solve projectile motion p
ID: 3784986 • Letter: F
Question
For this short project you are to design a function to solve projectile motion problems. At the very minimum the function should take as inputs the initial position x_0, initial velocity v_0, and the initial angle theta_0, and output the horizontal range, location of the maximum height of the path, maximum height, and display a plot showing the projectile's trajectory. You can add as much functionality to your design as you want (i e, include effects of air resistance, etc). Use a for loop to plot all the projectile trajectories for a given angle range. Include one or two specific examples to demonstrate the functionality of your function. You will need demonstrate your script.Explanation / Answer
import java.util.Scanner; import java.util.InputMismatchException; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; /** * Implements a Grocery List Version 4: Has code for all methods (final version) * * @author William McDaniel Albritton */ public class GroceryListProgram4 { /** * The main() Method Starts The Program. * * @param commandlineArguments 1st argument is INPUT File, 2nd argument is OUTPUT File */ public static void main(String[] commandlineArguments) { // Error Checking For 2 Command Line Arguments.. if (commandlineArguments.length != 2) { System.out.println("Please enter the INPUT file name as " + "the 1st commandline argument."); System.out.println("Please enter the OUTPUT file name as " + "the 2nd commandline argument."); System.out.println("Please enter exactly " + "two (2) commandline arguments."); }// end of if // if no commandline argument errors, continue program else { // Declare and instantiate array of 100 Strings final Integer MAX_SIZE = new Integer(100); String groceryList[] = new String[MAX_SIZE]; // Set size of grocery list to zero (0) items Integer size = new Integer(0); // read grocery items from file & store in array for grocery list try { size = GroceryListProgram4.readFromFile(commandlineArguments[0], groceryList, size); } catch (ArrayIndexOutOfBoundsException exception) { System.out.print("ERROR: Too many items in input file. "); System.out.println("Please limit to " + MAX_SIZE + " items."); // Immediately terminates program System.exit(1); } // user's choice for Menu Integer choice = new Integer(0); // choice for ending program final Integer QUIT = new Integer(4); // if the user does not want to QUIT, keep looping while (!choice.equals(QUIT)) { // get the user's choice choice = GroceryListProgram4.displayMenu(); // add grocery item if (choice.equals(1)) { size = GroceryListProgram4.add(groceryList, size); } // delete grocery item else if (choice.equals(2)) { size = GroceryListProgram4.delete(groceryList, size); } // display grocery item else if (choice.equals(3)) { GroceryListProgram4.display(groceryList, size); } // error message else if (!choice.equals(QUIT)) { System.out.println("ERROR: Please enter an integer in the range from 1 to 4"); } }// end of "while" // write to from grocery list array to OUTPUT file GroceryListProgram4.writeToFile(commandlineArguments[1], groceryList, size); }// end of "else" }// end of main() method /** * Displays the menu for the program and returns user's choice * * @return the choice of the user (if error, returns 0) */ public static Integer displayMenu() { // display menu System.out.println(); System.out.println(" GROCERY LIST MENU"); System.out.println(" Enter 1 to Add"); System.out.println(" Enter 2 to Delete"); System.out.println(" Enter 3 to Display"); System.out.println(" Enter 4 to Quit"); System.out.print(" Enter your choice: "); // get input from user Scanner keyboardInput = new Scanner(System.in); Integer choiceOfUser = new Integer(0); try { // non-integer input will throw InputMismatchException choiceOfUser = keyboardInput.nextInt(); } catch (InputMismatchException exception) { // Already have error message in main() method, // as choiceOfUser = 0 } System.out.println(); return choiceOfUser; } /** * Reads grocery items from a file and stores items in an array * * @param inputFile is the INPUT File * @param array is the Grocery List array * @param size is the number of items in Grocery List * @return the new size of the grocery list * @throws ArrayIndexOutOfBoundsException if array size is less than number of * items in input file */ public static Integer readFromFile(String inputFile, String[] array, Integer size) throws ArrayIndexOutOfBoundsException { // connect to file (does NOT create new file) File file = new File(inputFile); Scanner scanFile = null; try { scanFile = new Scanner(file); } catch (FileNotFoundException exception) { // Print error message. // In order to print double quotes("), // the escape sequence for double quotes (") must be used. System.out.print("ERROR: File not found for ""); System.out.println(inputFile + """); } // if made connection to file, read from file if (scanFile != null) { // keeps looping if file has more lines.. while (scanFile.hasNextLine()) { // get a line of text.. String line = scanFile.nextLine(); // display a line of text to screen.. // System.out.println(line); // array[0] stores the first row (headings) to table array[size] = line; // increment size ++size; } // In order to print double quotes("), // the escape sequence for double quotes (") must be used. System.out.println("Read from file "" + inputFile + """); }// end of "if" for connecting to file return size; } /** * Adds a grocery item to an array * * @param list is the grocery list * @param listSize is the size of the grocery list * @return new size of the grocery list */ public static Integer add(String[] list, Integer listSize) { // get item from user Scanner keyboard = new Scanner(System.in); System.out.print("Enter name of item: "); String name = keyboard.nextLine(); System.out.print("Enter number of items: "); String number = keyboard.nextLine(); // add to the end of the array list[listSize] = name + ", " + number; // add one to the size (one item to end of list) return listSize + 1; } /** * Deletes a grocery item from an array * * @param list is the grocery list * @param listSize is the size of the grocery list * @return new size of the grocery list */ public static Integer delete(String[] list, Integer listSize) { // get user input System.out.print("Enter the row number of the item you wish to delete: "); Scanner keyboard = new Scanner(System.in); try { // throws an exception if not an integer Integer row = keyboard.nextInt(); // check for negative integers if (row listSize - 1) { System.out.println("ERROR: The integer is too big for the list."); } else { // delete item by shifting items on the right of the item to the left for (int i = row; iRelated Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.