Witam wszystkich :) napisałem program ksiazki telefonicznej no i szukanie w kolejce mi nie działa:( [dodawanie nowej osoby i losowej działa dobrze !] no i szukałem błedu bo podobny program już zrobiłem ale to jest podobnie rozwiązane :(
mam nadzieje ze pomożecie, z góry thx :)
program fonbuk ;
uses crt;
type
wskaznik =^element;
element = record
imie,nazwisko,fon:string;
next:wskaznik;
end;
var
head,tail :wskaznik;
imie,nazwisko,fon:string;
menu,ile,i,namelos,surlos:integer;
procedure los ;
begin
namelos := random(9);
case namelos of
0: imie:='Asia ';
1: imie:='Kasia ';
2: imie:='Basia ';
3: imie:='Jan ';
4: imie:='Adam ';
5: imie:='Ania ';
6: imie:='Poitr ';
7: imie:='Grzes ';
8: imie:='Lukas ';
9: imie:='Tomek ';
end;
surlos :=random(9);
case surlos of
0: nazwisko:='Stronkiewicz ';
1: nazwisko:='Nowak ';
2: nazwisko:='Slowak ';
3: nazwisko:='Losak ';
4: nazwisko:='Bosak ';
5: nazwisko:='Brzyskiewicz ';
6: nazwisko:='Bober ';
7: nazwisko:='Psikuta ';
8: nazwisko:='Bombkiewicz ';
9: nazwisko:='Dracena ';
end;
for i:=0 to 9 do
fon[i]:=chr(random(9)+48);
end;
procedure enqueue (var h,t:wskaznik;i,n,f:string);
var nowy:wskaznik;
begin
new (nowy);
nowy^.imie :=i;
nowy^.nazwisko:=n;
nowy^.fon :=f;
nowy^.next:=nil;
if h=nil then
begin
h:=nowy;
t:=h;
end
else
begin
t^.next:=nowy;
t:=t^.next;
end;
end;
function printqueue (h:wskaznik):string;
begin
while h<> nil do
begin
write (h^.imie,' ',h^.nazwisko,' ');
writeln (h^.fon);
h:=h^.next;
end;
end;
procedure add (var h,t:wskaznik;imie,nazwisko,fon:string);
begin
write ('dziala');
end;
function search (h:wskaznik):string;
begin
writeln ('podaj poszukiwane imie lub nazwisko');
readln (imie);
writeln;
writeln ('wyszukane osoby to:') ;
while h<> nil do
begin
if (h^.imie=imie) or (h^.nazwisko=imie) then
begin
write (h^.imie,' ',h^.nazwisko,' ');
writeln (h^.fon);
end;
h:=h^.next;
end;
end;
begin
{----------------------Menu-----------}
clrscr;
while (menu<>1) or (menu<>2) or (menu<>3) do
begin
writeln;
writeln ('wybierz co chcesz zrobic?');
writeln ('wyswitel wszystkie losowo wybrane rekordy w ksiazce --- wcisnij 1');
writeln ('wyszukaj osob(e/y) ------------------------------------ wcisnij 2');
writeln ('dodaj osobe do ksazki --------------------------------- wcisnij 3');
writeln ('zakoncz ----------------------------------------------- wcisnij 4');
writeln;
write ('wybieram: ');
readln (menu);
{-------------------MENU WYBOR 1 ----------- }
if (menu=1) then
begin
writeln ('ile osob wylosowac?');
readln (ile);
randomize ;
while ile >0 do
begin
los;
enqueue (head,tail,imie,nazwisko,fon);
dec(ile);
end;
writeln;
writeln ('wylosowane osoby to:') ;
printqueue (head);
end;
{-----------------Menu wybor 2--------}
if(menu=2) then search(head);
{-----------------Menu wybor 3--------}
if(menu=3)then
begin
writeln ('ile osob dodac?');
readln (ile);
while ile>0 do
begin
writeln ('podaj imie, nazwisko oraz numer ',ile,'osoby');
readln (imie); readln(nazwisko); readln (fon);
enqueue (head,tail,imie,nazwisko,fon);
dec(ile);
end;
writeln;
writeln ('dodaneane osoby to:') ;
printqueue (head);
end;
end;
readln;
end.