Frage von Reaper15, 136

Benötige dringend Hilfe (Java Programmierhilfe)?

Wir schreiben einen Test mit folgendem Inhalt:

Die Transportfirma für Recyclinggüter benötigt eine Software, in der die Zuladung Ihres Lastwagens für die einzelnen "Wertstoffe" protokolliert wird. Ein LKW führt jeweils Behälter für 5 verschiedene Kategorien mit sich, bei denen jeder Behälter maximal 800kg fasst. Jede Zuladung wird eingetragen und sobald mindestens ein Behälter mindestens zu 80% gefüllt ist, wird die Tour abgebrochen und es erfolgt die Auswertung.

Kategorie 0 Typ Weißglas Kategorie 1 Typ Grünglas Kategorie 2 Typ Braunglas Kategorie 3 Typ Verpackungen Kategorie 4 Typ Papier Kategorie 5 Typ Altmetall

Zuerst sollte eine Eingabe der Kategorie erfolgen (0-6) Sollte die Eingabe ungleich 0-6 sein so ist sie zu wiederholen

Danach wird die Zuladungsmenge eingegeben. Sollte der Wert <=0 sein ist die Eingabe zu wiederholen. Ist er größer als 0 wird der Wert entsprechend eingegeben und um den von User eingegeben Wert erhöht.

Eingabe der Zuladungen wird solange wiederholt bis der Behälter ein Gewicht >80% der Maximalzuladung erreicht. Gewichte je Kategorie sind in einem Arrey abzulegen.

BITTE SCHNELLSTMÖGLICHE HILFE DES JAVA CODES!!!!!! Ich weiß nicht wie das geht :(

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Fundefs, 84

o.o Wenn du willst, dass wir das für dich machen, währen mehr Details schon Hilfreich.

Wie soll die Eingabe/Ausgabe erfolgen? Normaler Consolen Input/Output, JOptionPane, eine speziele API die euch gegeben wurde?

Soll alles in einer Klasse geschrieben werden, oder müsst ihr Objekte erstellen wie "Behälter" und sollt ihr mit Enums Arbeiten?

Kommentar von Reaper15 ,

jOptionPane

Ausgabe: System.out.println

nix mit Enums und von Behälter wüsste ich jetzt auch nix von. Das was auf dem Blatt steht habe ich genauso hier rein geschrieben :s

Kommentar von Fundefs ,

Der Code ist extrem unsauber, sollte jedoch funktionieren:

import java.util.ArrayList;


import javax.swing.JOptionPane;

public class Aufgabe {

private static final String[] typen = {"Weißglas", "Grünglas", "Braunglas", "Verpackungen", "Papier", "Altmetall"};

public static void main(String[] args) {

ArrayList ladungInKg = new ArrayList<>();

for (int i = 0; i <= 5; i++)
ladungInKg.add(0, 0);

while (!istVoll(ladungInKg)) {

int typ = getTyp();
int ladung = getLadung(ladungInKg, typ);

ladungInKg.set(typ, ladungInKg.get(typ) + ladung);

System.out.println(ladung + "kg wurden zu " + typen[typ] + " hinzugefügt.");
}

auswaertung(ladungInKg);

}

private static boolean istVoll(ArrayList ladungInKg) {
double voll = 800 * .8d;

for (int kg : ladungInKg)
if (kg >= voll)
return true;
return false;
}

private static int getTyp() {
String typS = JOptionPane.showInputDialog("Nuummer der Zuladung eingeben:"
+ "\n0: " + typen[0]
+ "\n1: " + typen[1]
+ "\n2: " + typen[2]
+ "\n3: " + typen[3]
+ "\n4: " + typen[4]
+ "\n5: " + typen[5]);

try {
System.out.println("Zulieferungstyp " + typen[Integer.parseInt(typS)] + " gewählt.");
return Integer.parseInt(typS);
} catch (Exception e) {
System.out.println("Typ nicht bekannt");
return getTyp();
}
}

private static int getLadung(ArrayList ladungInKg, int typ) {
try {
int kg = Integer.parseInt(JOptionPane.showInputDialog("Wie viele KG von " + typen[typ] + " sollen dazugelegt werden?"));
if (kg + ladungInKg.get(typ) > 800) {
System.out.println("Ladung zu groß");
return getLadung(ladungInKg, typ);
}
return kg;
} catch (Exception e) {
e.printStackTrace(System.out);
System.out.println("Ladung nicht möglich");
return getLadung(ladungInKg, typ);
}
}

private static void auswaertung(ArrayList ladungInKg) {
for (int i = 0; i <= 5; i++) {
System.out.println(i + ": " + typen[i] + " enthält " + ladungInKg.get(i) + "kg und ist somit zu " + ladungInKg.get(i) / 8 + "% voll.");
}
}

}
Kommentar von Fundefs ,

Achja... du solltest das "e.printStackTrace(System.out);" entfernen.

Kommentar von Reaper15 ,

Ich danke dir recht herzlichst 😊❤

Antwort
von legolas18de, 6

Hi Reaper15,

auch ich finde es ziemlich dreist, während eines Testes die Frage hier online zustellen und sich so die Antwort zu erschleichen.

Es gibt mit Sicherheit mehr als eine Möglichkeit zu Üben, so dass es Möglich ist den Test gut abzugeben - aus eigener Arbeit!

Antwort
von Jonas711, 95
while(true){

System.out.println("Ich soll nicht versuchen, beim Test zu betrügen.");
}

Hab es allerdings nicht getestet.

Viel Erfolg!

Kommentar von Reaper15 ,

Sehr hilfreich. Danke! Hast du noch mehr so hilfreiche Codezeilen?

Kommentar von Jonas711 ,

Meinst du sowas wie:

while(true){
//Nachfolgend eine hilfreiche Codezeile
System.out.println("Dies ist eine hilfreiche Codezeile");
}

?

Sorry :D

Kommentar von Reaper15 ,

JAAA genau das hab ich gebraucht. Danke *_*

Expertenantwort
von KnusperPudding, Community-Experte für Java, 29

Dich in eine Prüfung zu hocken und die Antwort via GuteFrage zu "erschleichen" ist schon ziemlich dreist.

Wenn du ein Verständnis-Problem hast und mit Übungsaufgaben nicht weiter kommst, kannst du dich gerne an uns wenden. 

BITTE SCHNELLSTMÖGLICHE HILFE DES JAVA CODES!!!!!!

Aber eine fertige Lösung zu fordern, verschlägt mir die Sprache.

Antwort
von Borgler94, 71

du kannst es Objektorientiert machen (etwas komplex)

oder einfacher für jede eingabe eine while schleife, die so lange läuft bis die Eingabe ok ist,
die kategorien als Array von double für den derzeitigen ladestand und String für die Kagegorienamen

Antwort
von LeCux, 62

Sitzt du gerade in der Klausur?

hints:

double[] category = {0.0,0.0,0.0,0.0,0.0}

Stdin.readInteger()

Stdin.readDouble()

Try-Catch und if

Kommentar von Reaper15 ,

Berufsschule. Erstes Jahr. Test. Und ich keine Ahnung...

Kommentar von LeCux ,

Lernen hätte hier geholfen oder?

Scheinbar darf man ja das Internet nutzen wärend der Klausur - also bitte schön. hier sind alle Lösungen zu finden:

http://openbook.rheinwerk-verlag.de/javainsel/

Kommentar von Reaper15 ,

sagst du so leicht ^^ egal..dennoch danke

Kommentar von KnusperPudding ,

sagst du so leicht

Es kann leicht sein, wenn man sich damit auseinander setzt.

Solltest du bei Aufgaben nicht weiter kommen weil du ein Verständnis-Problem hast oder kommst irgendwo nicht weiter oder suchst Rat, kannst du dich gerne an die Community wenden. 

Aber wenn du In einer Prüfung sitzt, ist das Kind schon in den Brunnen gefallen.

Auch der fordernde Ton der Frage verleitet nicht gerade dazu, dass man mit Vergnügen deine Prüfung schriebt.

Kommentar von Reaper15 ,

Es war ja keine Pflicht und keine direkte Aufforderung sondern eher ein Hilferuf. Wäre mir nämlich ne große Hilfe gewesen falls du sowas verstehen kannst. 

Dennoch Danke fürs Auseinandersetzen meiner Frage.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten