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
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
[/code]
------------------------------------------------------------------------
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;
}
}
------------------------------------------------------------------------
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));
}
}