مساعدة في برنامج ب الباسكال

djwy · 1 · 1032

djwy

  • Newbie
  • *
    • مشاركة: 47
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: آذار 08, 2013, 10:45:50 مسائاً
السلام عليكم ورحمة الله تعالى وبركاته ,,,,,,,
لقد قمت بكتابة برنامج بلغة الباسكال  يقوم بتخزين معلومات الطلبة (سجل)في ملف والمطلوب أن يكون الملف غير قابل للفتح فقط من داخل البرنامج اظن من نوع (dat ou pas )الله أعلم هذه المشكلة الأولى والبرنامج يحوي إجراءات للإضافو والمسح والعر وغيرها ,...المشكلة أن الرنامج يعمل لكن إجراء العرض والحذف لايعملان ولم أعرف أين  المشكلة ؟؟؟
شفرة: [اختيار]
program TP02 ;
uses crt;
type
student= Record
nb : integer ;
nom : string[20];
pnom :string[20];
date:string[10];
ville:string[20];
moy:0..20;

end ;
var
f: file of student ;
stud : student;
c: integer;
                          { creér new file procedure 1}
Procedure creer;
begin
assign(f,'students.dat');
rewrite(f);
end;                                    { ajouter new student procedure 2}
Procedure rempler(var stud : student);
var i,n : integer;
begin
assign(f,'students.dat');
rewrite(f);
write('svp!.entrez le nombres des etudiants vou voulez ajoutee:');
readln(n);
for i:= 1 to n Do
begin
write('entrez le numero de etudiant ',i,':');readln(stud.nb);
write('entrez le nom de etudiant ',i,':');readln(stud.nom);
write('entrez le prenom de etudiant ',i,':');readln(stud.pnom);
write('entrez la date de naissance de etudiant ',i,':');readln(stud.date);
write('entrez le lieu de naiss de etudiant ',i,':');readln(stud.ville);
write('entrez la note de etudiant ',i,':');readln(stud.moy);
write(f,stud);
end;
close(f);
end;
                         {procedure 3 chercer for student }
Procedure recherche(var stud : student);
var
s,a:integer;
b:string;
t:boolean;
begin
write('vous voulez recherchez par numero(1) ou par nom(2)? 1 ou 2 :');
readln(s);
reset(f);
t:= true;
if s=1 then
begin
write('entrez le numero :');readln(a);
while not eof(f) and t=true DO
begin
read(f,stud);
if stud.nb =a then t:= false ;

end;
if t=false then
begin
writeln ('le numero de etudiqnt est;',stud.nb);
writeln ('le numero de etudiqnt est;',stud.nom);
writeln ('le numero de etudiqnt est;',stud.pnom);
writeln ('le numero de etudiqnt est;',stud.date);
writeln ('le numero de etudiqnt est;',stud.ville);
writeln ('le numero de etudiqnt est;',stud.moy);
end
else writeln('le numero il n''existe pqs !!');
end
else
begin
write('entrez le num :');readln(b);
while not eof(f) and t=true DO
begin
read(f,stud);
if stud.nom =b then t:= false ;
end;
if t=false then
begin
writeln ('le numero de etudiqnt est;',stud.nb);
writeln ('le numero de etudiqnt est;',stud.nom);
writeln ('le numero de etudiqnt est;',stud.pnom);
writeln ('le numero de etudiqnt est;',stud.date);
writeln ('le numero de etudiqnt est;',stud.ville);
writeln ('le numero de etudiqnt est;',stud.moy);
end
else writeln('le numero il n''existe pas !!');
end;
close(f);
end;
Procedure suprimer(var stud : student);     { supprimer student procedure 4}
var
s,a,r:integer;
b:string;
t:boolean;
begin
write('vous voulez suprimez par numero(1) ou par nom(2)? 1 ou 2 :');
readln(s);
rewrite(f);
t:= true;
r:=0;
if s=1 then
begin
write('entrez le numero :');readln(a);
while not eof(f) and t=true DO
begin
read(f,stud);
r:=r+1;
if stud.nb =a then t:= false ;

end;
if t=false then
begin
seek(f,r);
Truncate(f);
writeln ('le numero de etudiqnt est suprimee');
end
else writeln('le numero il n''existe pqs !!');
end
else
begin
write('entrez le num :');readln(b);
while not eof(f) and t=true DO
begin
read(f,stud);
r:=r+1;
if stud.nom =b then t:= false ;
end;
if t=false then
begin
seek(f,r);
Truncate(f);
writeln ('le numero de etudiqnt est suprimee');
end
else writeln('le numero il n''existe pas !!');
end;
close(f);
end;
                           {procedure 5  afficher l'information of students}
Procedure afficher(var stud : student);
begin
assign(f,'fille.dat');
reset(f);
while not eof(f) do
begin
read(f,stud);
write (stud.nb);
write (stud.nom);
write (stud.pnom);
write (stud.date);
write (stud.ville);
write (stud.moy);
end;
close(f);
end;

               {program principale}
begin
clrscr ;
assign(f,'fille.dat');
rewrite(f);
repeat
begin
writeln('1\creer');
writeln('2\rempler');
writeln('3\recherche');
writeln('4\suprimer');
writeln('5\afficher');
writeln('0\creer');
writeln('entrew votre choix:');readln(c);
case c of
1 : creer;
2 : rempler (stud);
3 : recherche(stud);
4 : suprimer (stud);
5 : afficher(stud);
end;
end ;
 UNTIL c=0;
end.