Preisberechnung über Array

Status
Nicht offen für weitere Antworten.

Sunny81

Aktives Mitglied
Hi Leute, will bei meinem Programm zusätzlich eine Preisberechnung über einen Array ausgeben. Komm aber nicht weiter.

Wo muss ich den Array und wo die Berechnuzng einbauen damit der Array sich die eingegebenen Daten holt?

Danke

[JAVA=42]

public class Verwaltung



{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;
String []Artikel = {"PC", "Laptop"};
double [] prozessorpreis = {249.99, 499.99};
String [] prozessortyp = {"AMD", "INTEL"};







public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

}


public void print(int i)
{
IO.writeln("Ihr" +Artikel+ "PC wurde erfolgreich zusammengestellt.\nProzessor: " + prozessor + "\nGbRAM: " + ram + "\nFestplatte: " + festplatte + "\nAnzahl: " + anzahl + "\nPreis: " + cpupreis);
}

public void bestimmeProzessorPreis()
{
if(prozessor.equals(prozessortyp[0]))
{
cpupreis=prozessorpreis[0];
}

else
{
cpupreis=prozessorpreis[1];
}

}




}


[/code]

Kann ich die rot markierten intervalle so angeben?


[JAVA=42]
public class Verwaltung



{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;

String []Artikel = {"PC", "Laptop"};
double [] prozessorpreis = {249.99, 499.99};
String [] prozessortyp = {"AMD", "INTEL"};
int [] festplattengroesse = {160 - 250, 250-400, 400-500};
double [] festplattenpreis = {59.99, 149.99, 249.99};
int [] ramSpeicher = {4-8, 8-16};
double [] ramSpeicherPreis = {249.99 , 499.99};








public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

}


public void print(int i)
{
IO.writeln("Ihr" +Artikel+ "PC wurde erfolgreich zusammengestellt.\nProzessor: " );
}






}


[/code]
 

javimka

Top Contributor
Ich kann dir leider nicht ganz folgen. Wieso hast du zwei Klassen mit dem gleichen Namen? Was für eine Preisberechnung möchtest du machen? Über einem Array das die Preise enthält?
Was genau meinst du mit "Das Array holt sich die Daten"? Du musst die Daten in das Array speichern mit array = ...;
 

Sunny81

Aktives Mitglied
Oh sorry, die 1. Klasse heisst Verwaltung und die 2. Bestellung.

Also ch frage ja den User in Bestellung ab welche Komponenten er will.
Und ich möchte nach dem bestellen ihm dann einen Preis ausgeben der von seinen Angaben abhängt.
Wie es in den Arrays gespeichert ist.

Sprich in den Intervallen vom Ram Speicher, prozessorabhängig und Festplattengroesse in Intervallen abhängig.
 

javimka

Top Contributor
Dann hast du also zu jedem Ram, Prozessor usw einen Preis und willst den Gesamtpreis ausrechnen?

Du könntest eine HashMap verwenden und die Namen der RAM/CPU etc. als Schlüssel verwenden. Mit put("Intel",300) kannst du dann festlegen, dass ein Intel 300 Euro kostet. Mit get("Intel") kriegst du den Preis für einen Intel-Prozessor wieder zurück und kannst die Werte zusammenrechnen.
 

Sunny81

Aktives Mitglied
Wie würde das gehen?
Hab das noch nie gehört.
Und wie mach ich das mit den Intervallen bei ram und festplatten?
Danke
 

javimka

Top Contributor
Nein, deine Intervalle funktionieren nicht. Du meinst sicher das da:
int [] festplattengroesse = {160 - 250, 250-400, 400-500};
Für den Compilierer sind das ganz normale Subtraktionen, du erhälst das Array {-90,-150,-100}.
Du könntest sie aus String abspeichern, aber dann kannst du sie natürlich nicht mehr als Zahlen verwenden, sie sind dann halt Strings.

Mti der HashMap könnte das etwa so aussehen:
Java:
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
hashMap.put("Intel", 300);
hashMap.get("Intel"); // 300 kommt zurück
 

eRaaaa

