Computer assignment

profilegrarod
homework2.pdf

1

Homework 2

This assignment demonstrates your understanding of the Math class, Random class, Strings, repetition statements and objects and classes. It consists of 4 programming assignments worth 25 points each.

Before attempting this project, be sure you have completed all of the reading assignments, hands-on labs, discussions, and assignments to date.

1. (25 points) Write a Java program that prompts a user to enter 2 integers. Then display all integers between those two numbers that are divisible by 7 or 8 with no remainder. For the output, display 5 integers per line with a tab separating each number. Here is a sample run:

Enter the first integer in the range: 1 Enter the second integer in the range: 10

Thank you! The numbers between 1 and 10 (inclusively) that are divisible by 7 or 8 are:

7 8

2. (25 points) Write a Java program to simulate a die. A die has values of either 1, 2, 3, 4, 5 or 6 on

the face. You should use the Math.Random() or the java.util.Random() class to generate the values on the die. The program should prompt the user to enter how many times the dice should be rolled. The output should results from each roll along with the total number of times 1, 2, 3, 4, 5 or 6 occurred for all rolls and the total sum comprised of the sum of all rolls. Here is a sample run:

How many times do you want to roll the die? 10

Thank you! The die roll results for 10 rolls were: 2 3 4 5 3 2 6 2 1 6 The number of occurrences of each face were as follows:

1: 1 2: 3 3: 2

2

4: 1 5: 1 6: 2

The sum of die rolls was: 34

3. (25 points) Design a Java class named Polygon that contains:

 A private int data field named numSides that defines the number of sides of the polygon. The default value should be 4.

 A private double data field named sideLength that defines the length of each side. The default value should be 10.0.

 A private double data field named xCoord that defines the x-coordinate of the center of the polygon. The default value should be 0.0.

 A private double data field named yCoord that defines the y-coordinate of the center of the polygon. The default value should be 0.0.

 A no argument constructor that creates a Polygon using the default number of sides, default side length and default x- and y-coordinates.

 A constructor that creates a Polygon using a specified number of sides, side length and x- and y-coordinates.

 Getter and setter methods for all data fields

 A getPerimeter() method that returns a double value representing the sum of all sides.

 A toString() method that displays the number of sides, side length, x-coordinate and y- coordinate values in String format.

Be sure your code compiles. (In the next question, you will create a TestPolygon class and test each of the methods)

4. (25 points) Using the Polygon class you developed above, write a Java test program, named

TestPolygon, to create five different polygons. When creating the five polygons, create one using the no argument constructor. For the remaining four, feel free to use any number of sides, side length and x-, and y-coordinates that are not equal to the default values and not equal to each other. For each of the five polygons, call all of the methods and display the results. For example for a Polygon with 3 sides, side length of 2.0 and x-coordinate and y-coordinates of 1.0, the following output may be appropriate.

toString() results: (3, 2.0, 1.0,1.0)

getNumSides() results: 3

getSideLength() results: 2.0

getXCoord() results: 0.0

getYCoord() results: 0.0

getPerimeter() results: 6.0

setNumSides(4) results: 4

setSideLength(3) results: 3.0

setXCoord(2.0) results: 2.0

setYCoord(2.0) results: 2.0

Keep in mind, for five Polygons, you will have five different output results.

3

Grading Rubric:

The following grading rubric will be used to determine your grade:

Attribute Exceeds Meets Does not meet

Design (5 points) (5 points)

Exhibits proper use of parameters, and selection of data types all of the time.

Employs correct and appropriate use of programming structures (loops, conditionals, classes etc.) all of the time.

Efficient algorithms used all of the time.

(3-4 points)

Exhibits proper use of parameters, and selection of data types most of the time.

Employs correct and appropriate use of programming structures (loops, conditionals, classes etc.) most of the time.

Efficient algorithms used most of the time.

(0-2 points)

Rarely exhibits proper use of parameters, and selection of data types.

Rarely employs correct and appropriate use of programming structures (loops, conditionals, classes etc.)

Poorly structured and inefficient algorithms.

Functionality (10 points)

(9-10 points)

Extra effort was apparent through the addition of significant and additional functionality beyond the scope of the assignment.

(7-8 points)

Program fulfills most functionality.

Most requirements were fulfilled.

Screen captures provided demonstrating the successful compiling and running of the program.

(0-6 points)

Program does not fulfill functionality.

Few requirements were fulfilled.

Test cases (5 points) (5 points)

Test cases provide comprehensive coverage of all code paths.

Discussion of run-time errors included.

(3-4 points)

Test cases provide coverage of most code paths.

Test cases results well documented providing pass/fail results for each test case.

(0-2 points)

No or insufficient test cases

Minimal supporting evidence provided to verify testing actually took place.

Java Style Guide (5 points)

(5 points) (3-4 points) (0-2 points)

4

Code impeccably neat and well-organized.

Extensive In-line comments providing additional insight into code design and functionality

Header comments include filename, author, date and brief purpose of the program.

In-line comments used to describe major functionality of the code.

Meaningful variable names and prompts applied.

Class names are written in UpperCamelCase.

Variable names are written in lowerCamelCase.

Constant names are in written in All Capitals.

Braces use K&R style.

Code rarely follows recommended Java style guide

Submission requirements:

Your deliverables include a four Java files (.java) and a single word document. The Java files should be named appropriately for your applications. Your word document should include screen shots showing the successful compiling and running of each application, and a detailed description of the test plan for each application. The test plan should include the input, expected output, actual output and if the test case passed or failed. Submit your files to the Homework 2 assignment area no later than the due date listed in the calendar.