Tải bản đầy đủ (.pdf) (37 trang)

Phần mềm hỗ trợ giảng dạy hình học giải tích Thầy Nguyễn Tiến Huy ĐH KHTN Tp.HCM - 2 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.42 MB, 37 trang )





KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.1.2. Phần bài tập giải tích:
Chương trình sẽ hỗ trợ Người Dùng thực hiện việc các thao tác trên 1 Bài Tập Giải
Tích như là : Soạn Bài, Làm Bài Tập về nhà, hoặc chấm Bài Tập.

Đối Tượng Giao Tiếp
Người Dùng
dbBaiGiai
(f rom BaiGiai)
MHChinh
(f rom ManHinh)
MHSoanBai
(from ManHinh)
MHChamBai
(from ManHinh)
MHXemLoiGiai
(from ManHinh)
MHDSBaiTap
(f rom ManHinh)
DSBaiGiai
(f rom BaiGiai)
BaiGiai


(f rom BaiGiai)
Đối Tượng Màn HÌnh
Giao Diện
Đối Tượng
Xử Lý
Đối Tượng Truy
Xuất Dữ Liệu

Hình 2.4.3-9 Hệ thống lớp đối tượng phần bài tập


38




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.1.3. Phần bài tập trắc nghiệm :
Đối Tượng Màn HÌnh
Giao Diện
Đối Tượng
Xử Lý
Đối Tượng Truy
Xuất Dữ Liệu
MHChinh

(f rom ManHinh)
MHDSBaiTN
(f rom ManHinh)
DSTracNghiem
(from TracNghiem)
MHPhatSinhDeTN
(from ManHinh)
MHSoanDeTN
(f rom ManHinh)
MHSoanCauTN
(from ManHinh)
MHGiaiDeTN
(f rom ManHinh)
TracNghiem
(f rom TracNghiem)
dbTracNghiem
(f rom TracNghiem)
Đối Tượng Giao Tiếp
Người Dùng

Hình 2.4.3-10 Hệ thống lớp đối tượng phần trắc nghiệm


39




KHOA CNTT – ĐH KHTN





Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.1.4. Phần hỗ trợ giải toán:
Mô hình này được lập dựa trên nguyên tắc sau :
• Người Dùng nhập các lới Gợi Ý vào.
• Các Lời Gợi Ý này là các phát biểu về các Định Lý hoặc Công Thức được sử dụng.
• Các Định Lý hoặc Công Thức này lại ba gồm các thành phần Hình Học và các
Phương Trình toán học.
PhanTu
(f rom Fundament)
BaiGiai
(f rom BaiGiai LG)
CongThucQuanHe
(from Cong Thuc Nhap)
TPPhuongTrinh
(from Fundament)
TPHinhHoc
(f rom Fundament)
TPQuanHe
(f rom Fundament)

Hình 2.4.3-11 Hệ thống lớp đối tượng phần hỗ trợ giải toán

40





KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Danh sách Lớp khai báo kế thừa từ Lớp TPHinhHoc :
Lớp TPHinhHoc là thể hiện cho các thành phần Hình Học có trong 1 Bài Toán, do đó
nó gồm các thành phần như: Giá Trị, Điểm, Đường Thẳng, Đường Tròn, Ellipse, ……
TuGiac
(f rom Geometric)
TPHinhHoc
(f rom Fundament)
GiaTri
(from Fundament)
Diem
(f rom Geometric)
DuongThang
(f rom Geometric)
TamGiac
(f rom Geometric)
Goc
(f rom Geometric)
DuongTron
(f rom Geometric)
Ellipse
(f rom Geometric)
Hyperbol
(f rom Geometric)
Parabol

(f rom Geometric)
Vector
(f rom Geometric)

Hình 2.4.3-12 Danh sách Lớp khai báo kế thừa từ Lớp TPHinhHoc
Danh sách Lớp khai báo kế thừa từ Lớp TPQuanHe :
Lớp THQuanHe là thể hiện cho các phát biểu về Định Lý hoặc Công Thức được sử
dụng để giải 1 Bài Toán, chẳng hạn như : các Định Lý về Đường Thẳng, Đường Tròn,
điều kiện tương giao, tiếp xúc của các thành phần Hình Học , …… hoặc các Công
Thức được sử dụng như: Giả
i Hệ Phương Trình, các phép Biến Đổi Phương Trình.
Trong chương trình có sử dụng tất cà là 62 Định Lý khác nhau và 13 Công Thức hỗ
trợ tính toán, sơ đồ dưới đây chỉ cung cấp 1 số lớp cơ bản, đặc trưng.

41




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
TPQuanHe
(f rom Fundament)
DiemThuocDuong
(from Relationship)
KhoangCach2Diem

(from Relationship)
GiaiHePT
(f rom Relationship)
DiemThuocDuongTron
(from Relationship)
DuongThangSSDuongThang
(from Relationship)
DuongThangTiepTuyenDuongTron
(from Relationship)
PhepBienDoiPT
(from Relationship)
XuatKetQua
(f rom Relationship)

