Hotel Preis Rechner

Status
Nicht offen für weitere Antworten.
Hi.

Meine Aufgabe ist es einen Hotel Rechner zu schreiben. Wir sollten Pulldown Menüs für Zimmer und Pension benutzen und Textfelder für die Anzahl der Personen und Tag. Mit dem Button "berechen" sollte das dann alles berechnet werde. Ich hab den Code schon geschrieben jedoch krieg ich Fehlermeldungen.

Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class hotel extends Applet{
double ta, z, erg, Zimmer, pension;
String per, zim, pen, tag;
 Choice pensionchoice = new Choice ();
 Choice zimmerchoice = new Choice ();
  TextField personen = new TextField(" ",10);
  TextField tage = new TextField (" ",10);
public void init(){
  Label ZimmerLabel = new Label ("Zimmer");

  zimmerchoice.add("EinzelZimmer");
  zimmerchoice.add("DoppelZimmer");
  zimmerchoice.add("Appartment");
  
  Label lper = new Label ("Anzahl Personen");

  pensionchoice.add("Halbpension");
  pensionchoice.add("Vollpension");
  pensionchoice.add("All_inclusive");
  
  Label atage = new Label ("Anzahl Tage");

  Label preis = new Label ("Preis: ");
  Label erg = new Label ("_______________");
  
  Button rechne = new Button ("rechne");
  
add(zimmerchoice);
add(lper);
add(personen);
add(pensionchoice);
add(atage);
add(tage);
add(preis);
add(erg);
add(rechne);
}

public boolean action(Event e, Object arg){
       if (e.target==zimmerchoice){

       if (arg.equals("EinzelZimmer"))Zimmer=20;
       else if (arg.equals("DoppelZimmer"))Zimmer=35;
       else if (arg.equals("Appartment"))Zimmer=80;
       return true; }

       else if (e.target==pensionchoice){

       if (arg.equals("Halbpension"))pension=15;
       else if (arg.equals("Vollpension"))pension=30;
       else if (arg.equals("All_inlcusive"))pension=50;
       return true; }

       if (e.target==("rechne")){

       per = personen.getText();
       zim = Zimmer.getText();
       pen = pension.getText();
       tag = tage.getText();

       per= Double.valueOf(personen).doubleValue();
       zim = Double.valueOf(zimmer).doubleValue();
       pen = Double.valueOf(pension).doubleValue();
       tag = Double.valueOf(tage).doubleValue();
       erg =((zim+pen)* tag)* per;
       erg.setText(erg + "€");
       return true;
       
       }
       else return super.action(e, arg);
}
}

und Hierzu die Fehlermeldungen

