HILFE Reseevierung Kino Programm

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Markus Jacobs.

    HILFE Reseevierung Kino Programm

    Hallo :)
    Wir müssen ein Kinositzplatz-Reservierungsprogramm für eine Schulaufgabe erstelln und dürfen nur basics verwenden. Arrays, Schleifen usw.
    Wir wissn nicht wirklich wie wir anfangen geschweige denn feritg werden.
    Könnt ihr uns Tipps und Möglichkeiten beschreiben?
    Danke schon im vorraus :)
    Willkommen im Forum. :thumbup:

    max_dp schrieb:

    Tipps und Möglichkeiten
    gibt es viele, fangen wir an, es ordentlich zu tun.
    1. Ich geh mal davon aus, dass Du ein paar Basics des Programmierens schon kennst ...
    2. Option Strict On für Dein Projekt und für zukünftige Projekte, hier werden automatische Typ-Konvertierungen unterdrückt, Du musst wissen, was für Daten in Deine Variable passen.
    3. Trenne Daten und GUI, mit Daten wird gearbeitet, die GUI zeigt Daten an und nimmt Daten vom User entgegen. Rechnen mit Controls ist ein No Go.
    Schreib zunächst genau auf, was das Programm können soll:
    • 10 x 10 Sitzplätze (wie auch immer)
    • für jede Reihe andere / dieselben Preise
    • Reservierungsdaten: Name, Telefon, bereits bezahlt usw.
    • usw.
    Wenn die Aufgabenstellung klar formuliert ist, überlegen wir uns, welche Daten wie behandelt werden müssen (Datenmodell).
    Zerlege dann die gesamte Aufgabenstellung in eine Reihe disjunkter Teilprobleme, die Du je in einem separaten Projekt löst:
    • Kopplung von Daten und Controls
    • Klick auf Platz öffnet Dialog
    • Anzeige der aktuellen Daten
    • Übernahme neuer Daten
    • Speichern und Laden von Daten
    • usw.
    Du kannst zu jedem Teilproblem einen separaten Thread aufmachen, da kann Dir effizient geholfen werden.
    Wenn Du alle Teilprojekte zu Deiner Zufriedenheit gelöst hast, setzt Du alles zu Deinem eigentlichen Problem zusammen und feddich. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    zieh dem Lehrer die Ohren lang, so eine bescheuerte Aufgabe zu stellen.

    Eiglich ist die Aufgabe nicht bescheuert, aber mit nur basics ist sie nicht vernünftig zu lösen.

    Also hier meine Lösung für euern Lehrer

    VB.NET-Quellcode

    1. Public Class frmKinoReservation
    2. Private Sub frmKinoReservation_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    3. Dim KinoSitze = 95
    4. For i = 1 To KinoSitze
    5. CheckedListBox1.Items.Add(i)
    6. Next
    7. End Sub
    8. End Class
    Da hast du eine CheckedListbox, und kannst anklicken, welcher Sitz reserviert sein soll :P
    mehr ist mit nur Basics nicht machbar.
    Dateien
    er kann alles mögliche machen, nur eine Kino-Sitz-Reservierung wird das erst, wenn es einen Terminkalender gibt, in dem das Kinoprogramm eingetragen werden kann.
    Und dann müssen Datensätze geschaffen werden, die einem Sitz zu einer bestimmten Vorstellung einen Zuschauer zuordnen.
    Und abspeichern muss man den Kram auch noch können.

    Also eiglich eine wunnerhübsche Übung in relationale Datenmodellierung, wovon der Lehrer leider vmtl. noch nie was gehört hat. :thumbdown:
    Aber in der Schule geht es doch darum, ein einfaches Problem zu lösen, man muss das Problem nicht gleich für alle Eventualitäten ausdehnen ;)
    Der Lehrer will einfach, dass die Schüler mit einfachen Controls und Mitteln (wel sie erst mal die Basics machen sollen) ein Problem lösen können. Es muss doch kein aktuelles Programm vom Internet runtergeladen werden, am besten noch mit Kritikerbewertung ;)

    Leider besteht das Programmieren heutzutage bei den meisten Neulingen zu 90% aus Googeln nach fertigem Code ;( Denkarbeit existiert nicht wirklich...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sonne75“ ()

    meine Skizze dehnt nun wirklich nichts aus - es ist die absolute Minimal-Skizze.

    Kino-Sitz-Reservierung ohne Beziehung zum Kinoprogramm ergibt einfach keinerlei Sinn - egal wieviele bunte Buttons und sonstige "einfache Mittel" man hinmacht.

    Das ist Anfänger-Verderbung, weil da wird ihnen vorgegaukelt, sie könnten eine Oberfläche machen, wenn noch gar kein Datenmodell dahinter steht. Das wird fast sogar ausdrücklich verlangt!
    Und wenn einer dann später in Richtung Programmierung weiter macht, braucht er u.U. Jahre, bis er von diesem Holzweg mal wieder runter kommt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Gut, dann nimmt man eben eine Listbox mit Kinofilmnamen, wo man eins auswählt.

    EDIT:
    @ErfinderDesRades
    Das ist Anfänger-Verderbung, weil da wird ihnen vorgegaukelt, sie könnten eine Oberfläche machen, wenn noch gar kein Datenmodell dahinter steht.


    Am Anfang ist es doch völlig ausreichend :) Und wenn man wirklich programmieren will (also nicht Code zusammengoogeln), dann wird man es sich schnell abgewöhnen (ich habe doch das DataSet auch von dir gelernt ;) ). Und wer nicht ernsthaft programmieren will, der wird auch mit richtiger Strategie nicht weiterkommen...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sonne75“ ()

    sonne75 schrieb:

    Gut, dann nimmt man eben eine Listbox mit Kinofilmnamen, wo man eins auswählt.
    ...
    ich habe doch das DataSet auch von dir gelernt ;) ...
    Ja, und ich bin bisserl pikiert, dass du nu ganz schlimm anfängermäßig über Listboxen, Buttons und Comboboxen nachdenkst, wo ich gedacht hätte, du wüsstest eiglich, dass man dieses Problem nur mit Datensätzen lösen kann, nicht mit Steuerelementen.

    Nein, auch am Anfang ist das nicht ausreichend. Lieber nichts lernen, als es grundfalsch lernen.


    @max_dp: Die Anregungen nützen doch noch garnix.
    Ich sehe jdfs. in den bisherigen Hinweisen nix, was man als Anfänger umsetzen könnte, ohne weitere Nachfragen zu stellen. Oder zu welchem Entschluss bist du gekommen, weiter vorzugehen?

    ErfinderDesRades schrieb:

    Ja, und ich bin bisserl pikiert, dass du nu ganz schlimm anfängermäßig über Listboxen, Buttons und Comboboxen nachdenkst

    In der Psychotherapie sagt man, man sollte den Klienten da abholen, wo er steht ;) Er steht so dermaßen am Anfang, dass es ihn nur abschrecken würde (zumal er es ja nicht als Hobby macht, sonst würde ich ihm das Lernen auch nahelegen, sondern als Schulaufgabe).
    Zumal es gar nicht die Aufgabe ist, und in der Schule (zumindest in Deutschland) kommt es darauf an, das abzuliefern, was der Lehrer sehen will. Und nicht das, was die beste Lösung wäre...

    In dieser Aufgabe wäre ein DataSet absolut unangemessen (NICHT in dieser Aufgabenstellung an sich, sondern in seiner SCHULAufgabe), der Lehrer würde es, wenn er es überhaupt verstehen würde, nicht glauben, dass er alleine darauf gekommen ist, sondern ihm (zu Recht) unterstellen, dass er den Code zusammenkopiert und erbettelt hat.

    Die Aufgabe lautet, programmiert eine Sitzplatzreservierung mit einfachsten Mitteln. Und da reichen paar Controls, paar Schleifen und Arrays...
    ich rede nicht zwingend von Dataset.
    Was ich mit Datensätzen meine, ist noch offen.

    Und dass die Aufgabe, so wie sie gestellt ist, einfach nicht lösbar ist, habe ich ja auch schon gesagt. Denn ohne Datensätze geht es nicht, und egal wie die Datensätze aussehen - es werden Auflistungen dabei rauskommen, deren Elemente wiederum Auflistungen enthalten.

    Denn die Realität ist so: Es gibt mehrere Vorführungen, und jede Vorführung enthält mehrere Reservierungen (und das kann er glaub schon verstehen).

    Und das ist eben 100%ig jenseits von einfachen Mitteln - da kann ich ihn abholen wo auch immer (besser wärs, den Lehrer abzuholen ;) )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    ErfinderDesRades schrieb:

    Denn die Realität ist so:


    Es geht in der Aufgabe nicht um die Realität, sondern um eine fiktive Problemstellung, die vom Lehrer definiert ist. Wenn sie unrealistisch sein soll, spielt es keine Rolle, es geht hier ums LERNEN, wie man durch Nachdenken und einfache Mittel ein einfaches Problem lösen kann. Ich glaube nicht, dass er dieses Programm dann an Kinobetreiber verkaufen will :P
    Mal abgesehen davon, dass hier nicht wirklich etwas von "speichern" steht finde ich, dass die Aufgabenstellung im Startpost viel zu ungenau ist.
    Wenn man nach dem geht was der TE wie am Anfang beschrieben benötigt reicht ein 2 dimensionales Boolean Array welches in einer Schleife befüllt werden kann (es steht auch nix von Controls).

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Ahoi,

    also bei der mageren Ausbeute an Infos stimme ich Sonne's Denkansatz voll zu.
    Hier geht es glaub ich um billigste EVA.
    Auswahl Reihe -> Auswahl Sitz -> "Speichern" -> Ausgabe "Sie haben Platz xy reserviert"
    somit schaut man wie man ein Control ansteuert (mh basics ??) den Wert in eine Variable gibt und den an eine Ausgabe koppelt.

    Oder Kommandozeile:
    Ersetze Auswahl mit Eingabe und Speichern mit Enter
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Es kommt drauf an was mit diesen Basics gemeint ist.
    Ich habe damals ein Lagerveraltungsprogramm geschrieben um "Klassen" zu verstehen, völlig ohne Speichern einfach nur während der Laufzeit Befüllen ...
    Das war nicht sinnlos das sollte einfach die Funktionsweise von Klassen nahebringen.

    Ich denke aber auch, dass die Aufgabenstellung im 1. Beitrag nicht die ist, die der Lehrer aufgegeben hat.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Genauere Aufgabenstellung:

    Wir haben bereits eine lösung gefunden aber unser leher wollte das nicht. Über buttons und der dazu gehörigen ausgabe.
    Er meinte aber das ist nicht vorgesehen und wir solln das problem mit Arrays lösen.

    Reihe -> Sitz -> Ausabe in einem feld -> sichtbare markierung

    Er hat auch gesagt wir solln das anzeigeblfeld mit
    |_|_|
    |_|_|
    |_|_|
    |_|_|
    Basteln
    Und wenn eine reservierung vorliegt soll ein "X" eingefügt werden
    hmm - tut mir leid.
    Die Aufgabe heißt "Kinositzplatz-Reservierungsprogramm", und wenn ihr das so dermaßen vereinfachen könnt, dass was bei rauskommt, was ohne Zuordnungen von Sitzen, Vorführungen und Zuschauer funktioniert, und trotzdem noch "Kinositzplatz-Reservierungsprogramm" genannt werden kann - na potzblitz! - aber ich glaub ich bin draussen.

    Edit:

    max_dp schrieb:

    Und wenn eine reservierung vorliegt soll ein "X" eingefügt werden
    Ja, hurraa!
    Dann nimm doch die Solution, die ich dir gepostet habe, das erfüllt das ja vorzüglich.
    Ob das nun Xe sind oder Checkbox-Häkchen - das spielt für die Funktionalität ja keine Rolle.
    Ich kenne diese Schulaufgaben. (Hatte diese bis vor Kurzem auch noch ;) )
    So wie ich meine Lehrer kenne, soll dass mit eigenen Klassen für sie Sitze gelöst werden.
    In der Klasse speichert man die Informationen wie Name, wann reserviert, Telefon usw.
    Dazu hat mann dann Funktionen um diese Werte zu setzen oder abzurufen.

    Diese Sitze werden dann in einem Array (oder List Of) gespeichert und mit Schleifen ausgelesen.
    Wie das dann dargestellt wird (Checkboxen, Labels etc.) ist dann Geschmackssache oder vom Lehrer abhängig.
    (Ich musste immer mit Java arbeiten. Dort haben wir alles über die Befehlsausgabe gemacht (Debug.Print() oder in Java System.out.println())