Hình 2.4.3-13 Danh sách Lớp khai báo kế thừa từ Lớp TPQuanHe
Chương 1 : Vector & Tọa Độ
STT Tên Lớp Tên Định Lý / Công Thức tương ứng
1 VectorCua2Diem Tạo Vector từ 2 Điểm
2 VectorVGVector 2 Vector vuông góc với nhau
3 VectorSSVector 2 Vector song song với nhau
4 KhoangCach2Diem Khoảng cách giữa 2 Điểm
5 TichVoHuong2Vector Tích vô hướng của 2 Vector
6 ToaDoTrungDiem 1 Điểm là trung điểm của 2 Điểm còn lại
7 ToaDoTrongTamTG Điểm là trọng tâm trong Tam Giác
8 GocGiua2Vector Giá Trị Góc giữa 2 Vector
9 DiemCachDeu2Diem Điểm cách đều 2 Điểm

Chương 2 : Phương Trình Đường Thẳng

42





KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
10 DiemThuocDuong Điểm có thuộc Đường Thẳng.
11 DuongSSDuong 2 Đường Thẳng song song với nhau
12 DuongVGDuong 2 Đường Thẳng vuông góc với nhau
13 VectorSSDuong Vector song song với Đường Thẳng
14 KhoangCachDiemDuongThang Giá Trị khoảng cách từ Điểm đến Đường
Thẳng
15 HeSoGocDuongThang Giá Trị hệ số góc giữa 2 Đường Thẳng
16 DiemCachDeu2DuongThang Điểm cách đều 2 Đường Thẳng
17 DuongCachDeu2Diem Đường Thẳng cách đều 2 Điểm
18 DiemCachDeuDiemDuong Điểm cách đều Điểm và Đường Thẳng

Chương 3 : Vị trí Tương Đối Của Đường Thẳng
Chương 4 : Góc & Khoảng Cách Giữa 2 Đường Thẳng
19 GocGiua2DuongThang Giá Trị Góc giữa 2 Đường Thẳng
20 GocVectorDuongThang Giá Trị Góc giữa Vector và Đường Thẳng
21 DuongPhanGiacTrong Đường Thẳng là đường phân giác góc nhọn
của 2 Đường Thẳng
22 DuongPhanGiacNgoai Đường Thẳng là đường phân giác góc tù của 2
Đường Thẳng


Chương 5 : Đường Tròn
23 DiemThuocDuongTron Điểm thuộc Đường Tròn
24 BanKinhDuongTron Giá Trị K là bán kính Đường Tròn
25 TamDuongTron Điểm là tâm Đường Tròn
26 TiepTuyenDuongTron Đường Thẳng là tiếp tuyến với Đường Tròn


43




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Chương 6 : Ellipse
28 TamSaiEllipse Giá Trị tâm sai của Ellipse
29 TieuCuEllipse Giá Trị tiêu cự của Ellipse
30 TrucLonEllipse Giá Trị độ dài trục lớn của Ellipse
31 TrucNhoEllipse Giá Trị độ dài trục nhỏ của Ellipse
32 TamEllipse Điểm là tâm của Ellipse
33 DiemThuocEllipse Điểm thuộc Ellipse
34 DieuKienTiepXucEllipse Điều kiện để Đường Thẳng tiếp xúc với
Ellipse
35 TiepTuyenEllipse Đường Thẳng là tiếp tuyến với Ellipse
36 EllipseTrenTrucHoanh Xác định Ellipse nằm tên trục hoành
37 EllipseTrenTrucTung Xác định Ellipse nằm tên trục tung

38 BanKinhQuaTieuDiemEllipse Giá Trị bán kính qua tiêu điểm của Ellipse
39 KhoangCach2DuongChuanEllipse Giá Trị khoảng cách giữa 2 đường chuẩn
của Ellipse
40 BanKinhQuaTieuDiemTraiEllipse Giá Trị bán kính qua tiêu điểm trái của
Ellipse
41 BanKinhQuaTieuDiemPhaiEllipse Giá Trị bán kính qua tiêu điểm phải của
Ellipse


44




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Chương 7: Hyperbol
42 TamSaiHyperbol Giá Trị tâm sai của Hyperbol
43 TieuCuHyperbol Giá Trị tiêu cự của Hyperbol
44 TrucThucHyperbol Giá Trị độ dài trục thực của Hyperbol
45 TrucAoHyperbol Giá Trị độ dài trục ảo của Hyperbol
46 TamHyperbol Điểm là tâm của Hyperbol
47 DiemThuocHyperbol Điểm thuộc Hyperbol
48 DieuKienTiepXucHyperbol Điều kiện để Đường Thẳng tiếp xúc với
Hyperbol
49 TiepTuyenHyperbol Đường Thẳng là tiếp tuyến với Hyperbol

50 HyperbolTrenTrucHoanh Xác định Hyperbol nằm tên trục hoành
51 HyperbolTrenTrucTung Xác định Hyperbol nằm tên trục tung
52 BanKinhQuaTieuDiemHyperbol Giá Trị bán kính qua tiêu điểm của
Hyperbol
53 KhoangCach2DuongChuanHyperbol Giá Trị khoảng cách giữa 2 đường chuẩn
của Hyperbol
54 BanKinhQuaTieuDiemTraiHyperbol Giá Trị bán kính qua tiêu điểm trái của
Hyperbol
55 BanKinhQuaTieuDiemPhaiHyperbol Giá Trị bán kính qua tiêu điểm phải của
Hyperbol

Chương 8 : Parabol
56 SoTieuParabol Giá Trị số tiêu của Parabol
57 TamParabol Điểm là tâm của Parabol
58 DiemThuocParabol Điểm thuộc Parabol
59 DieuKienTiepXucParabol Điều kiện để Đường Thẳng tiếp xúc với

45




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Parabol
60 TiepTuyenParabol Đường Thẳng là tiếp tuyến với Parabol

61 ParabolTrenTrucHoanh Xác định Parabol nằm tên trục hoành
62 ParabolTrenTrucTung Xác định Parabol nằm tên trục tung
63 BanKinhQuaTieuDiemParabol Giá Trị bán kính qua tiêu điểm của Parabol

Chương 9 : Toán Tổng Hợp
64 XuatKetQua Xuất ra kết quả thu được của 1 thành phần Hình Học
65 DatGiaTriChoTP Đặt giá trị cho 1 thành phần Hình Học
66 GiaiHePT Giải hệ phương trình
67 DonGianHePT Đơn giảnvà rút gọn hệ phương trình
68 ThayTheHePT Thay thế hệ phương trình vào 1 phương trình khác
69 XetNghiemThuI Xét nghiệm thứ I của 1 thành phần Hình học
70 LayNghiemThuI Chỉ lấy duy nhất nghiệm I cho 1 thành phần Hình Học
71 TaoMoiDoiTuong Tạo mới thành phần Hình Học từ 1 thành phần Hình Học
có sẵn
72 ChungMinhQH Chứng minh 1 công thức hoặc định lý là đúng hay sai
73 CongThucTinhGT Thực hiện phép tính giá trị. VD : a=1-2
74 CongThucBienDoiPT Thực hiện các phép tính trên các phương trình. VD: (1)-
(2)
75 XacDinhGiaThiet Xác định giả thiết của bài tập
76 XacDinhKetLuan Xác định kết luận của bài tập

Danh sách Lớp khai báo kế thừa từ Lớp TPPhuongTrinh :
Lớp TPPhuongTrinh là thể hiện cho các dạng Phương Trình đặc trưng được dùng trong
chương trình chẳng hạn như : phương trình bậc 1, bậc 2, phương trình Parabol, Hyperbol,

46





KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Đường Tròn. Các phương trình này sẽ hỗ trợ cho Người Dùng thực hiện các phép tính
toán, xác định xem có đủ khả năng khải không, nếu được thì cung cấp Lời Giải.
Có tất cả là 23 dạng Phương Trình khác nhau giúp thể hiện các dạng khác nhau của
Phương Trìnhh. nhưng tất cả đều có thể quy về dạng chuẩn là PT_Bac1nAn hoặc
PT_Bac2nAn.
TPPhuongTrinh
(f rom Fundament)
PTBac1_nAn
(f rom Equation)
PTBac2_nAn
(f rom Equation)
PTBac2_1An
(f rom Equation)
PTGan
(f rom Equation)
PTEllipse
(f rom Equation)
PTParabol
(f rom Equation)
PTDuongTron
(from Equation)
PTCachDeu
(from Equation)
PTTiepTuyen

(from Equation)
PTPhanGiac
(from Equation)

Hình 2.4.3-14 Danh sách Lớp khai báo kế thừa từ Lớp TPPhuongTrinh

47




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.2. Tổ chức lưu trữ và truy xuất các đối tượng :
4.2.1. Sơ đồ logic dữ liệu (hoặc tổ chức tập tin) :
Các thông tin cần lưu trữ là thông tin về danh sách Lý thuyết, Bài tập, Mẫu câu hỏi trắc
nghiệm, Câu hỏi trắc nghiệm, Đề trắc nghiệm được lưu trữ và các kiểu nhập liệu Công
Thức được định nghĩa. Mỗi loại có cấu trúc như
sau :

Hình 2.4.3-15 Sơ đồ logic dữ liệu

4.2.2. Danh sách các bảng dữ liệu :
Bảng Dữ Liệu DB_BAITAP
Bảng Dữ Liệu DB_CONGTHUC
Bảng Dữ Liệu DB_MAUCAUTN

Bảng Dữ Liệu DB_CAUHOITN

48




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.2.3. Danh sách các thuộc tính của từng bảng :
Bảng Dữ Liệu DB_CONGTHUC :
Dùng để lưu trữ các kiểu nhập liệu (được dùng trong các Lời Gợi Ý), các thông tin
này được lưu trong file “dbCongThuc.txt” và được lưu tuần tự như sau :
_ dsTPHinhHoc : danh sách các Thành Phần Hình Học được sử dụng trong Công
Thức, Định Lý, chỉ mang ý nghĩa tham khảo cho việc nhập liệu, không thay đổi
được.
_ CongThuc : là kiểu công thức nhập liệu cho 1 Cong Thức, Định Nghĩ
a.
Bảng Dữ Liệu DB_BAITAP :
Dùng để lưu trữ các thông tin về Bài Tập, các thông tin này được lưu trong file
“dbBaiGia.txt” và được lưu tuần tự như sau :
_ STT : số thứ tự của Bài Tập này trong danh sách các Bài Tập có trong chương
trình.
_ TenBai : tên của Bài Tập, thể hiện bài tập này thuộc dạng đặc trưng nào.
_ Chuong : xác định xem Bài Tập thuộc chương nào (danh sách các loại Chương này
căn cứ theo tiêu chuẩn của Sách Giáo Khoa).

