Autor Beitrag
Wald
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 22.03.06 08:54 
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.

ausblenden 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..9of 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 user profile iconraziel: Delphi-Tags hinzugefügt
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: 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?

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
Wald Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: 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 !

_________________
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Mi 22.03.06 15:53 
Ich würde für eine Mannschaft, ein Spiel und einen Spieltag jeweils einen eigenen Typ definieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type
  TMannschaft = record
    Name: string[30];      // Name der Mannschaft als ShortString
    TorDifferenz: integer; // Differenz zwischen eigenen und gegnerischen Toren
    Punkte: integer;       // erzielte Punkte
  end;
 
  TSpiel = record
    Heimmannschaft: integer; // Index der Heimmannschaft
    Gastmannschaft: integer; // Index der Gastmannschaft
    Heimtore: integer;       // Anzahl der von der Heimmannschaft erzielten Tore  
    Gasttore: integer;       // Anzahl der von der Gastmannschaft erzielten Tore
  end;

  TSpieltag = array [1..9of TSpiel; // Beinhaltet die neun Spiele eines Spieltages

Und folgende Variablen:
ausblenden Delphi-Quelltext
1:
2:
3:
var
  Mannschaften: array[1..18of TMannschaft; // Daten aller 18 Mannschaften
  Spieltage: array[1..34of TSpieltag;      // Daten aller 34 Spieltage

Eine Eingabe (für eine Konsolen-Anwendung) könnte dann so aussehen:
ausblenden volle Höhe 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;     // Nummer des Spieltages
  HM, GM: integer; // Index Heim- bzw. Gastmannschaft
  HT, GT: integer; // Anzahl Heim- bzw. Gasttore
  i: integer;
begin
  // Eingabe des Spieltages (Eingabe sollte noch auf Plausibilität geprüft werden)
  Write('Spieltag (1-34) eingeben:');
  ReadLn(ST);

  for i:=1 to 9 do // alle neun Spiele eines Spieltages durchgehen
    begin
      // Eingabe des Index der Heimmannschaft (ebenfalls auf Plausibilität prüfen)
      WriteLn('Spiel ',i,':');
      Write('Index der Heimmannschaft eingeben (1-18):');
      ReadLn(HM);
      Spieltage[ST][i].Heimmannschaft:=HM;

      // ...nacheinander Gastmannschaft, Heimtore und Gasttore erfassen

      // evtl. hier schon die Daten jeder Mannschaft anpassen
      // eigene Tore zähelen Positiv, gegnerische negativ
      Mannschaften[HM].TorDifferenz:=Mannschaften[HM].TorDifferenz+HT-GT;
      
      // das gleiche für die Gastmannschaft

      // erzielt die Heimmanschaft mehr Tore, erhält sie 3 Punkte
      if HT > GT then Mannschaften[HM].Punkte:=Mannschaften[HM].Punkte+3;
      // erzielt die Gastmanschaft mehr Tore, erhält sie 3 Punkte
      // [...]
      // bei Unentschieden bekommt jeder 1 Punkt
      // [...]
    end;
end;

Abspeichern kann man dann die Arrays "Mannschaften" bzw. "Spieltage" zwei typisierten Dateien:
ausblenden 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');
  // Datei neu erstellen und zum Schreiben öffnen (sollte noch auf IO-Fehler geprüft werden)
  ReWrite(MF);
  // Daten der Mannschaften sichern
  for i:=1 to 18 do
    Write(MF, Mannschaften[i]);
  // Datei schließen
  Close(MF);

  // ...die Daten für die Spieltage ebenfalls speichern
end;

Den Rest solltes du nun aber allein hinbekommen!

PS: Keine Gewähr auf Fehlerfreiheit! Das ganz ist ungetestet!

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
Wald Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: 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!