Top Contributor
Java:
	Map<String, Double> artikel = new HashMap<String, Double>();
	artikel.put("PC", 249.99);
	artikel.put("Laptop", 499.99);
	artikel.put("Festplatte160", 59.99);
	artikel.put("Festplatte250", 149.99);
	//usw.
	artikel.put("RAM8", 249.99);
	artikel.put("RAM16", 499.99);
	
	System.out.println("kaufe 1 PC (160 Festplatte, 8er RAM");
	System.out.println("Das kostet: "
		+ (artikel.get("PC") + artikel.get("Festplatte160") + artikel.get("RAM8")) + " €");

:bae:

/edit: too late ;/
 

Sunny81

Aktives Mitglied
Gibts eine Möglichkeit die Intervalle unterzubringen?
Und kann man das auch irgendwie über Arrays lösen?
Danke
 

javimka

Top Contributor
Du könntest eine Klasse Intervall machen mit einer unteren und oberen Schranke, die eine Methode "boolean contains(int v)" bietet, die für einen int v berechnet, ob er im Intervall liegt oder nicht.
Mehrere solche Objekte könntest du dann natürlich in ein Array legen.
 

Sunny81

Aktives Mitglied
Du könntest eine Klasse Intervall machen mit einer unteren und oberen Schranke, die eine Methode "boolean contains(int v)" bietet, die für einen int v berechnet, ob er im Intervall liegt oder nicht.
Mehrere solche Objekte könntest du dann natürlich in ein Array legen.

Vielleicht bisschen genauer...
Bin noch wirklich sehr unbelesen...
Danke Danke Danke
 

javimka

Top Contributor
Die Klasse Intervall:
Java:
public class Intervall {
  private int lower;
  private int upper;
  public Intervall(int lower, int upper) {
    this.lower = lower;
    this.upper = upper;
  }

  public boolean contains(int v) {
    return lower <= v && v <= upper;
  {
}

Und dann kannst du ein Array aus Intervallen machen:
Java:
private Intervall[] festplattengroesse = new Intervall[] {
    new Intervall(160,250),
    new Intervall(250,400),
    new Intervall(400,500) };

Wenn du dann den Preis für eine Festplatte willst:
Java:
// Das kommt in den Konstruktor:
for (Intervall i:festplattengroesse) {
  hashMap.put(i,300); // Festplatte i kostet 300 Euro
}

//Das ist die Methode, die den Preis für eine Festplatte findet:
public int getPreisFor(int v) { // sucht den Preis für eine Festplatte mit Grösse v
  for (Intervall i:festplattengroesse) {
    if (i.contains(v)) {
      return hasMap.get(i);
    }
  }
  return 0; // Falls keine gefunden wurde, was natürlich nicht passieren darf
}
 

Sunny81

Aktives Mitglied
ah ok...

Was stimmt mit meinem COde hier grad nicht?

[JAVA=42]

import java.util.*;




public class Verwaltung



{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;
String []Artikel = {"PC", "Laptop"};

HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
hashMap.put("Intel", 300);
hashMap.put("AMD", 400);

HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
hashMap.put(4, 100);
hashMap.put(8, 200);
hashMap.put(16, 400);

HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
hashMap.put(160, 100);
hashMap.put(320, 250);
hashMap.put(500, 400);









public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

}


public void print(int i)
{
IO.writeln("Ihr" +Artikel+ "PC wurde erfolgreich zusammengestellt.\nProzessor: " + prozessor + "\nGbRAM: " + ram + "\nFestplatte: " + festplatte + "\nAnzahl: " + anzahl);
}





}
[/code]
 

javimka

Top Contributor
Du darfst [c]HashMap<String, Integer> hashMap[/c] nur einmal deklarieren. Du machst das in den Zeilen 60,64 und 69 aber insgesamt 3 Mal. Ich verstehe nicht, was du mit der zweiten und dritten bezwecken möchtest. Du speicherst darin ja die Artikel (auch wenn sie aus verschiedenen Kategorien bzw. Array kommen) als Schlüssel und den zugehörigen Wert.
Ausserdem hast du das ja alles einfach so in die Klasse geschrieben, die put-Anweisungen gehören natürlich in den Konstruktor

Vielleicht deklarierst du deine HashMap dann besser mit <Object,Integer>, dann kannst du auch int und Intervall als Schlüssel brauchen.

Also streiche Zeilen 64 und 69 ersatzlos und dann ändere die Deklarierung auf Zeile 60 in:
HashMap<Object,Integer> hasMap = new HashMap<Object,Integer>();

Die drei Blöcke mit den put-Befehlen kommen in den Konstruktor.
Und dann musst du aus den Intervallen natürlich Instanzen der Klasse Intervall machen. Diese dann als Schlüssel verwenden.
 

Sunny81

Aktives Mitglied
Ich brauche doch noch ein HAsh Map für die Variante Integer,Integer?
Da ich bei der Abfrage nach der Festplatte doch einen Integer und keinen String kriege?
Das mit den Intervallen lass ich mal.
Ist mir zu kompliziert.
 

eRaaaa

Top Contributor
du kannst der aber auf garkeinen fall dann den gleichen namen geben, wie der anderen hashmap

String sunny = "Sunny81";

und

String sunny = "eRaaaa";


geht ja schließlioch auch nicht ;D
 

eRaaaa

Top Contributor
Du darfst [c]HashMap<String, Integer> hashMap[/c] nur einmal deklarieren. Du machst das in den Zeilen 60,64 und 69 aber insgesamt 3 Mal. Ich verstehe nicht, was du mit der zweiten und dritten bezwecken möchtest. Du speicherst darin ja die Artikel (auch wenn sie aus verschiedenen Kategorien bzw. Array kommen) als Schlüssel und den zugehörigen Wert.
Ausserdem hast du das ja alles einfach so in die Klasse geschrieben, die put-Anweisungen gehören natürlich in den Konstruktor

Vielleicht deklarierst du deine HashMap dann besser mit <Object,Integer>, dann kannst du auch int und Intervall als Schlüssel brauchen.

Also streiche Zeilen 64 und 69 ersatzlos und dann ändere die Deklarierung auf Zeile 60 in:
HashMap<Object,Integer> hasMap = new HashMap<Object,Integer>();

Die drei Blöcke mit den put-Befehlen kommen in den Konstruktor.
Und dann musst du aus den Intervallen natürlich Instanzen der Klasse Intervall machen. Diese dann als Schlüssel verwenden.

so z.b. :)

