1 | import java.io.*; |
---|
2 | |
---|
3 | public class testP2 { |
---|
4 | public enum Planet { |
---|
5 | // mass radius |
---|
6 | MERCURY ( 3.303e+23, 2.4397e6 ), |
---|
7 | VENUS ( 4.869e+24, 6.0518e6 ), |
---|
8 | EARTH ( 5.976e+24, 6.37814e6 ), |
---|
9 | MARS ( 6.421e+23, 3.3972e6 ), |
---|
10 | JUPITER ( 1.9e+27, 7.1492e7 ), |
---|
11 | SATURN ( 5.688e+26, 6.0268e7 ), |
---|
12 | URANUS ( 8.686e+25, 2.5559e7 ), |
---|
13 | NEPTUNE ( 1.024e+26, 2.4746e7 ); |
---|
14 | |
---|
15 | private final double mass; // in kilograms |
---|
16 | public final double radius; // in meters |
---|
17 | |
---|
18 | Planet( double mass, double radius ) { |
---|
19 | this.mass = mass; this.radius = radius; |
---|
20 | } |
---|
21 | } |
---|
22 | static double mass( Planet p ) { return p.mass; } |
---|
23 | static double radius( Planet p ) { return p.radius; } |
---|
24 | |
---|
25 | static double surfaceGravity( Planet p ) { |
---|
26 | return 6.67300E-11 * p.mass / ( p.radius * p.radius ); |
---|
27 | } |
---|
28 | static double surfaceWeight( Planet p, double otherMass ) { |
---|
29 | return otherMass * surfaceGravity( p ); |
---|
30 | } |
---|
31 | public static void main( String[] args ) { |
---|
32 | if ( args.length != 1 ) { |
---|
33 | System.err.println( "Usage: java Planet <earth_weight>" ); |
---|
34 | System.exit( -1 ); |
---|
35 | } |
---|
36 | Planet day = Planet.valueOf( "EARTH" ); |
---|
37 | System.out.println( day.ordinal() + " " + day.name() + " " + day.mass + " " + day.radius + " " + Planet.valueOf( "EARTH" ) ); // 5 Sat |
---|
38 | |
---|
39 | double earthWeight = Double.parseDouble( args[0] ); |
---|
40 | double mass = earthWeight / surfaceGravity( Planet.EARTH ); |
---|
41 | for ( Planet p : Planet.values() ) |
---|
42 | System.out.printf( "Your weight on %s is %f%n", p, surfaceWeight( p, mass ) ); |
---|
43 | } |
---|
44 | } |
---|
45 | |
---|
46 | // java test |
---|