getPreis aufrufen

Status
Nicht offen für weitere Antworten.

AndreasS

Aktives Mitglied
Hallo,
habe noch immer Probleme mit meiner Praktikumsaufgabe. Sehe den Wald vor lauter Bäumen nicht mehr!
Ich weiß nicht, wie dieses Programm zu einer vernünftigen Ausgabe kommen soll.
Nur die beiden Methoden getPreis verstehe ich einfach nicht...
Code:
import java.io.*;

public class PraktikumTest{
  public static void main(String[] args) {
    Preisbildung preisInstanz;
    BufferedReader inp;
    int haendler;    // Beinhaltet eine Händler-ID
    String prodName;  // Beinhaltet einen Produktnamen
    float preis;   // Beinhaltet einen Preis


    preisInstanz=new Preisbildung();

    for(int i=1;i<=preisInstanz.getAnzahlHaendler();i++){
      System.out.println("\nHaendler mit der ID "+Integer.toString(i)+" heisst '"+preisInstanz.getHaendlerBez(i)+"'");
      System.out.println("  Haendler '"+preisInstanz.getHaendlerBez(i)+"' hat Preisliste ID "+preisInstanz.getPreisliste(i));
      System.out.println("    Diese Preisliste heisst '"+preisInstanz.getPreislistenname(i)+"'");
    }

    System.out.println();
    for(int i=1;i<=preisInstanz.getAnzahlProdukte();i++){
      System.out.println("Das Produkt mit der ID "+Integer.toString(i)+" heisst "+preisInstanz.getProduktname(i));
    }

    System.out.println("\n\nPreisermittlung");
    inp = new BufferedReader(new InputStreamReader(System.in));

    System.out.println("\nBitte eine Haendler-ID eingeben: ");
    try{
      haendler=Integer.parseInt(inp.readLine());

      System.out.println("\nBitte einen Produktnamen eingeben: ");
      prodName=inp.readLine();

      preis=preisInstanz.getPreis(prodName,haendler);
      if(preis>=0){
        System.out.println("Das Produkt '" + prodName +
                           "' hat bei Haendler ID " + Integer.toString(haendler) +
                           " den Preis " + Float.toString(preis));
      }else{
        System.out.println("Fuer das Produkt '" + prodName +
                           "' bei Haendler ID " + Integer.toString(haendler) +
                           " konnte kein Preis gefunden werden.");
      }
    }catch(Exception e){
      System.out.println("Es ist bei der Eingabe der Händlernummer eine Exception aufgetreten: "+e.toString());
      e.printStackTrace();
    }
  }
}

class Preisbildung{
  final int[] HAENDLERID={1,2,3};
  final String[] HAENDLERBEZ={"Sport Maier","Sport Mueller","Sport Heinzelmann"};
  final int[] HAENDLERPREISL={1,1,2};

  final int[] PREISLISTENID={1,2};
  final String[] PREISLISTENBEZ={"Preisliste fuer Maier+Mueller","Preisliste fuer Heinzelmann"};

  final int[] PRODUKTID={1,2,3,4,5,6,7,8};
  final String[] PRODUKTBEZ={"Jacke","Hose","Stirnband","Socken","Ski","Schuhe","Rucksack","Faltboot"};

