Tài liệu tham khảo tài chính ngân hàng Thiết kế phàn mềm quản lý tiền gửi ngân hàng
Trang 1Phần 1:
Phần mở đầu.
Hiện nay cả thế giới đang dần chuyển sang nền kinh tế tri thức và ngànhcông nghệ thông tin cũng dần dần đợc ứng dụng vào hầu hết các hoạt động trongnền kinh tế của các quốc gia trên toàn thế giới Việt Nam cũng đang trên con đờnghội nhập và phát triển cùng với khu vực và thế giới, chính vì vậy việc ứng dụng tinhọc trong các lĩnh vực của cuộc sống rất đợc quan tâm Một trong những ứng dụngđó là sử dụng tin học để quản lý tiền gửi trong một ngân hàng Đất nớc càng pháttriển, nhận thức của ngời dân càng mở rộng thì công việc của ngành ngân hàngcàng trở nên quan trọng, chính vì vậy việc sử dụng những thành tựu của tin học đểquản lý tiền gửi trong ngân hàng là không thể thiếu
Trong đề án này em xin đợc sử dụng những kiến thức của mình để thiết kếphần mềm quản lý tiền gửi trong một ngân hàng Bởi lý do thời gian và khả năngcủa bản thân còn hạn chế vì thế chắc chắn chơng trình không thể đợc hoàn thiện,em rất mong nhận đợc sự đóng góp ý kiến và sự chỉ bảo tận tình của thầy giáo h-ớng dẫn và của tất cả các thầy cô giáo trong khoa Tin học kinh tế.
I Mô tả hoạt động của tổ chức ngân hàng.
1 Sơ đồ tổ chức ngân hàng.
Giám đốcChi nhánh 2
Hội đồng quản trị
Ban tổng giám đốc
Phó tổng giám đốc Phó tổng giám đốc
Giám đốcChi nhánh 1
Trang 22 Hoạt động chung của ngân hàng.2.1.Thay đổi tiền dự trữ.
Nói chung các ngân hàng thu lợi luận bằng cách bán các tài sản nợ có mộtđặc tính (một kết hợp riêng về tính lỏng, rủi ro và lợi tức ) và dùng tiền mua đợcđể mua những tài sản có một số đặc tính khác Nh thế, các ngân hàng cung cấpmột số dịch vụ chuyển một loại tài sản thành một loại tài sản khác cho công chúng.Quá trình chuyển các tài sản và cung cấp một loại dịch vụ (thanh toán séc,ghi chép sổ sách, phân tích tín dụng…)cũng giống nh)cũng giống nh bất cứ quá trình sản xuất nàokhác trong hãng kinh doanh Nếu một ngân hàng tạo ra những dịch vụ hữu ích vớichi phí thấp và có đợc doanh thu cao nhờ tài sản của mình, thì ngân hàng đó thu đ-ợc lợi nhuận.
Khi một ngân hàng thơng mại nhận thêm tiền gửi, thì tiền dự trữ tăng thêmđúng bằng số tiền gửi đó; khi tiền gửi rút ra, nó bị mất một số lợng tiền dự trữ đúngbằng với số tiền gửi rút ra.
2.2.Tạo lợi nhuận từ việc cho vay
Nh phần trên ta thấy, các ngân hàng thơng mại tăng thêm hay mất bớt tiềndự trữ nh thế nào Bên cạnh việc thay đổi tiền dự trữ một hoạt động nữa của ngânhàng đó là bố trí lại bảng cân đối tài sản để tạo ra lợi nhuận khi ngân hàng tạo rathay đổi về số tiền gủi của nó.
Các ngân hàng thơng mại thu lợi nhuận chủ yếu bằng cách cho vay Tiềnvay là khoản nợ đối với ngời vay, nhng là một tài sản đối với ngân hàng thơng mạivà nó mang lại thu nhập cho ngân hàng Nói chung tiền cho vay là kém lỏng so với
Trang 3các tài sản khác bởi vì chúng không thể chuyển thành tiền mặt trớc khi các khoảncho vay đó mãn hạn Các khoản tiền cho vay cũng có xác suất vỡ nợ cao hơn so vớicác tài sản khác Do thiếu tính lỏng và có rủi ro vỡ nợ cao nên ngân hàng th ơngmại thờng thu đợc nhiều lợi nhuận nhờ vào các món tiền cho vay.
3 Thực trạng ứng dụng tin học trong ngân hàng
Hiện nay do sự phát triển của khoa học công nghệ và ngời dân có nhữngnhận thức tiến bộ về việc gửi tiền trong ngân hàng cho nên trong khoảng vài nămtrở lại đây ngành ngân hàng đã có những bớc phát triển đáng kể, đặc biệt là việc ápdụng công nghệ thông tin vào xử lý tài chính Trong một số ngân hàng lớn hiệnnay nh các ngân hàng ở Hà Nội hay thành phố Hồ Chí Minh thì việc áp dụng tinhọc vào xử tài chính là một việc đang rất đợc quan tâm Mặc dù đã có những bớcphát triển nh vậy nhng hiện nay việc áp dụng tin học trong hoạt động của hầu hếtcác ngân hàng ở Việt Nam vẫn cha đạt hiệu quả cao, máy tính chỉ đợc sử dụng đểthực hiện những công việc đơn giản, cha khai thác hết những khả năng và giá trịđích thực của máy tính.
II Lý do lựa chọn đề tài
3 Mục đích của đề tài
Mục đích của đề tài nhằm giúp cho sinh viên hiểu rõ hoạt động của ngànhngân hàng, bên cạnh đó giúp cho sinh viên nắm vững hơn những kiến thức cơ bảntrong lập trình nh kiến thức về cấu trúc dữ liệu danh sách liên kết Đề tài cũng giúpcho sinh viên làm quen cách viết chơng trình phần mềm để có thể ứng dụng tin họcvào việc xử lý các hoạt động của ngân hàng.
4 Khả năng áp dụng.
Chơng trình đợc sử dụng để quản lý tiền gửi trong một ngân hàng với cáchoạt động thờng xảy ra trong ngân hàng nh: Mở tài khoản mới cho khách hàng,thực hiện các công việc gửi tiền vào tài khoản hoặc rút tiền ra khỏi tài khoản, sửachữa những thông tin đã lu trữ về khách hàng, hiện các báo cáo về khách hàng, tàikhoản của khách hàng hoặc tổng tiền gửi trong ngân hàng…)cũng giống nh
Ch ơng 2:
Thiết kế cấu trúc của chơng trình.1 Các tính năng chính của chơng trình.
Chơng trình có năm chức năng chính : Nạp , Thêm, Bớt , Sửa, In.Nạp : Nạp dữ liệu đã đợc lu trữ trên đĩa để sử dụng
Thêm : - Thêm tài khoản mới cho khách hàng
Trang 4- Thêm tiền gửi vào tài khoản của khách hàng Bớt: - Rút tiền lãi từ tài khoản
- Rút tiền từ tài khoản
- Rút cả gốc lẫn lãi (Huỷ bỏ tài khoản).Sửa: Sửa các thông tin về khác hàng In : - In toàn bộ danh sách khách hàng
- In thông tin về một khách hàng.- In thông tin về một tài khoản.- Tổng tiền gửi trong Ngân hàng 2 Phơng pháp thiết kế sử dụng:
Phơng pháp thiết kế đợc sử dụng là phơng pháp thiết kế từ đỉnh xuống (Topdown design).
Đây là một phơng pháp thiết kế giải thuật dựa trên t tởng module hoá Nộidung của phơng pháp nh sau:
Trớc hết ngời ta xác định các vấn đề chủ yếu nhất mà việc giải quyết bàitoán yêu cầu, bao quát đợc toàn bộ bài toán Sau đó phân chia nhiệm vụ cần giảiquyết thành các nhiệm vụ cụ thể hơn, tức là chuyển dần từ module chính xuốngcác module con từ trên xuống dới, do vậy phơng pháp có gọi là thiết kế “từ đỉnhxuống“ (Top down design).
3 Thiết kế các module.
4 Lý do lựa chọn phơng pháp thiết kế trên.Ch ơng trình quản lý tiền gửi NH
Gửi tiền
Mở TK mới
Gửi thêm tiềnVào TK đã có
Rút tiền
Rút tiền lãi
Rút tiền gốc
Tất toánHuỷ tài khoản
Trang 5Chơng trình đợc thiết kế nhằm mục đích quản lý tiền gửi trong một ngânhàng vì thế khi lựa chọn phơng pháp thiết kế trên ta có thể bao quát đợc toàn bộcông việc Với phơng pháp thiết kế này ta có thể nắm bắt đợc những yêu cầuchính của công việc từ đó chia ra các module chính Sau khi thiết kế đợc cácmodule chính ta có thể đi vào giải quyết từng yêu cầu trong mỗi module mộtcách riêng rẽ qua việc thiết kế các module con Nh vậy việc lựa chọn phơngpháp trên sẽ giúp cho việc thiết kế phần mềm đạt hiệu quả cao.
5 Ngôn ngữ lập trình và cấu trúc dữ liệu sử dụng. Ngôn ngữ lập trình sử dụng:
Sử dụng ngôn ngữ lập trình PASCAL, đây là ngôn ngữ có cấu trúctiền định đủ mạnh sẽ cho phép chúng ta biểu diễn các giải thuật một cáchngắn gọn, dễ dàng hình dung ra các công đoạn thiết kế giải thuật.PASCAL có các cấu trúc dữ liệu đầy đủ, có thể biểu diễn các loại cấu trúcdữ liệu từ đơn giản đến phức tạp, từ cấu trúc tuyến tính đến cấu trúc phituyến tính.
Cấu trúc dữ liệu sử dụng:
Sử dụng cấu trúc dữ liệu danh sách liên kết Danh sách liên kết làdanh sách trong đó các phần tử đợc kết nối với nhau bởi vùng liên kết củachúng Đây là loại cấu trúc dữ liệu thích hợp cho phép thêm vào, loại bỏhoặc ghép nối các phần tử của danh sách.
Nguyên tắc tổ chức danh sách liên kết nh sau: Vùng liên kết củaphần tử thứ i chứa địa chỉ của phần tử thứ i+1 (i=1 n-1), vùng liên kết củaphần tử cuối cùng n mang giá trị rỗng (nil) Mỗi phần tử của danh sáchliên kết gồm hai phần chính:
- Vùng chứa dữ liệu (data).
- Vùng địa chỉ của các phần tử khác (gọi là vùng liên kết Link).
Ngoài ra, ngời ta còn sử dụng các chỉ điểm Fisrt, Last (kiểu Pointer) đểchứa địa chỉ của phần tử đầu, cuối
Sau đây là toàn bộ chơng trình:
{ chuong trinh tu dong tao ra trong thu muc C:\DEANPAS cac tep KH.dat, TK.dat, GDgui.dat, GDrut.dat va THDL.dat neu trong thu muc khong co cac tep do hoac khi chay chuong trinh lan dau tien Neu trong thu muc da ton tai cac tep neu tren thi chuong trinh se lay du lieu tu cac tep do CHUONG TRINH QUAN LY TIEN GUI TRONG MOT NGANHANG
*************************************************
Trang 6}{$N+}uses crt;const ls=0.2;type
khPointer=^khachhang; khachhang=record SoHSKH:string[7]; hoten:string[30]; diachi:string[50]; soCMT:string[9]; Ngaycap:string[10]; Next:khPointer; end;
tkPointer=^taikhoan; taikhoan=record
SoTaiKhoan:string[7]; SoHSKH:string[7]; SoTienTrongTK:double; laisuat:real;
Next:tkPointer; end;
guiPointer=^GDgui; GDgui=record
Ngaygui:string[10]; Sotaikhoan:string[7]; tiengui:double; Next:guiPointer; end;
rutPointer=^GDrut; GDrut=record
Ngayrut:string[10]; SoTaikhoan:string[7]; tienrut:double;
Next:rutPointer; end;
TongHopDL=record TongsoHSKH:longint; TongsoTK:longint; Tongtiengui:double; end;
Trang 7dsKH:file of khachhang; dsTK:file of taikhoan; dsGDgui:file of GDgui; dsGDrut:file of GDrut;
TongHop:file of TongHopDL;
i,SoBanGhiKH,SoBanGhiTK:longint; tongsotien:double;
kyhan:byte;s:string; chuoi:string[10];
chon0,chon1,chon2:byte; traloi:char;ktraNgay:boolean; lsuat:real;
THDL:TongHopDL; motKH:khachhang; motTK:taikhoan; motGDgui:GDgui; motGDrut:GDrut;
FirstKH,LastKH,pKH,qKH:khPointer; FirstTK,LastTK,pTK,qTK:tkPointer; FirstGui,LastGui,pGui,qGui:guiPointer; FirstRut,LastRut,pRut,qRut:rutPointer;{ CAC PROCEDURE }
procedure Main_Menu(var chon:byte);begin
clrscr;
window(18,7,80,25); textcolor(2);
writeln('****************************************'); write('*');textcolor(7);
write(' MAIN MENU '); textcolor(2);writeln('*');
Trang 8writeln('****************************************'); textcolor(7);
gotoxy(19,10);readln(chon); window(1,1,80,25);
writeln(' IN BAO CAO'); writeln(' -'); writeln;textcolor(7);
writeln(' 1 In danh sach khach hang.'); writeln(' 2 In thong tin ve 1 khach hang.'); writeln(' 3 In thong tin ve 1 tai khoan.'); writeln(' 4 Bao cao tong tien gui trong NH.'); writeln(' 5 Quay ve Main menu.');
write(' ** Chon so: '); readln(chon);
window(1,1,80,25);end;
procedure Nap_KH;begin
FirstKH:=nil;end;
Trang 9procedure Nap_TK;begin
FirstTK:=nil;end;
procedure Nap_GDgui;begin
FirstGui:=nil;end;
procedure Nap_GDrut;begin
FirstRut:=nil;end;
procedure DuyetKH;var ptr:khPointer; i:longint;begin i:=0;
ptr:=FirstKH; while ptr<>nil do begin
ptr:=ptr^.next; i:=i+1;
end;
SoBanGhiKH:=i;end;
procedure DuyetTK;var ptr:tkPointer; i:longint;begin i:=0;
ptr:=FirstTK; while ptr<>nil do begin
ptr:=ptr^.next; i:=i+1;
end;
SoBanGhiTK:=i;end;
procedure ThemKH;var ptrKH:khPointer;
Trang 10new(ptrKH);
ptrKH^.SoHSKH:=motKH.SoHSKH; ptrKH^.hoten:=motKH.hoten;
ptrKH^.diachi:=motKH.diachi; ptrKH^.SoCMT:=motKH.SoCMT; ptrKH^.Ngaycap:=motKH.ngaycap; ptrKH^.next:=nil;
if FirstKH=nil then FirstKH:=ptrKH else
LastKH^.next:=ptrKH; LastKH:=ptrKH;
procedure ThemTK;var ptrTK:tkPointer;begin
new(ptrTK);
ptrTK^.SoTaiKhoan:=motTK.SoTaiKhoan; ptrTK^.SoHSKH:=motTK.SoHSKH;
ptrTK^.SotientrongTK:=motTK.SotientrongTK; ptrTK^.laisuat:=motTK.laisuat;
ptrTK^.next:=nil; if FirstTK=nil then FirstTK:=ptrTK else
LastTK^.next:=ptrTK; LastTK:=ptrTK;
procedure ThemGDgui;var ptr:guiPointer;begin
new(ptr);
ptr^.Ngaygui:=motGDgui.Ngaygui; ptr^.Sotaikhoan:=motGDgui.Sotaikhoan; ptr^.tiengui:=motGDgui.tiengui;
ptr^.next:=nil; if FirstGui=nil then FirstGui:=ptr else
LastGui^.next:=ptr;
Trang 11LastGui:=ptr;end;
procedure ThemGDrut;var ptr:rutPointer;begin
new(ptr);
ptr^.Ngayrut:=motGDrut.Ngayrut;
ptr^.Sotaikhoan:=motGDrut.SoTaikhoan; ptr^.tienrut:=motGDrut.tienrut;
ptr^.next:=nil; if FirstRut=nil then FirstRut:=ptr else
LastRut^.next:=ptr; LastRut:=ptr;
function XulySo(var so:longint):string;var s:string[7];
begin s:='';
if (0<so) and (so<10) then begin
str(so,s); s:='00000'+s; end;
if (10<=so) and (so<100) then begin
str(so,s); s:='0000'+s; end;
if (100<=so) and (so<1000) then begin
str(so,s); s:='000'+s; end;
if (1000<=so) and (so<10000) then begin
str(so,s); s:='00'+s; end;
if (10000<=so) and (so<100000) then begin
Trang 12str(so,s); s:='0'+s; end;
if so>=1000000 then str(so,s);
XulySo:=s;end;
procedure Menu_MoTK;begin
window(5,2,80,25); textcolor(2);
gotoxy(25,2);writeln('MO TAI KHOAN MOI'); gotoxy(25,3);writeln(' -');writeln; textcolor(7);
writeln('Ngay (dd/mm/yyyy): '); write('So ho so KH: ');
gotoxy(45,6);writeln('Ky han: Thang.'); writeln('Ten khach hang: ');
writeln('Dia chi lien he: '); write('So chung minh thu: '); gotoxy(45,9);writeln('Ngay cap: '); writeln('So tien gui:');
function KTraKyHan(var kh:byte):boolean;var k:boolean;
begin k:=false; if kh=0 then begin
k:=true;lsuat:=0.2; end;
if kh=1 then begin
k:=true;lsuat:=0.4; end;
if kh=2 then begin
k:=true;lsuat:=0.48; end;
if kh=3 then begin
Trang 13k:=true;lsuat:=0.53; end;
if kh=6 then begin
k:=true;lsuat:=0.56; end;
if kh=9 then begin
k:=true;lsuat:=0.58; end;
if kh=12 then begin
k:=true;lsuat:=0.6; end;
if kh=24 then begin
k:=true;lsuat:=0.64; end;
if kh=18 then begin
k:=true;lsuat:=0.62; end;
if kh=36 then begin
k:=true;lsuat:=0.66 end;
KTraKyHan:=k;end;
procedure MoTK;var kt,ktra:boolean; ptrTK:tkPointer; ptrKH:khPointer; sotk:longint; c:integer; st:string[7];begin
kt:=false; repeat clrscr;
Menu_MoTK;
gotoxy(22,5);readln(motGDgui.ngaygui); gotoxy(15,6);readln(st);
Trang 14ptrKH:=FirstKH; ktra:=false;
while (ptrKH<>nil) and not ktra do begin
if ptrKH^.SoHSKH=st then ktra:=true;
ptrKH:=ptrKH^.next; end;
motKH.SoHSKH:=st; gotoxy(53,6);readln(kyhan); kt:=KTraKyHan(kyhan); if kt=false then
gotoxy(22,10);readln(motTK.SotientrongTK); motTK.SoHSKH:=motKH.SoHSKH;
motGDgui.tiengui:=motTK.SotientrongTK; motTK.laisuat:=lsuat;
ptrTK:=FirstTK; while ptrTK<>nil do begin
qTK:=ptrTK;
ptrTK:=ptrTK^.next; end;
st:=qTK^.sotaikhoan; val(st,sotk,c);
Trang 15procedure InDSKH;var ptrKH:khPointer; i:integer;
begin clrscr; textcolor(7);
writeln(' DANH SACH KHACH HANG');
writeln(' -'); writeln(' STT So HSKH Ho va ten Dia chi So CMT Ngaycap ');
writeln(' -'); i:=1;
ptrKH:=FirstKH; while ptrKH<>nil do begin
writeln(i:4,' ',ptrKH^.SoHSKH:7,' ',ptrKH^.hoten:18,'',ptrKH^.diachi:15,' ',ptrKH^.SoCMT:10,' ',ptrKH^.Ngaycap:11);
ptrKH:=ptrKH^.next; i:=i+1;
Nap_KH; Nap_TK; Nap_GDgui; Nap_GDrut;
assign(dsKH,'C:\DEANPAS\kh.dat'); {$I-}
reset(dsKH); {$I+}
if ioresult<>0 then begin
rewrite(dsKH); motKH.SoHSKH:=''; motKH.hoten:=''; motKH.diachi:=''; motKH.SoCMT:='';
Trang 16motKH.Ngaycap:=''; write(dsKH,motKH); end
else
while not eof(dsKH) do begin
read(dsKH,motKH); ThemKH;
end; close(dsKH);
assign(dsTK,'C:\DEANPAS\tk.dat'); {$I-}
reset(dsTK); {$I+}
if ioresult<>0 then begin
rewrite(dsTK);
motTK.SoTaiKhoan:=''; motTK.SoHSKH:='';
motTK.SoTienTrongTK:=0; motTK.laisuat:=0;
write(dsTK,motTK); end
else
while not eof(dsTK) do begin
read(dsTK,motTK); ThemTK;
end; close(dsTK);
assign(dsGDgui,'C:\DEANPAS\GDgui.dat'); {$I-}
reset(dsGDgui); {$I+}
if ioresult<>0 then begin
rewrite(dsGDgui); motGDgui.Ngaygui:=''; motGDgui.Sotaikhoan:=''; motGDgui.tiengui:=0; write(dsGDgui,motGDgui);
Trang 17end else
while not eof(dsGDgui) do begin
read(dsGDgui,motGDgui); ThemGDgui;
end;
close(dsGDgui);
assign(dsGDrut,'C:\DEANPAS\GDrut.dat'); {$I-}
reset(dsGDrut); {$I+}
if ioresult<>0 then begin
rewrite(dsGDrut); motGDrut.Ngayrut:=''; motGDrut.Sotaikhoan:=''; motGDrut.tienrut:=0; write(dsGDrut,motGDrut); end
else
while not eof(dsGDrut) do begin
read(dsGDrut,motGDrut); ThemGDrut;
end;
close(dsGDrut);
assign(TongHop,'C:\DEANPAS\THDL.dat'); {$I-}
reset(TongHop); {$I+}
if ioresult<>0 then begin
rewrite(TongHop);
THDL.TongSoHSKH:=0; THDL.TongSoTK:=0; THDL.TongTienGui:=0; write(TongHop,THDL); end
else
while not eof(TongHop) do
Trang 18read(TongHop,THDL); close(Tonghop);
procedure TongHop_DL;var ptrKH:khPointer; ptrTK:tkPointer; i:longint;
begin i:=0;
ptrKH:=FirstKH; while ptrKH<>nil do begin
ptrKH:=ptrKH^.next; i:=i+1;
end;
THDL.TongsoHSKH:=i; i:=0;
ptrTK:=FirstTK;
THDL.Tongtiengui:=0.0; while ptrTK<>nil do begin
THDL.Tongtiengui:=THDL.Tongtiengui+ptrTK^.SotientrongTK; ptrTK:=ptrTK^.next;
i:=i+1; end;
THDL.TongsoTK:=i;end;
procedure Save_file;var ptrKH:khPointer; ptrTK:tkPointer; ptrGui:guiPointer; ptrRut:rutPointer;begin
assign(dsKH,'C:\DEANPAS\kh.dat'); rewrite(dsKH);
ptrKH:=FirstKH; while ptrKH<>nil do begin
motKH.SoHSKH:=ptrKH^.SoHSKH; motKH.hoten:=ptrKH^.hoten;
Trang 19motKH.diachi:=ptrKH^.diachi; motKH.SoCMT:=ptrKH^.SoCMT; motKH.Ngaycap:=ptrKH^.Ngaycap; ptrKH:=ptrKH^.next;
write(dsKH,motKH); end;
close(dsKH);
assign(dsTK,'C:\DEANPAS\tk.dat'); rewrite(dsTK);
ptrTK:=FirstTK; while ptrTK<>nil do begin
motTK.SoTaiKhoan:=ptrTK^.SoTaiKhoan; motTK.SoHSKH:=ptrTK^.SoHSKH;
motTK.SoTienTrongTK:=ptrTK^.SoTienTrongTK; motTK.laisuat:=ptrTK^.laisuat;
ptrTK:=ptrTK^.next; write(dsTK,motTK); end;
close(dsTK);
assign(dsGDgui,'C:\DEANPAS\GDgui.dat'); rewrite(dsGDgui);
ptrGui:=FirstGui; while ptrGui<>nil do begin
motGDgui.ngaygui:=ptrGui^.ngaygui; motGDgui.Sotaikhoan:=ptrGui^.Sotaikhoan; motGDgui.tiengui:=ptrGui^.tiengui;
ptrGui:=ptrGui^.next; write(dsGDgui,motGDgui); end;
close(dsGDgui);
assign(dsGDrut,'C:\DEANPAS\GDrut.dat'); rewrite(dsGDrut);
ptrRut:=FirstRut; while ptrRut<>nil do begin
motGDrut.ngayrut:=ptrRut^.ngayrut;
motGDrut.Sotaikhoan:=ptrRut^.Sotaikhoan; motGDrut.tienrut:=ptrRut^.tienrut;
ptrRut:=ptrRut^.next; write(dsGDrut,motGDrut); end;
Trang 20close(dsGDrut); TongHop_DL;
assign(TongHop,'C:\DEANPAS\THDL.dat'); rewrite(Tonghop);
write(TongHop,THDL); close(TongHop);
procedure In1KH;var sohs:string[7]; tim:boolean;begin
clrscr;
window(18,7,80,25); textcolor(2);
writeln(' IN THONG TIN VE KHACH HANG'); writeln(' -');
textcolor(7); writeln;writeln;
write('So ho so khach hang: '); readln(sohs);
pKH:=FirstKH; if pKH<>nil then begin
tim:=false;
while (pKH<>nil) and not tim do
if pKH^.SoHSKH=sohs then tim:=true else
pKH:=pKH^.next; end;
if tim=false then begin
writeln('Khong co so ho so nay.'); readln;
end else begin clrscr;
writeln('So ho so KH: ',pKH^.SoHSKH); writeln('Ho va ten: ',pKH^.hoten);
writeln('So CMT: ',pKH^.SoCMT); writeln;
writeln(' -');