Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Jeder gegen jeden (Konsolenanwendung)
Wald - Mi 22.03.06 08:54
Titel: Jeder gegen jeden (Konsolenanwendung)
Hallo,
ich habe derzeit ein Projekt im Informatikunterricht am Laufen und brauche dringend Hilfe, da man meinen Info-Lehrer nicht versteht ^^.
Mein Programm soll eine Übersicht über eine gesamte Fussball-saison sein. Also mit 34 Spieltagen und 9 Spielen pro Spieltag. Nun hat der user bereits die namen der Teams mithilfe von array eingetragen und in einer Datei angelegt. Jetzt hab ich das Probelm, wie ich die Ergbnisse jedes einzelnen Spieltags eingeben und abspeichern lassen kann.
Ich zeige euch am besten erstmal was ich bisher habe.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure P_Ergebnisse_eintragen; var results :text; Ergebnis: ARRAY [1..9] of integer; i: integer;
begin ASSIGN (results, 'C:\Thiel\Klasse_13_1\Projekt\Ergebnisse.txt'); rewrite(Results); begin writeln;writeln; writeln for i:=1 to 9 do begin writeln; write(i,'. Ergebnis eintragen '); read(Ergebnis[i]); write(results,Ergebnis[i]); end; end; CLOSE(results); writeln('Enter druecken..'); readln; end; |
Die eingegebenen Ergebnisse werden auch in die angelegte Datei gespeichert. Nur hat der User keine Ahnung für welche Partei er das Ergebniss einträgt noch für welchen Spieltag.
Meine Frage wäre jetzt, wie ich es dem User ermögliche die Partien zwischen den einzelnen Mannschaften selbst festzulegen. Also Mannschaft1-Mannschaft2 und Mannschaft5-Mannschaft12 usw. Diese Mannschaftsnamen schlummern ja bereits in einer Datei wie ich oben beschrieben habe, nur habe ich es nicht auf die reihe bekommen diese auch auslesen zu lassen, und mit einer Nummer zu versehen, um Sie anzuwählen und die Partie zu bestimmen.
Des Weiteren sehe ich ein weiteres Problem beim Abspeichern und eintargen der Ergebnisse pro Spieltag. So soll der User ja jedes Wochenende seine Übersicht komplettieren, aber mit einer for -to-do Schleife von 1-34 wird das ja wohl nicht funktionieren.
Ich bitte also um Vorschläge,Hilfen oder ähnliches und hoffe man versteht was ich möchte :)
Danke schonmal im voraus
Mfg Wald
Moderiert von
raziel: Delphi-Tags hinzugefügt
Grishnak - Mi 22.03.06 09:51
1. Bitte benutze die Delphi-Tags um deinen Code darzustellen.
2. Sollen für die 9 Spiele pro Spieltag die jeweiligen Gegner von Hand eingegeben werden oder soll das Programm einen Spielplan für eine komplette Saison erstellen?
Wald - Mi 22.03.06 14:34
Hallo Grishnak,
danke für die Antwort.
Die Begegnungen sollen pro Spieltag vom User selbst eingegeben werden. So das man z.B. jeden Spieltag der Bundesliga erfassen kann.
Zu den Delphi-Tags:
Sorry, dass ich sie net nicht benutzt habe, aber wie leg ich die denn an ?
Mfg Wald
chrisw - Mi 22.03.06 14:39
Entweder unter Bereiche Delphi auswählen und mit dem + daneben einfügen, oder
manuell {delphi} .......Code .....{/delphi} mit eckigen Klammern statt geschweiften eingeben !
Grishnak - Mi 22.03.06 15:53
Ich würde für eine Mannschaft, ein Spiel und einen Spieltag jeweils einen eigenen Typ definieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| type TMannschaft = record Name: string[30]; TorDifferenz: integer; Punkte: integer; end; TSpiel = record Heimmannschaft: integer; Gastmannschaft: integer; Heimtore: integer; Gasttore: integer; end;
TSpieltag = array [1..9] of TSpiel; |
Und folgende Variablen:
Delphi-Quelltext
1: 2: 3:
| var Mannschaften: array[1..18] of TMannschaft; Spieltage: array[1..34] of TSpieltag; |
Eine Eingabe (für eine Konsolen-Anwendung) könnte dann so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure Spieltag_erfassen; var ST: integer; HM, GM: integer; HT, GT: integer; i: integer; begin Write('Spieltag (1-34) eingeben:'); ReadLn(ST);
for i:=1 to 9 do begin WriteLn('Spiel ',i,':'); Write('Index der Heimmannschaft eingeben (1-18):'); ReadLn(HM); Spieltage[ST][i].Heimmannschaft:=HM;
Mannschaften[HM].TorDifferenz:=Mannschaften[HM].TorDifferenz+HT-GT; if HT > GT then Mannschaften[HM].Punkte:=Mannschaften[HM].Punkte+3; end; end; |
Abspeichern kann man dann die Arrays "Mannschaften" bzw. "Spieltage" zwei typisierten Dateien:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Daten_speichern; var i: integer; MF: file of TMannschaft; MS: file of TSpiel; begin Assign(MF, 'R:\Mannschaften.dat'); ReWrite(MF); for i:=1 to 18 do Write(MF, Mannschaften[i]); Close(MF);
end; |
Den Rest solltes du nun aber allein hinbekommen!
PS: Keine Gewähr auf Fehlerfreiheit! Das ganz ist
ungetestet!
Wald - Mi 22.03.06 19:26
Erst einmal vielen Dank für deine Arbeit Grishnak, das weiss ich wirklich zu schätzen! Hoffe, das wirkt nicht so als würd ich hier mein Programm schreiben lassen :)
Ich werde das gleich mal ausprobieren!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!