olektwojpan
Nowy
Dołączył: 07 Lis 2011
Posty: 1
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pon 18:15, 07 Lis 2011 Temat postu: Program baza danych na pliku |
|
|
Potrzebuje pomocy z programem, a mianowicie program jako taki działa tylko nie zapisuje trwale danych w pliku i po ponownym otworzeniu programu nie ma tam już wcześniej wpisywanych danych. to ten program
Program dziennik;
USES CRT;
TYPE
Datastyp = RECORD
Dzien:1..31;
Miesiac:1..12;
Rok:Integer;
END;
StudentTyp = ARRAY [1..10] OF RECORD
Imie:String;
Nazwisko:String;
o_z_p:String;
o_z_m:String;
o_z_n:String;
o_z_p1:String;
o_z_m1:String;
o_z_n1:String;
dataur:Datastyp;
END;
Plik = File of StudentTyp;
VAR
p1, p2: Plik;
Student:StudentTyp;
a,i:Integer;
c:char;
Procedure Do_pliku(VAR x:Plik);
Var
i:Integer;
BEGIN
ClrScr;
Assign (x, 'plik.txt');
ReWrite(x);
Write('Podaj ilosc uczniow, ktorych chcesz wprowadzic: '); Readln(a);
FOR i:=1 TO a DO
BEGIN
WriteLn('Numer w dzienniku ', i);
Write('Podaj Imie: '); ReadLn(Student[i].Imie);
Write('Podaj nazwisko: '); ReadLn(Student[i].Nazwisko);
Write('Podaj dzien urodzenia: '); ReadLn(Student[i].Dataur.Dzien);
Write('Podaj miesiac urodzenia: '); ReadLn(Student[i].Dataur.Miesiac);
Write('Podaj rok urodzenia: '); ReadLn(Student[i].Dataur.Rok);
Write('Podaj ocene z polskiego: '); ReadLn(Student[i].o_z_p);
Write('Podaj ocene z niemieckiego: '); ReadLn(Student[i].o_z_n);
Write('Podaj ocene z matematyki: '); ReadLn(Student[i].o_z_m);
WriteLn;Write(x,student);
END;
Close(x);
END;
Procedure Dopisywanie(VAR x:Plik);
Var
b,i:Integer;
BEGIN
Assign (x, 'plik.txt');
ReWrite(x);
Write('Podaj ilosc uczniow, ktorych chcesz wprowadzic: '); Readln(b);
FOR i:=a+1 TO a+b DO
BEGIN
ClrScr;
WriteLn('Numer w dzienniku ', i);
Write('Podaj Imie: '); ReadLn(Student[i].Imie);
Write('Podaj nazwisko: '); ReadLn(Student[i].Nazwisko);
Write('Podaj dzien urodzenia: '); ReadLn(Student[i].Dataur.Dzien);
Write('Podaj miesiac urodzenia: '); ReadLn(Student[i].Dataur.Miesiac);
Write('Podaj rok urodzenia: '); ReadLn(Student[i].Dataur.Rok);
Write('Podaj ocene z polskiego: '); ReadLn(Student[i].o_z_p);
Write('Podaj ocene z niemieckiego: '); ReadLn(Student[i].o_z_n);
Write('Podaj ocene z matematyki: '); ReadLn(Student[i].o_z_m);
WriteLn;Write(x,student);
END;
a:=a+b;
Close(x);
END;
Procedure wypisywanie( VAR x:Plik);
Var
i:Integer;
Begin
ClrScr;
Assign(x, 'plik.txt');
Reset(x);
Begin
FOR i:=1 TO a DO
BEGIN
Writeln;
Writeln;
Writeln('Numer w dzienniku ',i);
Writeln(Student[i].Imie,' ', Student[i].Nazwisko);
Writeln(Student[i].Dataur.dzien,'.',Student[i].dataur.miesiac,'.', student[i].dataur.rok,'r');
Writeln('ocena z polskiego ',Student[i].o_z_p,' ',Student[i].o_z_p1);
Writeln('ocena z niemieckiego ',Student[i].o_z_n,' ',Student[i].o_z_n1);
Writeln('ocena z matematyki ',Student[i].o_z_m,' ',Student[i].o_z_m1);
Writeln;
Delay(400);
END;
End;
ReadKey;
Close(x);
END;
Procedure wypisz_1(Var x:Plik);
Var
i,n:integer;
Begin
ClrScr;
Assign(x, 'plik.txt');
Reset(x);
Writeln('Podaj numer z dziennika ucznia'); Readln(n);
Begin
FOR i:=1 TO a DO
Begin
If i=n Then
BEGIN
Writeln('Numer w dzienniku ',i);
Writeln(Student[i].Imie,' ', Student[i].Nazwisko);
Writeln(Student[i].Dataur.dzien,'.',Student[i].dataur.miesiac,'.', student[i].dataur.rok,'r');
Writeln('ocena z polskiego ',Student[i].o_z_p,' ',Student[i].o_z_p1);
Writeln('ocena z niemieckiego ',Student[i].o_z_n,' ',Student[i].o_z_n1);
Writeln('ocena z matematyki ',Student[i].o_z_m,' ',Student[i].o_z_m1);
Writeln;
Delay(400);
End;
End;
End;
ReadKey;
Close(x);
END;
Procedure dopisywanie_oceny(var x:Plik);
Var
b,i:Integer;
BEGIN
Assign (x, 'plik.txt');
ReWrite(x);
Writeln('Ktoremu numerowi z dziennika chcesz dopisac ocene?'); Readln(b);
For i:=1 To a Do
Begin
If i=b then
Begin
Writeln;
Writeln('Numer w dzienniku ',i);
Writeln(Student[i].Imie,' ', Student[i].Nazwisko);
Writeln(Student[i].Dataur.dzien,'.',Student[i].dataur.miesiac,'.', student[i].dataur.rok,'r');
Write('Podaj ocene z polskiego: '); ReadLn(Student[i].o_z_p1);
Write('Podaj ocene z niemieckiego: '); ReadLn(Student[i].o_z_n1);
Write('Podaj ocene z matematyki: '); ReadLn(Student[i].o_z_m1);
End;
End;
Close(x);
End;
Procedure Menu;
Begin
ClrScr;
Writeln('1. Wprowadz uczniow');
Writeln('2. Wypisz wszystkich uczniow');
Writeln('3. Dopisz uczniow');
Writeln('4. Wypisz wybranego ucznia');
Writeln('5. Dopisz ocene uczniowi');
Writeln('6. Zakoncz program');
End;
Begin
repeat
Menu;
c:=readkey;
Case c of
'1':Do_Pliku(p1);
'2':wypisywanie(p1);
'3':Dopisywanie(p1);
'4':wypisz_1(p1);
'5':dopisywanie_oceny(p1);
End;
until
c='6';
END.
Czekam na propozycje
Post został pochwalony 0 razy
|
|