source: doc/theses/jiada_liang_MMath/testP2.java @ 2980ccb8

Last change on this file since 2980ccb8 was 1725989, checked in by Peter A. Buhr <pabuhr@…>, 6 months ago

add enumeration test programs for different programming languages

  • Property mode set to 100644
File size: 1.4 KB
RevLine 
[1725989]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.