Hilfe, bin Anfänger!

frau_miz

Neues Mitglied
Guten Tag Freunde, bin neu in der Java-Welt.

Ich hatte eine Aufgabe in der Uni und zwar sollte ich eine App für Konzertveranstalltungen machen, hab es genug es geht gemacht, aber eine Methode funktioniert nicht und zwar das stonieren.
Kann mir jemand sagen warum die Methode nicht so funktioniert und mir sagen wie ich es hätte besser machen.

Lg
Mizgin

Java:
public class Event {

    private String bezeichnung;
    private double preis;
    private Termin[]termine; // der früheste Termin steht ganz am Anfang
    private int anzahl_karten;
   
   
    public Event (String bezeichnung, Termin termine [], double preis, int anzahl_karten) {
       
        this.bezeichnung= bezeichnung;
        this.termine= termine;
        this.preis = preis;
        this.anzahl_karten = anzahl_karten;
       
    }


    public String getBezeichnung() {
        return bezeichnung;
    }


    public void setBezeichnung(String bezeichnung) {
        this.bezeichnung = bezeichnung;
    }


    public Termin[] getTermine() {
        return termine;
    }


    public void setTermine(Termin[] termine) {
        this.termine = termine;
    }


    public double getPreis() {
        return preis;
    }


    public void setPreis(double preis) {
        this.preis = preis;
    }


    public int getAnzahl_karten() {
        return anzahl_karten;
    }


    public void setAnzahl_karten(int anzahl_karten) {
        this.anzahl_karten = anzahl_karten;
    }
   

}
-----------------------------------------------------------------
[code]import java.util.ArrayList;

public class Kunde {

    private String name;
    private String adresse;
    private int kundennummer;
    private ArrayList<Karte> kartenliste;
   
   
    public Kunde (String name, String adresse, int kundennummer) {
       
        this.name= name;
        this.adresse= adresse;
        this.kundennummer= kundennummer;
        kartenliste = new ArrayList<>();
       
    }
   
    public boolean erwerben(Event ein_event, Termin ein_termin, int anzahlkarten) {
       
        boolean erworben=false;
       
        if(!ein_termin.isAusgebucht()) {
           
            if(anzahlkarten <1 || anzahlkarten>10) {
                 System.out.println("Sie dürfen die maximale Bestellmenge nicht überschreiten!");
           
             }else if(anzahlkarten >=1 && anzahlkarten<=10) {
               
                 //Karte erzeugen in ArrayList speichern
               
                 //Prüfe, ob wir genug Karten haben
                 if(ein_event.getAnzahl_karten() >= anzahlkarten) {
                   
                     //Erzeuge die Karten und tue sie in die ArrayList rein
                     for(int i = 0; i < anzahlkarten; i++) {
                       
                         this.kartenliste.add(new Karte(ein_event.getPreis(), ein_event.getBezeichnung(), ein_termin));
                     }
                   
                     ein_event.setAnzahl_karten(ein_event.getAnzahl_karten() - anzahlkarten);
                   
                 }else
                 {
                   
                    System.out.println("Wir haben nur noch " + ein_event.getAnzahl_karten() + " Karten");
                    System.out.println("Bitte eine geringere Anzahl an Karten bestellen!");
                 }
               
               
               
                 System.out.println("Du hast "+ anzahlkarten +"Karten gekauft");
                     erworben= true;
             }
        }else {
            System.out.println("Der Termin ist ausgebucht");
            System.out.println("Wir schlagen Ihnen folgenden Termin vor:");
           
            for(int i = 0; i < ein_event.getTermine().length; i++) {
               
                if(ein_event.getTermine()[i].equals(ein_termin) && i != ein_event.getTermine().length-1) {
                    System.out.println(ein_event.getTermine()[i+1].toString());
                }else if(ein_event.getTermine()[i].equals(ein_termin) && i == ein_event.getTermine().length-1) {
                   
                    System.out.println("Es gibt leider keinen nächsten Termin!");
                    System.out.println("Suchen Sie sich einen früheren Termin aus!");
                }
            }
        }
       
        return erworben;
       
    }
   
   
    public boolean stonieren (Event ein_event, Termin aktuelles_datum, Karte eine_karte) {
       
        boolean ist_storniert = false;
       
        if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 14)) {
            System.out.println("Die Karte wurde storniert! Sie brauchen keine Stornogebühren zu zahlen");
        }else if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 13) && aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 4)) {
           
            System.out.println("Die Karte wurde storniert! Sie müssen 50% des Kaufpreis als Stornogebühren  zahlen: " + eine_karte.getPreis()/2 + " Euro");
           
        }else if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 3)) {
           
            System.out.println("Die Karte wurde storniert! Sie müssen als Stornogebühren den kompletten Kaufpreis zahlen");
        }
       
        ein_event.setAnzahl_karten(ein_event.getAnzahl_karten()+1);
       
        return ist_storniert;
    }

   
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAdresse() {
        return adresse;
    }

    public void setAdresse(String adresse) {
        this.adresse = adresse;
    }

    public int getKundennummer() {
        return kundennummer;
    }

    public void setKundennummer(int kundennummer) {
        this.kundennummer = kundennummer;
    }

    public ArrayList<Karte> getKartenliste() {
        return kartenliste;
    }

    public void setKartenliste(ArrayList<Karte> kartenliste) {
        this.kartenliste = kartenliste;
    }
