java_Code?

Kann einer diese beide Methode erklären? wie läuft switch-case hier?

 /**
     * Gibt den Besitzer der angegebenen Position auf dem Spielfeld.
     *
     * @param zeile  vertikale Position (0-2)
     * @param spalte horizontale Position (0-2)
     * @return 0 (unbesetzt), 1 (Spieler 1), 2 (Spieler 2)
     */
    @Override
    public int gibBesitzer(int zeile, int spalte) {
        int besitzer = 0;
        char zeichen = feld.charAt(gibPosition(zeile, spalte));
        switch (zeichen){
            case '0':
                besitzer = 0;
                break;
            case '1':
                besitzer = 1;
                break;
            case '2':
                besitzer = 2;
                break;
        }
        return besitzer;
    }


    /**
     * Besetzt die angegebene Position auf dem Spielfeld fuer einen Spieler.
     *
     * @param zeile   vertikale Position (0-2)
     * @param spalte  horizontale Position (0-2)
     * @param spieler 0 (leer), 1 (Spieler 1), 2 (Spieler 2)
     */
    @Override
    public void besetzePosition(int zeile, int spalte, int spieler) {
        int position = gibPosition(zeile, spalte);
        feld = feld.substring(0, position) + spieler + feld.substring (position + 1);
    }
Mathematik, programmieren, Java, Informatik, Softwareentwicklung, Wirtschaftsinformatik, Wirtschaftsmathematik
Java-Code erklären?
Ich bitte um eine ausführliche Erklärung!
 * Ein Spielfeld besteht aus drei Zeilen mit je drei Spalten. Man kann an den
 * neun Positionen einen der beiden Spieler als Besitzer eintragen und auslesen.
 */
public class SpielfeldString implements Spielfeld 
{
    private String feld;


    /**
     * Initialisiert ein neues, leeres Spielfeld.
     */
    public SpielfeldString() {
        feld = "000000000";
        //012345678
    }


    /**
     * Die Methode berechnet die bestimmte Position.
     *
     * @param zeile   vertikale Position (0-2)
     * @param spalte  horizontale Position (0-2)
     * @return eine Int-Zahl von 0 bis 8
     */
    private int gibPosition(int zeile, int spalte){
        if (zeile < 0 || zeile > 2 || spalte < 0 || spalte > 2){
            throw new IllegalArgumentException("Spalte oder Zeile ist ausser dem Feld!");
        }
        return zeile * 3 + spalte;
    }


    /**
     * Gibt den Besitzer der angegebenen Position auf dem Spielfeld.
     *
     * @param zeile  vertikale Position (0-2)
     * @param spalte horizontale Position (0-2)
     * @return 0 (unbesetzt), 1 (Spieler 1), 2 (Spieler 2)
     */
    @Override
    public int gibBesitzer(int zeile, int spalte) {
        int besitzer = 0;
        char zeichen = feld.charAt(gibPosition(zeile, spalte));
        switch (zeichen){
            case '0':
                besitzer = 0;
                break;
            case '1':
                besitzer = 1;
                break;
            case '2':
                besitzer = 2;
                break;
        }
        return besitzer;
    }


    /**
     * Besetzt die angegebene Position auf dem Spielfeld fuer einen Spieler.
     *
     * @param zeile   vertikale Position (0-2)
     * @param spalte  horizontale Position (0-2)
     * @param spieler 0 (leer), 1 (Spieler 1), 2 (Spieler 2)
     */
    @Override
    public void besetzePosition(int zeile, int spalte, int spieler) {
        int position = gibPosition(zeile, spalte);
        feld = feld.substring(0, position) + spieler + feld.substring (position + 1);
    }


    /**
     * Gibt an, ob das Spielfeld an allen Positionen belegt ist.
     */
    @Override
    public boolean istVoll() {
        return feld.indexOf("0") == -1; // da wenn es kein 0 mehr in der Zeichenkette gibt,
        // wird -1 zurückgegeben.
    }
}
Mathematik, programmieren, Java, Informatik, Softwareentwicklung, Wirtschaftsinformatik
JAVA Arraylist Berechnen mit int und double und Abspeichern von Zwischenwerten?

Hallo Zusammen

Ich muss in einer Aufgabe int und Double Werte miteinander multiplizieren, siehe im Code bei TODO.

import java.util.ArrayList;

public class Einkauf {
	
	private ArrayList<Produkt> produkte = new ArrayList<Produkt>();

	public void addEinkauf(double preis, 
	                        int faktor, 
	                        int menge, 
	                        String name) {
		produkte.add(new Produkt(preis, faktor, menge, name));
	}
	
