Teen koulussa java tehtävää enkä osaa. Voisiko joku auttaa vähän. Ohjelman pitäisi tulostaa näin:
Ohjelma laskee yhteen haluamasi ajanjakson aikanatehdyt työtunnit sekä keskimääräisen työpäivän pituuden.
Kuinka monta päivää:5
Anna 1. päivän työtunnit:7.4
Anna 2. päivän työtunnit:4.8
Anna 3. päivän työtunnit:7.5
Anna 4. päivän työtunnit:8.6
Anna 5. päivän työtunnit:6.7
Tehdyt työtunnit yhteensä: 35.0
Keskimääräinen työpäivän pituus: 7.0Syötetyt tunnit: 7.4 4.8 7.5 8.6 6.7
Tässä olisi koodi ohjelmaan josta en osaa edetä enää.
import java.io.*; public class Tunnit { public static void main(String[] args) { int luku1=1,luku2, luku3=-1, paiv = 1, luku5; double luku4; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("Ohjelma laskee yhteen haluamasi ajanjakson aikana"); System.out.println("tehdyt työtunnit sekä keskimääräisen työpäivän pituuden."); System.out.print("Kuinka monta päivää:"); luku5 = Integer.parseInt(in.readLine()); do { System.out.print("Anna " + paiv +"." + " päivän työtunnit:"); luku2 = Integer.parseInt(in.readLine()); luku1=luku1+luku2; luku3++; } while(luku2 > 0); } catch(Exception e) { System.out.print(""); } }
1) Nimeä muuttujat paremmin, ei noiden käyttötarkoituksesta ota selvää. Eli luku1-luku5 pois, tilalle jotain selkeämpää, kuten luku5 -> paivien_lkm ja luku3 -> tyotunteja_yht.
2) Tuosta puuttuu nyt looppi, jota toistettaisiin annetun päivien lukumäärän verran. Käytä siihen esimerkiksi for-lauseketta. Korvaa do siis forilla.
3) Koska syötetyt työtunnit tulee muistaa myöhemmin, tässä olisi kätevintä käyttää int-taulukkoa. Parseroi siis käyttäjän syöte suoraan taulukkoon:
tyotunnit[ i ] = Integer.parseInt(in.readLine()); // missä i on for-lausekkeen looppimuuttuja
4) Forin jälkeen tulostat nuo, mitä ei ole vielä tulostettu. Taitaa joutua taas käyttämään uutta foria, kun tulostetaan annetut työtunnit.
-Kannattaisi tulostaa virheen sattuessa tietoa virheestä, auttaa debuggauksessa. Tai valmiin tuotteen yhteydessä jokin tieto käyttäjälle, mitä oikein tapahtui. Eli vaikkapa System.err.println(e.toString());
-Pistä väli viimeiseksi noissa kun kysytään käyttäjältä arvoa, näyttää selkeämmältä käyttäjälle ;)
Javalasta löytyy ohjeita.
Aihe on jo aika vanha, joten et voi enää vastata siihen.