oder einfach anders benennen:

mapCPU,
mapHDD
mapRAM

wobei eine map vllt. für dich einfacher wäre, bzw ich auch garnicht genau weiss, was du damit dann noch so vorhast :D
 
Zuletzt bearbeitet:

javimka

Top Contributor
Kennst du das Spiel, wo das erste Kind etwas sagt und das zweite dann immer fragt "warum?" und dann gibt das erste wieder eine Antwort und das zweite fragt wieder "warum?", "warum?", "warum?", "warum?" und so weiter? So kommt mir das hier etwa vor :noe:

was GENAU meinst du denn mit "wie macht man DAS"?
 

Sunny81

Aktives Mitglied
Leute bitte helft mir noch einmal.
Was muss ich jetzt in meine print Methode eingeben damit der Preis nach den Angaben vom User berechnet wird.
[JAVA=42]import java.util.*;




public class Verwaltung



{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;
String []Artikel = {"PC", "Laptop"};

HashMap<String, Integer> cpu = new HashMap<String, Integer>();
HashMap<Integer, Integer> Ram = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> platte = new HashMap<Integer, Integer>();










public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

cpu.put("Intel", 300);
cpu.put("AMD", 400);

Ram.put(4, 100);
Ram.put(8, 200);
Ram.put(16, 400);

platte.put(160, 100);
platte.put(320, 250);
platte.put(500, 400);


}


public void print(int i)
{
IO.writeln("Ihr" +Artikel+ "PC wurde erfolgreich zusammengestellt.\nProzessor: " + prozessor + "\nGbRAM: " + ram + "\nFestplatte: " + festplatte + "\nAnzahl: " + anzahl + "\nIhr Preis: " + HIER);
}





}[/code]
 

eRaaaa

Top Contributor
also, erstmal solltest du den code mal formatieren, kann ja kein mensch lesen ;D
dann würde ich mir eine neue methode schreiben:
Java:
    private double calc() {
	return cpu.get(this.prozessor) + Ram.get(this.ram)
		+ platte.get(this.festplatte);
    }

