Giáo trình Tin quản lý Visual Foxpro - Bài 4: Lập trình trong môi trường Visual Foxpro - Nguyễn Mạnh Hùng

Cấu trúc lặp: Scan Cú pháp: Scan [Scope] [FOR ] [Loop] [Exit] [Nhóm lệnh sau Loop | Exit] EndScan Trong đó Scope: ALL, NEXT n, RECORD m, và REST Loop : Chương trình sẽ quay lại thực hiện từ đầu vòng lặp (Bỏ qua Nhóm lệnh sau Loop) Exit : Thoát ngay khỏi vòng lặp, Thực hiện các lệnh sau Endscan Cấu trúc lặp: Scan (cont.) Ví dụ 1: Dùng vòng lặp Scan in ra màn hình thông tin của các sinh viên lớp “QA20” CLEAR USE DSSV SCAN For Lop=“QA20” DISPLAY ENDSCAN Cấu trúc lặp: Scan (cont.) Ví dụ 2: Dùng vòng lặp Scan in ra 10 sinh viên đầu tiên có điểm TB > 8.0: CLEAR USE DSSV dem=0 SCAN For DiemTB>8 While dem<10 DISPLAY dem = dem + 1 ENDSCAN

pdf29 trang | Chia sẻ: thucuc2301 | Lượt xem: 1321 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Tin quản lý Visual Foxpro - Bài 4: Lập trình trong môi trường Visual Foxpro - Nguyễn Mạnh Hùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1BÀI 4 LẬP TRÌNH TRONG MÔI TRƯỜNG VISUAL FOXPRO NGUYỄN MẠNH HÙNG hung.nguyenmanh@thanglong.edu.vn hung2709@gmail.com TIN QUẢN LÝ - VISUAL FOXPRO 2 NỘI DUNG CHÍNH  GIỚI THIỆU TỔNG QUAN VỀ CHƯƠNG TRÌNH  CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH  MỘT SỐ CÂU LỆNH LÀM VIỆC VỚI BIẾN & CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH 2TIN QUẢN LÝ - VISUAL FOXPRO 3 GIỚI THIỆU CHƯƠNG TRÌNH  Khái niệm: Chương trình là một đoạn văn bản chứa các tập lệnh, được tạo lập nhằm giải quyết một hay nhiều bài toán cùng một lúc.  Việc xây dựng một chương trình giải quyết một công việc nào đó ⇒ lập trình  Tệp chương trình: *.prg  VD: baitap.prg; giaiptb2.prg TIN QUẢN LÝ - VISUAL FOXPRO 4 GIỚI THIỆU CHƯƠNG TRÌNH(Cont)  Thuận lợi  Có thể thay đổi nội dung và thực hiện lại  Có thể thực hiện tại nhiều nơi (Menu, Form, Toolbar,.., chương trình khác) 3TIN QUẢN LÝ - VISUAL FOXPRO 5 GIỚI THIỆU CHƯƠNG TRÌNH (Cont)  Một số chú ý khi lập trình  Hiểu rõ vấn đề cần xây dựng chương trình  Phân nhỏ vấn đề cần giải quyết  Xác định các kiểu dữ liệu cần dùng  Chương trình hóa các vấn đề  Kiểm tra & chỉnh sửa  Tiến hành chạy thử chương trình  Kiểm tra & chỉnh sửa các lỗi khi chạy thử  Kết nối các vấn đề nhỏ thành một chương trình hoàn chỉnh  Kiểm tra toàn bộ chương trình TIN QUẢN LÝ - VISUAL FOXPRO 6 GIỚI THIỆU CHƯƠNG TRÌNH (Cont)  Cấu trúc của một chương trình  Tạo môi trường làm việc: • Chứa các câu lệnh để chuẩn bị một môi trường làm việc cho toàn bộ chương trình  Thân chương trình: • Cập nhật dữ liệu • Xử lý, tính toán dữ liệu • Kết xuất thông tin  Kết thúc chương trình • Đóng các tệp tin (bảng dữ liệu) • Giải phóng biến, trả lại các chế độ mặc định của hệ thống 4TIN QUẢN LÝ - VISUAL FOXPRO 7 MỘT SỐ CÂU LỆNH TẠO MÔI TRƯỜNG  SET TALK ON | OFF Bật/tắt chức năng hiện thị thông báo hay kết quả tính toán của một số câu lệnh (AVERAGE, SUM, CALCULATE,)  SET DATE AMERICAN | FRENCH | MDY | DMY |YMD Thiết lập ngày giờ hiện thị theo các định dạng khác nhau (mm/dd/yy, dd/mm/yy và yy/mm/dd)  SET DELETED OFF | ON Bật/tắt chế độ thao tác với những bản ghi đã được đánh dấu xóa TIN QUẢN LÝ - VISUAL FOXPRO 8 MỘT SỐ CÂU LỆNH TẠO MÔI TRƯỜNG  SET EXACT OFF | ON  Bật/tắt chế độ kiểm tra chính xác khi so sánh độ dài các xâu ký tự  SET DEFAULT TO  Đặt đường dẫn mặc định của hệ thống đến đường dẫn 5TIN QUẢN LÝ - VISUAL FOXPRO 9 CẤU TRÚC CHƯƠNG TRÌNH TIN QUẢN LÝ - VISUAL FOXPRO 10 NỘI DUNG CHÍNH  GIỚI THIỆU TỔNG QUAN VỀ CHƯƠNG TRÌNH  CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH  MỘT SỐ CÂU LỆNH LÀM VIỆC VỚI BIẾN & CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH 6TIN QUẢN LÝ - VISUAL FOXPRO 11  Khởi tạo chương trình  Soạn thảo chương trình  Lưu chương trình  Thực hiện và sửa lỗi chương trình  Chạy thử CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH TIN QUẢN LÝ - VISUAL FOXPRO 12 KHỞI TẠO CHƯƠNG TRÌNH C1: MODIFY COMMAND VD: Modi comm MyFirstPro C2: FILE - NEW 7TIN QUẢN LÝ - VISUAL FOXPRO 13 SOẠN THẢO CHƯƠNG TRÌNH  Sử dụng các kỹ thuật soạn thảo văn bản  Chú thích trong chương trình  && : chú thích cuối dòng lệnh  * hoặc NOTE : lời chú thích đầu dòng lệnh  ; : ngắt dòng lệnh TIN QUẢN LÝ - VISUAL FOXPRO 14 SOẠN THẢO CHƯƠNG TRÌNH 8TIN QUẢN LÝ - VISUAL FOXPRO 15 LƯU CHƯƠNG TRÌNH  C1: Bấm CTRL – W  C2: File – Save (Save As) TIN QUẢN LÝ - VISUAL FOXPRO 16 THỰC HIỆN & SỬA LỖI CHƯƠNG TRÌNH  Thực hiện chương trình  Cú pháp: • DO   VD: • DO TinhdiemTB 9TIN QUẢN LÝ - VISUAL FOXPRO 17 THỰC HIỆN & SỬA LỖI CHƯƠNG TRÌNH  Sửa lỗi chương trình  Cú pháp • MODIFY COMMAND   VD: • MODI COMM TinhdiemTB TIN QUẢN LÝ - VISUAL FOXPRO 18 NỘI DUNG CHÍNH  GIỚI THIỆU TỔNG QUAN VỀ CHƯƠNG TRÌNH  CÁC BƯỚC XÂY DỰNG CHƯƠNG TRÌNH  MỘT SỐ CÂU LỆNH LÀM VIỆC VỚI BIẾN & CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH 10 TIN QUẢN LÝ - VISUAL FOXPRO 19 MỘT SỐ CÂU LỆNH LÀM VIỆC VỚI BIẾN  KHAI BÁO BIẾN  NHẬP THÔNG TIN CHO BIẾN  XUẤT THÔNG TIN QUA BIẾN TIN QUẢN LÝ - VISUAL FOXPRO 20 CÁC LỆNH LÀM VIỆC VỚI BIẾN  KHAI BÁO GIÁ TRỊ BIẾN  Gán =  STORE  NHẬP THÔNG TIN (GIÁ TRỊ) CHO BIẾN  ACCEPT  INPUT  @X,Y SAY GET  XUẤT THÔNG TIN QUA BIẾN  ?/??  @X,Y SAY 11 TIN QUẢN LÝ - VISUAL FOXPRO 21 CÁC LỆNH LÀM VIỆC VỚI BIẾN  Khai báo giá trị cho biến  =  VD: • _Name = “Lê Văn An” _Name Lê Văn An _Age 10  STORE TO  VD: • Store 10 To _Age TIN QUẢN LÝ - VISUAL FOXPRO 22 CÁC CÂU LỆNH NHẬP THÔNG TIN (GIÁ TRỊ) CHO BIẾN  LỆNH ACCEPT  Cú pháp:  ACCEPT “Thông báo chỉ dẫn” TO • Nhập các giá trị kiểu ký tự (Character) cho biến nhớ • VD: Hiển thị Điểm TB của một SV bất kỳ  Accept “Nhập mã sinh viên cần xem điểm” To _Masv  Browse Fields Hoten, DiemTB for Masv = _Masv 12 TIN QUẢN LÝ - VISUAL FOXPRO 23 CÁC CÂU LỆNH NHẬP THÔNG TIN (GIÁ TRỊ) CHO BIẾN  LỆNH INPUT  Cú pháp  INPUT “Thông báo chỉ dẫn” TO • Nhập các giá trị kiểu N, D, L, C cho biến  Chú ý: Khi nhập giá trị cho kiểu • Date: đặt trong { } • Logical: .T. ; .F. • VD:  Input “Nhập số thứ tự của bản ghi cần xem” To _Num  Go _Num  Display TIN QUẢN LÝ - VISUAL FOXPRO 24 LỆNH @X,Y SAY GET  Cú pháp @X,Y SAY “Xâu ký tự hiển thị ra màn hình” GET READ Trong đó: X,Y – Tọa độ dòng, cột hiển thị xâu ký tự : lưu giá trị do người dùng nhập vào Ví dụ: _HOTEN=SPACE(25) ‘ Khởi tạo biến _HOTEN _NGAYSINH={//} ‘ Khởi tạo biến _NGAYSINH _THUNHAP=0 ‘ Khởi tạo biến _THUNHAP @4,3 SAY ’ Họ tên nhân viên: ’ GET _HOTEN @5,3 SAY ’ Ngày sinh: ’ GET _NGAYSINH @6,3 SAY ’ Thu nhập: ’ GET _THUNHAP READ 13 TIN QUẢN LÝ - VISUAL FOXPRO 25  Lệnh ? và ??  Lệnh @X,Y SAY LỆNH XUẤT THÔNG TIN QUA BIẾN TIN QUẢN LÝ - VISUAL FOXPRO 26  Cú pháp  ?  hoặc ?   ??  hoặc ??   Xuất thông tin (giá trị) của biến (biểu thức) ra màn hình LỆNH ? và ?? 14 TIN QUẢN LÝ - VISUAL FOXPRO 27  Ví dụ: _Ten = “Nguyễn Văn An” _Tuoi = 20 ?”Bạn ” + _Ten + “năm nay ” + _Tuoi + “tuổi” LỆNH ? và ?? Bạn Nguyễn Văn An năm nay 20 tuổi _ ??”Bạn ” + _Ten + “năm nay ” + _Tuoi + “tuổi” Bạn Nguyễn Văn An năm nay 20 tuổi_ TIN QUẢN LÝ - VISUAL FOXPRO 28 LỆNH ? và ??  Ví dụ (Cont) USE DSSV GO 5 ? HOTEN +’ là sinh viên ’+LOP ?? ’Mã ’+MASV+ ‘ là SV Thăng Long’ 15 TIN QUẢN LÝ - VISUAL FOXPRO 29 LỆNH @X,Y SAY  Cú pháp • @X,Y SAY “Xâu ký tự hiển thị ra màn hình” Trong đó: X,Y – Tọa độ dòng, cột hiển thị xâu ký tự USE DSNV GO 5 @4,3 SAY ’ Họ tên nhân viên: ’ + HOTEN @5,3 SAY ’ Ngày sinh: ’ + DTOC(NGAYSINH) @6,3 SAY ’ Thu nhập: ’ + STR(THUNHAP) TIN QUẢN LÝ - VISUAL FOXPRO 30 CÁC CẤU TRÚC ĐIỀU KHIỂN CHƯƠNG TRÌNH  CẤU TRÚC TUẦN TỰ  CẤU TRÚC RẼ NHÁNH  CẤU TRÚC LỰA CHỌN  CẤU TRÚC LẶP 16 TIN QUẢN LÝ - VISUAL FOXPRO 31 CẤU TRÚC TUẦN TỰ  Chương trình được thực hiện tuần tự từ trên xuống dưới TIN QUẢN LÝ - VISUAL FOXPRO 32 CẤU TRÚC RẼ NHÁNH  CÂU LỆNH IF  Cú pháp  IF [ELSE] ENDIF  Câu lệnh IF có 2 dạng  Dạng khuyết: IF ENDIF  Dạng đầy đủ: IF ELSE ENDIF 17 TIN QUẢN LÝ - VISUAL FOXPRO 33 CÂU LỆNH IF DẠNG KHUYẾT IF ENDIF Biểu thức điều kiện .T. .F. TIN QUẢN LÝ - VISUAL FOXPRO 34 CÂU LỆNH IF DẠNG KHUYẾT Input “Nhập số thứ nhất” To So1 Input “Nhập số thứ hai” To So2 IF So1>So2 ? “Số thứ nhất lớn hơn số thứ hai” ENDIF So1>So2 ? “Số thứ 1 lớn hơn số thứ 2” .T. .F. 18 TIN QUẢN LÝ - VISUAL FOXPRO 35 CÂU LỆNH IF DẠNG ĐẦY ĐỦ IF ELSE ENDIF Biểu thức điều kiện .T. .F. TIN QUẢN LÝ - VISUAL FOXPRO 36 CÂU LỆNH IF DẠNG ĐẦY ĐỦ So1>So2 ? “Số thứ 2 lớn hơn số thứ nhất” .T. .F. “Số thứ nhất lớn hơn số thứ 2” 19 TIN QUẢN LÝ - VISUAL FOXPRO 37 CÂU LỆNH IF DẠNG ĐẦY ĐỦ Input “Nhập số thứ nhất” To So1 Input “Nhập số thứ hai” To So2 IF So1>So2 ? “Số thứ nhất lớn hơn số thứ hai” ELSE ? “Số thứ hai lớn hơn số thứ nhất” ENDIF TIN QUẢN LÝ - VISUAL FOXPRO 38 Ví dụ IF ELSE ENDIF  Nhập một số bất kỳ. Cho biết số vừa nhập là số chẵn hay số lẻ (ChanLe.prg) * Thiet lap moi truong lam viec SET TALK OFF SET SAFETY OFF _so = 0 && Khoi tao gia tri bien _so @10,10 SAY "Nhap mot so bat ky: " get _so READ IF (_so % 2) = 0 then @12,10 say("So chan") ELSE @12,10 say ("So le") ENDIF SET TALK ON && Tra lai moi truong ngam dinh ban dau SET SAFETY ON && Tra lai moi truong ngam dinh ban dau 20 TIN QUẢN LÝ - VISUAL FOXPRO 39 Ví dụ IF ELSE ENDIF  Nhập điểm TB của một SV. Cho biết đánh giá về SV đó (Nhanxet.prg) * Thiet lap moi truong lam viec SET TALK OFF _diem = 0.0 && Khoi tao gia tri bien _diem @10,10 SAY "Nhap mot diem bat ky: " get _diem READ IF _diem>= 8 then @12,10 say(“Hoc gioi") ELSE IF _diem>= 6.5 then @12,10 say(“Hoc kha") ELSE @12,10 say(“Hoc trung binh") ENDIF ENDIF SET SAFETY ON && Tra lai moi truong ngam dinh ban dau TIN QUẢN LÝ - VISUAL FOXPRO 40 CẤU TRÚC LỰA CHỌN  CÂU LỆNH DO CASE BTĐK 1 .T. .F. BTĐK 2 .T. .F. BTĐK n .T. .F. OTHERWISE .. .. 21 TIN QUẢN LÝ - VISUAL FOXPRO 41 CÂU LỆNH DO CASE DO CASE CASE CASE .. CASE OTHERWISE ENDCASE TIN QUẢN LÝ - VISUAL FOXPRO 42 Ví dụ DO CASE * Thiet lap moi truong lam viec SET TALK OFF _diem = 0.0 && Khoi tao gia tri bien _diem @10,10 SAY "Nhap mot diem bat ky: " get _diem READ DO CASE CASE _diem>= 8 @12,10 say(“Hoc gioi") CASE _diem>= 6.5 @12,10 say(“Hoc kha") OTHERWISE @12,10 say(“Hoc trung binh") ENDCASE SET SAFETY ON && Tra lai moi truong ngam dinh ban dau  Nhập điểm TB của một SV. Cho biết đánh giá về SV đó (Nhanxet.prg) 22 TIN QUẢN LÝ - VISUAL FOXPRO 43 CẤU TRÚC LẶP  Vòng lặp DO WHILE ENDDO  Vòng lặp FOR ENDFOR  Vòng lặp SCAN ENDSCAN TIN QUẢN LÝ - VISUAL FOXPRO 44 CẤU TRÚC LẶP  Nhóm lệnh được thực hiện LẶP ĐI LẶP LẠI:  Theo một điều kiện nhất định.  Dừng khi điều kiện không còn thỏa mãn. 23 TIN QUẢN LÝ - VISUAL FOXPRO 45 Cấu trúc lặp: Do While  Cú pháp: Do While [Loop] [Exit] Enddo  Trong đó • Loop: Chương trình sẽ quay lại thực hiện từ đầu vòng lặp • Exit : Thoát ngay khỏi vòng lặp, Thực hiện lệnh tiếp ngay sau Enddo TIN QUẢN LÝ - VISUAL FOXPRO 46 Cấu trúc lặp: Do While Điều kiện lặp Các câu lệnh khi điều kiện lặp vẫn đúng 24 TIN QUẢN LÝ - VISUAL FOXPRO 47 Cấu trúc lặp: Do While (cont.)  Ví dụ 1: Dùng vòng lặp Do While in ra các bản ghi từ 1-10: CLEAR USE DSSV DO WHILE RECNO()<=10 DISPLAY SKIP ENDDO TIN QUẢN LÝ - VISUAL FOXPRO 48 Cấu trúc lặp: Do While (cont.)  Ví dụ 2: Tìm trong bảng DSSV.dbf có bao nhiêu SV có họ tên là “NGUYEN NAM HAI” CLEAR USE DSSV DEM=0 LOCATE FOR HOTEN = ”NGUYEN NAM HAI” DO WHILE FOUND() DEM = DEM + 1 DISPLAY CONTINUE ENDDO ?”Tổng số bản ghi tìm được là: “+ str(DEM) 25 TIN QUẢN LÝ - VISUAL FOXPRO 49 Cấu trúc lặp: Do While (cont.)  Ví dụ 3: Dùng vòng lặp Do While để tìm kiếm và hiển thị: Tieptuc = “Y” Do While Tieptuc $“Yy” Locate For HOTEN = ”NGUYEN NAM HAI” If Found() Display Endif Accept “Bạn có muốn tìm tiếp không?” To Tieptuc If Tieptuc $ “Nn” Exit Endif Endd TIN QUẢN LÝ - VISUAL FOXPRO 50 Cấu trúc lặp - For  Cú pháp: FOR = To [Step ] [Loop] [Exit] [Nhóm lệnh sau Loop | Exit] ENDFOR  Trong đó • Loop : Chương trình sẽ quay lại thực hiện từ đầu vòng lặp (Bỏ qua Nhóm lệnh sau Loop) • Exit : Thoát ngay khỏi vòng lặp, Thực hiện lệnh tiếp ngay sau Endfor 26 TIN QUẢN LÝ - VISUAL FOXPRO 51 Cấu trúc lặp: For (cont.)  Ví dụ 1: Dùng vòng lặp For in ra các bản ghi từ 1-10: CLEAR USE DSSV FOR dem=1 TO 10 DISPLAY SKIP ENDFOR TIN QUẢN LÝ - VISUAL FOXPRO 52 Cấu trúc lặp: For (cont.)  Ví dụ 2: Dùng vòng lặp For in ra các bản ghi chẵn từ 2-10: CLEAR USE DSSV Store 2 To I && Initial Value ≈ I = 2 Store 10 To J && Final Value ≈ J = 10 Store 2 To K && Step Value ≈ K = 2 FOR dem = I TO J STEP K GO dem && Nhảy đến bản ghi số dem DISPLAY ENDFOR 27 TIN QUẢN LÝ - VISUAL FOXPRO 53 Cấu trúc lặp: Scan  Cú pháp: Scan [Scope] [FOR ] [Loop] [Exit] [Nhóm lệnh sau Loop | Exit] EndScan  Trong đó  Scope: ALL, NEXT n, RECORD m, và REST  Loop : Chương trình sẽ quay lại thực hiện từ đầu vòng lặp (Bỏ qua Nhóm lệnh sau Loop)  Exit : Thoát ngay khỏi vòng lặp, Thực hiện các lệnh sau Endscan TIN QUẢN LÝ - VISUAL FOXPRO 54 Cấu trúc lặp: Scan (cont.)  Ví dụ 1: Dùng vòng lặp Scan in ra màn hình thông tin của các sinh viên lớp “QA20” CLEAR USE DSSV SCAN For Lop=“QA20” DISPLAY ENDSCAN 28 TIN QUẢN LÝ - VISUAL FOXPRO 55 Cấu trúc lặp: Scan (cont.)  Ví dụ 2: Dùng vòng lặp Scan in ra 10 sinh viên đầu tiên có điểm TB > 8.0: CLEAR USE DSSV dem=0 SCAN For DiemTB>8 While dem<10 DISPLAY dem = dem + 1 ENDSCAN TIN QUẢN LÝ - VISUAL FOXPRO 56 BÀI TẬP  Bài tập 1  Viết chương trình có tên là CT1.PRG thực hiện yêu cầu sau: Nhập vào một tháng, sau đó kiểm tra và thông báo ra màn hình xem tháng đó có hợp lệ không? (Biết rằng tháng hợp lệ là tháng từ 1 - 12).  Bài tập 2  Viết chương trình có tên là CT2.PRG thực hiện yêu cầu sau: Nhập tên và năm sinh của một người bạn bất kỳ. Sau đó thông báo ra ngoài màn hình tên và tuổi của bạn đó  Bài tập 3  Viết chương trình có tên là CT3.PRG thực hiện yêu cầu sau: Nhập một số nguyên bất kỳ. Thông báo ra màn hình số vừa nhập chia hết cho 2 hay cho 3 ? 29 TIN QUẢN LÝ - VISUAL FOXPRO 57 BÀI TẬP  Bài tập 4  Viết chương trình có tên là CT4.PRG thực hiện yêu cầu sau: Nhập vào số tiền thu nhập hàng tháng của một người bất kỳ. Sau đó thông báo ra màn hình số tiền thuế TN mà người đó phải nộp biết rằng nếu: • Thu nhập < 4.000.000 VNĐ : không phải nộp thuế TN • Thu nhập >= 4.000.000: thuế TN = 3% thu nhập • Thu nhập >= 7.000.000: thuế TN = 5% thu nhập • Thu nhập >= 10.000.000: thuế TN = 7% thu nhập TIN QUẢN LÝ - VISUAL FOXPRO 58 BÀI TẬP  Bài tập 5  Viết chương trình có tên là CT5.PRG thực hiện yêu cầu sau: Nhập vào một số N nguyên dương bất kỳ. In ra màn hình giá trị bình phương các số từ 1 đến N.  Bài tập 6  Viết chương trình có tên là CT6.PRG thực hiện yêu cầu sau: Nhập vào N số nguyên bất kỳ. Cho biết trong N số vừa nhập đó, có bao nhiêu số là số chẵn, bao nhiêu số là số lẻ.

Các file đính kèm theo tài liệu này:

  • pdfviso_foxro_bai4_3971_2454_2021055.pdf