  final int[] PREISID={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
  final int[] PR_PREISLISTE={1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2};
  final int[] PR_PRODUKTID={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};
  final String[] PREIS={"25000","07000","01500","00500","59900","12000","06000","75000","12500","03500","00750","00250","25000","06000","03000","37500"};

  public int getAnzahlHaendler(){
  	int anzahl = HAENDLERID.length;
  	return(anzahl);
  }
  
  public String getHaendlerBez(int haendlerBez){
  	return (HAENDLERBEZ[haendlerBez - 1]);
  	
  }
  
  public int getPreisliste(int preislistenId){
    return(HAENDLERPREISL[preislistenId - 1]);
  }
  
  public String getPreislistenname(int preislistenName){
  	if (preislistenName == HAENDLERID[0])
  	return(PREISLISTENBEZ[0]);
  	else if (preislistenName == HAENDLERID[1])
  	return(PREISLISTENBEZ[0]);
  	else
  	return(PREISLISTENBEZ[1]);
  	}
  	  
  public int getAnzahlProdukte(){
  	int anzahlP = PRODUKTID.length;
  	return (anzahlP);
  }
  
  public String getProduktname(int produktN){
  	return(PRODUKTBEZ[produktN - 1]);
  }

  int getAnzahlPreise(){
  	int anzahl_Pr = PREISID.length;
    return(anzahl_Pr);         							
  }
  //**********************************************************************
  //Diese beiden Methoden machen Probleme:
  
  float getPreis(int p_haendlerId,int p_produktId){
    // fiktive Rückgabe für int -1 und für String "" damit das Programm läuft...
    int preisliste = -1 //getPreisliste(p_haendlerId) -> habe schon alles mögliche probiert;
    float preis = -1;
    String preisStr = "";
        	
    return(preis);
  }

  float getPreis(String p_prodName,int p_haendler){
    float preis;
    int produktId = -1;
    	
    preis=getPreis(p_haendler,produktId);

    return(preis);
  }
 /*****************************************/
 /*********************/
}
So weit läuft das Programm. Nur die Ausgabe stimmt nicht. Er findet einfach nichts, da ja auch nur -1 und "" und in preis ja gar nichts steht.
Bei Eingabe von Bsp. HändlerId = 1 und Jacke -> Jacke kostet bei Händler mit Id 1 -> 2500.

Habe schon zweimal versucht, Hilfe zu bekommen. Leider erfolglos.

Danke schon mal im vor raus, für jede Hilfe!

Gruß Andi
 
B

bygones

Gast
Wenn du schonmal vergeblich um Hilfe gebeten hast tut es mir leid.

Ich muss aber sagen. dem Programm nach verstehst du den Sinn von OOP nicht ! Warum machst du einen Haufen von arrays und nicht einfach Objekte die diese Daten speichern ????

So hast du nämlich ein Problem. du bekommst eine ProduktID z.b. - wie steht die aber im Verhältnis zu den anderen Arrays ?? D.h. wie zu den Preisen oder so...

Ich würde ehrlich gesagt mehr mit Klassen arbeiten - nicht mit einen Haufen von Arrays - dann wird dir auch mehr geholfen werden können. Weil mir sagt z.B. die ganzen Arrays nichts (wie sie zu einander stehen....)
 

AndreasS

Aktives Mitglied
machen, wenn ich nicht das Hauptprogramm verwenden müßte!
Trotzdem danke.
Vielleicht kennt sich ja doch jemand damit aus...
 

L-ectron-X

Gesperrter Benutzer
Bei den getPreis()-Methoden handelt es sich um so genannte überladene Methoden.
Die beiden Methoden haben den gleichen Namen (getPreis) aber eine unterschiedliche Signatur, also die Parameter, die ihnen übergeben werden. Der Compiler erkennt anhand der Parameter, die Du der aufgerufenen Methode übergibst, welche von beiden er ausführen soll.
 

AndreasS

Aktives Mitglied
dass das überladene Methoden sind. Aber wie bekomme ich die Arrays da rein??
Bitte um Hilfe!
Danke für jede Antwort.
Gruß Andi
 
B

bygones

Gast
also mal schaun - du kannst das problem erstmal auf eine Methode reduzieren:

Code:
float getPreis(int p_haendlerId,int p_produktId){
    // fiktive Rückgabe für int -1 und für String "" damit das Programm läuft...
    int preisliste = -1 //getPreisliste(p_haendlerId) -> habe schon alles mögliche probiert;
    float preis = -1;
    String preisStr = "";
           
    return(preis);
  }

