Collaboration Solo! Complete all four programs by yourself.
Turnin: Print programs 1, 2, 3, and 4, staple them together (or lose points) and turn in to your section leader or
Rick if Cody is your SL from 9:55 - 10:01 am Wednesday, 31-August (at the beginning of lecture).
Grading Criteria: See the end of this document. Read it before printing any solution!
Goals
Use Eclipse to write Java code and run programs.
Fix compile time errors as you type.
Become familiar with running programs with standard input and output.
Solve three problems that follow the algorithmic pattern of Input, Process, Output.
In this project you are asked to implement four programs where each program is one Java class with one main method (one example is given below). The first program is in the context of a tutorial describing the steps required to create a new project, a new class, and how to run the class as a Java program.
It is assumed you are using a CS Lab (either 228 GS or 930 GS) or you have installed Eclipse on your own computer and created a shortcut / alias / launcher that looks like this:
•
Click the Eclipse Icon
•
Eclipse will start and may offer a Welcome page, which you should close (if it is visible)
•
Create a new project by clicking on File > New > Java Project
•
Enter a name for your project after Project name: ( First is used here)
•
Press the Finish button in the lower right corner
•
Create a class with File > New > Class
•
After Name : type the name of the class you want to create. For this project, the first class you create will be called Welcome . After you type in We l come , click the Finish button at bottom.
•
Type in the following code as it is shown below. As you type, you may encounter squiggly red lines under portions of your code. This is the compiler telling you that you may have an error. For help about the compile time errors, hover the mouse over the red error mark.
•
Once everything is typed in, save the file by going to File > Save . Saving the file compiles the code into a class file and updates error messages.
• Fix any errors before you go on. Save the file again.
•
Select Run > Run As > Java Application
•
At the bottom of the screen in the Console box, you should see output that says
Welcome. What is your name?
• Click on the console window to the right of this prompt
•
Type in your name (input is green like Chris ) and press the enter key
• The dialog should look like this (with a different name unless your name is Chris):
Welcome, what is your name? Chris
Hello Chris. I hope you are well :-)
After running your program, print it with the Eclipse command File > Print
Write a Java program that compute a student’s cumulative grade point average (GPA) for three courses.
Credits range from 0.5 to 15.0. Grades can be 0.0, 1.0, 2.0, 3.0, or 4.0. Test your program by running it with several different inputs where you know the expected results. Your dialog must look like this:
Credits for course 1: 2.0
Grade for course 1: 2.0
Credits for course 2: 3.0
Grade for course 2: 4.0
Credits for course 3: 3.0
Grade for course 3: 4.0
GPA: 3.5
Notes
Grades range from 0.0 (an E) to 4.0 (an A)
GPA is a weighted
not simple
average. To determine GPA, determine quality points, which is the product of a course grade times its credits. Sum all quality points and divide that sum by the total number of credits. For example, a 3.0 unit A (4.0) has 12.0 quality points and (3.0*4.0) and a 4.0 unit C (2.0) would have 8.0 quality points (4.0*2.0). The GPA for these two courses is
(12.0 + 8.0) / (3.0 + 4.0) = 2.8571428571 (not the simple average of (4.0 + 2.0) / 2.0 = 3.0.
Do not round the answer. You may see 1 to 14 digits to the right of the decimal point after GPA:
After testing your program with several test cases, print it with the Eclipse command File > Print
It is said that Albert Einstein used to take great delight in baffling friends with the puzzle below.
First, write the number 1089 on a piece of paper, fold it, and hand it to a friend for safekeeping. What you wrote down is not to be read until you have completed your amazing mental feat. Next, ask your friend to write down any three-digit number, emphasizing that the first and last digits must differ by at least two. Close your eyes or turn your back while this is being done. Better still, have someone blindfold you.
After your friend has written down the three-digit number, ask him to reverse it, then subtract the smaller from the larger. Example: 654 - 456 = 198.
Once this is done, tell your friend to reverse the new number. Example: 198 becomes 891.
Next ask your friend to add the new number and its reverse together. Example: 198 + 891 = 1089.
If all goes as planned, your friend will be amazed. The number you wrote down at the start, 1089, will always be the same as the end result of this mathematical trick.
Your program dialog should look like this when the user enter 541
Enter a 3 digit number where the first and last digits differ by at least two: 541
541 -- original
145 -- reversed
396 -- difference
693 -- reverse of the difference
1089 -- sum of 'difference' and 'reverse of the difference'
Notes
You don’t need to error check the 3 digit number. Assume it is 3 non-zero digits and the first and last digits differ by at least 2. Whereas 046 and 485 are invalid, 486 or 385 are valid inputs.
Remember that 541 % 10 is 1
Remember that 541 / 100 is 5
Math.max(a, b) returns the larger of a and b (not in the book, but needed)
Math.min(a, b) returns the smaller of a and b (not in the book, but needed)
After testing your program with several test cases, print it with the Eclipse command File > Print
Write a Java program that hides a message in five words. Use one of the characters in the five input strings to spell out one new word. Run your program with the following input and make up at least one other message:
Enter five words: cheap energy can cause problems
Enter five integers: 4 2 1 0 5
Secret message: peace
Notes
The String charAt(int) method returns a character, but with + it is treated as if it were an int .
So instead of concatenating five characters, it could add up to the numeric equivalents used to store the characters. Consider the following code that outputs 195 (97 for 'a' plus 98 for 'b'):
String aString = "ab";
System.out.println(aString.charAt(1) + aString.charAt(0)); // Output: 195
Placing a string literal up front fixes the problem. This code prints the string Secret message: ad
String aString = "abcde";
System.out.println("Secret message: " + aString.charAt(0) + aString.charAt(3));
So make sure you start your output with the label "Secret message: " . This forces charAt to return value to become the character you seek.
After testing your program with at least two test cases, print it with the Eclipse command File > Print
Grading Criteria: 100 pts
___ / 4 You stapled the three printed programs together for turnin
___ / 4 Code in 1) Grade Point Average would compile and attempts to solve Program 1
___ / 4 Code in 2) Einstein Number would compile and attempts to solve Program 2
___ / 4 Code in 3) A Little Cryptography would compile and attempts to solve Program 3
___ / 16 Code in 1) Grade Point Average is correct. It always works for valid input.
___ / 16 Code in 2) Einstein Number is correct. It always works for valid input.
___ / 16 Code in 3) A Little Cryptography is correct. It always works for valid input.
___/ 36 Style and Design
___ / 6 Each program has your name as a comment
___ / 6 Each program has a one or two description of what the program does
___ / 6 The output is exactly as requested (or very very close)
___ / 6 You used meaningful identifiers for program names (same as file names) and variables
___ / 6 You used meaningful names for all identifiers
___ / 6 Your code is consistently formatted with the Eclipse command: File > Source > Format
Sample Documentation for Program 3) Einstein Number with the required comments:
// Programmer: YOUR NAME
//
// It is said that Albert Einstein used to take great delight in
// baffling friends with a puzzle represented by this program.
//
// This program reads a 3 digit number, does some manipulations
// to that integer, and always arrives at 1089.
// import java.util.Scanner; public class EinsteinNumber {
public static void
main(String[] args) {
Scanner keyboard = new Scanner(System.
in );