_ DoKho : xác định xem mức độ khó của Bài Tập g
ổm : Dễ, Trunh Bình và Khó.
_ DeBai : nội dung đề bài của Bài Tập dưới dạng văn bản.
_ DapAn : các Lời Gợi Ý được cung cấp dưới dạng văn bản.
_ HuongDan : các lời hướng dẫn, gợi ý các cách giải Bài Tập
_ BaiLam : nội dung Bài Làm của Học Sinh.
_ NhanXet : lời nhận xét của Giáo Viên về Bài Làm của Học Sinh
Bảng Dữ Liệu DB_CAUHOITN
Lưu trữ thông tin về câu hỏi trắc nghiệm, được lưu trong tập tin
NganHangCauHoi.txt với cấ
u trúc như sau :
_STTCau : số thứ tự của câu trong ngân hàng câu hỏi.
_Chuong : cho biết câu hỏi này thuộc chương nào.

49




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy

50
_De : khi câu hỏi được chọn vào một đề trắc nghiệm thì _De sẽ nhận giá trị của thứ
tự đề.
_NoiDung : lưu trữ phần nội dung của câu hỏi.

_GoiY : lưu trữ các gợi ý (A, B, C, D) của câu hỏi.
_DapAn : lưu trữ đáp án đúng của câu hỏi.
Bảng Dữ Liệu DB_MAUCAUTN
Lưu trữ các dạng mẫu câu hỏi dùng để phát sinh câu hỏi trắc nghiệm, được lưu trong
tập tin dbMauCau.txt, và có cấ
u trúc như sau :
_STT : số thứ tự của mẫu.
_TenBai : mô phỏng ngắn gọn về mẫu.
_KieuBai : cho biết dạng của mẫu.
_DoKho : cho biết mức độ phức tạp của bài toán.
_DeBai : lưu trữ toàn bộ câu hỏi bao gồm nội dung và các gợi ý.
_DapAn : lưu trữ đáp án đúng của câu hỏi.
4.2.4. Danh sách các đối tượng truy xuất dữ liệu :
Lớp dbBaiGiai : thể hiện 1 cơ sở Dữ Liệu của Bài Tập.
dbBaiGiai
Load()
Save()
LoadChiTiet()
SaveChiTiet()
(f rom BaiGiai LG)
_Load() : thực hiện việc đọc 1 Bài Tập từ file.
_Save() : thực hiện việc ghi 1 Bài Tập ra file.
_ LoadChiTiet() : thực hiện việc đọc các chi tiết của Bài Tập từ file
Cơ Sở Dữ Liệu.
_ SaveChiTiet() : thực hiện việc ghi các chi tiết của Bài Tập ra file Cơ Sở Dữ Liệu.
Lớp dbCongThuc : thể hiện 1 cơ sở Dữ Liệu của Công Thức Nhập.
_ Load() : thực hi
ện việc đọc 1 Công Thức Nhập từ file.
dbCongThuc
Load()

Save()
PhanTichCau()
(f rom Cong Thuc Nhap)
_ Save() : thực hiện việc ghi 1 Công Thức Nhập ra file.
_ PhanTichCau() : phân tích các dữ liệu thô (các Công Thức
Nhập dưới dạn Text) thành kiểu đặc biệt áp dụng cho việc Phân
Tích Bài Giải.




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Lớp dbCauHoiTN : thể hiện 1 cơ sở dữ liệu của Câu hỏi trắc nghiệm.
_Load() : đọc một câu hỏi trắc nghiệm từ tập tin.
dbCauHoiTN
Load()
Save()
(from Logical View)
_Save() : lưu một câu hỏi trắc nghiệm vào tập tin.
4.3. Thiết kế các lớp đối tượng xử lý chính :
4.3.1. Lớp BaiGiai :
 Lớp BaiGiai : thể hiện cho 1 Bài Tập trong chương trình.
4.3.1.1.
Danh sách biến thành phần :
BaiGiai

STT : Integer
Ten : String
DeBai : String
DapAn : String
arrTPDeBai : TPHinhHoc*
arrTPPhu : TPHinhHoc*
Load()
Save()
TienXuLyCau()
TomTatCau()
PhanTichDeBai()
PhanTichCauDeBai()
GiaiBaiTap()
PhanTichCauLoiGiai()
LayDSThanhPhan()
(from BaiGiai LG)
_ STT : số thứ tự của Bài Tập được đánh số trong Cơ Sở
Dữ Liệu.
_ Ten : tên của Bài Tập.
_ DeBai : nội dung của đề bài.
_ DapAn : nội dung của Đáp Án, chỉ ở dưới dạng text.
_ arrTPDeBai : danh sách các thành phần Hình Học
được tạo ra khi ta “Phân Tích” nội dung của Đề Bài.
_ arrTPPhu : danh sách các thành phần Hình Học được
phát sinh trong quá trình thực hiện việc “Giải Bài Tập”.
4.3.1.2.
Danh sách các Hàm thành phần :
_ Load() : đọc nội dung của 1 Bài Tập.
_ Save() : lưu lại nội dung của 1 Bài Tập.
_ TienXuLyCau : loại bỏ các ký thừa trong 1 đoạn văn bản, đồng thời tách thành

từng câu riêng biệt.
_ TomTatCau() : phân tích 1 câu nhập liệu thành 1 dạng xác định để so sánh với
danh sách Công Thức nhập liệu xem coi có hợp lệ không.
VD : ta nhập câu : “Cho điểm A(0,0) thuộc đường thẳng D:Ax+By+C=0”, khi được
đưa vào hàm TomTatCau() thì trở thành “<Diem> thuộc <DuongThang>” đồng thời
tạo ra 2 đối tượng {A
∈ Diem và D ∈ DuongThang}.

51




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
_PhanTichDeBai() : phân tích toàn bộ Đề Bài xem giả thuyết của Bài Tập cung cấp
cho ta những gì, tất cả thành phần tạo ra ở đây được lưu trong mảng arrTPDeBai.
_ PhanTichCauDeBai() : phân tích 1 câu xác định, được dùng trong hàm
PhanTichDeBai() ở trên.
_ GiaiBaiTap() : phân tích toàn bộ Lời Giải ⇒ thực hiện tuần tự từng bước đễ ra kết
quả cuối cùng , tất cả thành phần tạo ra ở đây được lưu trong mảng arrTPPhuDeBai.
_ PhanTichCauLoiGiai() : phân tích 1 câu Đáp Án xác định, đượ
c dùng trong hàm
GiaiBaiTap() ở trên.
_ LayDSThanhPhan() : danh sách các Kết Quả cuối cùng thu được, bao gồm cả Giả
Thuyết và các Thành Phần trung gian.

4.3.1.3.
Sơ đồ phối hợp hoạt động :
_ Ham GiaiBaiTap() :
BaiGiai
GiaiBaiTap()
BaiGiai
PhanTichCauDeBai()
BaiGiai
PhanTichDapAn()
BaiGiai
PhanTichCauDapAn()
BaiGiai
PhanTichDeBai()

_ Hàm PhanTichCauDapAn() :
BaiGiai
BaiGiai
PhanTichDapAn()
BaiGiai
TomTatCau() TienXuLyCau()

_ Hàm TienXuLyCau() :
BaiGiai
TienXuLyCau()
TPHinhHoc
LayKieuNhapLieu()
TPQuanHe
LayKieuNhapLieu()

4.3.2. Lớp dbBaiGiai :

 Lớp DSBaiGiai : thể hiện toàn bộ các Bài Tập có trong chương trình, thực
hiện các yêu cầu quản lý, truy xuất, tìm kiếm.

52




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.3.2.1.
Danh sách biến thành phần :
_ SoLuong : xác định số lượng các Bài Tập có trong chương
trình.
4.3.2.2. Danh sách hàm thành phần :
_ LoadSoLuong() : ghi nhận lại số lượng các Bài Tập có
trong chương trình.
_ ThemBaiGiai() : thêm 1 Bài Tập mới vào trong Cơ Sở Dữ
Liệu và đưa vào cuối dữ liệu.
_ LuuBaiGiai() : cập nhật lại thông tin của Bài Tập.
_ XoaBaiGiai() : xóa Bài Tập này khỏi danh sách.
_ LayDSBaiGiai() : lấy toàn bộ tất cả các Bài Tập có trong chương trình.
_ TimTheoSTT() : tìm kiếm thông tin về Bài Tập theo số thứ tự.
_ TimTheoTen() : tìm kiếm thông tin về Bài Tập theo tên bài.
_ TimTheoChuong() : tìm kiếm thông tin về Bài Tập theo tên bài và chương.
_ TimTheoDoKho() : tìm kiếm thông tin về Bài Tậ

p theo tên bài và độ khó.
DSBaiGiai
SoLuong : Integer
LoadSoLuong()
ThemBaiGiai()
LuuBaiGiai()
XoaBaiGiai()
LayDSBaiGiai()
TimTheoSTT()
TimTheoTen()
TimTheoChuong()
TimTheoDoKho()
(from BaiGiai LG)
4.3.3. Lớp PhanTu:
Ngoài ra, khi thực hiện việc “Giải bài Tập”, lớp BaiGiai phải thực hiện việc giao
tiếp với các lớp khác, hỗ trợ cho việc tìm kiếm kết quả cuối cùng.




53




KHOA CNTT – ĐH KHTN





Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
0 n
PhanTu
(f rom Fundament)
BaiGiai
(f rom BaiGiai LG)
CongThucQuanHe
(from Cong Thuc Nhap)
TPPhuongTrinh
(from Fundament)
TPHinhHoc
(f rom Fundament)
TPQuanHe
(f rom Fundament)
1 *
1 *
1 *
1 *
1 *
1 *
1 *
1 *

Hình 2.4.3-16 Lớp PhanTu
 Lớp PhanTu : đây là lớp ảo và là Phần Tử cơ bản nhất trong mô hình Hỗ Trợ
Giải Toán, cung cấp các khả năng thiết yếu cho các lớp con thao tác. Bản thân
mỗi PhanTu này lại chứa nhiều các đối tượng PhanTu khác.
4.3.3.1.
Danh sách biến thành phần :
PhanTu

Name : String
dsPhanTu : PhanTu*
KhoiTao()
IsActived()
OnActived()
SetTP()
GetTP()
LayTenDinhNghia()
XuatBaiGiai()
(from Fundament)
_ Name : tên của Phần Tử được xét.
_ dsPhanTu : danh sách các đối tượng PhanTu khác mà lớp
này kiểm soát.
4.3.3.2.
Danh sách hàm thành phần :
_ KhoiTao() : hàm khởi tạo cho các đối tượng có khả năng
“nạp chồng” (override), xác định tên và số lượng các thành
phần sở hữu và thực hiện các khởi tạo riêng biệt cho từng
lớp con.

54




KHOA CNTT – ĐH KHTN





Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
_ IsActived() : xác định xem đối tượng đã được “kích hoạt” chưa, “kích hoạt” là khi
đối tượng đã xác định được đầy đủ giá trị.
_ OnActived() : đây là 1 hàm bắt sự kiện, được thực thi khi có 1 đối tượng trong
dsPhanTu được “kích hoạt” lên, đây là hàm có khả năng “nạp chồng” (override), tùy
theo các lớp con khác nhau mà có các phản ứng khác nhau. Nếu bản thân lớp được
“kích hoạt” thì cũng phát sinh ra sự kiện thông báo cho các đối tượng đang sở hữ
u
nó biết được.
_ SetTP() : cập nhật thông tin lại cho 1 đối tượng PhanTu mà lớp đang nắm giữ.
_ GetTP() : lấy thông tin lại cho 1 đối tượng PhanTu mà lớp đang nắm giữ.
_ LayTenDinhNghia() : đây là hàm ảo (abstract), dùng để lấy chuỗi ký tự đặc trưng
dùng để nhận diện cho việc nhập liệu cho lớp. VD : lớp Diem có chuỗi là “ Điểm“,
lớp DuongThang có chuỗi là “Đường Thẳng”.
_ XuatBaiGiai() : đây là hàm ảo (abstract), dùng để xuất nộ
i dung của đối tượng ra
thành bài giải.
4.3.4. Lớp TPHinhHoc :
 Lớp TPHinhHoc : đây là lớp ảo kế thừa từ lớp PhanTu, thể hiện cho các đối
tượng Hình Học có trong 1 bài toán Hình Học Giải Tích, chẳng hạn như :
Điểm, Đường Thẳng, Đường Tròn, Ellipse,….
4.3.4.1.
Danh sàch hàm thành phần :
TPHinhHoc
OnActived()
LayDSThanhPhan()
LoadCongThucNhap()
XuatSoNghiem()
XuatKetQua()
LayKieuNhapLieu()

(from Fundament)
_ OnActived() : kế thừa từ lớp PhanTu, xác định lớp sẽ
“kích hoạt” khi thoả điều kiện tất cả các đối tượng sở hữu
đều “kích hoạt”.
VD : đối tượng Điểm A được kích hoạt khi ta xác định
được 2 giá trị X, Y của A.
_ LayDSThanhPhan() : lấy tất cả các đối tượng mà nó sở
hữu và chính nó.

55




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
_ LoadCongThucNhap() : đây là hàm ảo, dùng để đọc 1 đoạn text xem nó có thực
hiện việc “nhập liệu” cho 1 đối tượng Hình Học nào đó không.
VD : ta có “Điểm A(0,0)” khi đưa vào hàm này thì ta sẽ nhận được 1 khai báo là
khởi tạo 1 đối tượng tên “A” có kiểu là Diem và có giá trị X = Y = 0.
_ XuatSoNghiem() : xác định số nghiệm (số kết quả thu được) của 1 đối tượng Hình
Học, số nghiệm có thể là : 1, 2, …
_XuatKetQua() : đây là hàm ảo, dùng để xuấ
t ra bài giải kết luận cuối cùng của đối
tượng Hình Học, thường được dùng cho phần “Kết Luận” của Bài Giải.
VD : phần “Kết Luận” của 1 Bài Tập “xác định phương trình Đường Thẳng” ta xuất

ra bằng hàm trên là : “Đường thẳng D có phương trình đường thẳng là …”
_ LayKieuNhapLieu() : lấy tất cả các kiểu nhập liệu được định nghĩa trong chương
trình, được dùng trong phần Kiểm Tra Đề Bài, Đáp Án.
4.3.4.2.
Sơ đồ phối hợp hoạt động :
_ HamXuatKetQua() :
TPHinhHoc
XuatKetQua() GetAt()
TPHinhHoc
TPHinhHoc
XuatKetQua()
*

Chương trình đã định nghĩa 1 số lớp kế thừa từ lớp TPHinhHoc để chuyên biệt hoá
các xử lý cho từng đối tượng Hình Học mà thường được sử dụng trong các Bài Toán
Hình học Giải Tích.
Ngoài các hàm được kế thừa từ lớp cha, các lớp này chỉ định nghĩa thêm các giá trị
đặc trưng cho từng lớp.



56




KHOA CNTT – ĐH KHTN





Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
TPHinhHoc
(from Fundament)
GiaTri
Value : SoThuc
(f rom Fundament)
Diem
X : GiaTri
Y : GiaTri
(f rom Geometric)
DuongThang
A : GiaTri
B : GiaTri
C : GiaTri
(f rom Geometric)
TamGiac
A : Diem
B : Diem
C : Diem
(f rom Geometric)
TuGiac
A : Diem
B : Diem
C : Diem
D : Diem
(f rom Geometric)
Goc
alpha : GiaTri
(f rom Geometric)

DuongTron
I : Diem
R : GiaTri
(f rom Geometric)
Ellipse
I : Diem
a : GiaTri
b : GiaTri
(f rom Geometric)
Hyperbol
I : Diem
a : GiaTri
b : GiaTri
(f rom Geometric)
Parabol
I : Diem
p : GiaTri
(f rom Geometric)
Vector
U : GiaTri
V : GiaTri
(f rom Geometric)

Hình 2.4.3-17 Lớp TPHinhHoc
4.3.4.3.
Danh sách các lớp con :
 Lớp GiaTri : thể hiện cho 1 Biến số, Tham số hoặc Hằng số trong 1 Bài Tập, số
lượng đối tượng mà lớp GiaTri nắm giữ chính là số nghiệm của 1 Biến số.
Trong đó Value là giá trị thực của lớp (nếu lớp được kích hoạt) và thuộc kiểu
SoThuc, kiểu dùng để thực hiện tính toán với kết quả “số đẹp” như “số căn”, “phân

