Problems with using printf() in java?
I don't understand why, but instead of my output truncating decimals to
two places, it only does it for the last number in the line. Using print
statements seems to also be kind of convoluted. Can someone help my review
my code?
import java.util.ArrayList;
public class Catapult
{
private int mySpeed, myDegree;
private double myTraj;
Catapult(int speed, int angle)
{
mySpeed = speed;
myDegree = angle;
myTraj = 0.0;
}
public void calcTrajectory()
{
myTraj = ((mySpeed * .44704) * (mySpeed * .44704)
* Math.sin(2 * Math.toRadians((double)myDegree))
/ 9.8) * 3.2808;
}
public double getTrajectory()
{
return myTraj;
}
}
This is the tester class:
import java.util.ArrayList;
public class CatapultTester
{
public static void main(String[] args)
{
int[][] data = { {20, 25, 30, 35, 40, 45, 50},
{25, 30, 35, 40, 45, 50} };
ArrayList<Catapult> catapult = new ArrayList<Catapult>();
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][0], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][1], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][2], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][3], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][4], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][5], data[1][n]));
}
for(int n = 0; n < data[1].length; n++)
{
catapult.add(new Catapult(data[0][6], data[1][n]));
}
for(Catapult record: catapult)
{
record.calcTrajectory();
}
System.out.println("Projectile Distance (feet)");
System.out.printf("%S%10d deg%10d deg%10d deg%10d deg%10d deg%10d
deg\n", "mph", data[1][0], data[1][1], data[1][2], data[1][3],
data[1][4], data[1][5]);
System.out.println("=============================================================================");
Catapult record;
int n = 0;
record = catapult.get(n);
for(int i = 0; i < (data[0].length); i++)
{
int x = 0;
while((x < data[0].length)&& !(n >= catapult.size()))
{
record = catapult.get(n);
System.out.printf("%d%10.1f", data[0][i],
record.getTrajectory());
x++;
n++;
}
System.out.println();
}
}
}
No comments:
Post a Comment