Code:
Compiliere I:\Documents\Java\TokioHotel\hotel.java mit Java-Compiler
hotel.java:42:16: warning: [deprecation] action(java.awt.Event,java.lang.Object) in java.awt.Component has been deprecated
public boolean action(Event e, Object arg){
               ^
hotel.java:60:20: double cannot be dereferenced
       zim = Zimmer.getText();
                   ^
hotel.java:61:21: double cannot be dereferenced
       pen = pension.getText();
                    ^
hotel.java:64:19: cannot find symbol
symbol  : method valueOf(java.awt.TextField)
location: class java.lang.Double
       per= Double.valueOf(personen).doubleValue();
                  ^
hotel.java:65:29: cannot find symbol
symbol  : variable zimmer
location: class hotel
       zim = Double.valueOf(zimmer).doubleValue();
                            ^
hotel.java:66:49: incompatible types
found   : double
required: java.lang.String
       pen = Double.valueOf(pension).doubleValue();
                                                ^
hotel.java:67:20: cannot find symbol
symbol  : method valueOf(java.awt.TextField)
location: class java.lang.Double
       tag = Double.valueOf(tage).doubleValue();
                   ^
hotel.java:68:23: operator * cannot be applied to java.lang.String,java.lang.String
       erg =((zim+pen)* tag)* per;
                      ^
hotel.java:69:11: double cannot be dereferenced
       erg.setText(erg + "€");
          ^
hotel.java:73:25: warning: [deprecation] action(java.awt.Event,java.lang.Object) in java.awt.Component has been deprecated
       else return super.action(e, arg);
                        ^
8 errors
2 warnings

Kann mit bitte Jemand helfen?

Danke im Voraus TommeLeeJones
 

javimka

Top Contributor
Wenn du nächstes Mal Code schreibst, dann compiliere es doch öfters während dem Schreiben, dann kannst du die Fehler gerade dann korrigieren, wenn du sie gemacht hast. Du hast hier ja jede menge Fehler drin.

"cannot be dereferenced" heisst, dass der Ausdruck nirgendwo gefunden werden kann. Z.B. Zimmer.getText() wird nirgendwo gefunden, wahrscheinlich hast du einfach keine Klasse Zimmer.
 

eRaaaa

Top Contributor
nein, Zimmer und pension sind bei ihm double`s.
primitive datentypen haben nun mal keine methoden, weils eben keine objekte sind :)
 

w0ddes

Bekanntes Mitglied
erstmal vorweg: Variablen (wie hier z.B. "Zimmer") schreibt man normalerweise immer klein. Das dient der Übersicht. (habs hier aber mal belassen, ist mir sonst zu viel arbeit! Trotzdem bitte selbst ändern!)

Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class hotel extends Applet{
double ta, z, erg, Zimmer, pension;
String per, zim, pen, tag;
 Choice pensionchoice = new Choice ();
 Choice zimmerchoice = new Choice ();
  TextField personen = new TextField(" ",10);
  TextField tage = new TextField (" ",10);
public void init(){
  Label ZimmerLabel = new Label ("Zimmer");
 
  zimmerchoice.add("EinzelZimmer");
  zimmerchoice.add("DoppelZimmer");
  zimmerchoice.add("Appartment");
  
  Label lper = new Label ("Anzahl Personen");
 
  pensionchoice.add("Halbpension");
  pensionchoice.add("Vollpension");
  pensionchoice.add("All_inclusive");
  
  Label atage = new Label ("Anzahl Tage");
 
  Label preis = new Label ("Preis: ");
  Label erg = new Label ("_______________");
  
  Button rechne = new Button ("rechne");
  
add(zimmerchoice);
add(lper);
add(personen);
add(pensionchoice);
add(atage);
add(tage);
add(preis);
add(erg);
add(rechne);
}
 
public boolean action(Event e, Object arg){
       if (e.target==zimmerchoice){
 
       if (arg.equals("EinzelZimmer"))Zimmer=20;
       else if (arg.equals("DoppelZimmer"))Zimmer=35;
       else if (arg.equals("Appartment"))Zimmer=80;
       return true; }
 
       else if (e.target==pensionchoice){
 
       if (arg.equals("Halbpension"))pension=15;
       else if (arg.equals("Vollpension"))pension=30;
       else if (arg.equals("All_inlcusive"))pension=50;
       return true; }
 
       if (e.target==("rechne")){
 
       per = personen.getText();
       zim = Zimmer;
       pen = pension;
       tag = tage.getText();
 
       perZahl= Double.valueOf(per).doubleValue();
       tagZahl = Double.valueOf(tag).doubleValue();
       erg =((zim+pen)* tag)* per;
       erg.setText(erg + "€");
       return true;
       
       }
       else return super.action(e, arg);
}
}

soweit mal. Bitte mal testen, da ich hier grade keine möglichkeit dazu habe! Fehlermeldung dann wieder posten.

Greetz

EDIT: Ich seh grade, dass das Thema doch ein paar Tage zurückliegt .. :oops:
Vllt interessierts ihn ja doch noch :oops:
 
Zuletzt bearbeitet:
Das kommt dann als Fehlermeldung heraus
Code:
hotel.java:60: incompatible types
found   : double
required: java.lang.String
       zim = Zimmer;
             ^
hotel.java:61: incompatible types
found   : double
required: java.lang.String
       pen = pension;
             ^
hotel.java:64: cannot find symbol
symbol  : variable perZahl
location: class hotel
       perZahl= Double.valueOf(per).doubleValue();
       ^
hotel.java:65: cannot find symbol
symbol  : variable tagZahl
location: class hotel
       tagZahl = Double.valueOf(tag).doubleValue();
       ^
hotel.java:66: operator * cannot be applied to java.lang.String,java.lang.String
       erg =((zim+pen)* tag)* per;
                      ^
hotel.java:67: double cannot be dereferenced
       erg.setText(erg + "€");
          ^
Note: hotel.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
6 errors

Auf jeden Fall ist aber das Thema erledigt habe meinen Code verändert:

Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class hotel extends Applet{
double erg,sf,tf, pen, zim;
String s,t;
 Choice pensionchoice = new Choice ();
 Choice zimmerchoice = new Choice ();
  TextField personen = new TextField(" ",10);
  TextField tage = new TextField (" ",10);
  Label ausgabe = new Label ("_______________");

  Label ZimmerLabel = new Label ("Zimmer");
  Label lper = new Label ("Anzahl Personen");
  Label atage = new Label ("Anzahl Tage");
  Label preis = new Label ("Preis: ");
  Button rechne = new Button ("rechne");

public void init(){

  zimmerchoice.add("EinzelZimmer");
  zimmerchoice.add("DoppelZimmer");
  zimmerchoice.add("Appartment");

  pensionchoice.add("Halbpension");
  pensionchoice.add("Vollpension");
  pensionchoice.add("All_inclusive");
  

  
add(zimmerchoice);
add(lper);
add(personen);
add(pensionchoice);
add(atage);
add(tage);
add(preis);
add(ausgabe);
add(rechne);
}

public boolean action(Event e, Object arg){
       if (e.target==zimmerchoice){
       if (arg.equals("EinzelZimmer"))zim=20;
       if (arg.equals("DoppelZimmer"))zim=35;
       if (arg.equals("Appartment"))zim=80;
       return true; }

       if (e.target==pensionchoice){
       if (arg.equals("Halbpension"))pen=15;
       if (arg.equals("Vollpension"))pen=30;
       if (arg.equals("All_inlcusive"))pen=50;
       return true; }

       if (e.target==rechne){
       s = personen.getText();
       t = tage.getText();
       
       sf= Double.valueOf(s).doubleValue();
       tf = Double.valueOf(t).doubleValue();

       erg =((zim+pen)* tf)* sf;

       ausgabe.setText(" " + erg + "�");

       return true;
       
       }
       else return super.action(e, arg);
}
}

Aber trotzdem danke.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben