source: doc/theses/jiada_liang_MMath/testP2.java@ 56ec508

Last change on this file since 56ec508 was 1725989, checked in by Peter A. Buhr <pabuhr@…>, 15 months ago

add enumeration test programs for different programming languages

  • Property mode set to 100644
File size: 1.4 KB
Line 
1import java.io.*;
2
3public 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
Note: See TracBrowser for help on using the repository browser.