Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 28.09.2006, 14:53 Titel: Klasselistenprogramm in QBasic |
|
|
Hallo!
Ich muss für die Schule ein Programm schreiben, in dem eine Klassenliste verwaltet wird. Die Funktionen sind:
-Neue Schüler hinzufügen (Name,Vorname,PLZ,Ort,Straße mit Hausnr.,Geburtstag in 3 Variablen),
-Vorhandene Schüler löschen oder bearbeiten,
-Die Liste komplett löschen,
-Karteien nach Schülern nach einem bestimmten Kriterium alphabetisch oder numerisch ordnen sowie durchsuchen (Straße, PLZ, Ort, Geburtsjahr, Geburtsmonat, Name, Vorname),
-Die Liste speichern und laden.
Einige Funktionen gehen leider nicht, wie ich mir das erhofft habe! Das Laden und Speichern ist unterteilt in S (Schule) und H (Home), da in der Schule auf H: und nicht im Arbeitsverzeichnis in C: gearbeitet wird. Daher sind die Pfade unterschiedlich. H für Home geht in das Arbeitsverzeichnis. Ich stelle das Programm mal ins Internet (www.wasjakleider.de/LISTE.BAS). Schaut es euch bitte an und helft mir! Sonst verzweifle ich noch...
Fehler und Probleme sind u.a.:
-Laden: Dateiname oder -nummer unzulässig
-Ausgabe: Keine Ausgabe der geladenen Dateien möglich!
-Komplettes Leeren der Liste mit CLEAR erzeugt Fehlermeldung
-Das Ordnen funktioniert nie
-Ich weiß nicht wie das Suchen funktioniert
-Im der SUB Menue sind bearbeiten, loeschen und CLEAR deaktiviert (mit '), weil sie noch nicht bearbeitet wurden, da hab ich auch noch keine Idee... Wäre hilfreich wenn jemand diese SUBs schreiben könnte.... danke
HILFEEEEEEEEEEEEEEEEE!!!
EDIT: Natürlich soll auch nach der Vorwahl gesucht und sortiert werden können. Diese und die Telefonnummer sind acuh inbegriffene Variablen! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
dreael Administrator
![](images/avatars/112279543641421ec80e8e2.gif)
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 28.09.2006, 20:52 Titel: |
|
|
Ob da eine Excel-Tabelle oder MS Access-Datenbank nicht fast einfacher wäre?
Ansonsten passender Artikel aus meiner Sammlung:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html
Eine komfortable Bildschirmmaske für das Eingeben und Ändern eines Datensatzes ist in einem solchen Fall ein Muss. Ausserdem sind ein mit TYPE definierter Record sowie eine relative Datei das geeignete Handwerkszeug für die Realisation dieses QB-Projekts. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
5T3PH4N
Anmeldungsdatum: 01.10.2005 Beiträge: 145 Wohnort: Braunshardt
|
Verfasst am: 29.09.2006, 15:24 Titel: |
|
|
moin wasja auch hier?!
bei dir funktioniert auch nich alles
das erste programm für den unterricht was mir n bisschen probleme macht ![weinen](images/smiles/icon_cry.gif) _________________ <green> We vegetarians love the environment. carnivores are sick freaks.
<Frank> How can vegetarians possibly love the environment.. you keep eating all the fucking plants |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 29.09.2006, 16:05 Titel: |
|
|
ertsmal danke für den hinweis! aber das hilft mir nicht besonders weiter... wir müssen es sehr einfach gesalten... das pogramm www.wasjakleider.de/LISTE.BAS ist vom aufbau bzw. der bildschirmgestaltung schon im prinzip so wie es sein sollte... aber die funktionen sind mein poblem!
steph das is doch voll der dreck ich bin mir sicher dass der hoffritz das net hinbekommt und sagt :" frag den stephan, der weiß das!" oder "guck in der hilfe nach!" und er wird nicht sagen können ob und wenn ja, wie es geht... bin gespannt! ![mit dem Kopf durch die Mauer wollen](images/smiles/icon_wall.gif)
Zuletzt bearbeitet von Wasja am 30.09.2006, 11:32, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
5T3PH4N
Anmeldungsdatum: 01.10.2005 Beiträge: 145 Wohnort: Braunshardt
|
Verfasst am: 30.09.2006, 08:18 Titel: |
|
|
ey wasja wir müssten mal versuchen das programm zusammen zu schreiben (den hoffritz kann man ja eh vergessen)
können wir uns irgendwie zutritt zum bibliothekscomputer vrschaffen ? ![durchgeknallt](images/smiles/icon_mad.gif) _________________ <green> We vegetarians love the environment. carnivores are sick freaks.
<Frank> How can vegetarians possibly love the environment.. you keep eating all the fucking plants |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 30.09.2006, 11:26 Titel: |
|
|
nein das leider nicht, und elbst wenn, bring den valler erstma dazu, internet, usb-card und QBasic drauf/rein zu machen xD
naja egal
KANN MIR UND DEM STEPH DENN KEINER HELFEN??? |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
croco97
![](images/avatars/1678815801470b3485b679c.gif)
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 02.10.2006, 10:17 Titel: |
|
|
Doch....
"Dateiname unzulässig": Liegt an der Bedienung: Wenn du ein GROSSES 'S' eingibst, klappt's. Insgesamt solltest du das anders coden. Ein OPEN sollte nie bedingt geschehen, sonst passiert genau das: Filezugriff ohne OPEN.
Besser:
Code: |
antw$=""
WHILE (antw$<>"S" and antw$<>"H")
INPUT "S/H"; antw$
IF (antw$<>"S" and antw$<>"H") THEN PRINT "Gib S oder H ein."
WEND
filename$="H:\wpu 10b\klali.dat"
IF (antw$="S") THEN filename$="klali.dat"
OPEN filename$ FOR INPUT AS #2
|
Viele Grüsse!
Croco |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 03.10.2006, 10:07 Titel: |
|
|
ich hab es jetzt so umgeschrieben... aber jetzt kommt der fehler "Eingabe nach Dateiende!"... was is jetz das Problem? an der Datei hab ich nix gemacht! und das mit der suche, bearbeiten und löschen funktion geht auch noch nicht |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skilltronic
![](images/avatars/671648254416b059946b46.jpg)
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 03.10.2006, 12:24 Titel: |
|
|
Hallo
Wasja hat Folgendes geschrieben: | aber jetzt kommt der fehler "Eingabe nach Dateiende!"... was is jetz das Problem? |
Dann stimmt entweder was mit der Variablen, die die Zahl der Einträge angibt nicht und es wird versucht, über das Dateiende hinaus zu lesen, oder die Datei ist einfach leer. So einen Fehler kannst du abfangen, indem du nicht die Anzahl der Einträge mit abspeicherst, sondern in der Leseschleife prüfst, ob noch ein Eintrag vorhanden ist. Etwa so:
Code: | OPEN "klali.dat" FOR INPUT AS #1
n = 0
WHILE NOT EOF(1)
n = n + 1
INPUT #1, nachname$(n)
INPUT #1, vorname$(n)
INPUT#1 wasweissichnochalles$(n)
WEND
CLOSE #1
FOR a = 1 TO n
PRINT vorname$(a)
NEXT
|
Eine andere Methode wäre die Fehlerbehandlung mit ON ERROR. In der Hilfe findest du zu dieser Anweisung als <Beispieil> sogar ein kleines Programm, mit dem du Fehler abfangen kannst, die Auftreten, wenn du versuchst auf eine nicht vorhandene Datei zuzugreifen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 06.10.2006, 15:20 Titel: |
|
|
hallo!
inzwischen habe ich das programmt fast komplett fertig, wie es sein soll. es fehlt nur noch die "ordnen"-SUB. es will einfach nicht klappen. Es soll nach verschiedenen Kriterien sortiert werden können und dann sortiert ausgegeben werden können. wie kann ich das machen?
(Kriterien sind:
name$
vorname$
strasse$ 'enthält auch hausnummer
plz$
ort$
vorw$
gebmonat$
gebjahr$) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.10.2006, 20:29 Titel: |
|
|
du msust einen vergleich machen, und zwar mehrmals (oder in mehreren subs)
Code: |
if vergleichskriterium-variable1 > vergleichskriterium-variable2 then
swap Daten1, Daten2
end if |
also wenn du ein datenfeld benutzt, geht das in etwa so:
Code: |
if name$(x) > name$(x+1) then
swap name$(x), name$(x+1)
end if |
das ganze musst du von minimalElement bis MaximalElement-1 laufen lassen, also wenn du 100 felder hast, von 1 bis 99. das reicht aber noch nicht. DANN um diese for-schleife musst du NOCH eine for-schleife mit genau der selben anzahl an durchläufen machen. damit weerden wilkich alle daten sortiert. und übrigens: den SWAP-vorgang musst du jedes mal natürlich für ALLE deine datenfelder, also name$, vorname$, und so weiter, durchführen ![zwinkern](images/smiles/icon_wink.gif) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 06.10.2006, 22:37 Titel: |
|
|
danke für den tipp. ich habs ausprobiert, und inzwischen geht das komplette programm! vielen dank für die hilfe an alle... jetz wird das ganze noch etwas benutzerfreundlicher gestaltet und schon ist das programm super xD
steph, jetz musst du dich aber ranhalten mal was zu schaffen damit es was wird! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 07.10.2006, 20:08 Titel: |
|
|
achso... ich hätte da doch noch eine frage... um die liste zu leeren, muss ich bisher immer das programm beenden und neu starten... mit CLEAR sollte das aber auch so gehen! nur erzeugt es bei mir einen unzulässigen Funktionsaufruf... was tun?
oder sagen wirs einfach so... ich bräuchte einen tipp, wie ich alle variablen leere. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Skilltronic
![](images/avatars/671648254416b059946b46.jpg)
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 07.10.2006, 20:22 Titel: |
|
|
Hallo
CLEAR ist eigentlich ok, du darfst es aber nur im Hauptprogramm benutzen, nicht in einer Sub.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.10.2006, 20:47 Titel: |
|
|
CLEAR setzt ja alle daten zurück. vielleicht setzt es auch irgendwelche sachen zurück, die eigentlich gefüllt sein soltlen? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Wasja
Anmeldungsdatum: 18.04.2006 Beiträge: 19
|
Verfasst am: 07.10.2006, 21:20 Titel: |
|
|
Skilltronic hat Folgendes geschrieben: | Hallo
CLEAR ist eigentlich ok, du darfst es aber nur im Hauptprogramm benutzen, nicht in einer Sub.
Gruss
Skilltronic |
das muss man ja auch erstma vom lehrer gesagt bekommen! dieser *** jetz geht alles wie ich es haben wollte... daanke an alle nochmal |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|