----------------------------------------------------------------------------------
Java:
    public boolean termin_tagen_davor(Termin termin2, int anzahl_tagen) {
       
        boolean is_davor = false;
       
        if(this.jahr >= termin2.jahr) {
           
            if(this.monat > termin2.monat) {
               
                is_davor = true;
               
            }else if(this.monat == termin2.monat){
               
                if(this.tag+anzahl_tagen <= termin2.tag) {
                    is_davor = true;
                }
            }
        }
       
        return is_davor;
       
    }
   

    public int getJahr() {
        return jahr;
    }

    public void setJahr(int jahr) {
        this.jahr = jahr;
    }

    public int getMonat() {
        return monat;
    }

    public void setMonat(int monat) {
        this.monat = monat;
    }

    public int getTag() {
        return tag;
    }

    public void setTag(int tag) {
        this.tag = tag;
    }

    public String getOrt() {
        return ort;
    }

    public void setOrt(String ort) {
        this.ort = ort;
    }


    public boolean isAusgebucht() {
        return ausgebucht;
    }

    public void setAusgebucht(boolean ausgebucht) {
        this.ausgebucht = ausgebucht;
    }
   
    public String toString() {
       
        return this.tag + "." + this.monat + "." + this.jahr;
    }

}
----------------------------------------------------------------------------------
Java:
public class Karte {

    private double preis;
    private String eventBezeichnung;
    private Termin termin;

   
    public Karte(double preis, String eventBezeichnung, Termin termin) {
       
        this.preis = preis;
        this.eventBezeichnung = eventBezeichnung;
        this.termin = termin;
    }


    public double getPreis() {
        return preis;
    }


    public void setPreis(double preis) {
        this.preis = preis;
    }


    public String getEventBezeichnung() {
        return eventBezeichnung;
    }


    public void setEventBezeichnung(String eventBezeichnung) {
        this.eventBezeichnung = eventBezeichnung;
    }


    public Termin getTermin() {
        return termin;
    }


    public void setTermin(Termin termin) {
        this.termin = termin;
    }


}
[/code]
------------------------------------------------------------------------
Java:
public class main {

public  Kunde kunden;


    public static void main(String[]  args) {
       
        System.out.println("------Guten Tag!-------");
        System.out.println("------------------------");

        Termin termin1 = new Termin(2019, 02, 21, "Köln", false);
        Termin termin2 = new Termin(2019, 01, 30, "Köln", true);
        Termin termin3 = new Termin(2019, 03, 15, "Köln", false);
       
        Termin aktuelles_datum = new Termin(2018, 12, 20, "Köln", false);
       
        Termin [] event_termine = {termin1, termin2, termin3};
       
        Event  event1 = new Event("Konzert", event_termine, 21.50, 50);
        Event  event2 = new Event("Balade", event_termine, 40.00, 50);
        Event  event3 = new Event("Theater", event_termine, 51.00, 50);
       
        Kunde kunde1= new Kunde ("Hildegard","Musterstr.1", 12345);
        Kunde kunde2 =new Kunde("Mueller", "Neuestraße1", 23456);
       
        System.out.println("Der erste Kunde hat folgendes gemacht: ");
        kunde1.erwerben(event1, termin1,5);
        System.out.println("--------------------------");
       
        System.out.println("Der zweite Kunde hat folgendes gemacht:");
        kunde2.erwerben(event2, termin2, 10);
       
        //Kunde storniert die erste Karte im ArrayList
        kunde1.stonieren(event1, aktuelles_datum, kunde1.getKartenliste().get(0));
       
    }

}
 

mihe7

Top Contributor
Kann mir jemand sagen warum die Methode nicht so funktioniert und mir sagen wie ich es hätte besser machen.
Solltest Du beim Stornieren die Karte nicht auch aus der kartenliste entfernen?

Bzgl. besser machen: das ist immer schwer zu sagen. Erstens weiß man nicht, was Du verwenden darfst, zweitens gibt es fast immer etwas zu verbessern. Abgesehen davon, hat "besser" auch eine subjektive Komponente.
 

flopalko

Bekanntes Mitglied
Was erwartest du denn was die Methode macht?
Sinnvollerweise sollte die methode stornieren folgendes machen:
  • prüfen, ob das Event existiert/gültig ist
  • prüfen, ob es den gegebenen Termin bei diesem Event gibt
  • prüfen, ob der Kunde das angegebene Ticket besitzt
  • deine Prüfungen bezüglich Stornokosten durchführen. Aufpassen, deine Methode zum Prüfen der Tage davor wird so nicht funktionieren. Folgendes Bsp.: Event ist am 1.10., storniert am 30.9., dann zahlt man mit deiner Implementierung keine Stornokosten.
  • die Karte aus der ArrayList mit den tickets löschen
  • ist_storniert true setzen.
Vieles davon ist noch nicht implementiert.
 

frau_miz

Neues Mitglied
Sorry dass ich mich so spät melde. Ich hab versucht deine Punkte umzusetzen, aber es funktioniert nicht so wie ich es möchte.
Könnt ihr mich bitte korrigieren.
Java:
public boolean stonieren (Event ein_event, Termin aktuelles_datum, Karte eine_karte, Termin ein_termin) {
      
        boolean ist_storniert = true;
      
        if(!(ein_event== null)) { // geprüft wird ob das Event überhaupt existiert
          
            if (ein_termin== null) { // es muss geprüft werden ob ein Termin für das Event besteht
                this.ein_termin = new Termin (jahr, monat, tag, Koeln, true );
                System.out.println("Der Termin"+this+"wurde für das Event"+event.bezeichnung+);
            }else {
                System.out.println("Es gibt bereits einen Termin zu dem Event");
            }
          
            if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 14)) {
            System.out.println("Die Karte wurde storniert! Sie brauchen keine Stornogebühren zu zahlen");
          
            }else if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 13) && aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 4)) {
          
            System.out.println("Die Karte wurde storniert! Sie müssen 50% des Kaufpreis als Stornogebühren  zahlen: " + eine_karte.getPreis()/2 + " Euro");
          
            }else if(aktuelles_datum.termin_tagen_davor(eine_karte.getTermin(), 3)) {
          
            System.out.println("Die Karte wurde storniert! Sie müssen als Stornogebühren den kompletten Kaufpreis zahlen");
        }
      
        ein_event.setAnzahl_karten(ein_event.getAnzahl_karten()+1);
      
        return ist_storniert;
        }
              
        this.kartenliste.remove(eine_karte); //nach der Stonierung wird die Karte aus der Kartenlisten gelöscht.
        return ist_storniert;
    }
 

Javinner

Top Contributor
Code:
private Termin[]termine; // der früheste Termin steht ganz am Anfang
private int anzahl_karten;
Wenn es mehrere Termine existieren, dann hat jeder für sich allein eine eigene Anzahl an Karten
Zudem, wenn ein Termin storniert werden soll, dann existiert dieser doch
  • beim Kunden in Form von Karten
  • beim Veranstallter in Form von Reservierung
sprich, wenn ein Termin storniert wird, dann beim Veranstalter, oder nicht?
Also wird im Fall einer Stornierung Daten wie
  • der Kunde
  • das Datum
  • die Veranstaltung
an den Veranstalter gesendet und dieser "kümmert" sich darum, sprich die Karten werden für den Kunden annulliert.

Nebenbei, dein Code liest sich recht schwer, bleiben wir bei der Methode stornieren, hier würde ich den parametrisierten Bereich treffender benennen. Denk daran, die Ordnung ist das halbe Leben!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 3
F Java-Anfänger, brauche Hilfe Java Basics - Anfänger-Themen 2
K Erste Schritte quelltext hilfe anfänger Java Basics - Anfänger-Themen 8
L Klassen Anfänger braucht Hilfe! Probleme mit Javakara.jar Java Basics - Anfänger-Themen 25
W Anfänger braucht Hilfe bei Hausübung! Sprachauswahl? Wie? Java Basics - Anfänger-Themen 9
D Anfänger braucht Hilfe:Interface Java Basics - Anfänger-Themen 14
P Anfänger sucht hilfe bei code Java Basics - Anfänger-Themen 20
L Anfänger sucht hilfe Java Basics - Anfänger-Themen 8
X Anfänger braucht hilfe! Java Basics - Anfänger-Themen 4
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
E Anfänger bräuchte Hilfe - Eingabezeile ! Java Basics - Anfänger-Themen 10
S Blutiger Java Anfänger braucht dringend Hilfe Java Basics - Anfänger-Themen 4
T Blutiger Anfänger . hilfe gesucht. Java Basics - Anfänger-Themen 2
E Anfänger braucht Hilfe Java Basics - Anfänger-Themen 6
G Hilfe beim addieren(Anfänger) Java Basics - Anfänger-Themen 12
T Vokabelbuch programmieren - Anfänger braucht Hilfe! Java Basics - Anfänger-Themen 17
B Log4J Anfänger sucht hilfe! Java Basics - Anfänger-Themen 4
J blutiger Anfänger braucht Hilfe ^^ Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben