Einfaches Kino-Ticket-System

11/26/2018 20:02 .Sags Barney .!#1
Abend,

ein Freund, der Informatik studiert hat, bringt mir Informatik für mein Studium bei.
Allerdings sind dessen Erwartungen hoch.
Ich soll für Java 250 Seiten über Algorithmen und Datenstrukturen lernen innerhalb 3 Wochen und dazu ein Kino-Ticket-System schreiben.
Mit dem Buch bin ich bereits durch und es war auch extrem viel Input.
Jetzt fällt es mir allerdings schwer den Anfang zu finden.

Das Programm soll relativ einfach sein. => ICH MÖCHTE KEINE LÖSUNGEN!

Mein Gedankengang richtet sich nach zwei Personen und Sitzplätze von 1-5.
Ich muss beachten, dass z.b. Wenn Person 1 auf Platz 2 geht, nur noch 4 Plätze frei sind.

Mein Ansatz liegt hierbei nur bei:

int[] p; // Anzahl für die Plätze
String Person1;
String Person2;


Ich bin echt noch ein Anfänger und habe mir zwar theoretisches Wissen angeeignet, aber habe einfach keine Ahnung wie ich voran komme.
Könntet ihr mir Tipps geben? :o
11/26/2018 20:15 florian0#2
Am einfachsten ist es meinstens, wenn du Dinge so modellierst wie sie im "echten Leben" sind.

Ein Kinosaal besteht aus Sitzen, also wäre für mich der sinnigste Anfang, zu einem Kinosaal alle verfügbaren Sitze zu speichern.

(Ich kann kein Java, daher nur Pseudocode)
Code:
class Saal
{
    // Sitze
    Sitz sitze[5];
};
Wobei der Sitz erstmal einen Zustand hat:
Code:
class Sitz
{
    bool Belegt;
};
Über das Array "sitze" kannst du iterieren. Dabei kannst du herausfinden welche Sitze frei sind, und auch wie viele Sitze frei sind.
11/26/2018 21:04 .Sags Barney .!#3
Wird es dann nicht ein „komplizierter“ Quellcode werden?
Aber das Prinzip verstehe ich.
Anfangs wollte ich es auch so machen, aber dann muss ich viel mehr Aspekte beachten
11/26/2018 21:26 Epvp User#4
Ich studiere auch Informatik und meines Wissens nach sind in solchen Scripts auch UML Diagramme. Mach erstmal nen UML, um die Entitäten zu identifizieren.
11/30/2018 15:55 Twist'#5
Wenn du schon viel über Datenstrukturen gelesen hast, dann überleg mal du einer Person einen Sitz von 1-5 zu weisen kannst.

Du kannst einen Sitzplatz an eine Person "binden" das heißt wenn du danach "fragst" wer auf Plätz 1 sitzt bekommst du den Namen der Person auf Platz 1 Zurück. So würde ich das machen -> Stichwort: Dictionary

Aber jeder macht das anders. 1 Aufgabe. 10 verschiedene Menschen. 10 Lösungen

p.s studiere wie jeder anscheinend hier auch Informatik
11/30/2018 16:01 Mad0ck#6
Mache zwar nichts mit java, aber Db's gibts überall.

Einfach nen DB Eintrag machen, wenn ein Sitzplatz belegt ist. ( Wenn das Ticket zB gekauft wurde ).
Der Sitzplatz ist solange belegt, bis der nächste Film beginnt.
Das Ticket ist ja in der Regel mit dem Film,Dauer(Gesamt/Von-Bis) versehen.
Einfach nen timestamp in der DB eintragen, und es nach X Zeit automatisiert löschen, bzw nen "zuLöschen"/"abgelaufen" -Tag setzen.


Durch ne Ausgabe kannst du die belegten Sitzplätze zB mit Rot markieren, die freien mit Grün, welches du ausgeben kannst, wenn ein Kunde ein Ticket kaufen möchte.

Gibt da viele Lösungen.
Die einen sind aufwendiger die anderen nicht so.

Je nach Aufwand, kannst du auch die Relationen zwischen Kunde/Ticket/Sitzplatz nach belieben machen.

lg
12/01/2018 02:17 Twist'#7
Quote:
Originally Posted by Mad0ck View Post
Mache zwar nichts mit java, aber Db's gibts überall.

Einfach nen DB Eintrag machen, wenn ein Sitzplatz belegt ist. ( Wenn das Ticket zB gekauft wurde ).
Der Sitzplatz ist solange belegt, bis der nächste Film beginnt.
Das Ticket ist ja in der Regel mit dem Film,Dauer(Gesamt/Von-Bis) versehen.
Einfach nen timestamp in der DB eintragen, und es nach X Zeit automatisiert löschen, bzw nen "zuLöschen"/"abgelaufen" -Tag setzen.


Durch ne Ausgabe kannst du die belegten Sitzplätze zB mit Rot markieren, die freien mit Grün, welches du ausgeben kannst, wenn ein Kunde ein Ticket kaufen möchte.

Gibt da viele Lösungen.
Die einen sind aufwendiger die anderen nicht so.

Je nach Aufwand, kannst du auch die Relationen zwischen Kunde/Ticket/Sitzplatz nach belieben machen.

lg
Das wäre die realste Lösung aber ich glaube darum geht es ihm garnicht, jedenfalls kam das aus seinem Post so rüber, da der Ansatz auch simpel war. Die genauen Angaben zu der Aufgabe wären allerdings wirklich hilfreich weil man könnte auch die Gültigkeit bzw. "Einlösbarkeit" noch mit ein beziehen etc.. Tickets genau festlegen usw. aber ich glaube für eine Einführung wäre das zuviel, aber eine sehr gute Aufgabe
12/05/2018 03:40 TechLead#8
So auf die schnelle
Du hast ein Kino , ein Kino hat mehrere sääle und ein Saal hat mehrere Sitzplätze und Sitzreihen jede Sitzreihe hat zb 8 Plätze
Also wäre der Array der Sitzplätze 2 dimensional nicht ein dimensional erstens

Um die Plätze zu erstellen machst dir mal 2 schleifen Reihen sind meistens mit Buchstaben versehen , nehm in den schleifen nen Char als wert ...
die anderen Sachen speicherst in arraylisten

Um zu prüfen ob ein Sitzplatz belegt ist , setzt du einfach ein Flag isFree oder so ... isFree
Dann überlegst du dir noch , ob man Sitzplätze reservieren können soll , wenn ein Sitzplatz reserviert ist ist er automatisch nicht mehr verfügbar - er wird aus der Liste gelöscht
Eine Reservierung soll aufgehoben werden können - wird wieder frei

Sorry bin mir grad nicht sicher ob das alles ist oder ich was vergessen hab .. bin gerade nur kurz aufgestanden lege mich gleich wieder hin ... falls das nicht die Antwort auf deine Frage ist oder ich was vergessen hab pm an mich
Ist alles nur auf die Schnelle am Handy runteegetippt