handout #10
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 15 lines of code in the body of the method (not counting blank
lines or lines with just curly braces on them).
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 BMI2.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