handout #10

CSE142—Computer Programming I

Programming Assignment #4

due: Tuesday, 10/25/05, 2 pm

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