Professional Documents
Culture Documents
tuanduy018@gmail.com http://phantuanduy.blogspot.com
Chng trnh:
program qlsv_mang; type sinhvien=record ten:string[30]; ngaysinh:string[10]; quequan:string[30]; gioitinh:string[3]; dtb:real; end; mang=array[1..100] of sinhvien; chuoi=string[30]; var a:mang; p,n,i,j:integer; x:chuoi; procedure Khoitao(var a:mang; n:integer); begin for i:=1 to n do begin writeln(nhap thong tin sinh vien thu ,i); write(' ho ten: '); readln(a[i].ten); write(' ngay sinh: '); readln(a[i].ngaysinh); write(' que quan: '); readln(a[i].quequan); write(' gioi tinh: '); readln(a[i].gioitinh); write(' diem trung binh: '); readln(a[i].dtb); end; end; procedure Xuat(a:mang;n:integer); begin for i:=1 to n do writeln(a[i].ten,' ',a[i].ngaysinh, ,a[i].quequan, ,a[i].gioitinh, ,a[i].dtb:0:2); end; procedure DSHB(a:mang;n:integer); begin for i:=1 to n do if (a[i].dtb>=8) then writeln(a[i].ten,' ',a[i].ngaysinh, ,a[i].quequan, ,a[i].gioitinh, ,a[i].dtb:0:2); http://phantuanduy.blogspot.com Page 1
end; function Timkiem(a:mang;x:chuoi):integer; var p:integer; begin p:=0; for i:=1 to n do if (a[i].ten=x) then begin p:=i; break; end; Timkiem:=p; end; procedure Sapxepgiam(var a:mang;n:integer); var t:sinhvien; begin for i:=1 to n-1 do for j:=i+1 to n do if (a[i].dtb<a[j].dtb) then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end; end; BEGIN Writeln(Nhap so luong sinh vien); readln(n); Khoitao(a,n); Writeln(danh sach sinh vien cua lop); Xuat(a,n); writeln('Danh sach sinh vien co hoc bong:'); DSHB(a,n); write('nhap ho ten sinh vien can tim: '); readln(x); p:=timkiem(a,x); if (p<>0) then begin writeln(Thong tin cua sinh vien tim duoc); writeln(a[p].ten,' ',a[p].ngaysinh, ,a[p].quequan, ,a[p].gioitinh, end else write(' khong tim thay hoc sinh co ten nay'); sapxepgiam(a,n); writeln(danh sach sinh vien sau khi sap xep); xuat(a,n); readln; END.
,a[p].dtb:0:2);
c) Nhp vo tn 1 sinh vin, tm xem sinh vin c tn ti khng, nu c th lu li v tr p ca sinh vin d trong danh sch, ngc li thng bo khng tm thy. d) Xa sinh vin va tm thy ra khi danh sch.
Chng trnh:
program qlsv_dsketiep; type sinhvien=record ten:string[30]; ngaysinh:string[10]; quequan:string[30]; gioitinh:string[3]; dtb:real; end; mang=array[1..100] of sinhvien; chuoi=string[30]; var L:mang; p,n,i:integer; x:chuoi; procedure Khoitao(var L:mang; var n:integer); var hoten:string[30]; begin n:=0; repeat write('nhap ho ten sv ',n+1,': '); readln(hoten); if (hoten<>'') then begin inc(n); L[n].ten:=hoten; write(' ngay sinh: '); readln(L[n].ngaysinh); write(' que quan: '); readln(L[n].quequan); write(' gioi tinh: '); readln(L[n].gioitinh); write(' diem trung binh: '); readln(L[n].dtb); end; until (hoten=''); end; procedure DSHB(L:mang;n:integer); begin for i:=1 to n do if (L[i].dtb>=8) then writeln(L[i].ten,' ',L[i].ngaysinh, ,L[i].quequan, ,L[i].gioitinh, end; function Timkiem(L:mang;x:chuoi):integer; var p:integer; begin p:=0; for i:=1 to n do if (L[i].ten=x) then begin p:=i; break; end; http://phantuanduy.blogspot.com
,L[i].dtb:0:2);
Page 3
Timkiem:=p; end; procedure Xoa(var L:mang;var n:integer;p:integer); begin for i:=p to n do L[i]:=L[i+1]; dec(n); end; BEGIN Khoitao(L,n); writeln('Danh sach sinh vien co hoc bong:'); DSHB(L,n); write('nhap ho ten sinh vien can tim: '); readln(x); p:=timkiem(L,x); if (p<>0) then begin writeln('Sinh vien can tim co chi so: ',p); Xoa(L,n,p); writeln('danh sach sinh vien moi:'); for i:=1 to n do writeln(' ',L[i].ten); end else write(' khong tim thay hoc sinh co ten nay'); readln; END.
var p,q,first:point; tensv:chuoi; procedure Khoitao(var first:point); var hoten:chuoi; begin first:=nil; repeat write(' Nhap ho ten: ');readln(hoten); if (hoten<>'') then begin new(p); p^.ht:=hoten; write('Nhap ngay sinh: ');readln(p^.ns); write('Nhap gioi tinh: ');readln(p^.gt); write('Nhap que quan: ');readln(p^.qq); write('Nhap diem trung binh: ');readln(p^.dtb); p^.next:=nil; if (first=nil)then first:=p else begin q:=first; while (q^.next<>nil) do q:=q^.next; q^.next:=p; end; end; until hoten=''; end; procedure Xuat(first:point); begin p:=first; while (p<>nil) do begin writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); p:=p^.next; end; end; procedure DSHB(first:point); begin p:=first; while (p<>nil) do begin if (p^.dtb>=8) then writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); p:=p^.next; end; end; function Timkiem(first:point;tensv:chuoi):point; var q:point; begin p:=first; q:=nil; while (p<>nil) do http://phantuanduy.blogspot.com Page 5
if (p^.ht=tensv) then begin q:=p; break; end else p:=p^.next; Timkiem:=q; end; procedure Loaibo(var first:point;p:point); begin if first=nil then writeln('Danh sach rong') else begin if(p=first) then begin first:=p^.next; dispose(p); end else begin q:=first; while(q^.next<>p) do q:=q^.next; q^.next:=p^.next; dispose(p); end; end; end; BEGIN Khoitao(first); writeln('Danh sach sinh vien vua nhap: '); xuat(first); writeln('Danh sach hoc bong'); DSHB(first); write('Nhap vao ten sinh vien: '); readln(tensv); p:=Timkiem(first,tensv); if (p<>nil) then begin writeln('Thong tin sinh vien tim thay'); writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); Loaibo(first,p); writeln(' Danh sach sinh vien sau khi xoa'); xuat(first); end else writeln('Khong tim thay sinh vien nay'); readln; END.
type point=^sinhvien; chuoi=string[30]; sinhvien=record ht:chuoi; ns:string[10]; gt:string[3]; qq:string[20]; dtb:real; next:point; pre:point; end; var p,q,first,last:point; tensv:chuoi; procedure Khoitao(var first,last:point); var hoten:chuoi; begin first:=nil; last:=nil; repeat write(' Nhap ho ten: ');readln(hoten); if (hoten<>'') then begin new(p); p^.ht:=hoten; write('Nhap ngay sinh: ');readln(p^.ns); write('Nhap gioi tinh: ');readln(p^.gt); write('Nhap que quan: ');readln(p^.qq); write('Nhap diem trung binh: ');readln(p^.dtb); p^.next:=nil; if (first=nil)then begin first:=p; last:=p; p^.pre:=nil; end else begin last^.next:=p; p^.pre:=last; last:=p; end; end; until hoten=''; end; procedure Xuat(first,last:point); begin p:=first; while (p<>nil) do begin writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); p:=p^.next; end; end; http://phantuanduy.blogspot.com Page 7
procedure DSHB(first,last:point); begin p:=first; while (p<>nil) do begin if (p^.dtb>=8) then writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' p:=p^.next; end; end; function Timkiem(first,last:point;tensv:chuoi):point; var q:point; begin p:=first; q:=nil; while (p<>nil) do if (p^.ht=tensv) then begin q:=p; break; end else p:=p^.next; Timkiem:=q; end; procedure Loaibo(var first,last:point;p:point); begin if first=nil then writeln('Danh sach rong') else if(first=last) then begin first:=nil; last:=nil; dispose(p); end else if (p=first) then begin first:=first^.next; first^.pre:=nil; dispose(p); end else if (p=last) then begin last:=last^.pre; last^.next:=nil; dispose(p); end else begin (p^.pre)^.next:=p^.next; (p^.next)^.pre:=p^.pre; dispose(p); end; end; http://phantuanduy.blogspot.com
',p^.qq:5,' ',p^.dtb:3:1);
Page 8
BEGIN Khoitao(first,last); writeln('Danh sach sinh vien vua nhap: '); xuat(first,last); writeln('Danh sach hoc bong'); DSHB(first,last); write('Nhap vao ten sinh vien: '); readln(tensv); p:=Timkiem(first,last,tensv); if (p<>nil) then begin writeln('Thong tin sinh vien tim thay'); writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); Loaibo(first,last,p); writeln(' Danh sach sinh vien sau khi xoa'); xuat(first,last); end else writeln('Khong tim thay sinh vien nay'); readln; END.
if (head^.next=head)then head^.next:=p else begin q:=head; while (q^.next<>head) do q:=q^.next; q^.next:=p; end; end; until hoten=''; end; procedure Xuat(head:point); begin p:=head^.next; while (p<>head) do begin writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' p:=p^.next; end; end; procedure DSHB(head:point); begin p:=head^.next; while (p<>head) do begin if (p^.dtb>=8) then writeln(p^.ht:3,' ',p^.ns:3,' p:=p^.next; end; end; function Timkiem(head:point;tensv:chuoi):point; var q:point; begin p:=head^.next; q:=nil; while (p<>head) do if (p^.ht=tensv) then begin q:=p; break; end else p:=p^.next; Timkiem:=q; end; procedure Loaibo(var head:point;p:point); begin if (head^.next=head) then writeln('Danh sach rong') else begin q:=head; while (q^.next<>p) do q:=q^.next; http://phantuanduy.blogspot.com
',p^.qq:5,' ',p^.dtb:3:1);
',p^.gt:3,'
',p^.qq:5,' ',p^.dtb:3:1);
Page 10
q^.next:=p^.next; dispose(p); end; end; BEGIN Khoitao(head); writeln('Danh sach sinh vien vua nhap: '); xuat(head); writeln('Danh sach hoc bong'); DSHB(head); write('Nhap vao ten sinh vien: '); readln(tensv); p:=Timkiem(head,tensv); if (p<>nil) then begin writeln('Thong tin sinh vien tim thay'); writeln(p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.dtb:3:1); Loaibo(head,p); writeln(' Danh sach sinh vien sau khi xoa'); xuat(head); end else writeln('Khong tim thay sinh vien nay'); readln; END.
repeat write('Nhap so hieu: ');readln(sohieu); if (sohieu<>0) then begin new(r); r^.sh:=sohieu; write('Nhap ten nguoi gui: ');readln(r^.ht); write('Nhap so tien: ');readln(r^.st); write('Nhap ngay gui: ');readln(r^.ng); r^.left:=nil; r^.right:=nil; p:=T; while (p<>nil) and (p^.sh<>r^.sh) do begin q:=p; if (p^.sh<r^.sh) then p:=p^.right else p:=p^.left; end; if (p<>nil) and (p^.sh=r^.sh) then begin writeln('du lieu vua nhap khong chen duoc'); exit; end; if (T=nil) then T:=r else if (q^.sh>r^.sh) then q^.left:=r else q^.right:=r; end; until sohieu=0; end; procedure Xuattang(T:point); begin if (T<>nil) then begin Xuattang(T^.left); writeln(T^.sh,' ',T^.ht,' ',T^.st:3:3,' ',T^.ng); Xuattang(T^.right); end; end; procedure Xuatgiam(T:point); begin if (T<>nil) then begin Xuatgiam(T^.right); writeln(T^.sh,' ',T^.ht,' ',T^.st:3:3,' ',T^.ng); Xuatgiam(T^.left); end;
http://phantuanduy.blogspot.com Page 12
end; BEGIN Khoitao(T); writeln('Danh sach hoa don tang dan: '); xuattang(T); writeln('Danh sach hoa don giam dan: '); xuatgiam(T); readln; END.
http://phantuanduy.blogspot.com
Page 13
svmoi:sinhvien; procedure Khoitao(var first:point); var hoten:chuoi30; begin first:=nil; repeat write(' Ma sinh vien: ');readln(hoten); if (hoten<>'') then begin new(p); p^.msv:=hoten; write(' Ho ten: ');readln(p^.ht); write(' Ngay sinh: ');readln(p^.ns); write(' Gioi tinh: ');readln(p^.gt); write(' Que quan: ');readln(p^.qq); write(' So dien thoai: ');readln(p^.sdt); write(' Lop: ');readln(p^.lop); write(' Diem trung binh: ');readln(p^.dtb); if (p^.dtb>=9) then p^.xl:='xuat sac' else if (p^.dtb>=8) then p^.xl:='gioi' else if (p^.dtb>=6.5) then p^.xl:='kha' else if (p^.dtb>5) then p^.xl:='trung binh' else if (p^.dtb>3.5) then p^.xl:='yeu' else p^.xl:='kem'; p^.next:=nil; if (first=nil)then first:=p else begin q:=first; while (q^.next<>nil) do q:=q^.next; q^.next:=p; end; end; until hoten=''; end; procedure Xuat(first:point); begin p:=first; while (p<>nil) do begin writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.xl:3); p:=p^.next; end; end; procedure XuatNu(first:point); begin p:=first; while (p<>nil) do begin if (p^.gt='nu') then
',p^.gt:3,'
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
http://phantuanduy.blogspot.com
Page 14
',p^.ht:3,'
',p^.ns:3,'
',p^.gt:3,'
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
end; procedure Xuatnt(first:point); begin p:=first; while (p<>nil) do begin if (p^.qq<>'hue') then writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end; end; procedure Xuatgioi_xs(first:point); begin p:=first; while (p<>nil) do begin if (p^.dtb>=8) then writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end; end; function Timkiem(first:point;tensv:chuoi30;tenlop:chuoi10):point; var q:point; begin p:=first; q:=nil; while (p<>nil) do if (p^.ht=tensv) and (p^.lop=tenlop) then begin q:=p; break; end else p:=p^.next; Timkiem:=q; end; procedure Bosung(var first:point;svmoi:sinhvien); begin p:=first; while (p^.next<>nil) do if (p^.qq='hue') then break else p:=p^.next; new(q); q^.msv:=svmoi.msv; q^.ht:=svmoi.ht; q^.ns:=svmoi.ns; q^.gt:=svmoi.gt; q^.qq:=svmoi.qq; q^.sdt:=svmoi.sdt; q^.lop:=svmoi.lop; q^.dtb:=svmoi.dtb; q^.xl:=svmoi.xl; if (first=nil) then begin
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
http://phantuanduy.blogspot.com
Page 15
q^.next:=nil; first:=q; end else begin q^.next:=p^.next; p^.next:=q; end; end; procedure Loaibo(var first:point;tenlop:chuoi10); begin if first=nil then writeln('Danh sach rong') else begin p:=first; while (p<>nil) do begin if p^.lop=tenlop then begin if(p=first) then begin first:=p^.next; dispose(p); end else begin q:=first; while(q^.next<>p) do q:=q^.next; q^.next:=p^.next; dispose(p); end; end; p:=p^.next; end; end; end; procedure sapxepgiam(var first:point); var t:sinhvien; begin p:=first; while(p^.next<>nil) do begin q:=p^.next; while(q<>nil) do begin if(p^.dtb<q^.dtb) then begin t.msv:=p^.msv; t.ht:=p^.ht; t.ns:=p^.ns; t.gt:=p^.gt; t.qq:=p^.qq; t.sdt:=p^.sdt; t.lop:=p^.lop; t.dtb:=p^.dtb; t.xl:=p^.xl;
http://phantuanduy.blogspot.com
Page 16
p^.msv:=q^.msv; p^.ht:=q^.ht; p^.ns:=q^.ns; p^.gt:=q^.gt; p^.qq:=q^.qq; p^.sdt:=q^.sdt; p^.lop:=q^.lop; p^.dtb:=q^.dtb; p^.xl:=q^.xl; q^.msv:=t.msv; q^.ht:=t.ht; q^.ns:=t.ns; q^.gt:=t.gt; q^.qq:=t.qq; q^.sdt:=t.sdt; q^.lop:=t.lop; q^.dtb:=t.dtb; q^.xl:=t.xl; end; q:=q^.next; end; p:=p^.next; end; end; procedure Chen(var first:point;svmoi:sinhvien); begin p:=first; while p^.next<>nil do if svmoi.dtb<=(p^.next)^.dtb then p:=p^.next else break; new(q); q^.msv:=svmoi.msv; q^.ht:=svmoi.ht; q^.ns:=svmoi.ns; q^.gt:=svmoi.gt; q^.qq:=svmoi.qq; q^.sdt:=svmoi.sdt; q^.lop:=svmoi.lop; q^.dtb:=svmoi.dtb; q^.xl:=svmoi.xl; if (first=nil) then begin q^.next:=nil; first:=q; end else if (p=first) then begin q^.next:=first; first:=q; end else begin q^.next:=p^.next; p^.next:=q; end; end; procedure nhapsv(var svmoi:sinhvien);
http://phantuanduy.blogspot.com
Page 17
begin writeln('Nhap thong tin sinh vien moi:'); write(' Nhap ma sinh vien: ');readln(svmoi.msv); write(' Nhap ho ten: ');readln(svmoi.ht); write(' Nhap ngay sinh: ');readln(svmoi.ns); write(' Nhap gioi tinh: ');readln(svmoi.gt); write(' Nhap que quan: ');readln(svmoi.qq); write(' Nhap so dien thoai: ');readln(svmoi.sdt); write(' Nhap lop: ');readln(svmoi.lop); write(' Nhap diem trung binh: ');readln(svmoi.dtb); if (svmoi.dtb>=9) then svmoi.xl:='xuat sac' else if (svmoi.dtb>=8) then svmoi.xl:='gioi' else if (svmoi.dtb>=6.5) then svmoi.xl:='kha' else if (svmoi.dtb>5) then svmoi.xl:='trung binh' else if (svmoi.dtb>3.5) then svmoi.xl:='yeu' else svmoi.xl:='kem'; end; BEGIN writeln('-------Bat dau nhap du lieu--------'); Khoitao(first); writeln('Ket thuc qua trinh nhap du lieu'); writeln('-----------------------------------'); writeln('Danh sach sinh vien vua nhap: '); xuat(first); writeln('-----------------------------------'); writeln('Danh sach sinh vien nu: '); xuatNu(first); writeln('-----------------------------------'); writeln('Danh sach sinh vien ngoai tinh: '); xuatnt(first); writeln('-----------------------------------'); writeln('Danh sach sinh vien gioi xuat sac: '); xuatgioi_xs(first); writeln('-----------------------------------'); write('Nhap vao ten sinh vien: '); readln(tensv); write('Nhap vao ten lop: '); readln(tenlop); p:=Timkiem(first,tensv,tenlop); if (p<>nil) then begin writeln('Thong tin sinh vien tim thay'); writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.sdt:5,' end else writeln('Khong tim thay sinh vien nay'); writeln('-----------------------------------'); nhapsv(svmoi); Bosung(first,svmoi); writeln('-----------------------------------'); writeln('Danh sach sinh vien moi sau khi them:'); xuat(first); writeln('-----------------------------------'); write('Nhap vao ten lop can xoa: '); readln(tenlop); Loaibo(first,tenlop);
',p^.lop:3,' ',p^.dtb:3:1,'
',p^.xl:3);
http://phantuanduy.blogspot.com
Page 18
writeln('-----------------------------------'); writeln('Danh sach sinh vien moi:'); xuat(first); writeln('-----------------------------------'); sapxepgiam(first); writeln('Danh sach sinh vien moi sau khi sap xep:'); xuat(first); writeln('-----------------------------------'); nhapsv(svmoi); Chen(first,svmoi); writeln('-----------------------------------'); writeln('Danh sach sinh vien moi sau khi chen:'); xuat(first); readln; END.
http://phantuanduy.blogspot.com
Page 19
p^.xl:='xuat sac' else if (p^.dtb>=8) then p^.xl:='gioi' else if (p^.dtb>=6.5) then p^.xl:='kha' else if (p^.dtb>=5) then p^.xl:='trung binh' else if (p^.dtb>=3.5) then p^.xl:='yeu' else p^.xl:='kem'; p^.next:=nil; if (first=nil)then begin p^.pre:=nil; first:=p; last:=p; end else begin last^.next:=p; p^.pre:=last; last:=p; end; end; i:=i+1; until hoten=''; end; procedure Xuat(first,last:point); begin p:=first; while (p<>nil) do begin writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end; end; procedure XuatNu(first,last:point); begin p:=first; while (p<>nil) do begin if (p^.gt='nu') then writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end; end; procedure Xuatnt(first,last:point); begin p:=first; while (p<>nil) do begin if (p^.qq<>'hue') then writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end;
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.d tb:3:1,'
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.d tb:3:1,'
http://phantuanduy.blogspot.com
Page 20
end; procedure Xuatgioi_xs(first,last:point); begin p:=first; while (p<>nil) do begin if (p^.dtb>=8) then writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.xl:3); p:=p^.next; end; end; function Timkiem(first,last:point;tensv:chuoi30;tenlop:chuoi10):point; var q:point; begin p:=first; q:=nil; while (p<>nil) do if (p^.ht=tensv) and (p^.lop=tenlop) then begin q:=p; break; end else p:=p^.next; Timkiem:=q; end; procedure Bosung(var first,last:point;svmoi:sinhvien); begin p:=first; while (p^.next<>nil) do if (p^.qq='hue') then break else p:=p^.next; new(q); q^.msv:=svmoi.msv; q^.ht:=svmoi.ht; q^.ns:=svmoi.ns; q^.gt:=svmoi.gt; q^.qq:=svmoi.qq; q^.sdt:=svmoi.sdt; q^.lop:=svmoi.lop; q^.dtb:=svmoi.dtb; q^.xl:=svmoi.xl; if (first=nil) then begin q^.next:=nil; q^.pre:=nil; first:=q; last:=q; end else if (p=last) then begin q^.next:=p^.next; q^.pre:=p; p^.next:=q; last:=q; end else begin
',p^.qq:5,'
',p^.sdt:5,'
',p^.lop:3,'
',p^.dtb:3:1,'
http://phantuanduy.blogspot.com
Page 21
q^.next:=p^.next; p^.next:=q; q^.pre:=p; (q^.next)^.pre:=q; end; end; procedure Loaibo(var first,last:point;tenlop:chuoi10); begin if first=nil then writeln('Danh sach rong') else begin p:=first; while (p<>nil) do begin if p^.lop=tenlop then begin if(first=last) then begin first:=nil; last:=nil; dispose(p); end else if (p=first) then begin first:=first^.next; first^.pre:=nil; dispose(p); end else if (p=last) then begin last:=last^.pre; last^.next:=nil; dispose(p); end else begin (p^.pre)^.next:=p^.next; (p^.next)^.pre:=p^.pre; dispose(p); end; end; p:=p^.next; end; end; end; procedure sapxepgiam(first,last:point); var t:sinhvien; begin p:=first; while(p^.next<>nil) do begin q:=p^.next; while(q<>nil) do begin if(p^.dtb<q^.dtb) then begin t.msv:=p^.msv;
http://phantuanduy.blogspot.com
Page 22
t.ht:=p^.ht; t.ns:=p^.ns; t.gt:=p^.gt; t.qq:=p^.qq; t.sdt:=p^.sdt; t.lop:=p^.lop; t.dtb:=p^.dtb; t.xl:=p^.xl; p^.msv:=q^.msv; p^.ht:=q^.ht; p^.ns:=q^.ns; p^.gt:=q^.gt; p^.qq:=q^.qq; p^.sdt:=q^.sdt; p^.lop:=q^.lop; p^.dtb:=q^.dtb; p^.xl:=q^.xl; q^.msv:=t.msv; q^.ht:=t.ht; q^.ns:=t.ns; q^.gt:=t.gt; q^.qq:=t.qq; q^.sdt:=t.sdt; q^.lop:=t.lop; q^.dtb:=t.dtb; q^.xl:=t.xl; end; q:=q^.next; end; p:=p^.next; end; end; procedure Chen(var first,last:point;svmoi:sinhvien); begin p:=first; while p^.next<>nil do if svmoi.dtb<=(p^.next)^.dtb then p:=p^.next else break; new(q); q^.msv:=svmoi.msv; q^.ht:=svmoi.ht; q^.ns:=svmoi.ns; q^.gt:=svmoi.gt; q^.qq:=svmoi.qq; q^.sdt:=svmoi.sdt; q^.lop:=svmoi.lop; q^.dtb:=svmoi.dtb; q^.xl:=svmoi.xl; if (first=nil) then begin q^.next:=nil; q^.pre:=nil; first:=q; last:=q; end else if (p=first) then begin
http://phantuanduy.blogspot.com
Page 23
q^.next:=first; first^.pre:=q; first:=q; end else begin q^.next:=p^.next; q^.pre:=p; p^.next:=q; end; end; procedure nhapsv(var svmoi:sinhvien); begin writeln('Nhap thong tin sinh vien moi:'); write(' Nhap ma sinh vien: ');readln(svmoi.msv); write(' Nhap ho ten: ');readln(svmoi.ht); write(' Nhap ngay sinh: ');readln(svmoi.ns); write(' Nhap gioi tinh: ');readln(svmoi.gt); write(' Nhap que quan: ');readln(svmoi.qq); write(' Nhap so dien thoai: ');readln(svmoi.sdt); write(' Nhap lop: ');readln(svmoi.lop); write(' Nhap diem trung binh: ');readln(svmoi.dtb); if (svmoi.dtb>=9) then svmoi.xl:='xuat sac' else if (svmoi.dtb>=8) then svmoi.xl:='gioi' else if (svmoi.dtb>=6.5) then svmoi.xl:='kha' else if (svmoi.dtb>5) then svmoi.xl:='trung binh' else if (svmoi.dtb>3.5) then svmoi.xl:='yeu' else svmoi.xl:='kem'; end; BEGIN writeln('-------Bat dau nhap du lieu--------'); Khoitao(first,last); writeln('Ket thuc qua trinh nhap du lieu'); writeln('-----------------------------------'); writeln('Danh sach sinh vien vua nhap: '); xuat(first,last); writeln('-----------------------------------'); writeln('Danh sach sinh vien nu: '); xuatNu(first,last); writeln('-----------------------------------'); writeln('Danh sach sinh vien ngoai tinh: '); xuatnt(first,last); writeln('-----------------------------------'); writeln('Danh sach sinh vien gioi xuat sac: '); xuatgioi_xs(first,last); writeln('-----------------------------------'); write('Nhap vao ten sinh vien: '); readln(tensv); write('Nhap vao ten lop: '); readln(tenlop); p:=Timkiem(first,last,tensv,tenlop); if (p<>nil) then begin writeln('Thong tin sinh vien tim thay'); writeln(p^.msv:3,' ',p^.ht:3,' ',p^.ns:3,' ',p^.gt:3,' ',p^.qq:5,' ',p^.sdt:5,'
',p^.lop:3,' ',p^.dtb:3:1,'
',p^.xl:3);
http://phantuanduy.blogspot.com
Page 24
end else writeln('Khong tim thay sinh vien nay'); writeln('-----------------------------------'); nhapsv(svmoi); Bosung(first,last,svmoi); writeln('-----------------------------------'); writeln('Danh sach sinh vien moi sau khi them:'); xuat(first,last); writeln('-----------------------------------'); write('Nhap vao ten lop can xoa: '); readln(tenlop); Loaibo(first,last,tenlop); writeln('-----------------------------------'); writeln('Danh sach sinh vien moi:'); xuat(first,last); writeln('-----------------------------------'); sapxepgiam(first,last); writeln('Danh sach sinh vien moi sau khi sap xep:'); xuat(first,last); writeln('-----------------------------------'); nhapsv(svmoi); Chen(first,last,svmoi); writeln('-----------------------------------'); writeln('Danh sach sinh vien moi sau khi chen:'); xuat(first,last); readln; END.
Bi tp nh u t(gio trnh)
program nhadautu; type p_nhadautu=^dt; chuoi=string[30]; dt=record sohieu:chuoi; ten:chuoi; sotien:real; ngay:string[10]; next:p_nhadautu; end; var first,p,q:p_nhadautu; hoten:chuoi; ndt:dt; procedure Khoitao(var first:p_nhadautu); var sh:string[30]; begin first:=nil; repeat write('nhap so hieu nha dau tu: ');readln(sh); if (sh<>'') then begin new(p); p^.sohieu:=sh; write('nhap ten: ');readln(p^.ten); write('nhap so luong tien dau tu: ');readln(p^.sotien); write('nhap ngay tham gia: ');readln(p^.ngay); p^.next:=nil; if first=nil then first:=p else
http://phantuanduy.blogspot.com
Page 25
begin q:=first; while q^.next<>nil do q:=q^.next; q^.next:=p; end; end; until sh=''; end; function Timkiem(first:p_nhadautu;x:chuoi):p_nhadautu; begin p:=first; q:=nil; while p<>nil do if p^.ten=x then begin q:=p; break; end else p:=p^.next; timkiem:=q; end; procedure sapxep(var first:p_nhadautu); var t:dt; begin p:=first; while p^.next<>nil do begin q:=p^.next; while q<>nil do begin if p^.sotien<q^.sotien then begin t.sohieu:=p^.sohieu; t.ten:=p^.ten; t.sotien:=p^.sotien; t.ngay:=p^.ngay; p^.sohieu:=q^.sohieu; p^.ten:=q^.ten; p^.sotien:=q^.sotien; p^.ngay:=q^.ngay; q^.sohieu:=t.sohieu; q^.ten:=t.ten; q^.sotien:=t.sotien; q^.ngay:=t.ngay; end; q:=q^.next; end; p:=p^.next; end; writeln(' danh sach sap xep giam theo so tien'); p:=first; while p<>nil do begin writeln(p^.sohieu,' ',p^.ten,' ',p^.ngay,' ',p^.sotien:0:2); p:=p^.next; end;
http://phantuanduy.blogspot.com
Page 26
end; procedure Chen(var first:p_nhadautu;ndt:dt); begin p:=first; while p<>nil do if ndt.sotien<=p^.sotien then break else p:=p^.next; new(q); q^.sohieu:=ndt.sohieu; q^.ten:=ndt.ten; q^.sotien:=ndt.sotien; q^.ngay:=ndt.ngay; if (first=nil) then begin q^.next:=nil; first:=q; end else begin q^.next:=p^.next; p^.next:=q; end; end; BEGIN Khoitao(first); write('nhap ho ten nha dau tu can tim: ');readln(hoten); p:= timkiem(first,hoten) if p<>nil then begin writeln('thong tin nha dau tu tim duoc'); writeln(p^.sohieu,' ',p^.ten,' ',p^.sotien:0:2,' ',p^.ngay) end else writeln('khong tim thay'); sapxep(first); writeln('nhap ho so nha dau tu moi'); write('nhap so hieu: ');readln(ndt.ten); write('nhap ten: ');readln(ndt.ten); write('nhap so luong tien dau tu: ');readln(ndt.sotien); write('nhap ngay tham gia: ');readln(ndt.ngay); Chen(first,ndt); writeln(' danh sach moi cap nhat'); p:=first; while p<>nil do begin writeln(p^.sohieu,' ',p^.ten,' ',p^.ngay,' ',p^.sotien:0:2); p:=p^.next; end; readln; END.
http://www.tuanduy.co.cc/
http://phantuanduy.blogspot.com
Page 27