	public double getPunkte() {
		
// TODO: Punkte des Einkaufs berechnen und zurückgeben
    double punkte;  // sollte richtig sein 
    for (Produkt p : produkte){
        punkte = (preis*menge*faktor); // hier ist ein Fehler 
        produkte.save(punkte);
        return punkte;
    }
	}
}

Es sollen die Treuepunkte wie folgt berechnet werden: Pro CHF Umsatz gibt es einen Punkt. Rappenbeträge werden berücksichtigt: Kostet ein Produkt CHF 3.20, ergibt dies 3.2 Punkte. Zusätzlich kann bei jedem Produkt ein Faktor angegeben werden. Damit kann der Grossverteiler für bestimmte Produkte mehr Punkte ausschütten. Wenn beispielsweise ein Produkt für CHF 3.20 einen Faktor von 10 hat, gibt es für dieses Produkt 32 Punkte.

Für den oben gezeigten Einkauf beträgt das Punkte-Total 207.15.

Sprich, bei jedem Einkauf soll der zwischenwert gespeichert werden.

programmieren, Java, Array, Programmiersprache, Arraylist
JAVA Klassenmethoden- Methoden aufrufen und neue Werte abspeichern. Aber wie?
Hallo Zusammen

Ich brauche bei dem untersten Code Hilfe, weiss leider nicht wo mein Fehler ist..

Aufgabenstellung

Du implementierst eine Plattform, in der Artikel versteigert werden können. Zum Speichern eines Artikels verwendest du die folgende Klasse:

public class Artikel {
   public String name;
   public int preis = 0;
   public int gebote = 0;

   public Artikel(String name, int preis) {
      this.name = name;
      this.preis = preis;
   }
}

Das Attribut name enthält die Beschreibung des Artikels. Das Attribut preis enthält zu Beginn das Mindestgebot und später das bisher höchste Gebot. Die Attribute name und preis werden beide über den Konstruktor gesetzt. Im Attribut gebote wird die Anzahl gültiger Gebote gespeichert. Zu Beginn enthält das Attribut den Wert 0. Ein Gebot ist gültig, wenn eine der folgenden Bedingungen erfüllt ist:

  • Wenn noch kein Gebot abgegeben wurde und der gebotene Betrag mindestens gleich hoch ist wie das Mindestgebot.

Wenn das Gebot höher ist als das bisher höchste Gebot.

Ergänze die Methode so dass sie prüft, ob das übergebene Gebot gültig ist. Bei einem ungültigen Gebot soll nichts gemacht werden. Bei einem gültigen Gebot soll der Preis des Artikels angepasst und die Anzahl gültiger Gebote um eins erhöht werden.

Die Main-Klasse enthält Tests für drei Artikel. Schau dir die Tests an. Wenn du die Methode wie beschrieben erweitert hast, sollte das Programm die folgende Ausgabe machen:

Schrank: Gebote: 0, Preis: 100
Bett: Gebote: 2, Preis: 161
Stuhl: Gebote: 3, Preis: 30

Mein Code sieht folgendermassen aus:
Main Class: 
public class Main {
	
  public static void main(String[] args) {
    
		// In dieser Klasse keine Änderungen machen
		
		Artikel a = new Artikel("Schrank", 100);
		Artikel b = new Artikel("Bett",150);
		Artikel c = new Artikel("Stuhl", 20);
		
		a.biete(99);  // ungültig (Preis unter Minimum)
		b.biete(160);
		b.biete(159); // ungültig (Preis unter höchstem Gebot)
		b.biete(161); 
		c.biete(20);
		c.biete(23);
		c.biete(23);  // ungültig (Preis gleich hoch wie höchstes Gebot)
		c.biete(30);
		
		System.out.println(a.name+": Gebote: "+a.gebote+", Preis: "+a.preis);
		System.out.println(b.name+": Gebote: "+b.gebote+", Preis: "+b.preis);
		System.out.println(c.name+": Gebote: "+c.gebote+", Preis: "+c.preis);
	}
}
Klasse Artikel: 
public class Artikel {
	public String name; //Beschreibung des Artikels 
	public int preis = 0; // enthält erst das Mindestangebot und später das Höchstgebot 
	public int gebote = 0; 
	
	public Artikel(String name, int preis) {
		this.name = name;
		this.preis = preis;
	} 
	
	public void biete(int gebot) {
	  // TODO: Methode implementieren
	  while ((gebote==0 && gebot>preis) || (gebote>0 && gebot>preis)){
	  if ((gebote==0) && (gebot>=preis)) {
            artikel.preis==gebot;
            gebote++;
	      }
	  
	  if (gebote>0 && (preis>gebot){
	      preis==gebot; 
	      gebote++;
    }
    } 
    }
	}

Java, Programmiersprache

Meistgelesene Beiträge zum Thema Java