Program Personel_takip; { Program adi tanimlamasi }
Uses crt;
{ Kayit degiskenleri tanimlama }
Type
Personelkayit = Record
Personeladisoyadi : String[30] ;
Personelcalgun : integer ;
Personelavans,Personelgunlugu : longint ;
F : Char ;
Personelkalan : Longint ;
End;
{ Program icerisinde kullanilacak degiskenler tanimlama }
Var
PersonelDosya : File Of Personelkayit ;
Perkayit : Personelkayit ;
t : integer;
Tus : Char ;
Cizgi : String[80] ;
Satir : Byte ;
I,PersonelKod : Integer ;
procedure cerceve(x1,y1,x2,y2:byte);
var
i:integer;
cizgi:string[80];
begin
fillchar(cizgi,x2-x1,#169);
cizgi[0]:=chr(x2-x1-1);
gotoxy(x1,y1);
write(chr(218),cizgi,chr(191));
for i:=y1+1 to y2-1 do
begin
gotoxy(x1,i);write(chr(179));
gotoxy(x2,i);write(chr(179));
end;
gotoxy(x1,y2);
write(chr(192),cizgi,chr(217));
end;
{ Kayit bolumunde islemlerin yapilacagi procedure }
Procedure Perkayitbolumu;
Begin { Procedure baslangici }
Assign(PersonelDosya,'PERSONEL.DAT'); { Dosyayi acar }
{$i-} Reset(PersonelDosya);PersonelKod:=IOResult;{$i+};
If PersonelKod<>0 Then ReWrite(PersonelDosya); { Dosya yoksa olusturur }
Clrscr;
cerceve(10,5,70,15);
{ Dosyaya bilgi girisi icin ekran hazirlanir }
gotoxy(15,7);writeln('Personelin');
gotoxy(15,9);Write('Adi Soyadi ........:'); Readln(Perkayit.Personeladisoyadi);
If Perkayit.Personeladisoyadi='' Then Exit;
gotoxy(15,10);Write(' Calistigi Gun .:');Readln(Perkayit.Personelcalgun);
gotoxy(15,11);Write(' Gunlugu .:');Readln(Perkayit.Personelgunlugu);
gotoxy(15,12);Write(' Avansi .:'); Readln(Perkayit.Personelavans);
cerceve(10,16,70,18);
gotoxy(25,17);Write(' Bilgi Dosyaya Yazilsin mi ? [E/H]');
perkayit.personelkalan:=((perkayit.personelcalgun*perkayit.personelgunlugu)-perkayit.personelavans);
Repeat
Tus:=Upcase(Readkey);
Until Tus In ['E','H'];
If Tus='E' Then
Begin
Perkayit.f:='*';
Seek(PersonelDosya,FileSize(PersonelDosya));
Write(PersonelDosya,Perkayit); { Kayitlari dosyaya yazar }
End;
close(personeldosya); { Dosyayi kapatir }
End;
{ Listeleme bolumunde islemlerin yapilacagi procedure }
Procedure Perkayitliste ;
var
s ,a: integer ; Begin
Clrscr;
Assign(Personeldosya,'Personel.Dat'); { Dosyayi acar }
{$i-} Reset(Personeldosya); I:=IOresult; {$i+}
If I <> 0 Then
begin
gotoxy(10,23);writeln('Dosya Yok ......!'); tus:=readkey;halt; { Dosya kontrolu yapar dosya yoksa programi sonlandirir }
end;
writeln('No Adi Soyadi Cal.Gun Gunlugu Avans Kalan');
writeln('---- ---------------------------- --------- ---------- ---------- ----------');
window(1,3,90,27);
s:=0;
for i:=0 to filesize(personeldosya)-1 do
begin
seek(personeldosya,i);
read(personeldosya,perkayit); { Dosyadan verileri okur }
if perkayit.f='*' then
begin
for a:=2 to 19 do
begin
write(chr(196));
gotoxy(80,a);
write(chr(186));
gotoxy(1,a);
write(chr(186));
gotoxy(5,a);
write(chr(186));
gotoxy(26,a);
write(chr(186));
gotoxy(45,a);
write(chr(186));
gotoxy(53,a);
write(chr(186));
gotoxy(66,a);
write(chr(186));
end;
gotoxy(1,2);
write('ÉÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
s:=s+1; { Satir numarasina 1 ekler }
gotoxy(1,2+s);write(i+1:3);
gotoxy(7,2+s);write(perkayit.personeladisoyadi) ;
gotoxy(40,2+s);write(perkayit.personelcalgun) ;
gotoxy(47,2+s);write(perkayit.personelgunlugu);
gotoxy(57,2+s);write(perkayit.personelavans) ;
gotoxy(69,2+s);write(perkayit.personelkalan) ;
gotoxy(1,20);
write('ÈÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍͼ');
end;
if s > 18 then { Kayitlarin adetini hesaplar 18 den coksa 2 ci sayfaya gecis icin bir tusa basmanizi ister }
begin
gotoxy(20,21);write('Diger Sayfa icin Bir Tusa Basiniz ..!');
tus:=readkey;
s:=0;
clrscr;
end;
end;
gotoxy(20,25);write('Listelenecek Kayitlar Bitti ......!');
tus:=readkey;
window(1,1,90,27); { Ekranda belirtilen olculerde pencere olusturur }
close(personeldosya); { Dosyayi kapatir }
end;
{ Kayit degisiklik icin kullanilacak procedure }
procedure perdegistir;
var
ara : string[30];
artik_sayfa,sayfa_sayisi,i,j,s,a:integer;
begin
assign(personeldosya,'personel.dat'); { Kayitlarla ilgili dosyayi acar }
{$i-} reset(personeldosya); personelkod:=ioresult; {$i+}
if personelkod <> 0 then
begin
clrscr;
writeln('Dosya Yok ....!');tus:=readkey;halt; { Dosya yoksa programi sonlandirir }
end;
if filesize(personeldosya)mod 18=0then
artik_sayfa:=0 else artik_sayfa:=1;
sayfa_sayisi:=(filesize(personeldosya)div 18 )+artik_sayfa;
t:=0;
s:=0;
clrscr;
for j:=1 to sayfa_sayisi do
begin
for i:=0 to filesize(personeldosya)-1 do
begin
{write(i);readln;halt;}
seek(personeldosya,i);
read(personeldosya,perkayit);
if (perkayit.f='*')then
begin
writeln(' No Adi Soyadi Cal.Gun Gunlugu Avans Kalan');
writeln('---- ---------------------------- --------- ---------- ---------- ----------');
window(1,3,80,24);
s:=s+1; { Satir numarasina 1 ekler }
for a:=2 to 19 do
begin
write(chr(196));
gotoxy(80,a);
write(chr(186));
gotoxy(1,a);
write(chr(186));
gotoxy(5,a);
write(chr(186));
gotoxy(26,a);
write(chr(186));
gotoxy(45,a);
write(chr(186));
gotoxy(53,a);
write(chr(186));
gotoxy(66,a);
write(chr(186));
end;
gotoxy(1,2);
write('ÉÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(2,3+s);write(i+1:3);
gotoxy(7,3+s);write(perkayit.personeladisoyadi);
gotoxy(26,3+s);
gotoxy(26,3);
gotoxy(40,3+s);write(perkayit.personelcalgun) ;
gotoxy(45,3+s);
gotoxy(45,3);
gotoxy(47,3+s);write(perkayit.personelgunlugu);
gotoxy(53,3+s);
gotoxy(53,3);
gotoxy(57,3+s);write(perkayit.personelavans) ;
gotoxy(66,3+s);
gotoxy(66,3);
gotoxy(69,3+s);write(perkayit.personelkalan) ;
gotoxy(1,20);
write('ÈÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍͼ');
if s>18 then
begin
gotoxy(20,23);
write('D˜¦ERSAYFAYA GE€MEK ˜€˜N B˜R TUžA BASINIZ ');
s:=0;
clrscr;
tus:=readkey;
end;
window(1,1,80,24);
end;
if (i+1) mod 18 =0 then
break;
end;
gotoxy(20,24);
write('DšZELT˜LECEK KAYIT BU SAYFADAMI [E/H] =');
repeat
tus:=upcase(readkey);
until tus in['E','H'];
if tus ='E' then
break;
end;
if tus ='E' then
begin
clrscr;
cerceve(20,3,60,5);
gotoxy(22,4);write('Duzeltilecek isim :');readln(ara); { Duzeltilecek isim girisi yapilir }
for i:=0 to filesize(personeldosya)-1 do
begin
seek(personeldosya,i);
read(personeldosya,perkayit); { Dosyadan verileri okur }
if (ara=perkayit.personeladisoyadi) and (perkayit.f='*') then { Aramayi yapar }
begin
clrscr;
cerceve(10,5,70,15);
{ Dosyadaki bilgileri ekrana yazdirir }
gotoxy(15,7);writeln('Adi Soyadi ....:',perkayit.personeladisoyadi);
gotoxy(15,9);writeln('Calistigi Gun .:',perkayit.personelcalgun) ;
gotoxy(15,11);writeln('Gunlugu .......:',perkayit.personelgunlugu) ;
gotoxy(15,13);writeln('Avans .........:',perkayit.personelavans) ;
gotoxy(15,15);writeln('Kalan .........:',perkayit.personelkalan) ;
cerceve(10,16,70,18);
gotoxy(20,17);write('Duzeltilecek Kayit Bu mu? [E/H] ');
repeat
tus:=upcase(readkey);
until tus in ['E','H'];
if tus='E' then
begin
clrscr;
{ Dosyadaki bilgileri ekrana yazdirir }
cerceve(10,5,70,15);
gotoxy(15,7);write('Adi Soyadi ....:');readln(perkayit.personeladisoyadi);
gotoxy(15,9);write('Calistigi Gun .:');readln(perkayit.personelcalgun) ;
gotoxy(15,11);write('Gunlugu .......:');readln(perkayit.personelgunlugu) ;
gotoxy(15,13);write('Avans .........:');readln(perkayit.personelavans) ;
perkayit.personelkalan:=((perkayit.personelcalgun*perkayit.personelgunlugu)-perkayit.personelavans);
seek(personeldosya,i);
write(personeldosya,perkayit); { Bilgileri dosyaya yazar }
cerceve(10,16,70,18);
gotoxy(25,17);write('Islem Tamamlandi .....!');
close(personeldosya);
tus:=readkey;
exit;
end;
end;
end;
end;
clrscr;
write('Kayit Yok ....!');
close(personeldosya);
tus:=readkey;
end;
{ Kayitlari silmede kullanilacak procedure }
Procedure persilme;
var
ara : string[30];
artik_sayfa,sayfa_sayisi,i,j,s,a:integer;
begin
assign(personeldosya,'personel.dat'); { Kayitlarla ilgili dosyayi acar }
{$i-} reset(personeldosya); personelkod:=ioresult; {$i+}
if personelkod <> 0 then
begin
clrscr;
writeln('Dosya Yok ....!');tus:=readkey;halt; { Dosya yoksa programi sonlandirir }
end;
if filesize(personeldosya)mod 18=0then
artik_sayfa:=0 else artik_sayfa:=1;
sayfa_sayisi:=(filesize(personeldosya)div 18 )+artik_sayfa;
t:=0;
s:=0;
clrscr;
for j:=1 to sayfa_sayisi do
begin
for i:=0 to filesize(personeldosya)-1 do
begin
{write(i);readln;halt;}
seek(personeldosya,i);
read(personeldosya,perkayit);
if (perkayit.f='*')then
begin
writeln(' No Adi Soyadi Cal.Gun Gunlugu Avans Kalan');
writeln('---- ---------------------------- --------- ---------- ---------- ----------');
window(1,3,80,24);
s:=s+1; { Satir numarasina 1 ekler }
for a:=2 to 19 do
begin
write(chr(196));
gotoxy(80,a);
write(chr(186));
gotoxy(1,a);
write(chr(186));
gotoxy(5,a);
write(chr(186));
gotoxy(26,a);
write(chr(186));
gotoxy(45,a);
write(chr(186));
gotoxy(53,a);
write(chr(186));
gotoxy(66,a);
write(chr(186));
end;
gotoxy(1,2);
write('ÉÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(2,3+s);write(i+1:3);
gotoxy(7,3+s);write(perkayit.personeladisoyadi);
gotoxy(26,3+s);
gotoxy(26,3);
gotoxy(40,3+s);write(perkayit.personelcalgun) ;
gotoxy(45,3+s);
gotoxy(45,3);
gotoxy(47,3+s);write(perkayit.personelgunlugu);
gotoxy(53,3+s);
gotoxy(53,3);
gotoxy(57,3+s);write(perkayit.personelavans) ;
gotoxy(66,3+s);
gotoxy(66,3);
gotoxy(69,3+s);write(perkayit.personelkalan) ;
gotoxy(1,20);
write('ÈÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍͼ');
if s>18 then
begin
gotoxy(20,23);
write('D˜¦ERSAYFAYA GE€MEK ˜€˜N B˜R TUžA BASINIZ ');
s:=0;
clrscr;
tus:=readkey;
end;
window(1,1,80,24);
end;
if (i+1) mod 18 =0 then
break;
end;
gotoxy(20,24);
write('S˜L˜NECEK KAYIT BU SAYFADAMI [E/H] =');
repeat
tus:=upcase(readkey);
until tus in['E','H'];
if tus ='E' then
break;
end;
if tus ='E' then
begin
clrscr;
cerceve(10,3,70,5);
gotoxy(15,4);write('Silinecek Isim ..:');readln(ara);
for i:=0 to filesize(personeldosya)-1 do
begin
seek(personeldosya,i);
read(personeldosya,perkayit); { Dosyadan kayitlari okur }
if (ara=perkayit.personeladisoyadi) and (perkayit.f='*') then { Belirtilen kisiyi arar }
begin
clrscr;
cerceve(10,5,70,15);
{ Ekrana dosyadaki bilgileri yazar }
gotoxy(15,7);writeln('Adi Soyadi ....:',perkayit.personeladisoyadi);
gotoxy(15,9);writeln('Calistigi Gun .:',perkayit.personelcalgun) ;
gotoxy(15,11);writeln('Gunlugu .......:',perkayit.personelgunlugu) ;
gotoxy(15,13);writeln('Avans .........:',perkayit.personelavans) ;
gotoxy(15,15);writeln('Kalan .........:',perkayit.personelkalan) ;
cerceve(10,16,70,18);
gotoxy(25,17);write('Silinecek Kayit Bu mu? [E/H] ');
repeat
tus:=upcase(readkey);
until tus in ['E','H'];
if tus='E' then
begin
perkayit.f:='s';
seek(personeldosya,i); { Dosyadan kayit arar }
write(personeldosya,perkayit); { Dosyaya kayitlari yazar }
gotoxy(20,21);write('Kayit Silindi ...!');
end;
close(personeldosya); { Acilan dosyayi kapatir }
tus:=readkey; { Her hangi bir tusa basmaniz icin bekler }
exit;
end;
end;
end;
clrscr; { Ekrani temizler }
write('Kayit Yok ...!');
close(personeldosya); { Acilan dosyayi kapatir }
tus:=readkey; { Herhangi bir tusa basmaniz icin bekler }
end;
{ Program baslangicinda cikacak ilk ekran MENU }
Procedure permenu;
Var
Sec : Char ;
Begin
Repeat
textcolor(14);
textbackground(blue);
Clrscr; { Ekrani temizler }
cerceve(1,1,80,24);
cerceve(3,2,78,4);
gotoxy(19,3);
write('AL˜ €ALIžKAN :19 MAYIS €.P.L˜SES˜ 10/D 456');
cerceve(20,5,60,23);
Gotoxy(30,10);writeln('[ 1 ] Personel Kayit ');
gotoxy(30,11);writeln('[ 2 ] Personel Degistirme');
gotoxy(30,12);writeln('[ 3 ] Personel Silme ');
Gotoxy(30,13);writeln('[ 4 ] Personel Liste ');
Gotoxy(30,14);writeln('[Esc] Cikis ');
gotoxy(30,16);write('Seciminiz ...?');
{ Secim icin dongu baslatir }
Repeat
Sec:=Readkey;
{ Menude yapilacak secime gore gidilecek procedureler tanimi }
Until Sec In ['1'..'4',#27];
Case Sec Of
'1' : Perkayitbolumu ;
'2' : Perdegistir ;
'3' : Persilme ;
'4' : Perkayitliste ;
End;
Until Sec=#27;
End;
Begin
{ Program derlendiginde gidilecek procedure tanimi }
permenu;
{ Program sonu }
End.