số”.
Ngoài ra , lớp GiaTri còn được cung cấp 1 số hàm để thực hiện các phép toán +. -, *,
/, được dùng để Giải Phương Trình.
 Lớp Góc : thể hiện cho 1 giá trị Góc, nhưng ở dưới dạng Radian, và chỉ chấp nhận
các giá trị góc đặc biệt như : 0°, 30°, 45°, 90°, …
 Lớp Vector : thể hiện cho 1 đối tượng Hình Học là Vector có dạng u(U,V).

57




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
 Lớp Diem : thể hiện cho 1 đối tượng Hình Học là Điểm có dạng A(X,Y).
 Lớp DuongThang : thể hiện cho 1 đối tượng Hình Học là Đường Thẳng có dạng
D: Ax + By + C = 0.
 Lớp TamGiac : thể hiện cho 1 đối tượng Hình Học là Tam Giác gồm 3 Điểm xác
định A, B, C.
 Lớp TuGiac : thể hiện cho 1 đối tượng Hình Học là Tam Giác gồm 4 Điểm xác
định A, B, C, D
 Lớp DuongTron :
thể hiện cho 1 đối tượng Hình Học là Đường Tròn tâm là Điểm I
có dạng C: (x - Ix)² + (y - Iy)² = R².
 Lớp Ellipse : thể hiện cho 1 đối tượng Hình Học là Ellipse tâm là Điểm I có dạng
E: (x - Ix)² / a² + (y - Iy)² / b² = 1.

 Lớp Hyperbol : thể hiện cho 1 đối tượng Hình Học là Hyperbol tâm là Điểm I có
dạng H: (x - Ix)² / a² - (y - Iy)² / b² = 1.
 Lớp Parabol : thể hiện cho 1 đối tượng Hình Học là Parabol tâm là Điểm I có dạng
H: (y – Iy)² = 2 * P * (x - Ix).
4.3.4.4.
Danh sách các hàm được kế thừa để chuyên biệt hoá từ lớp
TPHinhHoc :
 KhoiTao() : kế thừ từ lớp PhanTu, dùng để khởi tạo cho trường hợp mặc định cho
từng đối tượng Hình Học.
 LayTenDihnhNghia() : lấy chuỗi định nghĩa cách thức nhập liệu cho từng đối tượng
Hình Học.
 LoadCongThucNhap() : dùng để đọc 1 đoạn text xem nó có thực hiện việc “nhập
liệu” cho 1 đối tượng Hình Học nào đó không.
4.3.5. Lớp TPQuanHe :
 Lớp TPQuanHe :
đây là lớp ảo kế thừa từ lớp PhanTu, thể hiện cho các Công
Thức, Định Lý, Định Nghĩa có trong 1 bài toán Hình Học Giải Tích, chẳng hạn

58




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
như : các Công Thức tính giá trị Diện Tích, Chu Vi của Tam Giác, các Định

Nghĩa “Điểm Thuộc Đường”, …
4.3.5.1.
Danh sách biến thành phần :
_ myPT : danh sách các Phương Trình đặc trưng cho
từng lớp Quan Hệ.
4.3.5.2.
Danh sách hàm thành phần :
_ LayTenDinhNghia() : kế thừa từ lớp PhanTu, định
nghĩa cách thức khai báo 1 Công Thức hoặc Định Lý.
_ LoadCongThucNhap() : dùng để đọc 1 đoạn text xem
nó có thực hiện việc “khai báo” cho 1 Công Thức hoặc Định Lý. Các cách thức nhập
liệu cho đối tượng TPQuanHe này được địng nghĩa trong file “dbCongThuc.txt” và
có thể hiệu chỉnh được theo ý người sử dụng.
_ LayKieuNhapLieu() : lấy tất cả các kiểu nhập liệu được khai báo Công Thức, Định
Lý trong chương trình, được dùng trong ph
ần Kiểm Tra Đề Bài, Đáp Án.
_ LayPhuongTrinh() : lấy thông tin về dan sách các Phương Trình đặc trưng cho
từng lớp TPQuanHe.
_ CapNhatPhuongTrinh() : cập nhật lại thông tin cho các Phương Trình đặc trưng từ
các biến thành phần của đối tượng
VD : ta có Định Nghĩa quan hệ “Điểm thuộcc Parabol” có các biến thàng phần là
Điểm M(Mx, My) và Parabol P tâm là Điểm I(Ix, Iy) thì dạng phương trình đặc
trưng là : (My – Iy)² = 2 * P (Mx – Ix).
_ XuatBaiGiai() : kế thừa từ lớp PhanTu, dùng để xuất 1 Công Thức hoặc
Định
Nghĩa ra thành Lời Giải theo nguyên tắc sau :
+ Xuất lời dẫn thông báo sử dụng Định Lý hoặ Công Thức gì.
+ Xuất ra nội dung của các Phương Trình đặc trưng.
TPQuanHe
myPT : TPPhuongTrinh*

LayTenDinhNghia()
LoadCongThucNhap()
LayKieuNhapLieu()
LayPhuongTrinh()
CapNhatPhuongTrinh()
XuatBaiGiai()
(from Fundament)
4.3.5.3.
Sơ đồ phối hợp hoạt động :
_ LoadCongThucNhap() :

