N’Abend miteinander,
ich sitze gerade an einer Aufgabe bzgl. Programmerstellung in Java, hierfür nutze ich Eclipse. Zum einen würde ich gern von euch Profi’s wissen, ob ich die geforderte Aufgabe mit meinen bisherigen Programm so erfüllt habe bzw. was besser gemacht werden könnte, zum anderen habe ich noch eine Frage, mehr dazu unten.
Die Aufgabe lautet wie folgt:
Ein- und Ausgabe, Programmkontrolle
• Importieren Sie zur Ein- und Ausgabe die Klasse Scanner in Ihr Hauptprogramm.
• Lesen Sie mittels eines Scanner-Objektes die Soll-Breite der Straße ein und speichern diesen Wert
in einer Variablen.
• Lesen Sie mittels eines Scanner-Objektes die Dicke der Straße ein und speichern diesen Wert in ei-
ner Variablen.
• Lesen Sie mittels eines Scanner-Objektes Station und Breite für alle Straßenabschnitte ein, und be-
rechnen jeweils die Fläche als Trapez. Verwenden Sie dazu eine while-Schleife. Addieren Sie die
Teilflächen zur Gesamtfläche. Die Schleife soll solange durchlaufen werden, bis der Nutzer eine ne-
gative Zahl für die Station eingibt. Tipp: eine Schleife kann mit „break“ abgebrochen werden.
• Geben Sie die Gesamtfläche und das Gesamtvolumen der Straße am Bildschirm aus.
• Lesen Sie mittels eines Scanner-Objektes die Kosten [€/m³] ein und speichern diesen Wert in einer Variablen.
• Berechnen Sie die Kosten der Straße und geben Sie diese am Bildschirm aus.
• Starten Sie das Programm und geben den angegebenen Straßenverlauf ein (Kosten: 250€/m³).
Mein Programm sieht so aus:
package Aufgabe;
import java.util.Scanner;
public class Strasse
{
public static void main(String[] args)
{
int station = 1, statalt = 1;
double flaeche = 0;
double breite = 0, laenge = 0, alte_breite = 0,
alte_laenge = 0, neue_breite = 0, neue_laenge = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Eingabe Sollbreite der Straße : ");
double sollbreite = sc.nextDouble();
System.out.println();
System.out.print("Eingabe Straßendicke : ");
double strassendicke = sc.nextDouble();
while (station >= 0)
{
System.out.println("Stationsnummer eingeben : ");
statalt = station;
station = sc.nextInt();
if (station < 0)
break;
System.out.println("Breite der Straße an dieser Station : ");
alte_breite = neue_breite;
neue_breite = sc.nextDouble();
System.out.println("Streckenmeter an dieser Station : ");
alte_laenge = neue_laenge;
neue_laenge = sc.nextDouble();
if (station != statalt){
laenge = neue_laenge - alte_laenge;
flaeche = flaeche + (neue_breite * alte_breite) / 2 * laenge;
}
}
}
}
Mein Problem hierzu ist zum einen, dass die Flächenberechnung so nicht richtig funktioniert, wie in der Aufgabe gefordert. Außerdem kann ich mir die Umsetzung zu dem unterem Aufgabenpunkt bzgl. der Kostenberechnung nicht vorstellen.
Ich wäre euch sehr verbunden, wenn Ihr mir hier weiterhelfen könntet!
Vielen Dank im Voraus und
viele Grüße
lippf