und diese halt in deiner print methode aufrufen:
Java:
    public void print(int i) {
	System.out.print("Ihr " + Artikel[i]
		+ " PC wurde erfolgreich zusammengestellt.\nProzessor: "
		+ prozessor + "\nGbRAM: " + ram + "\nFestplatte: " + festplatte
		+ "\nAnzahl: " + anzahl + "\nIhr Preis: " + calc());
    }

wobei ich persönlich finde, dass die klasse irgendwie durcheinander ist, also irgendwie ist da verwaltung, mit bestellung + warenkorb gemischt ;D
aber funktionieren sollte es jetzt zumindestens, nur halt nicht optimal :D


Java:
import java.util.HashMap;

public class Verwaltung

{

    private String prozessor;
    private int ram;
    private int festplatte;
    static int anzahl;
    String[] Artikel = { "PC", "Laptop" };

    HashMap<String, Integer> cpu = new HashMap<String, Integer>();
    HashMap<Integer, Integer> Ram = new HashMap<Integer, Integer>();
    HashMap<Integer, Integer> platte = new HashMap<Integer, Integer>();

    public void setProzessor(String prozessor) {
	this.prozessor = prozessor;
    }

    public String getProzessor() {
	return prozessor;
    }

    public void setRam(int ram) {
	this.ram = ram;
    }

    public int getRam() {
	return ram;
    }

    public void setFestplatte(int festplatte) {
	this.festplatte = festplatte;
    }

    public int getFestplatte() {
	return festplatte;
    }

    public Verwaltung(String pprozessor, int pram, int pfestplatte) {

	prozessor = pprozessor;
	ram = pram;
	festplatte = pfestplatte;
	anzahl++;

	cpu.put("Intel", 300);
	cpu.put("AMD", 400);

	Ram.put(4, 100);
	Ram.put(8, 200);
	Ram.put(16, 400);

	platte.put(160, 100);
	platte.put(320, 250);
	platte.put(500, 400);

    }

    public void print(int i) {
	System.out.print("Ihr " + Artikel[i]
		+ " wurde erfolgreich zusammengestellt.\nProzessor: "
		+ prozessor + "\nGbRAM: " + ram + "\nFestplatte: " + festplatte
		+ "\nAnzahl: " + anzahl + "\nIhr Preis: " + calc());
    }

    private double calc() {
	return cpu.get(this.prozessor) + Ram.get(this.ram)
		+ platte.get(this.festplatte);
    }

    public static void main(String[] args) {
	Verwaltung verwaltung = new Verwaltung("Intel", 16, 500);
	verwaltung.print(0);
    }
}
 

Sunny81

Aktives Mitglied
Wieso gibst du im Konstruktor schon Werte vor?
Ich will doch dass der User die eingibt über die IO Abfrage?
Danke


[JAVA=42]public class Bestellung


{
static String prozessor=null;
static int ram=0;
static int festplatte=0;

public static void main(String args[])
{



for(;;)
{

int select= IO.promptAndReadInt("Wählen Sie 1 um einen PC zu erstellen!\nWählen Sie 2 um einen Laptop zu erstellen!\nWählen Sie 3 um zu beenden!\n");

switch(select)

{




case 1:


auswahl();







Verwaltung o1 = new Verwaltung(prozessor, ram, festplatte);

o1.print(0);
break;



case 2:

auswahl();

Verwaltung o2 = new Verwaltung(prozessor, ram, festplatte);

o2.print(1);
break;


case 3: IO.writeln("Vielen Dank für Ihren besuch - Auf Wiedersehen!");
break;

default: IO.writeln("Falsche Taste - Bitte erneut wählen.");
break;

}






}
}

public static void auswahl()
{
while(prozessor==null)
{
prozessor=IO.promptAndReadString("Bitte wählen Sie den Prozessor aus:");
if(!"INTEL".equals(prozessor) && !"AMD".equals(prozessor))
{
prozessor=null;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}




while(ram==0)
{
ram=IO.promptAndReadInt("Bitte wählen Sie den Arbeitsspeicher aus:");
if(ram<4 || ram>16)
{
ram=0;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}




while(festplatte==0)
{
festplatte=IO.promptAndReadInt("Bitte wählen Sie die Festplatte aus:");
if(festplatte<160 || festplatte>500)
{
festplatte=0;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}
}

}
[/code]





[JAVA=42]import java.util.*;




public class Verwaltung



{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;
String []Artikel = {"PC", "Laptop"};

HashMap<String, Integer> cpu = new HashMap<String, Integer>();
HashMap<Integer, Integer> Ram = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> platte = new HashMap<Integer, Integer>();










public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

cpu.put("Intel", 300);
cpu.put("AMD", 400);

Ram.put(4, 100);
Ram.put(8, 200);
Ram.put(16, 400);

platte.put(160, 100);
platte.put(320, 250);
platte.put(500, 400);


}


public void print(int i)
{
IO.writeln("Ihr" +Artikel
+ "PC wurde erfolgreich zusammengestellt.\n" +
"Prozessor: " + prozessor + "\n" +
"GbRAM: " + ram + "\n" +
"Festplatte: " + festplatte + "\n" +
"Anzahl: " + anzahl + "\n" +
"Ihr Preis: " + calc() );
}

private double calc() {
return cpu.get(this.prozessor) + Ram.get(this.ram)
+ platte.get(this.festplatte);
}




}
[/code]
 

eRaaaa

Top Contributor
ja dann machs doch so ???:L

ich hab die main methode doch nur aus testzwecken, bzw vorführungszwecken wenn mans so nennen mag, eingebaut
 

Sunny81

Aktives Mitglied
Hi Leute, soweit klappts fast schon.

Kann mir vllt jmd erklären wieso wenn ich bei der Abfrage "INTEL" eingebe es nicht klappt?

bei AMD funktioniert es.

Danke






[JAVA=42]public class Bestellung


{
static String prozessor=null;
static int ram=0;
static int festplatte=0;

public static void main(String args[])
{



for(;;)
{

int select= IO.promptAndReadInt("Wählen Sie 1 um einen PC zu erstellen!\nWählen Sie 2 um einen Laptop zu erstellen!\nWählen Sie 3 um zu beenden!\n");

switch(select)

{




case 1:


auswahl();







Verwaltung o1 = new Verwaltung(prozessor, ram, festplatte);

o1.print(0);
break;



case 2:

auswahl();

Verwaltung o2 = new Verwaltung(prozessor, ram, festplatte);

o2.print(1);
break;


case 3: IO.writeln("Vielen Dank für Ihren besuch - Auf Wiedersehen!");
break;

default: IO.writeln("Falsche Taste - Bitte erneut wählen.");
break;

}






}
}

public static void auswahl()
{
while(prozessor==null)
{
prozessor=IO.promptAndReadString("Bitte wählen Sie den Prozessor aus:");
if(!"INTEL".equals(prozessor) && !"AMD".equals(prozessor))
{
prozessor=null;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}




while(ram==0)
{
ram=IO.promptAndReadInt("Bitte wählen Sie den Arbeitsspeicher aus:");
if(ram<4 || ram>16)
{
ram=0;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}




while(festplatte==0)
{
festplatte=IO.promptAndReadInt("Bitte wählen Sie die Festplatte aus:");
if(festplatte<160 || festplatte>500)
{
festplatte=0;
IO.writeln("Ungültig - Bitte erneut wählen!");
}

else
{
IO.writeln("Erfolgreich hinzugefügt!");
}
}
}

}

[/code]








[JAVA=42]

{

private String prozessor;
private int ram;
private int festplatte;
static int anzahl;
String []Artikel = {"PC", "Laptop"};

HashMap<String, Integer> cpu = new HashMap<String, Integer>();
HashMap<Integer, Integer> Ram = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> platte = new HashMap<Integer, Integer>();










public void setProzessor(String prozessor)
{this.prozessor=prozessor;}

public String getProzessor()
{return prozessor;}

public void setRam(int ram)
{this.ram = ram;}

public int getRam()
{return ram;}

public void setFestplatte(int festplatte)
{
this.festplatte = festplatte;
}

public int getFestplatte()
{
return festplatte;
}




public Verwaltung(String pprozessor, int pram, int pfestplatte) //Konstruktor
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
anzahl++;

cpu.put("Intel", 300);
cpu.put("AMD", 400);

Ram.put(4, 100);
Ram.put(8, 200);
Ram.put(16, 400);

platte.put(160, 100);
platte.put(320, 250);
platte.put(500, 400);


}


public void print(int i)
{
IO.writeln("Ihr" +Artikel
+ "PC wurde erfolgreich zusammengestellt.\n" +
"Prozessor: " + prozessor + "\n" +
"GbRAM: " + ram + "\n" +
"Festplatte: " + festplatte + "\n" +
"Anzahl: " + anzahl + "\n" +
"Ihr Preis: " + calc() );
}

private double calc() {
return cpu.get(this.prozessor) + Ram.get(this.ram)
+ platte.get(this.festplatte);
}




}
[/code]
 

javimka

Top Contributor
Wahrscheinlich hast du es einmal klein und einmal gross geschrieben.

Wieso machst du deinen Code eigentlich partout nicht leserlich? Z.B. Zeile 54 bis 63 sind leer, Zeile 64 bis 84 haben dann 8-fache Einrückungen ???:L
Schau mal, wie schön das eRaaaa gemacht hat.
 

eRaaaa

Top Contributor
Kann mir vllt jmd erklären wieso wenn ich bei der Abfrage "INTEL" eingebe es nicht klappt?

ok, vllt sind da auch wir ein wenig dran schuld :)
also es wäre vllt besser, in der map alle strings immer als lower-case zu halten.
also anstatt map.put("Intel",..); und map.put("AMD",..) lieber map.put("intel",..) und map.put("amd"..)

und wenn du dann mit map.get(...) die abfrage machst, rufst du z.b. lieber map.get(this.prozessor.toLowerCase()) usw. auf.
 

javimka

Top Contributor
Einfache Einrückung (leserlich):
Java:
    public void setProzessor(String prozessor) {
        this.prozessor=prozessor;
    }

8-facht Einrückung (Schrott):
Java:
                                public void setProzessor(String prozessor)
                                {this.prozessor=prozessor;}

Benutze etweder, wie eRaaaa sagt toLowerCase() oder schreib die Strings korrekt. Und frag jetzt nicht "wie macht man das?" :mad:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
B großzügiges Pixelraster über Bildschirm legen Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
S Java über SSH Java Basics - Anfänger-Themen 13
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
W char über die Konsole? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O Java über cmd benutzen ? Java Basics - Anfänger-Themen 5
J Variablenzugriff über string Java Basics - Anfänger-Themen 18
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B OOP-Anfänge über CMD + Editor Java Basics - Anfänger-Themen 30
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
1 Erste Schritte Was denkt ihr über eines meiner ersten Javaprogramme? Java Basics - Anfänger-Themen 2
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Iterieren über eine CSV Datei Java Basics - Anfänger-Themen 7
I GUI über Eclipse oder NetBeans Java Basics - Anfänger-Themen 23
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
S Bild über JButton legen Java Basics - Anfänger-Themen 3
temi Druckeransteuerung über ESC-Sequenz Java Basics - Anfänger-Themen 21
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
X Minimax-Algorithmus über alle Kanten möglich? - Kanten darstellen Java Basics - Anfänger-Themen 1
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
E Frage über Speichern und Ausgabe Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
X Betriebssytem interne Consolen Commands über Java starten Java Basics - Anfänger-Themen 2
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
A .jar über Webbrowser aufrufen Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
L Erste Schritte Arrays über eine for Schleife ansprechen. Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
F Gewichteter Mittelwert über eine Zeitperiode Java Basics - Anfänger-Themen 3
B Schleife über einen Container Java Basics - Anfänger-Themen 7
Henri Paare Frage über Java Programmierung Java Basics - Anfänger-Themen 10
T jar von stick aus über jre auf stick starten Java Basics - Anfänger-Themen 6
L Iterieren über ArrayList Java Basics - Anfänger-Themen 1
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
N .propertiesdatei über Relativen Pfad einlesen lassen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben