hm ok hier das user programm, aber nur das grundprogramm, rahmen etc. habe ich weggelassen das wäre zuviel quelltext das also die wichtigen proceduren die mir noch fehler bereiten:
erst Vereinbarungen falls dort etwas falsch sein sollte
PROGRAM Userprogramm_Lehrervote;
USES crt;
VAR
Lehrer : ARRAY [1..5] OF string; {Variablenvereinbarungen}
rang : ARRAY [1..5] OF integer;
score : ARRAY [1..5] OF integer;
scorenew : ARRAY [1..5] of integer;
Lehrerliste : ARRAY [1..5] OF string;
lehrer1 : string;
lehrer2 : string;
lehrer3 : string;
lehrer4 : string;
lehrer5 : string;
lehrer1file : text;
lehrer2file : text;
lehrer3file : text;
lehrer4file : text;
lehrer5file : text;
Summe : integer;
Tausch : integer;
Tausch2 : string;
Zaehler : integer;
Zaehler2 : integer;
scfile : text;
key : char;
votekey : char;
eins : integer;
F : text;
{titel.dat varies}
Zaehler3 : integer;
Zaehler4 : integer;
Zaehler5 : integer;
sfile : text;
{Lehrer1 : ARRAY [1..5] OF string;
Lehrer2 : ARRAY [1..5] OF string;
Lehrer3 : ARRAY [1..5] OF string;
Lehrer4 : ARRAY [1..5] OF string;
Lehrer5 : ARRAY [1..5] OF string;}
name : string;
namefile : text;
{votelog varies}
log : string;
vfile : text;
{temporaer}
testzahl : integer;
{-------------------------------------------------------------------------------------}
{------------------------------------------------------------------------------------}
PROCEDURE ladenvotesc; {speicherprozedur}
BEGIN
assign (scfile,'C:\votesc.dat');
{$I-} reset (scfile); {$I+}
IF ioresult = 0 THEN
BEGIN
readln(scfile);
FOR Zaehler := 1 TO 5 DO
BEGIN
readln(scfile,Zaehler);
readln(scfile,score[Zaehler]);
END;
END;
close(scfile);
END;
{-------------------------------------------------------------------------------------}
PROCEDURE anzeige;
BEGIN
clrscr;
ladentiteldat;
ladenvotesc;
writeln;
writeln('Votingergebnisse:');
writeln('gesamte votes:',summe);
writeln;
writeln;
writeln(' Rang Lehrer Stimmen');
writeln('------------------------------------------');
FOR Zaehler := 1 TO 5 DO hier haut irgendwas nich hin
writeln(Zaehler:4,'. ',Lehrer[Zaehler]:15,' ',scorenew[Zaehler]); <========
writeln;
writeln;
gotoxy(1,24); writeln(' ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(1,25); writeln(' º º');
gotoxy(1,26); writeln(' º º');
gotoxy(1,27); writeln(' º Programm beenden mit esc º');
gotoxy(1,28); writeln(' º º');
gotoxy(1,29); writeln(' º º');
gotoxy(1,30); writeln(' ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
writeln;
writeln;
writeln;
key := readkey;
CASE key OF {CASE beinhaltet ein BEGIN}
#27: halt;
END;
END;
{--------------------------------------------------------}
{----------------------------------------------------------------------------------}
PROCEDURE ladenl1;
BEGIN
assign (lehrer1file,'C:\lehrer1.dat');
{$I-} reset (lehrer1file); {$I+}
IF ioresult = 0 THEN
readln(lehrer1file,lehrer1);
close(lehrer1file);
END;
es folgt laden2 -laden5
... ----> ladet alle 5 lehrernamen einzeln aus den einzelnen dateien da es meiner ansicht nach wenn das prog die lehrer aus einem array gelesen hat ich nicht für jeden einzelnen voten kann
und das problem mit dem sortieren kann ich mir ebenfalls nicht erklären:
{--------------------------------------------------------------------------------------------------------}
PROCEDURE Sortieren;
BEGIN
Zaehler := 0;
Zaehler2 := 0;
FOR Zaehler2 := 1 TO 3 DO
FOR Zaehler := (Zaehler2+1) TO 3 DO
IF score[Zaehler2] > score[Zaehler] THEN {Stueckweise Vertauchen zur gewuenschten Reihenfolge}
BEGIN
Tausch := score[Zaehler2];
score[Zaehler2] := score[Zaehler];
score[Zaehler] := Tausch;
Tausch2 := Lehrer[Zaehler2];
Lehrer[Zaehler2] := Lehrer[Zaehler];
Lehrer[Zaehler] := Tausch2;
END;
END;