G
Guest
Gast
Hallo,
ich lerne Java nach folgender Seite, die auch Aufgaben bereitstellt:
http://www.gailer-net.de/tutorials/java/Notes/chap31/progExercises31.html
Ich habe mich jetzt mal an der zweiten Aufgabe versucht und komme auch zu einer funktionierenden Lösung, allerdings bin ich mir nicht sicher, ob ich den Wünschen der Aufgabenstellung gerecht geworden bin:
Ich bin mir nicht so sicher, ob die Aufgabenstellung mein auto.speichern() am Ende jeder While-Schleife als in Ordnung ansieht, oder gibt es da eine elegantere und aufgabenstellungsmäßig gerechtere Lösung?
Vielen Dank schon einmal für eure Hilfe.
PS: Solltet ihr die Zeit haben, könntet ihr vielleicht auch gleichzeitig auf die Lösung der ersten Aufgabe schauen, die schon implementiert ist in der zweiten Aufgabe und damit in meinem Quellcode, denn irgendwie habe ich als Anfänger schon teilweise schwierigkeiten überhaupt die Aufgabenstellung zu verstehen.
So fand ich z. B. in Aufgabe 1 die Anweisung: "Eine if-else-Anweisung wählt den korrekten booleschen Rückgabewert aus. ", als eher unnötig an, da meiner ansicht nach:
eigentlich doch ausgereicht hätte, um true oder false für die Ausgabe zu erhalten.
ich lerne Java nach folgender Seite, die auch Aufgaben bereitstellt:
http://www.gailer-net.de/tutorials/java/Notes/chap31/progExercises31.html
Ich habe mich jetzt mal an der zweiten Aufgabe versucht und komme auch zu einer funktionierenden Lösung, allerdings bin ich mir nicht sicher, ob ich den Wünschen der Aufgabenstellung gerecht geworden bin:
Code:
import java.io.*;
class Auto2
{
int anfang, tacho;
double fuellung;
Auto2(int startMeilen)
{
anfang=startMeilen;
}
void auftanken (int aktTacho, double gallonen)
{
tacho=aktTacho;
fuellung=gallonen;
}
double berechneMPG()
{
return (tacho-anfang)/fuellung;
}
void speichern()
{
anfang=tacho;
}
boolean benzinschwein()
{
if(berechneMPG() <15)
return true;
else
return false;
}
boolean sparauto()
{
if(berechneMPG() >30)
return true;
else
return false;
}
}
class Kapitel312
{
public static void main (String [] args) throws IOException
{
BufferedReader stdin = new BufferedReader ( new InputStreamReader (System.in) );
String inData;
boolean weiter=true;
int startMeilen, aktTacho;
double gallonen;
System.out.println("Neues Auto - Tachometer-Anfangsstand:");
inData=stdin.readLine();
startMeilen=Integer.parseInt(inData);
Auto2 auto = new Auto2(startMeilen);
while(weiter)
{
System.out.println("+++ Besuch der Tankstelle +++");
System.out.println("Aktuellen Tachometerstand eingeben:");
inData=stdin.readLine();
aktTacho=Integer.parseInt(inData);
System.out.println("Anzahl der Gallonen fuer die Tankfuellung:");
inData=stdin.readLine();
gallonen=Double.parseDouble(inData);
auto.auftanken(aktTacho, gallonen);
System.out.print("Meilen pro Gallone: "+auto.berechneMPG()+" Autotyp: ");
if(auto.benzinschwein())
System.out.println("Benzinschwein!");
if(auto.sparauto())
System.out.println("Sparauto!");
auto.speichern();
System.out.println("Programm beenden <j>a <n>ein?");
inData=stdin.readLine();
if(inData.equals("n"))
weiter=true;
else
weiter=false;
}
}
}
Ich bin mir nicht so sicher, ob die Aufgabenstellung mein auto.speichern() am Ende jeder While-Schleife als in Ordnung ansieht, oder gibt es da eine elegantere und aufgabenstellungsmäßig gerechtere Lösung?
Vielen Dank schon einmal für eure Hilfe.
PS: Solltet ihr die Zeit haben, könntet ihr vielleicht auch gleichzeitig auf die Lösung der ersten Aufgabe schauen, die schon implementiert ist in der zweiten Aufgabe und damit in meinem Quellcode, denn irgendwie habe ich als Anfänger schon teilweise schwierigkeiten überhaupt die Aufgabenstellung zu verstehen.
So fand ich z. B. in Aufgabe 1 die Anweisung: "Eine if-else-Anweisung wählt den korrekten booleschen Rückgabewert aus. ", als eher unnötig an, da meiner ansicht nach:
Code:
boolean benzinschwein()
{
return berechneMPG() <15;
}
eigentlich doch ausgereicht hätte, um true oder false für die Ausgabe zu erhalten.