Hallo,
wir haben mal wieder einige Aufgaben zu bewältigen.
Meiner Meinung nach ist das alles etwas heftig in der kurzen Zeit.
Wir sind mittlerweile bei Konstruktoren, Zugriffsmethoden bei private Attributen, etc.
Nun haben wir eine Aufgabe bekommen, in der wir u.a. eine void Methhode zur Berechnung
einer Erhoehung eines Rabatts erstellen sollen. Ich bin schon ewig am tüfteln, doch bekomme
es nicht hin. Ich hoffe, ihr könnt mir helfen. Ich werde die Datei mal als Anhang einstellen, da
sie etwas länger ist.
comment: Geht ja gar nicht! Naja, dann stelle ich es so ein, wennes recht ist.
Schon mal vielen für eure Zeit.
gruß
Toxic
Teilaufgabe:
void erhoeheRabatt (double Prozent): erhöht den Rabatt von allen Aufträgen um Prozent Prozent.
Code:
wir haben mal wieder einige Aufgaben zu bewältigen.
Meiner Meinung nach ist das alles etwas heftig in der kurzen Zeit.
Wir sind mittlerweile bei Konstruktoren, Zugriffsmethoden bei private Attributen, etc.
Nun haben wir eine Aufgabe bekommen, in der wir u.a. eine void Methhode zur Berechnung
einer Erhoehung eines Rabatts erstellen sollen. Ich bin schon ewig am tüfteln, doch bekomme
es nicht hin. Ich hoffe, ihr könnt mir helfen. Ich werde die Datei mal als Anhang einstellen, da
sie etwas länger ist.
comment: Geht ja gar nicht! Naja, dann stelle ich es so ein, wennes recht ist.
Schon mal vielen für eure Zeit.
gruß
Toxic
Teilaufgabe:
void erhoeheRabatt (double Prozent): erhöht den Rabatt von allen Aufträgen um Prozent Prozent.
Code:
Code:
// alle Klassen des Packages java.io (I/O-Funktionen) werden importiert
import java.io.*;
// Die Klasse Auftragsverwaltung wird deklariert.
public class nAuftragsverwaltung
{
// Deklaration des Arrays arr für die Klasse Auftragsverwaltung
static nAuftragsverwaltung arr[];
/** Variablen (Instanzvariablen) werden deklariert.
* Die Attribute werden mit private deklariert. So kann nur mit
* bestimmten klasseninternen Zugriffsmethoden auf sie zugegriffen werden.
*/
private int nummer;
private String auftraggeber;
private int beginn;
private int ende;
private String status;
private double preis;
private double rabatt;
/** Klasseninterne Zugriffsmethoden (z.B. void setBezeichner(Parameter))
* Die Attribute werden vom Konstruktor bzw. vom erstellten Objekt übergeben.
* Das Schlüsselwort this instanziiert die Instanzvariable mit dem übergebenen Wert.
*/
void setNummer(int i)
{
this.nummer = i;
}
void setAuftraggeber(String s)
{
this.auftraggeber = s;
}
void setBeginn(int i)
{
this.beginn = i;
}
void setEnde(int i)
{
this.ende = i;
}
void setStatus(String s)
{
this.status = s;
}
// Alternativ zu Methode oben
// String neuerStatus wird hier an Methode übergeben
// public void setStatus(String neuerStatus)
// {
// this.Status = neuerStatus;
// }
public void setPreis(double d)
{
this.preis = d;
}
void setRabatt(double d)
{
this.rabatt = d;
}
// Zugriffsmethoden, mit denen auf die Attribute (private) zugegriffen werden kann.
int getNummer()
{
return this.nummer;
}
String getAuftraggeber()
{
return this.auftraggeber;
}
int getBeginn()
{
return this.beginn;
}
int getEnde()
{
return this.ende;
}
String getStatus()
{
return this.status;
}
double getPreis()
{
return this.preis;
}
public double getRabatt()
{
return this.rabatt;
}
/** Konstruktor
* Mit Hilfe des Konstruktors und dem new-Operator wird dem
* neuen Objekt Speicher zugewiesen und Atrribute instanziiert.
*/
public nAuftragsverwaltung(int nr, String ag, int bg, int en, String st, double pr, double ra)
{
this.nummer = nr;
this.auftraggeber = ag;
this.beginn = bg;
this.ende = en;
this.status = st;
this.preis = pr;
this.rabatt = ra;
}
/** Methode zur Berechnung der restlichen Laufzeit eines Auftrages.
* Die Variable aktuelleKW ist in diesem Falle statisch und wird beim
* Aufruf der Methode übergeben.
* Damit keine negative Ausgabe erfolgt, ist eine if-Abfrage implementiert.
*/
int getRestlicheLaufzeit(int aktuelleKW)
{
if (aktuelleKW > ende)
{
return 0;
}
else
{
return ende - aktuelleKW;
}
}
/** Methode zur Berechnung bzw. Ausgabe des Auftragsstatus.
* Die Variable aktuelleKW ist in diesem Falle statisch und wird beim
* Aufruf der Methode übergeben.
*/
String getAuftragsstatus(int aktuelleKW)
{
if (aktuelleKW > ende)
{
status = "beendet";
return status;
}
else
{
if (aktuelleKW < beginn)
{
status = "nicht angefangen";
return status;
}
else
{
if (beginn < aktuelleKW)
{
status = "angefangen";
return status;
}
else
{
status = "in Verzug";
return status;
}
}
}
}
// Methode zur Berechnung des Preis mit Rabatt
double berechnePreis()
{
return preis - (preis * (rabatt/100));
}
// Methode zur Ausgabe der Daten durch Aufruf der Zugriffsmethoden.
void print()
{
System.out.println ("Daten von Auftrag-Nr. " + getNummer() + ":\n");
System.out.println ("Auftraggeber: " + getAuftraggeber());
System.out.println ("Auftragsbeginn: " + getBeginn() + " KW");
System.out.println ("Auftragsende: " + getEnde() + " KW");
System.out.println ("Auftragsstatus: " + getAuftragsstatus(26));
System.out.println ("Restliche Laufzeit: " + getRestlicheLaufzeit(26) + " KW");
System.out.println ("Gesamtpreis: " + getPreis() + " EUR");
System.out.println ("Rabatt: " + getRabatt() + " %");
System.out.println ("Gesamtpreis abzgl. Rabatt: " + berechnePreis() + " EUR \n");
System.out.println ("Gesamtpreis nach Erhoehung d. Rabattes: " + erhoeheRabatt());
}
// Methode zur Berechnung der Summe aller Einnahmen
static double berechneEinnahmen()
{
double gesPreis = 0;
for (int i = 0; i < arr.length; i++)
gesPreis = gesPreis + arr[i].berechnePreis();
return gesPreis;
}
// Methode zur Berechnung des erhöhten Rabattes
// static double erhoeheRabatt()
// {
// return;
// }
// Die "ausführende" main-Methode wird deklariert.
public static void main(String args[])
{
// Das Array arr wird instanziiert und Speicher wird zugewiesen.
arr = new nAuftragsverwaltung [3];
// Die erstellten Objekte werden in Arrays gespeichert.
arr[0] = new nAuftragsverwaltung(108,"Jonny Peters",23,28,"beendet",1568,3);
arr[1] = new nAuftragsverwaltung(109,"Carola Magnus",29,32,"beendet",896,3);
arr[2] = new nAuftragsverwaltung(110,"Peter Meyer",33,46,"beendet",5623,3);
// for-Schleife zur Ausgabe der Summe aller Einnahmen
// Das Attribut length gibt die Anzahl der Arrayelemente aus.
for (int i=0; i < arr.length; i++)
{
arr[i].print();
}
System.out.println ("Summe aller Einnahmen: " + berechneEinnahmen() +" EUR");
//
//void info()
//{
// BufferedReader In = new BufferedReader(new InputStreamReader(System.in));
// System.out.println ("Bitte geben Sie die gesuchte Auftragsnummer ein!");
// String eingabeAuftragsNr = In.readLine();
// int auftragsnr = Integer.parseInt(eingabeAuftragsNr);
// }
}
}