www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavajedes Objekt um eins erhöhen
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Java" - jedes Objekt um eins erhöhen
jedes Objekt um eins erhöhen < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

jedes Objekt um eins erhöhen: Tipp
Status: (Frage) beantwortet Status 
Datum: 22:53 Mo 19.04.2010
Autor: capablanca

Aufgabe
//sämtliche Klassen des Pakets "util" importieren
import java.util.*;

public class Main{

        //Atributendeklaration
        private double rabatt;

        //Scanner mit Objekt s initialisieren
        Scanner s = new Scanner(System.in);
        //Arrays mit drei Objekten von Classe Auftrag erzeugen
        Auftrag[] a = new Auftrag[3];

        //liest alle benötigten Daten für die Aufträge ein
        public static void main(String[] args)
       {
             //for Schleife initialisiert drei verschiedene Objekte
             //von Classe Auftragsverwaltung mit Werten
             for (int i = 0;i<3;i++)
             {
            a[i]=new Auftrag();

            //Auftragsdaten werden eingegeben
              System.out.println("geben Sie bitte folgende Daten ein:");
              System.out.print("Rabatt:");
              double rab = s.nextDouble();
              a[i].setRabatt(rab);
              
        }// ende forschleife

     }//ende main



//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }


    //erhöht den Rabatt von allen Aufträgen um Prozent Prozent
    void erhoeheRabatt(double Prozent)
    {
                        

            
    }

}//ende class

Hallo, wie kann man diese Methode:

//erhöht den Rabatt von allen Objekten um Prozent Prozent
void erhoeheRabatt(double Prozent)
{
}

füllen, damit der Rabatt von jedem Objekt erhöht wird?


würde mich über Tipps freuen
gruß

        
Bezug
jedes Objekt um eins erhöhen: Antwort
Status: (Antwort) fertig Status 
Datum: 23:24 Mo 19.04.2010
Autor: Event_Horizon

Hallo!

Wo ist denn dein Problem genau?

Du weißt anscheinend, wie man den Rabatt mit nem neuen Wert überschreibt. Genauso kannst du den Rabatt doch irgendwie mit dem Funktionsargument verrechnen, und das Ergebnis wieder in rabatt speichern...

Bezug
                
Bezug
jedes Objekt um eins erhöhen: Idee
Status: (Frage) beantwortet Status 
Datum: 09:39 Mi 21.04.2010
Autor: capablanca

Aufgabe
public class Main {

    
    public static void main(String[] args) {

        

        Scanner s = new Scanner(System.in);
        Auftragsverwaltung ka = new Auftragsverwaltung();
        
        ka.daten_Einlesen();
        System.out.println("Rabatt wurde bei allen Aufträgen um ein Prozent erhoeht");
        double[] Prozent = new double[3];
        ka.erhoeheRabatt(Prozent);
  }//ende main
}//ende class


import java.util.*;

public class Auftragsverwaltung extends Auftrag
{

     //Scanner mit Objekt s initialisieren
     Scanner s = new Scanner(System.in);
     //Arrays mit drei Objekten von Classe Auftrag erzeugen
     Auftrag[] a = new Auftrag[3];

     //liest alle benötigten Daten für die Aufträge ein
     void daten_Einlesen()
     {
        //for Schleife initialisiert drei verschiedene Objekte
        //von Classe Auftragsverwaltung mit Werten
        for (int i = 0;i<3;i++)
        {
          a[i]=new Auftrag();

//        Auftragsdaten werden eingegeben
          System.out.println("geben Sie bitte folgende Daten ein:");
          System.out.print("Rabatt:");
          double rab = s.nextDouble();
          a[i].setRabatt(rab);
  }// ende forschleife
     }//ende void daten einlesen

  void erhoeheRabatt(double[] Prozent)
     {
        for (int i=0; i<3; i++)
        {
        Prozent[i]=a[i].getRabatt();
        Prozent[i]++;
        }
     }
}//ende class


public class Auftrag {

       private double rabatt;

//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }

}// ende class

Hallo, ich weiss nicht genau woran es liegt, hier in dem Beispiel meine ich alles berücksichtigt zuhaben aber es klappt trotzdem nicht ?

