handout #11
CSE142—Computer Programming I
Programming Assignment #4
due: Tuesday,
This assignment will give you practice with
interactive programs, if/else statements and methods that return values. You are to write a program that prompts the
user for information about two applicants and that computes an overall score
for each applicant. This is a simplified
version of a program that might be used for admissions purposes.
Look at the sample logs of execution to see how
your program is to behave. Your program must exactly reproduce the behavior
demonstrated in these logs. For each
applicant, we prompt for exam scores (either SAT or ACT) and overall GPA. The exam information is turned into a number
between 0 and 100 and the GPA information is turned into a number between 0 and
100 and these two scores are added together to get an overall score between 0
and 200. After obtaining scores for each
applicant, the program reports which one looks better or whether they look
equal.
Notice that the program asks for each applicant
whether to enter SAT scores or ACT scores (SAT scores are integers that vary
between 200 and 800, ACT scores are integers that vary between 1 and 36). In the case of SAT scores, the user is
prompted for SAT verbal and SAT math subscores.
In the case of ACT scores, the user is prompted for English, math,
reading and science subscores. These
scores are turned into a number between 0 and 100 using the following formulas:
For SAT Scores:
For ACT Scores:
These formulas produce numbers in the range of 0
to 100. After computing this exam score,
we compute a number between 0 and 100 based on the GPA. You will notice that the program prompts for
the GPA and the maximum GPA. Both the
GPA and maximum GPA are real values (i.e., they can have a decimal part). You should turn this into a score between 0
and 100 using the following formula:
At this point your program has two scores that
vary from 0 to 100, one from their test score and one from their GPA. The overall score for the applicant is
computed as the sum of these two numbers (exam result + gpa result). Because each of these numbers is between 0
and 100, the overall score for an applicant ranges from 0 to 200.
You do not have to perform any error
checking. We will assume that the user
enters numbers and that they are in the appropriate range.
In terms of program style you should use static
methods to eliminate redundant code and to break the problem up into logical
subtasks. Your main method should be
short so that a person can easily see the overall structure of the
program. You are to introduce at least five
static methods other than main to break this problem up into smaller subtasks
and you should make sure that no single method is doing too much work. In this program, none of your methods should
have more than around 15 lines of code in the body of the method. Be sure to once again include a short comment
at the beginning of your program as well as a short comment for each method
describing what it does. Look at the program
Judge2.java of handout #9 for a good example of eliminating redundant code and
breaking a problem up into logical subtasks.
Also remember that because this program involves both integer data and
real data, you need to use appropriate type declarations (type int and calls on
nextInt for integer data, type double and calls on nextDouble for real-valued
data).
Your program should be stored in a file called Admit.java. Because your program will be using a Scanner
object, you will need to include the following declaration at the beginning of
your program:
import java.util.*;
First
log of execution (user input underlined)
This program compares two applicants to
determine which one seems like the stronger
applicant. For each candidate I will need
either SAT or ACT scores plus a weighted GPA.
Information for the first applicant:
do you have 1) SAT scores or 2) ACT scores? 1
SAT math? 450
SAT verbal? 530
overall GPA? 3.4
max GPA? 4.0
Information for the second applicant:
do you have 1) SAT scores or 2) ACT scores? 2
ACT English? 25
ACT math? 20
ACT reading? 18
ACT science? 15
overall GPA? 3.3
max GPA? 4.0
First applicant overall score = 147.91666666666666
Second applicant overall score = 135.83333333333331
The first applicant seems to be better
Second log of execution (user input underlined)
This program compares two applicants to
determine which one seems like the stronger
applicant. For each candidate I will need
either SAT or ACT scores plus a weighted GPA.
Information for the first applicant:
do you have 1) SAT scores or 2) ACT scores? 2
ACT English? 20
ACT math? 19
ACT reading? 21
ACT science? 30
overall GPA? 3.5
max GPA? 4.0
Information for the second applicant:
do you have 1) SAT scores or 2) ACT scores? 1
SAT math? 610
SAT verbal? 640
overall GPA? 4.3
max GPA? 5.0
First applicant overall score = 149.16666666666666
Second applicant overall score = 164.75
The second applicant seems to be better
Third
log of execution (user input underlined)
This program compares two applicants to
determine which one seems like the stronger
applicant. For each candidate I will need
either SAT or ACT scores plus a weighted GPA.
Information for the first applicant:
do you have 1) SAT scores or 2) ACT scores? 1
SAT math? 510
SAT verbal? 530
overall GPA? 3.4
max GPA? 4.0
Information for the second applicant:
do you have 1) SAT scores or 2) ACT scores? 1
SAT math? 570
SAT verbal? 500
overall GPA? 3.4
max GPA? 4.0
First applicant overall score = 150.41666666666669
Second applicant overall score = 150.41666666666669
The two applicants seem to be equal