Program baza danych na pliku

 
Napisz nowy temat   Odpowiedz do tematu    Forum Wszystko o Turbo Pascalu Strona Główna -> Problemy
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
olektwojpan
Nowy



Dołączył: 07 Lis 2011
Posty: 1
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysł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
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Wszystko o Turbo Pascalu Strona Główna -> Problemy Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Bluetab template design by FF8Jake of FFD
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Regulamin