|
各位大侠,
肯请你们帮我看一下以下的代码,我利用指针来处理学生信息,错误部分已用红色标出,请好心人帮忙看一下,不甚感激!
implementation
{$R *.lfm}
type
plink=^student;
student=record
name:string[8];
sex:string[2];
department:string[16];
next:plink;
end;
var
Dtrec:plink;
{ TForm1 }
procedure TForm1.Label1Click(Sender: TObject);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
dtrec:=nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
tempp,p:plink;
begin
new(tempp);
tempp^.name:=edit1.text;
tempp^.sex:=edit2.text;
tempp^.department:=edit3.text;
tempp^.next:=nil;
if dtrec=nil then
begin
new(dtrec);
dtrec:=tempp;
end
else
begin
p:=dtrec;
while p^.next<>nil do
p:=p^.next;
p^.next:=tempp;
end;
edit1.clear;
edit2.clear;
edit3.clear;
edit1.setfocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
p:plink;
begin
listbox1.clear;
listbox2.clear;
listbox3.clear;
p:=dtrec;
if dtrec=nil then
exit
else
repeat
listbox1.Items.Add(p^.name);
listbox2.Items.Add(p^.sex);
listbox3.Items.Add(p^.department);
p:=p^.next;
until p=nil;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
p,p1:plink;
i:integer;
begin
if edit1.text='' then
begin
showmessage(' lease enter name!');
exit;
end;
i:=0;
p:=dtrec;
if p=nil then
showmessage('Link list is empty!')
else
if p^.name=edit1.text then;
begin
dtrec:=p^.next;
p^.next:= nil;
p:= dtrec;
end
else 错误提示:Fatal:Syntax error,";" expected but "ELSE" found.
begin
p1:=p^.next;
if p1<>nil then
repeat
if p1^.name=edit1.text then
begin
p^.next:=p1^.next;
p1:=p;
i:=i+1;
end
else
begin
p:=p1;
p1:=p1^.next;
end;
until p1=nil;
if i=0 then
showmessage('No matched data!');
end;
end;
end;
end. |
|