Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Datenbank

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gin546



Anmeldungsdatum: 03.03.2006
Beiträge: 1

BeitragVerfasst am: 03.03.2006, 09:56    Titel: Datenbank Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 03.03.2006, 15:52    Titel: Antworten mit Zitat

Hallo,
ich hoffe, dass das keine Hausaufgabe ist?! zwinkern
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. lächeln

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. lächeln

Bye,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 03.03.2006, 18:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 03.03.2006, 21:14    Titel: Antworten mit Zitat

@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
Code:
 AusDVDs(4) As DVD
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 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 03.03.2006, 22:43    Titel: Antworten mit Zitat

Oder man nimmt FB, da gibt's dynamische Strings bei TYPE, wenngleich das Problem mit den Fehlern dann immer noch bleibt...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 04.03.2006, 12:09    Titel: Antworten mit Zitat

Äh...joa. Das war auch nicht getestet.
Ich neige gern dazu Speicherplatz zu verschwenden. grinsen 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. lächeln

Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.03.2006, 12:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 04.03.2006, 12:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 04.03.2006, 12:40    Titel: Antworten mit Zitat

@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
Code:
AusDVDs(4) As DVD

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 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 05.03.2006, 15:44    Titel: Antworten mit Zitat

@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. grinsen[/quote]
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 05.03.2006, 21:52    Titel: Antworten mit Zitat

@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 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 06.03.2006, 12:24    Titel: Antworten mit Zitat

Das mit der Hausaufgabe war ja auch nur ein Scherz - deswegen dieser ( zwinkern Smiley. zwinkern
Was heißt denn "Mea culpa!"??
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 06.03.2006, 15:27    Titel: Antworten mit Zitat

mea culpa=meine Schuld (oder so ähnlich..lächeln

grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 06.03.2006, 17:00    Titel: Antworten mit Zitat

[OT]
Aso, danke für die Übersetzung. lächeln
Ist das Latein? Oder irgendetwas anderes? grinsen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 06.03.2006, 17:21    Titel: Antworten mit Zitat

Latein !!

3 jahre schul erfahrung...traurig
ich habs nur genommen weils leichter is als französisch...meiner meinung nach

grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 06.03.2006, 17:45    Titel: Antworten mit Zitat

Ich habs auch seit ~3,5 Jahren, weil's mir leichter als Französisch erschien.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 06.03.2006, 18:35    Titel: Antworten mit Zitat

[OffTopic]
Ich hab beides, und finde, dass beide gleich schwer/einfach sind zwinkern
[/OffTopic]

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz