|
|
Subject:
JAVA PROGRAMMING CODINGS
Category: Computers > Programming Asked by: aldaweesh-ga List Price: $50.00 |
Posted:
22 Sep 2005 02:45 PDT
Expires: 22 Oct 2005 02:45 PDT Question ID: 570827 |
The course "Programming in Oak" has 3 tests. The weights of the test are 20%, 30% and 50%, Students receive an 'A', 'B', 'C', 'D', 'E' or 'F' for each test. To compute the final grade for the course, these letter grades are first converted to numbers according to the table below, next the weighted sum is computed, and finally this weighted sum is converted back to a letter according to the table below. F E D C B A 0 1 2 3 4 5 Let us look at an example. Franck received for the first test an 'A', for the second one an 'F', and for the third test a 'C'. His results give rise to the weighted sum 0.20 × 5 + 0.30 × 0 + 0.50 × 3 = 2.50, which is rounded up to 3. Therefore, his final grade for the course is a 'C'. Had he scored an 'A', 'E' and 'D' for the three tests, his weighted sum 0.20 × 5 + 0.30 × 1 + 0.50 × 2 = 2.30 would have been rounded down to 2 and, hence, would have resulted in a 'D' as the final grade. We want to develop an app that starts with the letter grades for the three tests and outputs the corresponding final grade. A template for the sought app is shown below. Scanner input = new Scanner(System.in); PrintStream output = System.out; char firstGrade = 'B'; char secondGrade = 'C'; char thirdGrade = 'B'; double weightedSum = ???; int roundOff = ???; char finalGrade = ???; output.println(finalGrade); You need to complete the development by replacing "???" with expressions (not literals). You may not add or remove statements; only complete the above three statements. Develop and eCheck Check02C. Hint: For the conversion you may want to use casting . Note: Casting from a double to an int always rounds down. For example, (int) 2.60 results in 2. |
|
Subject:
Re: JAVA PROGRAMMING CODINGS
Answered By: leapinglizard-ga on 22 Sep 2005 06:25 PDT |
Dear aldaweesh, Below is a complete program, named Oak.java, in which the occurrences of "???" in the above template have been replaced with correct Java expressions. To convert a letter grade to its numerical equivalent, we subtract the char value of the grade from the constant 'F'. The weighting is performed by multiplying the score on each test by .2, .3, and .5 respectively. Rounding is accomplished by the Math.round() method. Note that it returns a long when passed a double, so we cast the long to an int. Finally, to convert the weighted numerical average back to a letter grade, we subtract its char value from the constant 'F'. I have tested this program with a Java 5 compiler and runtime environment. It has been a pleasure to address this question on your behalf. Regards, leapinglizard //=====begin Oak.java import java.lang.*; import java.util.*; import java.io.*; public class Oak { public static void main(String[] argv) { PrintStream output = System.out; char firstGrade = 'A'; char secondGrade = 'F'; char thirdGrade = 'C'; double weightedSum = .2 * ('F' - firstGrade) + .3 * ('F' - secondGrade) + .5 * ('F' - thirdGrade); int roundOff = (int) Math.round(weightedSum); char finalGrade = (char) ('F' - roundOff); output.println(finalGrade); } } //=====end Oak.java | |
| |
|
|
There are no comments at this time. |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |