Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
List of CS-175 Assignments [Joe ChungMonmouth U. Homepage] skip to content Joe Chung Monmouth U. Homepage User Tools Log In Site Tools Search ToolsShow pagesourceOld revisionsBacklinksMedia ManagerLog In> Media Manager Trace: • List of CS-175 Assignments cs175:list_of_cs-175_assignments Table of Contents List of CS-175 Assignments Assignment 1 - Algorithms, Robocode I 1. Write an algorithm 2. FigureEightBot Assignment 2 - Robocode II 1. ChaseBot1 2. SpiralBot Assignment 3 - Fundamental Data Types, Robocode III 1. BookOrder 2. DollarsCents 3. NearestWallBot1 (Algorithm) Assignment 4 - Decisions, Robocode IV 1. AdjustFireBot2 2. CenterBot1 Assignment 5 - Decisions Assignment 6 - Decisions, Methods 1. Improved randbetween method 2. getBMI method 3. ValidTriangles Assignment 7 - Decisions, Loops, Methods 1. validTriangle method 2. GuessNumber 3. Review exercises Assignment 8 - Loops 1. FactorialProg1.java 2. EquivalentFor.java 3. Sample lab test programs List of CS-175 Assignments Most solutions will be posted on Piazza, under the Resources page: CS-175/501a: https://piazza.com/monmouth/fall2014/cs175501a/resources CS-501a-51: https://piazza.com/monmouth/fall2014/cs501a51/resources Assignment 1 - Algorithms, Robocode I Deadline: Fri 9/12, 5pm. 1. Write an algorithm In a plain text file called largestOfFive.txt, write an algorithm to find the largest of 5 numbers that are in a container. The values of the numbers are unknown when you start. Also, you must take the numbers out of the container one at a time. Use the CS-175/501a ecampus dropbox to turn in largestOfFive.txt. See http://en.wikipedia.org/wiki/List_of_text_editors to see a list of plain text file editors. 2. FigureEightBot Modify the default robocode robot you started in lab to run in a figure eight pattern. Turn in your robot's java code file, e.g. RobotName.java, using the CS-175/501a ecampus dropbox. Assignment 2 - Robocode II Deadline: Tue, 9/23, noon. Use the ecampus dropbox for CS-175/501a. Comment your robot code. Include your name and date in comments. Properly indent and format your robot code. You are encouraged to work together with classmate(s) to work on this assignment and share ideas. However, all code must be physically typed in by you. If you are adapting code from another classmate or sample robot, please attribute it in comments. Use the Robot class API documentation (http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html) and other sources. 1. ChaseBot1 In Robocode create ChaseBot1. ChaseBot1 scans an enemy robot and follows that enemy robot by moving toward it. Test your ChaseBot1 against the Crazy sample robot. Customize your ChaseBot1's colors. Dropbox ChaseBot1.java. 2. SpiralBot Start a new Robocode robot named SpiralBot. Define the SpiralBot robot's movement as follows: For each turn, move forward a total of N pixels per turn, then turn right 90 degrees. Before the robot starts any movements, the variable N must be initialized to 15, and increase by 15 pixels per turn. N must be an instance variable of SpiralBot. Customize your SpiralBot's colors. Dropbox SpiralBot.java. Run path of SpiralBot Assignment 3 - Fundamental Data Types, Robocode III Deadline: Thurs, 10/2, noon. Use the ecampus dropbox for CS-175/501a. Comment your program code. Include your name and date in comments. Properly indent and format your program code. You are encouraged to work together with classmate(s) to work on this assignment and share ideas. However, all code must be physically typed in by you. If you are adapting code from another classmate, please attribute it in comments. 1. BookOrder Do programming project “Business P4.5” on p. 172 of the book. Dropbox the program as BookOrder.java. 2. DollarsCents Do programming project “Business P4.7” on p. 173 of the book. Dropbox the program as DollarsCents.java. 3. NearestWallBot1 (Algorithm) In NearestWallBot1.txt (plain text file), write an algorithm to move a robocode robot to the nearest wall. Assignment 4 - Decisions, Robocode IV Deadline: Wed, 10/15, 5pm Use the ecampus dropbox for CS-175/501a. Comment your program code. Include your name and date in comments. Properly indent and format your program code. You are encouraged to work together with classmate(s) to work on this assignment and share ideas. However, all code must be physically typed in by you. If you are adapting code from another classmate, please attribute it in comments. 1. AdjustFireBot2 Start a new Robocode robot named AdjustFireBot2. Change the AdjustFireBot2 robot's onScannedRobot method to fire the cannon with a power level that is inversely proportional to the distance between your robot and the scanned enemy robot. The idea is similar to what we did earlier to adjust the cannon fire power. But instead of using discrete fire power levels like 1.0, 2.0, and 3.0, we will compute the cannon power level based on distance. The minimum fire power level is 0.1, and the maximum fire power level is 3.0 (See Robocode API). At maximum distance apart, your robot should fire with power=0.1. At minimum distance apart, your robot should fire with power=3.0. Dropbox AdjustFireBot2.java. Algorithm Use the getBattleFieldHeight and getBattleFieldWidth methods to get the dimensions of the field. Compute maximum distance as the length of the diagonal distance from corner to corner of the field (compute hypotenuse of the right triangle) Math.sqrt( height * height + width * width ) Fire power (P) should be related to the distance to the other robot (D) like this (compute P from this formula): P * (maximum distance) = ((maximum distance) - D ) * 3.0 (Re-arrange and solve for P; assumes you passed algebra.) No if statements are necessary for AdjustFireBot2. Template See the AdjustFireBot2 template. 2. CenterBot1 Create CenterBot1. CenterBot1 moves to the center of the arena, spins around in a circle, and stops. Dropbox CenterBot1.java. Algorithm To get the x,y coordinates of the center of arena, use the getBattleFieldHeight and getBattleFieldWidth methods again. Then, use ONE of the approaches listed below. (Approach #1) Get robot's current heading. Turn robot to point north (heading=0). Move robot ahead or back to get to middle of screen vertically. Turn robot to point east (heading=90). Move robot ahead or back to get to middle of screen horizontally. (Approach #2) Go ahead until you hit a wall. Use onHitWall method to find angle at which you hit wall. Turn to go into a corner. Go halfway to next corner. Go to center. (Approach #3) Once you know the x,y coordinates of the center of the arena, point robot in direction of center, compute distance to center, move ahead to center. +20% extra credit if you use approach #3. Use robot getX() and getY() methods to get current x,y of robot. Requires trigonometry functions Template See the CenterBot template for Approach #1. Assignment 5 - Decisions Deadline: Thurs, 11/6, noon Use the ecampus dropbox for CS-175/501a. Download the Assignment 5 file. Assignment 6 - Decisions, Methods Deadline: Tues, 11/18, noon Use the ecampus dropbox for CS-175/501a. 1. Improved randbetween method We worked on a convenient randbetween method before. Improve the randbetween method in the following way: Currently, the randbetween method must be called with the low value first, and then the high value, e.g., randbetween(1, 6). If the high value is given first, e.g., randbetween(6, 1), the method will return invalid values. Improve randbetween to allow the randbetween method to be called with low and high values in any order: // Simulate rolling a 6-sided die (1-6): System.out.println( randbetween(1, 6) ); System.out.println( randbetween(6, 1) ); // also works // Simulate a coin toss (0-1): int randnum = randbetween(0, 1); System.out.println(randnum); randnum = randbetween(1, 0); // also works System.out.println(randnum); Test the improved randbetween method in a program called TryRandom4.java. Dropbox TryRandom4.java. 2. getBMI method We worked on a program to compute the body mass index (BMI). Complete the following method to compute and return the BMI value for a given mass in lbs., and height in feet & inches: public static double getBMI( double mass, int feet, int inches ) { double bmi; // compute from mass, feet and inches // // Your code goes here. // Use no System.out.println statements. // Do no Scanner input. // return bmi; } Dropbox getBMI.java. Make sure getBMI.java contains only the getBMI method code. 3. ValidTriangles Write and dropbox a program ValidTriangles.java that reads three edges for a triangle and determines whether the input is valid. The input is valid if the sum of any two edges is greater than the third edge. Here are two sample user dialogs from running this program: Enter the three integer edges of a triangle: 1 2 1 Can edges 1, 2, and 1 form a triangle? NO Enter the three integer edges of a triangle: 2 2 1 Can edges 2, 2, and 1 form a triangle? YES Use a while(true) loop in the program to read triangle edges and determine valid triangles continuously. Assignment 7 - Decisions, Loops, Methods Deadline: Wed, 11/26, 7pm Use the ecampus dropbox for CS-175/501a. 1. validTriangle method This is related to the ValidTriangles program from Assignment 6. (See the Resources page, Resources tab on Piazza for all assignment solutions.) Complete the following method to return true if a triangle with given side1, side2 and side3 is a valid triangle. public static boolean validTriangle( int side1, int side2, int side3 ) { boolean valid = false; // assume false // // Your code goes here. // Use no System.out.println statements. // Do no Scanner input. // return valid; } Put the validTriangle method in the ValidTriangles2.java program, along with the main method. In the main method of ValidTriangles2.java read three edges for a triangle via Scanner, call the validTriangle method with the three edges as input parameters, and print whether the input is valid. Here are some sample user dialogs from running ValidTriangles2.java: Enter the three integer edges of a triangle (-1 to quit): 1 2 1 Can edges 1, 2, and 1 form a triangle? NO Enter the three integer edges of a triangle (-1 to quit): 2 2 1 Can edges 2, 2, and 1 form a triangle? YES Enter the three integer edges of a triangle (-1 to quit): -1 Use a while(true) loop in the main method to read triangle edges and determine valid triangles continuously. Allow the user to enter -1 to quit. Dropbox ValidTriangles2.java. 2. GuessNumber Complete the GuessNumber.java program. Your program must include the 3 possible improvements. Dropbox GuessNumber.java. 3. Review exercises From the book, do review exercises R6.2 (a only), R6.15, R6.19 (a, b, d), R6.27. Write your answers in assign7revex.txt (plain text) and dropbox it. Assignment 8 - Loops Deadline: Tues, 12/9, noon Use the ecampus dropbox for CS-175/501a. 1. FactorialProg1.java (CS-175/501a-50 only) Complete problem #11 of Quiz 2. Dropbox FactorialProg1.java. 2. EquivalentFor.java Rewrite the following program using a 'for' loop instead of a 'while' loop. The rewritten program must function in the same way as the original program below. Dropbox the rewritten program as EquivalentFor.java. public class EquivalentFor { public static void main( String[] args ) { int i = 0; int j = 0; while ( i <= 20 ) { j = i * i * i; i = i + 1; } System.out.println( "final values: i = " + i + ", j = " + j ); } } 3. Sample lab test programs See assign8sample2.txt. Dropbox Prog1.java, Prog2.java and Prog3.java. cs175/list_of_cs-175_assignments.txt · Last modified: 2014/12/03 21:52 by jchung Page Tools Show pagesource Old revisions Backlinks Back to top