Description
Purpose:
A class is a blueprint or prototype from which objects/instances are created. It includes fields or
methods that are common to all objects of the same blueprint/class. In general, a class
declaration has components: class header, constructors, methods such as getter/setter, and so on.
The constructors are used for initializing new instances. Fields are variables representing the
state of the class and its objects. The methods are used to implement the behavior of the class
and its objects.
In this assignment, we will practice how to define classes and create objects. Once a class is
available, it’s like we have a new data type. Variables can be defined with a type of this class and
can refer to an object of this class. Methods can use this class as parameter type or return type.
Program #1:
Add divide method to take another Fraction as the parameter and return a new Fraction that is
the division of current Fraction and the Fraction in the parameter. (public Fraction divide(Fraction
f)).
– Add scaleup and scaledown methods to the Fraction class. The scaleup method will take a
factor as the parameter and multiply the numerator by the factor. The scaledown method
will take a factor as the parameter and multiply the denominator by the factor.
– Add a scale method which will have two parameters: factor and flag. The flag is boolean. If
flag is true, then scale up the fraction; otherwise scale down the fraction.
– Both scaledown and scale methods must check if the factor is 0. If it is 0, a warning
message is printed out and no scaling is operated.
– Add two more constructors. One of the constructors will have no parameters; it initializes
the fraction to 0/1. The other constructor will have one parameter, representing the
numerator of the fraction; the denominator of the fraction will be 1.
– Write a program named FractionScale that prompts the user of a fraction and a scale
factor. Here is what the user will see on the screen:
This program performs the scaling operations on a fraction.
Enter a fraction: 3/7
Scale up or down (1: up, 0: down): 1
Enter a scale factor: 2
Scaled fraction is: 6/7
You can assume that the user always enters two integers separated by a slash (/) for the
faction. However, the user may enter any number of spaces before and after each integer.
public class Fraction {
// Instance variables
private int numerator; // Numerator of fraction
private int denominator; // Denominator of fraction
// Constructors
public Fraction(int num, int denom) {
numerator = num;
denominator = denom;
}
// Instance methods
public int getNumerator() {
return numerator;
}
public int getDenominator() {
return denominator;
}
public Fraction add(Fraction f) {
int num = numerator * f.denominator +
f.numerator * denominator;
int denom = denominator * f.denominator;
return new Fraction(num, denom);
}
}
Program #2:
Following is a part of the source codes for NBATeam and NBA classes. Finish the programs for
both classes to produce an output screen similar to the following figure.
//File NBA.java
import java.util.Scanner;
public class NBA {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
String ifAddPlayer;
String playerName;
//construct Team Heat
System.out.println(“Creat the NBA team of Heats …… “);
NBATeam heat= new NBATeam(“Heats”);
System.out.print(“Add a play to Heats? (yes/no): “);
ifAddPlayer= input.next();
while (ifAddPlayer.equalsIgnoreCase(“yes”)){
System.out.print(“What is the name to be added? “);
playerName=input.next();
heat.addAPlayer(playerName);
System.out.print(“Add one more play to Heats?
(yes/no): “);
ifAddPlayer= input.next();
}
//construct Team spurs
…………………………//Your code here
/*simulate a series of atmost 7 games by generating a random
number; if the random number is bigger than 0.5, Heat wins;
otherwise Heat losses a game. As soon as team wins 4 games, the
series is over. */
…………………………//Your code here
System.out.println(heat);
System.out.println(spurs);
}
}
//File NBATeam.java
public class NBATeam {
private String sTeamName;
private int nWin;
private int nLoss;
private String [] playerArray;
…………………………//Your code here
}//end of class definition
Criteria:
1. Upload all of the .java and the .class files to the CSc1302 dropbox on http://
icollege.gsu.edu.
2. Your assignment will be graded based on the following criteria: (a) Are your programs
runnable without errors? (b) Do your programs complete the tasks with specified outputs?
(c) Do you follow the specified rules to define your methods and programs? (d) Do you
provide necessary comments include the programmer information, date, title of the
program and brief description of the program.
3. Make sure that both the .java and .class files are named and uploaded to icollege
correctly. If any special package is used in the program, be sure to upload the package
too. Should you use any other subdirectory (whatsoever) your program would not be
graded, and you will receive a 0 (zero).
4. No copying allowed. If it is found that students copy from each other, all of these
programs will get 0.