wo könnte den mein Fehler liegen?

gruss capablanca

Bezug
                        
Bezug
jedes Objekt um eins erhöhen: Ich habe die Lösung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:10 Mi 21.04.2010
Autor: capablanca

in main -->

System.out.println("Rabatt wurde bei allen Aufträgen " +
                            "um ein Prozent erhoeht");
                    double Prozent = ka.getRabatt();
                    ka.erhoeheRabatt(Prozent);


in Auftragsverwaltung -->

void erhoeheRabatt(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
       a[i].setRabatt(a[i].getRabatt()+1);
        }
     }

Bezug
                        
Bezug
jedes Objekt um eins erhöhen: Antwort
Status: (Antwort) fertig Status 
Datum: 12:51 Mi 21.04.2010
Autor: Event_Horizon

Hallo!

Mir scheint, dir fehlt noch ein wenig das objektorientierte Denken.

Warum nicht so:



public class Auftrag {

       private double rabatt;

//zugriff auf Rabatt um änderungen vornehnmen zukönnen mit get, set
    double getRabatt()
    {
        
        return rabatt;
    }

    void setRabatt(double neuerRabatt)
    {
        rabatt = neuerRabatt;
    }


    void erhoeheRabatt(double prozent)
    {
        rabatt = rabatt+prozent;  // Wie auch immer das gerechnet werden soll
    }

}// ende class

sodaß jeder Auftrag das selber machen kann. Und dann in der AUftragsverwaltung einfach

  void erhoeheAlleRabatte(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
        a[i].erhoeheRabatt(Prozent);
        
        }
     }



generell sehe ich dort in deinem Code übrigens Probleme in  deiner Methode:

  void erhoeheRabatt(double[] Prozent)
     {
        for (int i=0; i<3; i++)
        {
        Prozent[i]=a[i].getRabatt();  
        Prozent[i]++;
        }
     }


Wozu ein Array Prozent? Du setzt doch alle Rabatte auf den gleichen Wert, oder? Und was auch immer du der Methode da übergibst, mit

Prozent[i]=a[i].getRabatt();  
Prozent[i]++;

werden die Werte mit den aktuellen Rabattwerten überschrieben, anschließend werden die Werte um 1 vergrößert, und danach nie wieder benutzt, sie sind dann einfach weg. Der vergrößerte Wert landet nie in den Aufträgen!

Wenn, dann geht das so:

  void erhoeheAlleRabatte(double Prozent)
     {
        for (int i=0; i<3; i++)
        {
        a[i].setRabatt(a[i].getRabatt() + Prozent);  

        }
     }

Bezug
                                
Bezug
jedes Objekt um eins erhöhen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:48 Fr 23.04.2010
Autor: capablanca

Hallo erstmal danke für die ausführliche Antwort und die Tipps.
> generell sehe ich dort in deinem Code übrigens Probleme in

das stimmt! hat nicht funktioniert musste geändert werden

> deiner Methode:
>
> void erhoeheRabatt(double[] Prozent)
> {
>          for (int i=0; i<3; i++)
>          {
>          Prozent=a.getRabatt();  
> Prozent++;
>          }
>       }
>
>
> Wozu ein Array Prozent? Du setzt doch alle Rabatte auf den
> gleichen Wert, oder? Und was auch immer du der Methode da
> übergibst, mit
>
> Prozent=a.getRabatt();  
> Prozent++;
>
> werden die Werte mit den aktuellen Rabattwerten
> überschrieben, anschließend werden die Werte um 1
> vergrößert, und danach nie wieder benutzt, sie sind dann
> einfach weg. Der vergrößerte Wert landet nie in den
> Aufträgen!
>
> Wenn, dann geht das so:
>
> void erhoeheAlleRabatte(double Prozent)
> {
>          for (int i=0; i<3; i++)
>          {
>          a.setRabatt(a.getRabatt() + Prozent);  
>
> }
>       }  

guter Vorschlag!


ich muss noch einwenig üben um es besser drauf zuhaben!

gruß capablanca


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]