Hallo!
Ich habe folgendes Problem:
Und zwar habe ich so einen Getränke-Generator über Interface programmiert, das Programm wird auch fehlerfrei compiliert. Nur leider werden Variablenwerte nicht korrekt, sondern immer mit dem Wert 0 übergeben. Woran könnte das liegen?
Hier meine Codes:
Und zwar geht es um die Variablen zuckermenge, zuckeranteil, kohlensaeuremenge, etc...
Die werden trotz aller Berechnungen immer mit dem Wert 0.0 ausgegeben.
Danke schon mal im voraus!
Gruß
PressPlayOnTape
Ich habe folgendes Problem:
Und zwar habe ich so einen Getränke-Generator über Interface programmiert, das Programm wird auch fehlerfrei compiliert. Nur leider werden Variablenwerte nicht korrekt, sondern immer mit dem Wert 0 übergeben. Woran könnte das liegen?
Hier meine Codes:
Code:
package Interface;
public interface IGetraenk {
final boolean kannmantrinken = true;
void enthaeltZucker();
void enthaeltKohlensaeure();
void enthaeltAlkohol();
void getraenkeInfoAusgeben();
void setZucker();
void setAlkohol();
void setKohlensaeure();
}
Code:
package Progam;
import Interface.IGetraenk;
public class Getraenk implements IGetraenk {
private boolean enthaeltZucker;
private boolean enthaeltKohlensaeure;
private boolean enthaeltAlkohol;
int zuckermenge = 0;
int alkoholmenge = 0;
int kohlensaeuremenge = 0;
public void setZucker() {
double zuckermenge = IO.readDouble("Wieviel Gramm Zucker pro Liter möchten Sie Ihrem Getränk hinzufügen (max. 1000g)?");
while (zuckermenge > 1000) {
System.err.println("Mensch! Sie können doch nicht mehr Zucker reintun als Flüssigkeit vorhanden ist!");
zuckermenge = IO.readDouble("Wieviel Gramm Zucker pro Liter möchten Sie Ihrem Getränk hinzufügen (max. 1000g)?");
}
if (zuckermenge > 200) System.out.println("Junge! Da könnte glatt der Löffel drin stehen!");
}
public void setAlkohol() {
int alkoholmenge = IO.readInt("Wieviel ml reinen Alkohol pro Liter möchten Sie Ihrem Getränk hinzufügen (max. 1000)?");
while (alkoholmenge > 1000) {
System.err.println("Wollen Sie sich vergiften?! Sie müssen sich schon an die maximale Menge halten!");
alkoholmenge = IO.readInt("Wieviel ml reinen Alkohol pro Liter möchten Sie Ihrem Getränk hinzufügen (max. 1000)?");
}
if (alkoholmenge > 250 && alkoholmenge < 600) System.out.println("Jo! Das knallt!");
if (alkoholmenge > 600) System.out.println("Wollen Sie nicht vorsichtshalber einen Notarzt vorbestellen?");
}
public void setKohlensaeure() {
int kohlensaeuremenge = IO.readInt("Wieviel cm³ Kohlensäure möchten Sie Ihrem Getränk hinzufügen (max.1000)?");
while (kohlensaeuremenge > 1000) {
System.err.println("Die Flüssigkeit könnte diese Menge nicht halten!");
kohlensaeuremenge = IO.readInt("Wieviel cm³ Kohlensäure möchten Sie Ihrem Getränk hinzufügen (max.1000)?");
if (kohlensaeuremenge < 30) System.out.println("Naja! Das bisschen Geblubber hätten Sie sich sicher auch schenken können.");
if (kohlensaeuremenge > 300 && kohlensaeuremenge < 600) System.out.println("Wow! Davon können Sie nachher bölken wie ein Tier!");
if (kohlensaeuremenge > 600) System.out.println("Oops! Besser Sie stecken sich einen Korken in den Arsch!");
}
}
public Getraenk(char pZucker, char pKohlensaeure, char pAlkohol)
{
if(pZucker == 'j')
{
enthaeltZucker = true;
setZucker();
}
if(pKohlensaeure == 'j')
{
enthaeltKohlensaeure = true;
setKohlensaeure();
}
if (pAlkohol == 'j')
{
enthaeltAlkohol = true;
setAlkohol();
}
}
@Override
public void enthaeltZucker() {
// TODO Auto-generated method stub
if(enthaeltZucker == true)
{
System.out.println("Zucker: Ja");
System.out.println("Zuckermenge: " + zuckermenge + "g/l");
double zuckeranteil = (zuckermenge/1000)*100;
System.out.println("Zuckeranteil: " + zuckeranteil + "%");
System.out.println();
}else
{
System.out.println("Zucker: Nein");
System.out.println();
}
}
@Override
public void enthaeltKohlensaeure() {
// TODO Auto-generated method stub
if(enthaeltKohlensaeure == true)
{
System.out.println("Kohlensäure: Ja");
System.out.println("Menge Kohlensäure: " + kohlensaeuremenge + "cm³");
double h2co3anteil = (kohlensaeuremenge/1000)*100;
System.out.println("H²CO³-Anteil: " + h2co3anteil + "%");
System.out.println();
}else
{
System.out.println("Kohlensäure: Nein");
System.out.println();
}
}
@Override
public void enthaeltAlkohol() {
// TODO Auto-generated method stub
if(enthaeltAlkohol == true)
{
System.out.println("Alkohol: Ja");
System.out.println("Menge Alkohol: " + alkoholmenge + "ml");
double alkanteil = (alkoholmenge/1000)*100;
System.out.println("Alkohol-Anteil: " + alkanteil + "%vol.");
System.out.println();
}else
{
System.out.println("Alkohol: Nein");
System.out.println();
}
}
@Override
public void getraenkeInfoAusgeben() {
// TODO Auto-generated method stub
System.out.println("Ihr Getränk enthält:");
enthaeltZucker();
enthaeltKohlensaeure();
enthaeltAlkohol();
}
}
Code:
package Progam;
import Interface.IGetraenk;
public class Start {
public static void main(String[] args) {
char zucker = IO.readChar("Soll das Getränk Zucker enthalten (j/n) ? ");
char kohlensaeure = IO.readChar("Soll das Getränk Kohlensäure enthalten (j/n) ? ");
char alkohol = IO.readChar("Soll das Getränk Alkohol enthalten (j/n) ? ");
IGetraenk getraenk = new Getraenk(zucker, kohlensaeure, alkohol);
getraenk.getraenkeInfoAusgeben();
}
}
Und zwar geht es um die Variablen zuckermenge, zuckeranteil, kohlensaeuremenge, etc...
Die werden trotz aller Berechnungen immer mit dem Wert 0.0 ausgegeben.
Danke schon mal im voraus!
Gruß
PressPlayOnTape