59




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
TPQuanHe
LoadCongThucNhap()
CapNhatPhuongTrinh()
CongThucQuanHe
LayCongThuc()
TPQuanHe
*


_ CapNhatPhuongTrinh() :
TPQuanHe
CapNhatPhuongTrinh()
*
TPPhuongTrinh GiaTri
SetAt()
SetAt()
*

_ XuatBaiGiai() :
TPQuanHe
*
TPPhuongTrinh
XuatBaiGiai()
XuatBaiGiai()

Chương trình đã định nghĩa 1 số lớp kế thừa từ lớp TPQuanHe để chuyên biệt hoá
các xử lý cho từng đối tượng Công Thức hoặc Định Nghĩa mà thường được sử dụng
trong các Bài Toán Hình học Giải Tích.
TPQuanHe
(f rom Fundament)
DiemThuocDuong
(from Relationship)
KhoangCach2Diem
(from Relationship)
GiaiHePT
(f rom Relationship)
DiemThuocDuongTron
(from Relationship)
DuongThangSSDuongThang

(from Relationship)
DuongThangTiepTuyenDuongTron
(from Relationship)
PhepBienDoiPT
(from Relationship)
XuatKetQua
(f rom Relationship)

Hình 2.4.3-18 Lớp TPQuanHe

60




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
Các lớp kế thừa ở phía trên chính là các Công Thức, Địng Nghĩa chuẩn được áp
dụng trong Sách Giáo Khoa. VD : lớp DuongThangTiepTuyenDuongTron chính là
Định Lý được áp dụng khi 1 Đường Thẳng tiếp xúc với Đường Tròn; hay lớp
KhoangCach2Diem là Công Thức áp dụng cho việc tính khoảng cách giữa 2 Điểm
A, B.
Các lớp này chỉ kế thừa từ lớp cha các hàm sau :
_ CapNhatPhuongTrinh() : cập nhật lại thông tin cho các Phương Trình đặc trưng từ
các biến thành phần của đối tượng.
Các l

ớp kế thừa ở phía dưới chính là các Công Thức, Địng Nghĩa riêng của chương
trình hỗ trợ Người Dùng giải Bài Tập trong các trường hợp đặc biệt, khi mà các
Công Thức và Địng Nghĩa chuẩn không thể giải được.
4.3.5.4.
Danh sách các lớp này :
 Lớp XuatKetQua : dùng trong phần “Kết Luận” của 1 bài giải, thông báo các kết
quả cuối cùng thu được.
 Danh sách các lớp PhepBienDoiPT : là các lớp dùng để hỗ trợ cho Người Dùng
thực hiện các phép biến đổi Phương Trình như : rút gọn, gom nhóm các Phương
Trình, đặt ẩn riêng ,…
 Lớp GiaiHePT : là lớp dùng để hỗ trợ khả năng giải hệ các Phương Trình đã được
gom nhóm.
4.3.6. Lớp TPPhuongTrinh :

Lớp TPPhuongTrinh : đây là lớp ảo kế thừa từ lớp PhanTu, thể hiện cho các
Phương Trình đặ trưng có trong 1 bài toán Hình Học Giải Tích, chẳng hạn như
: phương trình Đường Thẳng, Đường Tròn, phương trình Đường Phân Giác, …

61




KHOA CNTT – ĐH KHTN




Phần mềm hỗ trợ giảng dạy hình học giải tích GVHD : Nguyễn Tiến Huy
4.3.6.1.

Danh sách hàm thành phần :
_ OnActived() : kế thứ từ lớp PhanTu, xác định lớp sẽ “giải
được” khi thoả điều kiện có (n – 1) các đối tượng sở hữu của
Phương Trình đều “kích hoạt”.
VD : phương trình Đường Thẳng : Ax + By + C = 0 có (n=5)
giá trị nên có thể “giải được” khi có (n-1)=4 giá trị “kích hoạt”
chẳng hạn như biết được A, B, C, x.
_ SapXepLai() : sắp xếp lại Phương Trình đặc trưng này, chuyển về dạng chuẩn để
Ph
ương Trình này “có thể giải được”. Các Phương Trình chuẩn là :
_ Phương trình bậc 1 n ẩn dạng : A1 * x1 + A2 * x2 + … + An * xn + K = 0.
_ Phương trình bậc 2 n ẩn dạng : (A1 - x1)² + (A2 – x2)² + … + (An - xn)² = K.
_ TinhGiaTri() : xác định các giá trị của Phương Trình có thoả điều kiện P(x) = 0,
thường được dùng trong bài toán “Chứng Minh”.
_ CacPhepToan() : ngoài ra chương trình còn bổ sung các khả năng tính toán +. *.
/ cho các Phương Trình, thường dùng để thực hiện các “Phép Biến Đổi Phương
Trình”.
TPPhuongTrinh
OnActived()
SapXepLai()
XuatBaiGiai()
TinhGiaTri()
CacPhepToan()
(f rom Fundament)
4.3.6.2.
Sơ đồ phối hợp hoạt động :
_ Hàm XuatBaiGiai() :
TPPhuongTrinh
XuatBaiGiai()
SapXepLai()

DatTen()
PhuongTrinhChuan
ThucHienGiai()
TPPhuongTrinh
TPPhuongTrinh

_ Hàm SapXepLai() :
SapXepLai()
TPPhuongTrinh
GiaTri
GiaTri
GetAt()
IsActived()
ManHinhThongBao
ThongBaoLoi()
**


62

×