// Planeetat.java Copyright (c) 2006 Kari Laitinen // http://www.naturalprogramming.com // 2006-04-09 File created. // 2006-04-09 Last modification. import java.util.* ; class Planeetta { String planeetan_nimi ; double keskietaisyys_auringosta ; double kiertoaika_auringon_ympari ; double pyorahdysaika_akselinsa_ympari ; long ekvaattorisade_kilometereina ; double massa_suhteessa_maahan ; int kuiden_lukumaara ; public Planeetta( String annettu_planeetan_nimi, double annettu_keskietaisyys_auringosta, double annettu_kiertoaika_auringon_ympari, double annettu_pyorahdysaika_akselinsa_ympari, long annettu_ekvaattorisade_kilometereina, double annettu_massa_suhteessa_maahan, int annettu_kuiden_lukumaara ) { planeetan_nimi = annettu_planeetan_nimi ; keskietaisyys_auringosta = annettu_keskietaisyys_auringosta ; kiertoaika_auringon_ympari = annettu_kiertoaika_auringon_ympari ; pyorahdysaika_akselinsa_ympari = annettu_pyorahdysaika_akselinsa_ympari; ekvaattorisade_kilometereina = annettu_ekvaattorisade_kilometereina ; massa_suhteessa_maahan = annettu_massa_suhteessa_maahan ; kuiden_lukumaara = annettu_kuiden_lukumaara ; } public String lue_planeetan_nimi() { return planeetan_nimi ; } public void tulosta_planeetan_tiedot() { System.out.print( "\n " + planeetan_nimi + " kiertaa aurinkoa" + " keskimaarin " + ( keskietaisyys_auringosta * 149500000 ) + " kilometrin etaisyydella." + "\n Sen kiertoaika auringon ympari on " + kiertoaika_auringon_ympari + " vuotta." + "\n " + planeetan_nimi + "-planeetan ekvaattorin sade on " + ekvaattorisade_kilometereina + " kilometria.\n" ) ; } } class Planeetat { public static void main( String[] ei_kaytossa ) { Scanner nappaimisto = new Scanner( System.in ) ; // Suuri osa seuraavassa taulukossa annetusta informaatiosta // on suhteutettu vastaavaan Maa-planeettaa koskevaan informaatioon. // Esimerkiksi Pluto on 39.507 kertaa Maata etäämpänä auringosta. // Kuiden lukumäärää koskeva informaatio on vanhahtavaa sillä // kuiksi on laskettu vain kauan tunnetut suuret kuut. Planeetta[] planeettataulukko = new Planeetta[ 30 ] ; planeettataulukko[ 0 ] = new Planeetta( "Merkurius", 0.387, 0.241, 58.815, 2433, 0.05, 0 ) ; planeettataulukko[ 1 ] = new Planeetta( "Venus", 0.723, 0.615, 224.588, 6053, 0.82, 0 ) ; planeettataulukko[ 2 ] = new Planeetta( "Maa", 1.000, 1.000, 1.000, 6379, 1.00, 1 ) ; planeettataulukko[ 3 ] = new Planeetta( "Mars", 1.523, 1.881, 1.029, 3386, 0.11, 2 ) ; planeettataulukko[ 4 ] = new Planeetta( "Jupiter", 5.203, 11.861, 0.411, 71370, 317.93, 12 ) ; planeettataulukko[ 5 ] = new Planeetta( "Saturnus", 9.541, 29.457, 0.428, 60369, 95.07, 10 ) ; planeettataulukko[ 6 ] = new Planeetta( "Uranus", 19.190, 84.001, 0.450, 24045, 14.52, 5 ) ; planeettataulukko[ 7 ] = new Planeetta( "Neptunus", 30.086, 164.784, 0.657, 22716, 17.18, 2 ) ; planeettataulukko[ 8 ] = new Planeetta( "Pluto", 39.507, 248.35, 6.410, 5700, 0.18, 0 ) ; System.out.print( "\n Tama ohjelma antaa tietoa aurinkokuntamme" + "\n planeetoista. Anna planeetan nimi: "); String planeetan_nimi_kayttajalta = nappaimisto.nextLine() ; int planeetan_indeksi = 0 ; boolean haku_taulukosta_valmis = false ; while ( haku_taulukosta_valmis == false ) { if ( planeettataulukko[ planeetan_indeksi ] .lue_planeetan_nimi().toLowerCase() .contains( planeetan_nimi_kayttajalta.toLowerCase() ) ) { planeettataulukko[ planeetan_indeksi ].tulosta_planeetan_tiedot() ; haku_taulukosta_valmis = true ; } else { planeetan_indeksi ++ ; if ( planeettataulukko[ planeetan_indeksi ] == null ) { System.out.print( "\n Ei tietoa planeetasta nimelta \"" + planeetan_nimi_kayttajalta + "\".\n" ) ; haku_taulukosta_valmis = true ; } } } } }