  float getPreis(String p_prodName,int p_haendler){
    float preis;
    int produktId = -1;
    for(int i = 0; i < PRODUKTBEZ.length; i++) {
        if(PRODUKTBEZ[i].equals(p_prodName)) { // Produkt wurde gefunden
              produktId = i;
               break;
         }
     }
    preis=getPreis(p_haendler,produktId);

    return(preis);
  }
 

AndreasS

Aktives Mitglied
für deine Hilfe. Damit kann ich ein bischen was anfangen!
Leider kann immer noch kein Preis gefunden werden. Soll ich noch eine for-Schleife für p_haendler einbauen?
Komme leider immer noch nicht so ganz klar...
 
B

bygones

Gast
sorry - mehr werde ich dir nicht helfen können,

du musst ja nun "nur noch" mit der "float getPreis(int p_haendlerId,int p_produktId)" Methode arbeiten, da musst du es irgendwie schaffen mit den beiden Indizes dich über die Arrays zu hangeln bis du zu dem Preis kommst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
L Webseite aufrufen (HTTP) Java Basics - Anfänger-Themen 8
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
Y Java andere Klasse aufrufen Java Basics - Anfänger-Themen 6
V Collections Methode in der Methode aufrufen Java Basics - Anfänger-Themen 2
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
J Kompilierte Klasse mit Namespace per CMD aufrufen Java Basics - Anfänger-Themen 8
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
scratchy1 Kann man in einer Methode eine andere aufrufen? Java Basics - Anfänger-Themen 2
W Wie kann ich meine Methode aufrufen? Java Basics - Anfänger-Themen 29
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
scratchy1 Methode aufrufen Java Basics - Anfänger-Themen 59
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
O Rekursiv aufrufen Java Basics - Anfänger-Themen 2
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
C Methoden Methode Variabel aufrufen Java Basics - Anfänger-Themen 2
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
B Funktionen von außen aufrufen Java Basics - Anfänger-Themen 1
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
G Stringwerte aus anderen Klassen aufrufen. Java Basics - Anfänger-Themen 19
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
K Compiler-Fehler Objektmethode aus einer statischen Methode heraus aufrufen Java Basics - Anfänger-Themen 34
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
Azazel Klasseninstanzen zufällig aufrufen Java Basics - Anfänger-Themen 3
J Open Office Property Value mit Java aufrufen Java Basics - Anfänger-Themen 0
S Methoden Methode einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 5
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
W Methoden Methode auf Array aufrufen, und dieses Array dabei ändern? Java Basics - Anfänger-Themen 10
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
H Klassen varibale einer klasse in einer anderen klasse aufrufen und häufigkeit ausgeben Java Basics - Anfänger-Themen 22
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T Externe Methoden aufrufen Java Basics - Anfänger-Themen 3
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
U Erste Schritte Kann length() für Array nicht aufrufen Java Basics - Anfänger-Themen 2
Fishmeaker Methoden mit Methoden aufrufen - Programm hängt sich auf Java Basics - Anfänger-Themen 5
A Erste Schritte Programm in Shell mit bestimmter Java-Version aufrufen Java Basics - Anfänger-Themen 10
Q Methode eines bereits erzeugten Objekts von einem anderen Objekt aus aufrufen Java Basics - Anfänger-Themen 6
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
P Internetseite aufrufen Java Basics - Anfänger-Themen 4
M Mailprogramm aufrufen Java Basics - Anfänger-Themen 6
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
L Mit rekursiven Aufrufen einen Stack emulieren Java Basics - Anfänger-Themen 1
F Um 14:00 eine Methode aufrufen Java Basics - Anfänger-Themen 5
B Methoden Array Methode aufrufen Java Basics - Anfänger-Themen 4
B Methoden Methoden Aufrufen Java Basics - Anfänger-Themen 6
P Rekursion mit 2 Aufrufen Java Basics - Anfänger-Themen 4
O Klasse übergeben und Methode aufrufen Java Basics - Anfänger-Themen 6
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben