Tải bản đầy đủ (.doc) (29 trang)

Mô phỏng các phép toán cơ sở dữ liệu bằng chương trình visual basic

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 (327.5 KB, 29 trang )

Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Nội dung:
I.Giới thiệu 2
1.Mục tiêu đồ án 2
4.Lý thuyết các phép toán Đại số quan hệ 4
b.Chọn 2 quan hệ và thực hiện tính toán 20
20
Code: 20
5.Kiểm thử 25
-Việc nhập dữ liệu vào File text thành công 25
-Sau khi chọn 2 file muốn tính toán. Ta click vào phép toán để chọn phép toán cần tính toán. Nhấn
vào Button Tính toán và tiếp đó nhấn nút Kết quả để có thể xem được kết quả mà ta vừa tính ở
trên. Dưới đây là kết quả thu được 25
Ngoài ra việc hiển thị trên Menu cũng được coi trọng 26
Để hiển thị nội dung lên hướng dẫn ta có đoạn Code sau: 27
*Đồng thời khi click vào About me sẽ hiển thị 1 Form nói về tác giả 27
Đây là giao diện nên ta không cần Code phức tạp 27
III/Kết quả đạt được 28
Sinh viên:Trần Anh Tiến
Các từ viết tắt:
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 1
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
• CSDL: Cơ sở dữ liệu
• VB: Visual Basic.
I.Giới thiệu
1.Mục tiêu đồ án
Giới thiệu sơ lược về đồ án.
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ: Phép hợp,
phép giao, phép trừ, phép kết nối, phép chiếu.
Yêu cầu:


1. Tóm lược lý thuyết phần Đại số quan hệ
2. Trình bày ý tưởng thuật toán để giải quyết cho từng phép toán
3. Vẽ sơ đồ khối hoặc mã giả cho các thuật toán trên
4. Viết chương trình bằng ngôn ngữ VB
a. Nhập vào 02 quan hệ (lưu vào file text dạng ma trận)
b. Chọn 02 quan hệ và chọn phép toán để thực hiện
c. In kết quả ra màn hình (dạng bảng) và lưu kết quả xuống file
Mục tiêu:
-Tìm hiểu kĩ lý thuyết về CSDL ,các phép toán đại số quan hệ như phép giao,
phép hợp, phép trừ…
-Tìm hiểu kĩ hơn về cách sử dụng ngôn ngử VB, sử dụng thành thạo ngôn ngữ
VB cho việc lập trình.
-Rèn luyện kĩ năng làm việc độc lập
-
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 2
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
2.Giới thiệu công cụ thực hiện : Visual Basic 6.0
Dùng VB6 là cách nhanh và tốt nhất để lập trình cho Microsoft Windows.
Cho dù ta là chuyên nghiệp hay mới mẻ đối với chương trình Windows, VB6 sẽ
cung cấp cho ta một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập
trình ứng dụng cho MSWindows.
Visual Basic là gì?
Phần "Visual" đề cập đến phương phàp được sử dụng để tạo giao diện đồ
họa người dùng (Graphical User Interface hay viết tắc là GUI) . Có sẵn những bộ
phận hình ảnh, gọi là controls, ta tha hồ sắp đặt vị trí và quyết định các đặc tính
của chúng trên một khung màn hình, gọi là form. Nếu ta đã từng sử dụng chương
trình vẽ chẳng hạn như Paint, ta đã có sẵn các kỹ năng cần thiết để tạo một GUI
cho VB6.
Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic

Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được chế ra cho các
khoa học gia (những người không có thì giờ để học lập trình điện toán) dùng.
Visual Basic đã được ra từ MSBasic, do Bill Gates viết từ thời dùng cho
máy tính 8 bits 8080 hay Z80. Hiện nay nó chứa đến hàng trăm câu lệnh
(commands), hàm (functions) và từ khóa (keywords). Rất nhiều commands,
functions liên hệ trực tiếp đến MSWindows GUI. Những người mới bắt đầu có thể
viết chương trình bằng cách học chỉ một vài commands, functions và keywords.
Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất
kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác.
Người mang lại phần "Visual" cho VB là ông Alan Cooper. Ông đã gói môi
trường hoạt động của Basic trong một phạm vi dễ hiểu, dễ dùng, không cần phải
chú ý đến sự tinh xảo của MSWindows, nhưng vẫn dùng các chức năng của
MSWindows một cách hiệu quả. Do đó, nhiều người xem ông Alan Cooper là cha
già của Visual Basic.
Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA)
và VBScript. VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel,
MSAccess, MSProject, .v.v còn gọi là Macros. Dùng VBA trong MSOffice, ta có
thể làm tăng chức năng bằng cách tự động hóa các chương trình.
VBScript được dùng cho Internet và chính Operating System.
Dù cho mục đích của bạn là tạo một tiện ích nhỏ cho riêng bạn, trong một
nhóm làm việc của bạn, trong một công ty lớn, hay cần phân bố chương trình ứng
dụng rộng rãi trên thế giới qua Internet, VB6 cũng sẽ có các công cụ lập trình mà
bạn cần thiết.
Các ấn bản Visual Basic 6
Có ba ấn bản VB6: Learning, Professional và Enterprise. Chúng ta hãy gát
qua ấn bản Learning. Bạn có thể dùng ấn bản Professional hay Enterprise.
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 3
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Ấn bản Professional cung cấp đầy đủ những gì bạn cần để học và triển khai

một chương trình VB6, nhất là các control ActiveX, những bộ phận lập trình tiền
chế và rất hữu dụng cho các chương trình ứng dụng (application programs) của
bạn trong tương lai. Ngoài đĩa compact chính cho VB6, tài liệu đính kèm gồm có
sách Visual Studio Professional Features và hai đĩa CD Microsoft Developer
Network (MSDN).
Ấn bản Enterprise là ấn bản Professional cộng thêm các công cụ Back
Office chẳng hạn như SQL Server, Microsoft Transaction Server, Internet
Information Server.
3.Giới thiệu về CSDL
Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưu
trữ trên các thiết bị băng từ, đĩa từ… để có thể làm thỏa mản yêu cầu khai thác
đồng thời của nhiều người sữ dụng.
CSDL gắng liền với Đại số ,logic toán và một số vấn đề khác.
* Ưu điểm của cơ sở dữ liệu
-Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm
được tính nhất quán và toàn vẹn dữ liệu.
-Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau.
-Khả năng chia sẻ thông tin cho nhiều người sử dụng
4.Lý thuyết các phép toán Đại số quan hệ
 Các phép toán chia làm 2 nhóm:
o Các phép toán tập hợp (hội, giao, trừ, …)
o Các phép toán quan hệ (chiếu, chọn, kết nối, …)
( Trong phần này ta chỉ trình bày các phép toán tập hơp như Phép hợp,
phép giao, phép trừ, phép kết nối, phép chiếu.)
 Khả hợp: (Union compatibility)
Hai lược đồ quan hệ R(A
1
, A
2
, …, A

n
) và S(B
1
, B
2
, …, B
n
) là khả hợp nếu
cùng bậc n (cùng số thuộc tính) và có DOM(A
i
) = DOM(B
i
), với 1≤ i ≤ n.
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 4
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
VD:
SINHVIEN
HOSV TENSV
Tran An
Nguyen Trang
Le Van Phong
Cho 2 quan hệ R, S khả hợp:
a.Phép hợp (union)
Phép hợp của R và S, ký hiệu là R ∪ S, là một quan hệ gồm các bộ thuộc
R hoặc thuộc S, hoặc cả hai. Các bộ trùng lắp sẽ bị lược bớt và chỉ giữ lại 1 bộ đại
diện.
Biểu diển: R∪S=(t/ t Є R hoặc tЄ S hoặc t Є R và S}
VD: R SINHVIEN
HOSV TENSV

Tran An
Nguyen Trang
Le Van Phong

Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 5
GIANGVIEN
HOGV TENGV
Nguyen Trang
Bui Hong Minh
S GIANGVIEN
HOGV TENGV
Nguyen Trang
Bui Hong Minh
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
t = R∪S =( SINHVIEN ∪ GIANGVIEN )
HOSV TENSV
Tran An
Le Van Phong
Nguyen Trang
Bui
Hong
Minh
b.Phép giao(intersect)
Phép giao của R và S, ký hiệu là R ∩ S, là một quan hệ gồm các bộ thuộc
R đồng thời thuộc S.
Biểu diển: R∩S=(t/ t Є R và tЄ S }
Ví dụ với 2 quan hệ ở trên , giao của chúng là:
c.Phép trừ (minus)
Phép trừ của R và S, ký hiệu R – S, là một quan hệ gồm các bộ thuộc R và

không thuộc S.
Biểu diển: R∩S=(t/ t Є R và tЄ S }
Ví dụ với 2 quan hệ ở trên , giao của chúng là:
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 6
t= R∩S SINHVIEN ∩ GIANGVIEN
HOSV TENSV
Nguyen Trang
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Các tính chất:
 Giao hoán: R ∪ S = S ∪ R, R ∩ S = S ∩ R
 Kết hợp: R ∩ (S ∩ T) = (R ∩ S) ∩ T,
R ∪ (S ∪ T) = (R ∪ S) ∪ T
d. Phép chọn(selection)
Cho một quan hệ r với lược đồ quan hệ R(A1,A2,A3, ,An)
Phép chọn trên r là phép xác định một tập con các bộ các bộ quan hệ thỏa
mãn 1 điều kiện cho trước
Tức là :
σ
<đk_chọn>
(<Tên_quan_hệ>)
(Phép chọn được hiểu: σ
F
(r)={t Єr/F(t)=đúng})
 σ: ký hiệu phép chọn.
 <Tên_quan_hệ>: chỉ quan hệ được chọn.
 Kết quả thu được từ phép chọn là một quan hệ, có cùng danh
sách thuộc tính được chỉ ra trong <Tên_quan_hệ>
 Điều kiện chọn được hình thành từ các mệnh đề có dạng:
<tên_thuộc_tính> <phép_so_sánh> <giá_trị_hằng>

<tên_thuộc_tính> <phép_so_sánh> <tên_thuộc_tính>
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 7
t= R-S= SINHVIEN - GIANGVIEN
HOSV TENSV
Tran An
Le Van Phong
Bui Hong Minh
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
 <tên_thuộc_tính> là tên thuộc tính của <Tên_quan_hệ>,
phép so sánh thường là: =, ≠, >, ≥, <, ≤.
 Các mệnh đề có thể được nối lại nhờ vào các phép ¬, ∧, ∨
 Phép chọn có tính giao hoán:
σ
(đk1)

(đk2)
R) =

σ
(đk2)

(đk1)
R) = σ
(đk1

đk2)
R
 VD: Tìm các nhân viên có mức lương trên 25.000 ở phòng 4 hoặc các
nhân viên có mức lương trên 30.000 ở phòng 5.

σ
(PHG = 4


LUONG > 25000)

(PHG = 5


LUONG > 30000)
(NHANVIEN)
e.Phép kết nối (join)
Phép kết nối, ký hiệu là |X|, dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ
thành 1 bộ.
VD: Tìm tên các trưởng phòng ban:
TR_PHG ← PHONGBAN |x|
TRHG = MANV
NHANVIEN
KETQUA ← π
TENPHG, HONV, TENNV
(TR_PHG)
Dạng tổng quát của phép kết nối 2 lược đồ quan hệ R(A
1
, A
2
, …, A
n
), và S(B
1
, B

2
,
…, B
m
) là:
R x
<đk kết nối>
S
 Kết quả của phép kết nối là một lược đồ quan hệ Q có n+m thuộc tính.
Q(A
1
, A
2
, …, A
n
, B
1
, B
2
, …, B
m
)
 Mỗi bộ của Q là một tổ hợp của 2 bộ trong R và S thoả mãn <đk_kết nối>.
 <đk_kết nối > có dạng:
<điều kiện> ∧ <điều kiện> ∧ … ∧ <điều kiện>
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 8
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
mỗi <điều kiện> có dạng A
i

θ B
i
, với A
i
là một thuộc tính của R, B
j

một thuộc tính của S, A
i
và B
j
có cùng miền và θ là một trong những
phép so sánh {=, ≠, >, ≥, <, ≤}
 Phép kết nối với điều kiện kết nối tổng quát gọi là θ kết nối.
 Các bộ có giá trị rỗng tại thuộc tính kết nối không xuất hiện trong
kết quả của phép kết.
 Nếu θ là phép so sánh bằng (=), phép kết được gọi là phép kết bằng
(equi-join).
 Kết quả của phép kết nối bằng có 2 cột giống nhau  có cột thừa 
nếu bỏ bớt cột thứ 2 thì thành phép kết tự nhiên, ký hiệu là dấu sao (*).
VD: DA_PHG ← DEAN *
PHONG=MAPHG
PHONGBAN
Cách viết gọn: DA_PHG ← DEAN *
(PHONG, MAPHG)
PHONGBAN
 Tổng quát, phép kết nối tự nhiên có dạng:
Q ← R
(<ds1>, <ds2>)
*S

Trong đó, <ds1> là các thuộc tính của R và <ds2> là các thuộc tính của S. Chỉ có
các thuộc tính tương ứng trong <ds1> là được giữ lại trong kết quả.
 Nếu <ds1> và <ds2> giống nhau về tên  bỏ luôn.
 PHG_DD ← PHONGBAN * DIADIEM_PHG
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 9
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
II Nội dung
1/ Trình bày ý tưởng thuật toán giải quyết bài toán.
Để giải quyết bài toán ta thực hiện như sau”
-Nhập tên, số trường và dữ liệu cho các quan hệ
-Lưu dữ liệu vào file text
-Chọn 2 quan hệ cần tính toán
-Chọn phép toán thực hiện
-Thực hiện tính toán
-Hiển thị kết quả lên màn hình
Trong đó với các phép toán ta thực hiện như sau
1.Phép hợp (union)
-Load quan hệ 1 từ file vào A
-Kiểm tra sự trùng lặp của các hàng A
-Đưa vào kết quả
- Load quan hệ 2 từ file vào B
-So sánh ma trận B với ma trận A , nếu các hàng trong B không trùng lặp với kết
quả thì ta đưa B vào kết quả.
-Lưu kết quả ra file text và hiển thị lên màn hình.
2.Phép giao (intersect)
-Load 2 quan hệ1 và 2 vào A và B
-Kiểm tra sự trùng lặp các hàng của A và B, nếu trùng thì ta sẽ đưa nó vào kết quả
-Lưu kết quả ra file text và hiển thị lên màn hình
3.Phép trừ (minus)

-Load 2 quan hệ 1 và 2 vào A và B
-So sánh các hàng của A với B, nếu không trùng thì ta sẽ đưa hàng đó vào kết quả
-Lưu kết quả ra file text và hiển thị lên màn hình
4.Phép chiếu (projection)
-Load quan hệ cần tính vào A
-Nhập các cột cần chiếu
-Đưa vào kết quả các cột của A tương ứng với các cột cần tính
-Loại bỏ các hàng trùng lặp trong kết quả
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 10
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
-Lưu kết quả ra file text và hiển thị lên màn hình
5.Phép kết nối (join)
-Load 2 quan hệ 1 và 2 vào A và B
-Nhập vào điều kiện cần kết nối
-Kiểm tra các hàng của A và B theo điều kiện cần kết nối
-Đưa vào kết quả các hàng thỏa mản với các hàng của B nối tiếp sau A
-Lưu kết quả ra file text và hiển thị lên màn hình
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 11
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
2/ Vẻ sơ đồ khối hoặc mả giả cho các thuật toán nói trên
a/Phép hợp
Sơ đồ khối
Trùng lặp
Không trùng lặp
Trùng lặp
Không trùng lặp
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 12

Begin
Kiểm tra sự
trừng lặp bộ 2
với bộ kết quả
Loại bỏ
Xuất ra màn hình
File kết quả
Thêm vào File kết
quả
Gọi quan hệ 1
Ktra sự trùng
lặp các hàng
Loại bỏ
Lưu vào file kết
quả
Gọi quan hệ 2
End
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
b.Phép giao
Sơ đồ khối
Trùng lặp
Không trùng lặp
Không trùng lặp
Trùng lặp
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 13
So sánh các
hàng 2 quan hệ
với nhau
Loại bỏ

Xuất ra màn hình
File kết quả
End
Lưu vào File kết quả
Begin
Gọi 2 quan hệ
Kiểm tra các
hàng trong mỗi
quan hệ
Loại bỏ
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
c.Phép trừ
Sơ đồ khối
Không trùng lặp
Trùng lặp
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 14
So sánh các
hàng của kết
quả với quan
hệ 2
Xuất ra màn
hình
End
Lưu vào File kết
quả
Loại bỏ hàng đó
khỏi File kết quả
Begin
Gọi quan hệ 1

Gọi quan hệ 2
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
d/Phép chiếu
Sơ đồ khối
Trùng lặp
Không trùng lặp
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 15
Kiểm tra các
hàng của các
trường con lại
Loại bỏ
Xuất ra màn hình
File kết quả
End
Lưu vào File kết quả
Begin
Nhập các trường
cần chiếu
Lược bỏ các trường được
chiếu trong quan hệ
Gọi quan hê
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
e/Phép kết nối
Sơ đồ khối
Không thỏa mản
Thỏa mản
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 16
Kiểm tra điều

kiện lần lượt
từng hàng của
qhệ 2 với qhệ1
Bỏ qua
Xuất ra màn hình
File kết quả
End
Hàng của kết quả = hàng quan hệ 1 nối tiếp hàng
quan hệ 2
Begin
Gọi 2 quan hệ
Nhập điều kiện
Lưu vào file kết quả
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
3/Thiết kế giao diện
a.Giao diện tổng quát
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 17
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
b.Giao diện khi chạy chương trình
4.Viết CODE cho chương trình
a.Việc nhập quan hệ và lưu xuống file Text
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 18
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
*Code cho nút lệnh Add:
Private Sub Command1_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path 'chi duong dan hien tai
If Right(filename, 1) <> "\" Then filename = filename & "\"

'neu ben phai duong dan con co cac duong dan khac thi duong dan se duoc them
dau \
filename = filename & Text1.Text & ".txt" 'tao file
If Dir(filename) <> "" Then 'duong dan da ton tai
Open filename For Append As #2 'ghi de len
Else
Open filename For Output As #2 'tao moi
End If
Print #2, Text2 & " " & Text3 & " " & Text4 & " " & Text5
' Viet vao cong so 2: Noi dung trong text 2345 cach nhau boi dau cach
Close #2 ' Dong cong so 2
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text5.Text = " "
'dua ket qua len file Listbox
End Sub
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 19
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
b.Chọn 2 quan hệ và thực hiện tính toán.
Code:
Private Sub Dir1_Change()
File1.Path = Dir1.Path ‘Khi duong dan dir1 thay doi thi File 1 se thay doi theo
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive ‘khi duong dan Drive1 thay doi thi dir1 cung thay doi
theo
End Sub
*Để hiển thị nội dung các File mình đã chọn lên Listbox ta sử dụng code cho

việc click vào File đó.
Private Sub File1_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path
If Right(filename, 1) <> "\" Then filename = filename & "\"
filename = filename & File1.filename ‘Lay duong dan hien tai
FileNumber = FreeFile
Open filename For Input As FileNumber
List1.Clear ' Xoa listbox truoc
Do While Not EOF(FileNumber)
Line Input #FileNumber, anItem
List1.AddItem anItem
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 20
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Loop
Close FileNumber
Call getFileName ‘Goi ham hien thi File
End Sub
C.Phép toán và các nút lệnh
*Chọn phép toán
Lưu ý là khi chọn các phép chiếu và phép kết nối thì sẽ có các text box hiện ra
cho ta nhập dữ liệu vào.
*Nút lệnh tính toán.
-Đọc file dạng text vào mảng 2 chiều
Dim m As String
Open filName For Input As #3
Dim h1 As Integer
Dim ms() As String
Line Input #3, m

h1 = CInt(Val(Left(m, 1)))
ReDim matranA(h1, 3) As Integer
For k = 1 To h1
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 21
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Line Input #3, m
ms = Split(m, " ")
For l = 0 To 3
matranA(k, l) = CInt(Val(ms(l)))
Next
Next
Close #3
-Hàm chèn
Public Function insert(a() As Integer, c() As Integer)
dung = True
l = 0
For k = 0 To 3
If c(l, k) = "" Then
c(l, k) = a(l + 1, k)
Else
If c(l, 1) = a(l + 1, 1) Then
Exit For
Else
l = l + 1
End If
End If
Next
-Phép giao
For I = 1 To h1

dung = True
For k = 1 To h2
If matranA(I, 0) = matranB(k, 0) And dung Then
Call insert(matranA(), matranC())
Else: k = k + 1
End If
Next
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 22
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
Next
-PHEP HOP
'Dua ma tran A vao mang C
For I = 1 To h1
For j = 0 To 3
Call insert(matranA(), matranC())
Next
Next
'Dua ma tran B vao mang C
For I = 1 To h2
For j = 0 To 3
Call insert(matranB(), matranC())
Next
Next
-Phép trừ
For j = 1 To h1
dung = True
For k = 1 To h2
If matranA(j, 0) = matranB(k, 0) And dung Then
dung = True

Else
Call insert(matranA(), matranC())
End If
Next
Next
-Phép chiếu
a = Val(Text9.Text)
b = Val(Text8.Text)
For j = 1 To h1
For I = 0 To 3
If a = I Or b = I Then
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 23
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
matranC(j, 0) = matranA(j, a)
matranC(j, 1) = matranA(j, b)
End If
Next
Next
-Lưu kết quả tính toán dưới dạng file Ketqua.txt
Open App.Path & "Ketqua.txt" For Output As filenum
Print #filenum, h1; ""; c1
For f = 1 To h1
m = ""
For g = 1 To c1
m = m & matranA(f - 1, g - 1) & " "
Next
Print #filenum, m
Next
Close #filenum

*/Nút lệnh hiển thị kết quả
Private Sub Command4_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path
If Right(filename, 1) <> "\" Then filename = filename & "\"
filename = filename & "ketqua.txt"
FileNumber = FreeFile
Open filename For Input As FileNumber
List1.Clear ' Xoa listbox truoc
Do While Not EOF(FileNumber)
Line Input #FileNumber, anItem
List1.AddItem anItem
Loop
Close FileNumber
End Sub
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 24
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ bằng VB 6.0
5.Kiểm thử
-Việc nhập dữ liệu vào File text thành công.
Khi nhấn nút lệnh refresh thì file ta nhập sẽ hiện ra.
Khi ta chọn File đó thì kết quả sẽ được hiển thị trên List1 (Hiển thị)
-Sau khi chọn 2 file muốn tính toán. Ta click vào phép toán để chọn phép toán
cần tính toán. Nhấn vào Button Tính toán và tiếp đó nhấn nút Kết quả để
có thể xem được kết quả mà ta vừa tính ở trên. Dưới đây là kết quả thu
được.
Trường Đại Học Duy Tân |SV Trần Anh Tiến –121133019 |
Trang 25

×