Auswahl bei einem Videoverleih limitieren

Pimbulli

Mitglied
Hallo zusammen,

ich habe ein kleines Programm erstellt für einen Videoverleih erstellt. Ich würde nun gerne implementieren, dass der Kunde maximal einen Blockbuster auswählen kann (film1, film2 etc.). Leider habe ich keinerlei Ahnung wie ich das umsetzen kann, ohne mein Programm wieder komplett auseinander zunehmen. Hat hier jemand vllt eine Lösung parat?
Dazu gesagt: Ich bin ein absoluter Anfänger.

Java:
LinkedList<Film> filmList = new LinkedList<Film>();
        LinkedList<Blockbuster> blockbuster = new LinkedList<Blockbuster>();
        //String name = "Louis Punak";
        boolean verlängern = true;
        String film1 = "I am Legend";
        String film2 = "Thirty Hours";
        String film3 = "Ronnie Coleman The King";
        String film4 = "Pixels";
        LinkedList<String> searchList = new LinkedList<String>();
        searchList.add(film1);
        searchList.add(film2);
        searchList.add(film3);
        searchList.add(film4);

        //Kunden angelegt
        Kunde Louis;
        Louis = new Kunde();
        Louis.setAlter(19);
        Louis.setKundennummer(1);
        Louis.setMitgliedschaft(true);
        Louis.setName("Louis Punak");
        LinkedList<Kunde> kundenList = new LinkedList<Kunde>();
        kundenList.add(Louis);
        
        //Filmobjekte erstellt
        Blockbuster ThirtyHours;
        ThirtyHours = new Blockbuster();
        ThirtyHours.setArtikelnummer(1);
        ThirtyHours.setPreis(1.99);
        ThirtyHours.setMaxAusleihe(14);
        ThirtyHours.setVorhanden(false);
        ThirtyHours.setAltersbeschränkung(16);
        ThirtyHours.setLaufzeit(144);
        ThirtyHours.setProduktionsland("USA");
        ThirtyHours.setName("Thirty Hours");
        ThirtyHours.setVerlängern(false);

        Blockbuster IamLegend;
        IamLegend = new Blockbuster();
        IamLegend.setArtikelnummer(1);
        IamLegend.setPreis(1.99);
        IamLegend.setMaxAusleihe(14);
        IamLegend.setVorhanden(true);
        IamLegend.setAltersbeschränkung(18);
        IamLegend.setLaufzeit(100);
        IamLegend.setProduktionsland("USA");
        IamLegend.setName("I am Legend");
        IamLegend.setVerlängern(false);

        Klassiker Scarface;
        Scarface = new Klassiker();
        Scarface.setArtikelnummer(2);
        Scarface.setMaxAusleihe(28);
        Scarface.setPreis(0.99);
        Scarface.setVorhanden(true);
        Scarface.setGenre("Drama");
        Scarface.setProduktionsjahr(1983);
        Scarface.setName("Scarface");
        Scarface.setVerlängern(true);


        .....
            
            
        filmList.add(ThirtyHours);
        filmList.add(IamLegend);
        filmList.add(RonnieColeman);
        filmList.add(TheGameChangers);
        filmList.add(Pixels);
        filmList.add(Spongebob);
        filmList.add(Scarface);
        filmList.add(DerPate);
        
        blockbuster.add(ThirtyHours);
        blockbuster.add(IamLegend);
    
        
        
        
        //if()
        
        //Abfrage ob Filme vorhanden sind + Rechnungsausgabe
        for (int i = 0; i < searchList.size(); i++) {
            for (int j = 0; j < filmList.size(); j++) {
                for (int z = 0; z < kundenList.size(); z++) {
                if (filmList.get(j).getName().equals(searchList.get(i))) {
                    if (filmList.get(j).getVorhanden()) {
                        switch (filmList.get(j).getArtikelnummer()) {
                        case 1: {
                            Blockbuster help = (Blockbuster) filmList.get(j);
                            Kunde dummie = (Kunde) kundenList.get(z);
                            if (dummie.getAlter() >= help.getAltersbeschränkung()) {
                                System.out.println("Ausgewählter Film: " + help.getName());
                                System.out.println("Preis: "
                                        + rechnungBlockbuster(help.getPreis(), help.getMaxAusleihe(), help.getVerlängern(),
                                        dummie.getMitgliedschaft(), verlängern) + "€");
                                if(verlängern == true) {
                                System.out.println("Blockbuster sind nicht Verlängerbar!");
                                System.out.println("");

                        }
                                else {
                                    System.out.println("");
                                }
                            }
                            else {
                                System.out.println("Sie erfüllen die Altersbeschänkung für " + help.getName()
                                        + " nicht! : " + help.getAltersbeschränkung() + " Jahre.");
                                System.out.println();
                        }
                    }
                            break;

                        case 2: {
                            Kunde dummie = (Kunde) kundenList.get(z);
                            Klassiker help = (Klassiker) filmList.get(j);
                            System.out.println("Ausgewählter Film: " + help.getName());                   
                            System.out.println("Preis: "
                                    + rechnungKorrekt(help.getPreis(), help.getMaxAusleihe(), verlängern,
                                    dummie.getMitgliedschaft()) + "€");
                            System.out.println("");
                            break;

                        }
                        case 3: {
                            Kunde dummie = (Kunde) kundenList.get(z);
                            Dokumentarfilme help = (Dokumentarfilme) filmList.get(j);
                            System.out.println("Ausgewählter Film: " + help.getName());
                            System.out.println("Preis: "
                                    + rechnungKorrekt(help.getPreis(), help.getMaxAusleihe(), verlängern,
                                    dummie.getMitgliedschaft()) + "€");
                            System.out.println("");
                            break;

                        }

                        case 4: {
                            Kunde dummie = (Kunde) kundenList.get(z);
                            KinderUndJugendfilme help = (KinderUndJugendfilme) filmList.get(j);
                            System.out.println("Ausgewählter Film: " + help.getName());                   
                            System.out.println("Preis: "
                                    + rechnungKorrekt(help.getPreis(), help.getMaxAusleihe(), verlängern,
                                    dummie.getMitgliedschaft()) + "€");
                            if(help.getGeeignetFürDenUnterricht() == true) {
                                System.out.println("Der Film ist für den Unterricht geeignet.");
                            }
                            else {
                                System.out.println("Der Film ist nicht für den Unterricht geeignet.");
                            }
                            break;
                        }
                        default:
                            System.out.println("Ein Fehler ist aufgetreten");
                        }
                    } else {
                        System.out.println("Der Film " + filmList.get(j).getName() + " ist nicht Verfügbar.");
                        System.out.println("");
                    }
                }
            }
        }
    }
        
}

    public static double rechnungKorrekt(double preis, int ausleihzeitraum, boolean verlängern, boolean mitgliedschaft) {
        double versand = 4.0;
        double mwst = 1.07;
        double rabatt = 0.8;
        double result = (preis * ausleihzeitraum) * mwst;           
        if (verlängern == true && mitgliedschaft == true) {
            result = ((preis * (ausleihzeitraum + 14)) * mwst) * rabatt;
            return round(result, 2);

        } else if (verlängern == false && mitgliedschaft == true) {
            result = ((preis * ausleihzeitraum) * mwst) * rabatt;
            return round(result, 2);
        } else if (verlängern == false && mitgliedschaft == false) {
            result = (preis * ausleihzeitraum + versand) * mwst;
            return round(result, 2);
        } else if (verlängern == true && mitgliedschaft == false) {
            result = ((preis * (ausleihzeitraum + 14)) + versand) * mwst;
            return round(result, 2);
        } else
            return 0.0;
        
    }
    
    public static double rechnungBlockbuster(double preis, int maxAusleihe, boolean verlängerbar, boolean mitgliedschaft, boolean verlängernWunsch) {
        double versand = 4.0;
        double mwst = 1.07;
        double rabatt = 0.8;
        double result;
        if(mitgliedschaft == true) {
            result = ((preis * maxAusleihe) * mwst) * rabatt;
            return round(result, 2);
        }
        else {
            result = (preis * maxAusleihe + versand) * mwst;
            return round(result, 2);
        }
    }

    public static double round(double value, int decimalPoints) {
        double d = Math.pow(10, decimalPoints);
        return Math.round(value * d) / d;
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
In dem Code dort oben ist alles bis Zeile 164 eine Methode??

Dumme Lösung: trag in die searchList einfach nicht zwei Blockbuster beim programmieren ein, da eh alles hardcoded ist, ist das ja kein Problem.


Wenn du es allerdings sinnvoll lösen möchtest, wirst du ziemlich von davon umbauen müssen...
 
T

Tashtego

Gast
Im Endeffekt musst du vor einem Adden zu einer Liste einfach über die bestehenden Einträge loopen und fragen nach If(entry.isBlockbuster) und dann einen boolean ausserhalb der Loop auf true setzen, Break aus der Loop. Dann nach der Loop fragen ob der boolean true ist und nur wenn nicht, den Blockbuster adden. So Mal generell gesprochen.
 

Pimbulli

Mitglied
Im Endeffekt musst du vor einem Adden zu einer Liste einfach über die bestehenden Einträge loopen und fragen nach If(entry.isBlockbuster) und dann einen boolean ausserhalb der Loop auf true setzen, Break aus der Loop. Dann nach der Loop fragen ob der boolean true ist und nur wenn nicht, den Blockbuster adden. So Mal generell gesprochen.
könntest du das vllt noch etwas genauer erklären?
 
T

Tashtego

Gast
Wir können gern mal ein paar kleine Nachhilfe Sessions starten wenn du möchtest. Einfach anschreiben oder anmailen, dann setz ich mich mit dir in Verbindung. Ist kein Abo, insofern zahlst du nur für die Stunden, die du benötigst. Viele Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
D Auswahl und Ausgabe erstes Programm Java Basics - Anfänger-Themen 8
Moritz1508 Variablen Erstellung eines simplen Taschenrechners mit +/- - Auswahl Java Basics - Anfänger-Themen 2
M Erste Schritte Auswahl in einer JList Java Basics - Anfänger-Themen 2
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
A Grundrechenarten; Aufforderung zur Bestätigung oder Auswahl Java Basics - Anfänger-Themen 25
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
L Speicherort auswahl Java Basics - Anfänger-Themen 4
M JComboBox Auswahl Java Basics - Anfänger-Themen 10
J JComboBox - Auswahl auslesen Java Basics - Anfänger-Themen 2
P Klassen Mehrseitige Auswahl Java Basics - Anfänger-Themen 6
N Auswahl von Arrays durch Stringeingabe Java Basics - Anfänger-Themen 20
K Auswahl der Grafikbibliothek Java Basics - Anfänger-Themen 9
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
JAVAnnik JList Auswahl Java Basics - Anfänger-Themen 2
D Erste Schritte Auswahl der richtigen tools Java Basics - Anfänger-Themen 7
R Auf auswahl in ner JComboBox reagieren Java Basics - Anfänger-Themen 3
J select-feld auswahl, jsp javascript Java Basics - Anfänger-Themen 2
J Sortieren nach Auswahl Java Basics - Anfänger-Themen 3
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
S FileFilter je nach RadioButton-Auswahl Java Basics - Anfänger-Themen 4
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
M zufällige auswahl eines Panels aus Grid Layout Java Basics - Anfänger-Themen 3
E Combobox Auswahl überprüfen Java Basics - Anfänger-Themen 7
G Befehl für Ende bei Switch-Auswahl Java Basics - Anfänger-Themen 11
C Bilder Vorschau und Auswahl Java Basics - Anfänger-Themen 4
X JFileChooser Auswahl Java Basics - Anfänger-Themen 4
X Auswahl durch Eingabe von Buchstaben - aber wie? Java Basics - Anfänger-Themen 2
E auswahl von dateien Java Basics - Anfänger-Themen 2
G Auswahl eines Arbeitsverzeichnisses Java Basics - Anfänger-Themen 7
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
D Pfad-Auswahl mit dem JFileChooser Java Basics - Anfänger-Themen 8
I Editor auswahl Java Basics - Anfänger-Themen 6
G Auswahl anhand Wahrscheinlichkeiten Java Basics - Anfänger-Themen 5
J dynamische Auswahl einer überladenen Methode Java Basics - Anfänger-Themen 5
R Zweiseitige Auswahl Java Basics - Anfänger-Themen 16
B Auswahl mit switch ? Java Basics - Anfänger-Themen 6
G Schrift-Auswahl-Dialog? Java Basics - Anfänger-Themen 6
P Auswahl von JComboBox abfangen Java Basics - Anfänger-Themen 3
G Auswahl:in File schreiben, oder System.out.print Java Basics - Anfänger-Themen 4
C Auswahl problem Java Basics - Anfänger-Themen 5
W JComboBox- Auswahl schließt komplettes Fenster Java Basics - Anfänger-Themen 10
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
G Filechooser ohne Auswahl für Dateityp Java Basics - Anfänger-Themen 2
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben