Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gin546
Anmeldungsdatum: 03.03.2006 Beiträge: 1
|
Verfasst am: 03.03.2006, 09:56 Titel: Datenbank |
|
|
Hi!
Kann mir jemand bei der Erstellung eines Ausleihprogrammes behilflich sein? Es soll so funktionieren, dass es wie eine Datenbank fuktioniert mit der ich Ausleihvorgänge wie in einer Videothek simulieren kann.
Ich habe schon angefangen zu programmieren, komme aber nicht zum gewünschten Ziel.
Für Hilfe beim Programmieren wäre ich sehr dankbar.
Mfg |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 03.03.2006, 15:52 Titel: |
|
|
Hallo,
ich hoffe, dass das keine Hausaufgabe ist?!
Nun, da ich nicht weiß, wie weit du bist:
Ich würde dir vorschlagen, einen eigenen Datentyp für die Videothek zu erstellen:
Code: |
TYPE VidThek
VidThekName As String
Adresse As String
Ort As String
PLZ As Integer
Website As String
Telefon As Integer
email As String
END TYPE
|
Dieser Datentyp kann ja noch verändert werden.
So, nun noch für jeden Benutzer der Bibliothek einen eigenen Datentyp (kann je nach Featurelist unterschiedlich ausfallen; bei mir in der Bibliothek kann man zum Beispiel Bücher über's Internet in eine bestimmte Zweigstelle bestellen. Das passiert mit Benutzernummer + Kennwort.):
Code: |
TYPE Benutzer
FamName As String
VorName As String
Geburt As String
Wohnort As String
PLZ As Integer
Adresse As String
BenutzerNummer As Integer
Kennwort As String
AusMedien As Ausgeliehen
END TYPE
|
Da eine Person ja sicherlich mehrere (ich sage jetzt mal, dass von jedem Medium maximal 5 ausgeliehen werden können) Medien ausgeliehen haben kann, steht da jetzt auch noch "AusMedien As Ausgeliehen".
Code: |
TYPE Ausgeliehen
AusDVDs(4) As DVD
AusVideos(4) As Video
AusMCs(4) As MC
AusCDs(4) As CD
END TYPE
|
Bitte beachte, dass ich nur den Datentyp für eine DVD geschrieben habe; Datentypen für Videos, MCs und CDs musst du nach dem gleichen Schema selber bauen.
Dann würde ich auch für unterschiedliche Medien unterschiedliche Datentypen erstellen. Ich mach mal ein Beispiel für 'ne DVD:
Code: |
TYPE DVD
DVDTitel As String
Regisseur As String
Erscheinungsjahr As Integer
Zweigstelle As Integer
Spielzeit As Integer
Ausgeliehen As String * 1
AusDatum As String
Rueckgabe As String
Ausleiher As Benutzer
END TYPE
|
Wie gesagt, ich weiß nicht wie weit du bist - das wäre recht hilfreich. Evtl. kannst du sagen, wie gut du in Basic bist? Auch weitere Infos, zum Beispiel: was soll alles an Funktionen vorhanden sein?, ect..
Ich hoffe, dass das erstmal hilft.
Bye,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 03.03.2006, 18:14 Titel: |
|
|
Die Idee mit den TYPE-Feldern ist zwar gut, doch diese können nicht redimensioniert werden.
Daher müsste man schon (wenn man die Anzahl der ausleihbaren Objekte variablen halten
will) auf ein normales Feld zurückgreifen...
jb |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 03.03.2006, 21:14 Titel: |
|
|
@gin546
Du hast dir da ein ganz schön ehrgeiziges Projekt ausgesucht. Überdenk bitte mal, ob es dir den Aufwand wirklich wert ist!
@jb
Zitat: | Die Idee mit den TYPE-Feldern ist zwar gut, doch diese können nicht redimensioniert werden. |
Du meinst wahrscheinlich, dass unter den Elementen einer Variablen benutzerdefinierten Typs keine dynamischen Arrays sein dürfen, womit die Möglichkeit des Redimensionierens dieser Elemente wegfällt. Dadurch ergibt sich tatsächlich das Problem, dass ungenügend Platz für den Fall vorsieht, dass jemand fünf oder mehr DVDs ausleihen will bzw. Speicherplatz verschwendet wird, wenn sich der Durchschnittskunde nur 2 DVDs ausleiht. Außerdem gilt es zu bedenken, dass es sehr ineffizient ist, bei jedem Ausleihvorgang den vollständigen Datensatz des geliehenen Mediums in die Ausleihdatei zu schreiben. Es reicht, einen Verweis darauf zu speichern. Beispiel:
Code: | Datei AUSLEIHN.DAT, Satzstruktur
Pos. 1-4 Kundennummer (LONG) - wichtig für das Bereinigen der Datei
Pos. 5-6 Anzahl der geliehenen Medien
dann eine beliebige Anzahl der von diesem Kunden geliehenen Medien in Form eines Verweises auf die Mediendatei (Byteposition bzw. Satznummer, je nach Zugriffsart) |
In der Kundendatei weisen dann ein oder mehrere Zeiger (je nachdem, ob mehrere parallele Ausleihvorgänge je Kunde erlaubt sind) auf die Ausleihdaten dieses Kunden.
@Mao
Noch ein programmiersprachenbedingtes Problem:
Code: | TYPE VidThek
VidThekName As String
|
Dynamische Strings können nicht als Elemente einer benutzerdefinierten Variablen vorkommen (das geht nur in VB). Du musst also hier entweder einen String fester Länge definieren (z.B. VidThekName As String * 30) oder dynamische Stringdaten außerhalb einer benutzerdefinierten Struktur verwalten, was wiederum das Speichern/Lesen des Variableninhalts nicht unbedingt einfacher macht. _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 03.03.2006, 22:43 Titel: |
|
|
Oder man nimmt FB, da gibt's dynamische Strings bei TYPE, wenngleich das Problem mit den Fehlern dann immer noch bleibt...
jb |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.03.2006, 12:09 Titel: |
|
|
Äh...joa. Das war auch nicht getestet.
Ich neige gern dazu Speicherplatz zu verschwenden. Nein, im Ernst: ich wusste ja nicht genau wie das aufgebaut werden soll. Soll es in der Videothek mal nur kurzzeitig verfügbare Filme geben, oder soll der Bestand fest bleiben, nur neue Medien hinzugefügt werden. Bei Bibliotheken und Videotheken bei mir in der Nähe ist es so, dass man von einem Medium nur eine begrenzte Anzahl ausleihen kann. Ist zwar eher lästig, jedoch für die Bibliothek besser.
Greets,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.03.2006, 12:26 Titel: |
|
|
Es hat auch praktische Gründe, leiht ein Kunde das gesamte Archiv aus und "vergisst" das zurück bringen hat man nichts mehr.
Ich würde die Zahl der Maximal Leihartikel vom Verhalten anhängig machen.
Also wie oft hat er schon ausgeliehen?
Alle rechtzeitig zurück?
Befreundet?
etc.
Wobei ich die Maximalzahl von Hand eintragen würde und nicht automatisch.
In diesem Kontext wäre ein Kommentar Feld praktisch, wo man zu jedem Kunden einen Kommetar speichern kann. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Zuletzt bearbeitet von Michael Frey am 04.03.2006, 12:39, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.03.2006, 12:29 Titel: |
|
|
Da gibt's glaube ich auch ein Programm, welches sich "Videothek x.xx" nennt. Nicht sehr einfallsreich, aber doch nicht schlecht. Die DOS-Version hatte ich mir mal angeschaut, war recht umfangreich: konnte auf Nachfrage automatisch Mahnbriefe drucken, wenn in einem eingestellten Interval nach Abgabefrist das Medium noch nicht zurück war, konnte Erinnerung auf den Bildschirm schreiben (welche und wieviele Medien zurückkommen) u.s.w.. Die Windows-Version hab' ich glaub' ich irgendwo auf 'ner CD 'rumliegen. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 04.03.2006, 12:40 Titel: |
|
|
@Mao
Ich glaub aber, dass wir alle hier darin übereinstimmen, dass das Programmieren einer Datenbank ziemlich anspruchsvoll ist und zumindest sehr gute QB-Kenntnisse voraussetzt! Die Wahrscheinlichkeit, dass es sich dabei um eine Hausaufgabe handelt, scheint eher gering zu sein....
Nachtrag - ist mir gestern entgangen: Mit
werden insgesamt 5 Array-Elemente angelegt, da QB die Untergrenze einer Array automatisch mit 0 annimmt, wenn man sie nicht explizit angibt (oder mit OPTION BASE 1 programmweit umstellt). Code: | AusDVDs(1 To 4) As DVD |
ist wohl besser, weil eine Untergrenze von 0 hier eher verwirrt (wobei Untergrenze 0 allerdings die effizientere Lösung darstellt *g*). _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 05.03.2006, 15:44 Titel: |
|
|
@pinkpanther:
Ich weiß:
Ich, Mao hat Folgendes geschrieben: |
Da eine Person ja sicherlich mehrere (ich sage jetzt mal, dass von jedem Medium maximal 5 ausgeliehen werden können) Medien ausgeliehen haben kann, steht da jetzt auch noch "AusMedien As Ausgeliehen".
|
Falls ich irgendwo was davon stehen ab, dass man sich max. 4 Sachen ausleihen kann, bezieht sich das entweder auf die Biblio-/Videotheken bei mir in der Nähe bzw. auf die Zahl zur Deklaration des Arrays; alles andere müssten Schreibfehler sein. [/quote] _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 05.03.2006, 21:52 Titel: |
|
|
@Mao
Die Korrektur bezog sich nur auf mein eigenes Posting:
Zitat: | Dadurch ergibt sich tatsächlich das Problem, dass
Code:
AusDVDs(4) As DVD
ungenügend Platz für den Fall vorsieht, dass jemand fünf oder mehr DVDs ausleihen will... |
Mea culpa! _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.03.2006, 12:24 Titel: |
|
|
Das mit der Hausaufgabe war ja auch nur ein Scherz - deswegen dieser ( Smiley.
Was heißt denn "Mea culpa!"?? _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 06.03.2006, 15:27 Titel: |
|
|
mea culpa=meine Schuld (oder so ähnlich..
grüße otti _________________ Gute Musik
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.03.2006, 17:00 Titel: |
|
|
[OT]
Aso, danke für die Übersetzung.
Ist das Latein? Oder irgendetwas anderes?  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 06.03.2006, 17:21 Titel: |
|
|
Latein !!
3 jahre schul erfahrung...
ich habs nur genommen weils leichter is als französisch...meiner meinung nach
grüße otti _________________ Gute Musik
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.03.2006, 18:35 Titel: |
|
|
[OffTopic]
Ich hab beides, und finde, dass beide gleich schwer/einfach sind
[/OffTopic]
jb |
|
Nach oben |
|
 |
|