# Hotel Preis Rechner



## TommyLeeJones (28. Nov 2009)

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.


```
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


```
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 (28. Nov 2009)

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 (28. Nov 2009)

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


----------



## TommyLeeJones (28. Nov 2009)

Sorry bring mich aber gar nicht weiter ;(


----------



## w0ddes (2. Dez 2009)

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!)


```
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 .. 
         Vllt interessierts ihn ja doch noch


----------



## TommyLeeJones (3. Dez 2009)

Das kommt dann als Fehlermeldung heraus

```
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:


```
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.


----------

