Thiết kế hệ thống thông tin quản lý
Trang 1CHƯƠNG I: NHIỆM VỤ, MỤC TIÊU VÀ KHẢO SÁT BÀI TOÁN
A NHIỆM VỤ VÀ KHẢO SÁT, VAI TRÒ CỦA BÀI TOÁN
I NHIỆM VỤ VÀ MỤC TIÊU CỦA BÀI TOÁN
1 Nhiệm vụ của bài toán
- Tìm hiểu cơ cấu tổ chức của Giáo viên “Trường THCS Thiệu Khánh”
- Tìm hiểu nhiệm vụ và qui trình thực hiện công việc của Giáo viên tại Trường THCS Thiệu Khánh
- Khảo sát tình hình thực tế của Giáo viên
- Áp dụng các kiến thức về Cơ sở dữ liệu và Phân tích - thiết kế hệ thống thông tin quản lý để xây dựng Phần mềm quản lý Giáo viên tự động thực hiện một số công việc bằng máy tính có thể thay thế một phần công việc cho con người
2 Mục tiêu của bài toán
Nghiên cứu và thử nghiệm bài toán Phân tích - Thiết kế hệ thống thông tin quản lý
Từ đó phân tích thiết kế cài đặt phần mềm Quản lý giáo viên
II KHẢO SÁT BÀI TOÁN
- Địa chỉ: Xã Thiệu Khánh- Huyện Thiệu Hoá- Thanh Hoá
- Điện thoại: (037)7029580- (0377)6331235
- Hiệu trưởng: Thầy Nguyễn Đăng Tùng
- Phó hiệu trưởng: Thầy Phạm Đăng Dũng
- Tổng số học sinh: 2283, trường đạt tiêu chuẩn quốc gia
- Tổng số giáo viên: 50 giáo viên
- Loại hình đào tạo: Công lập
III VAI TRÒ BÀI TOÁN
Để đảm bảo và tiện lợi cho quá trình hoạt động chung của trường có hiệu quả thì việc Quản lý giáo viên đòi hỏi phải thường xuyên và chính xác Vị trí của bài toán này trong việc Quản lý giáo viên của trường được xuất phát từ thực tế khách quan của hoạt động quản lý, cần phải đưa tin học vào trong các lĩnh vực quản lý nói
Trang 2chung trong nhà trường, bên cạnh đó yếu tố con người càng không thể được xem nhẹ chính vì vậy cần có một chính sách quản lý thật khoa học nên bài toán Quản lý giáo viên giúp cho việc điều hành chung trong nhà trường ngày một hiệu quả hơn.
B ĐẶC TẢ CÁC YÊU CẦU CỦA BÀI TOÁN
I VỊ TRÍ CHỨC NĂNG NHIỆM VỤ QUYỀN HẠN VÀ SƠ ĐỒ TỔ CHỨC CỦA GIÁO VIÊN
1 Chức năng của giáo viên :
GV làm công việc theo dõi quản lý giáo dục học sinh và chịu trách nhiệm trước Hiệu trưởng Nhà trường về nhiệm vụ được phân công như; cố vấn, giúp đỡ và chỉ đạo học sinh thực hiện tốt mọi quyền lợi, nghĩa vụ của học sinh, để thực hiện công việc theo quy chế cũng như sự điều hành của phòng Công tác chính trị & quản lý học sinh về công tác quản lý học sinh chung trong Nhà trường.
2 Quyền của giáo viên :
- Căn cứ vào tình hình thực tế, ký xác nhận cho học sinh đi phép 01 ngày Từ 02 ngày trở lên thì xác nhận lý do và gửi Trưởng phòng CTCT&QLHS giải quyết
- Có quyền đề nghị phòng CTCT & QLHS, Hội đồng khen thưởng, kỷ luật Nhà trường, biểu dương khen thưởng những cá nhân, tập thể HS có thành tích xuất sắc trong học tập, rèn luyện và ngược lại theo quy chế học sinh, sinh viên
- Được mời tham gia Hội đồng thi đua, khen thưởng Hội đồng kỷ luật HS theo quy chế công tác HS
- Chủ động và có những sáng tạo trong công tác quản lý, hướng dẫn HS, tập thể HS khối lớp mình phụ trách Nhằm tạo điều kiện giúp đỡ để HS hoàn thành tốt nhiệm vụ của người HS
3 Nhiệm vụ của giáo viên :
-Vào đầu năm học GV, tổ chức chỉ đạo tập thể lớp lấy ý kiến thống nhất giới thiệu Học sinh bầu vào ban đại diện lớp (có biên bản gửi về phòng CTCT&QLHS) Đồng thời thông qua chương trình hoạt động của lớp trong học kỳ, năm học
Trang 3- Hướng dẫn Học sinh thực hiện tốt nội quy của Trường, quy chế Công tác HS Chấp hành tốt đường lối chính sách của Đảng, pháp luật của Nhà nước.
- Tổ chức cho Học sinh thực hiện các nhiệm vụ như; Theo dõi quá trình học tập, rèn luyện, nề nếp sinh hoạt và đời sống hàng ngày Tham gia các tổ chức Đoàn thể và các hoạt động xã hội khác theo kế hoạch chung của Nhà trường
- Đôn đốc nhắc nhở Học sinh chấp hành tốt nội quy, quy chế học tập, sinh hoạt, thực hiện đầy đủ các chủ trương của Nhà trường về an ninh trạt tự, an toàn giao thông, phòng chống ma tuý và các tệ nạn xã hội
- Động viên giúp đỡ những Học sinh gặp khó khăn trong học tập, sinh hoạt, liên hệ với các phòng ban chức năng giải quyết những vấn đề liên quan đến quyền lợi, nghĩa
vụ của HS
- Phối hợp với các tổ chức Công đoàn, Đoàn TN, Hội HS, tổ chức các hoạt động văn thể mỹ và các hoạt động khác nhằm nâng cao đời sống tinh thần cho HS, giúp HS sử dụng thời gian nhàn rỗi một cách hữu ích
- Mỗi tháng một lần GV tổ chức họp lớp một lần nhận xét, xếp loại HS để làm cơ sở cho việc đánh giá kết quả rèn luyện của HS cuối kỳ, theo dõi tình hình chung để có biện pháp chỉ đạo kịp thời, cũng như triển khai kế hoạch tháng tới
- Sáng thứ hai hàng tuần GV có mặt lúc 6 giờ để tập trung, đôn đốc HS trực ban và kiểm tra quân số báo cáo cho phòng Công tác chính trị & quản lý học sinh
- Quản lý và đôn đốc nhắc nhở HS tham gia tuần sinh hoạt công dân HS- vào đầu năm học, các buổi mít tinh nghe thời sự vv…
- Chủ động tổ chức triển khai cho SV nghiên cứu, học tập, về quy chế HS, quy định đánh giá điểm rèn luyện của HS trong quá trình học tập tại Trường
- Thường xuyên đôn đốc, nhắc nhở, HS lao động vệ sinh khu vực được phân công từ đầu năm học và các đợt đột xuất khác trong học kỳ theo kế hoạch
- Nhắc nhở HS nộp tiền học phí, tiền nội trú và các khoản lệ phí khác đúng quy định
- Chiều thứ sáu hàng tuần, GV tổng hợp và nhận xét tình hình học tập của HS lớp khóa mình chủ nhiệm Nộp về phòng CTCT & QLHS vào lúc 15 giờ 30 phút
Trang 4- Lập sổ theo dõi quản lý HS theo tuần, tháng, học kỳ, năm học và cả quá trình học tập, rèn luyện tại Trường để làm cơ sở phân loại, đánh giá HS theo quy định.
- Chủ trì cuộc họp đánh giá điểm rèn luyện cho HS khối, lớp mình phụ trách trong từng học kỳ, năm học, đúng quy định và phải đảm bảo chính xác, công bằng, dân chủ, công khai
- Chịu trách nhiệm trước Hiệu trưởng về công tác giáo viên chủ nhiệm, đã được phân công
Sinh học- KTNNNgữ vănSử- Địa- GDCDNgoaị ngữThể dục
HĐ ngoài giò lên lớpLao động- HN
Trang 5a Đội ngũ lãnh đạo
- Hiệu trưởng: Nguyễn Đăng Tùng
- Trình độ chuyên môn: Thạc sĩ Văn học
- Trình độ quản lý: Tốt nghiệp trường CB
- Lĩnh vực phụ trách: Phụ trách chung, Tài chính, Kế hoạch, Lao động
- Phó hiệu trưởng: Phạm Đăng Dũng
- Trình độ chuyên môn: Thạc sĩ Toán học
- Trình độ quản lý: Tốt nghiệp trường CB quản lý giáo dục TW1
- Lĩnh vực phụ trách: Chỉ đạo chuyên môn ngoài giờ
Trang 6d Các ban
•Cơ sở vật chất
•Giám thị
•Lao động
•Hoạt động ngoài giờ lên lớp
ĐẶC TẢ CÁC VẤN ĐỀ CỦA BÀI TOÁN
a) Quản lý giáo viên
Để quản lý một Giáo viên trong nhà trường trước hết phải nắm được lý lịch của mỗi người, ngoài ra cần phải hiểu thêm các thông tin khác để quản lý
Những thông tin cần quản lý bao gồm:
Sinh viên thực hiện: Vũ Mậu Thụ
Biên chếKhen thưởng
Kỷ luậtChức vụ giáo viênTrình độ ngoại ngữTrình độ chuyên môn
Hệ đào tạoNgành đào tạoChuyên môn đào tạoNơi đào tạo
Năm tốt nghiệpChuyên trách Đoàn/ ĐộiChuyên trách thư việnChuyên trách thiết bịXếp loại
Đánh giá về đạo đứcĐánh giá về chuyên mônMôn dạy
Địa điểm dạy
Trang 7Luận Văn Tốt nghiệp Quản Lý Giáo ViênTrong lý lịch, quản lý các thông tin một cách cụ thể hơn:
- Điện thoại: Quản lý tất cả các số điện thoại của công chức
- Chính trị: Đoàn viên, Đảng viên, Đoàn viên chỉ quản lý có hay không Nếu là đảng
viên thì quản lý: Ngày vảo đảng, ngày chính thức, nơi vào đảng
- Chuyên môn: Quản lý tất cả các chuyên môn mà giáo viên đã được đào tạo bao gồm:
Chuyên môn gì? Nơi đào tạo ( Trường nào )? Văn bằng hay chứng chỉ được cấp, Thời gian đào tạo
- Ngoại ngữ: Quản lý trình độ tất cả các ngoại ngữ mà công chức biết được.
- Khen thưởng, kỷ luật: Ngày, hình thức, lý do khen thưởng, kỷ luật Ngày kỷ luậtb) Quản lý lương, phụ cấp, Sổ BHXH:
Để quản lý tốt khâu tiền lương của mỗi giáo viên trong nhà trường thì bộ phận tài
vụ dựa vào quá trình lương của một giáo viên gồm: Hệ số lương, thâm niên, phụ cấp chức vụ, phụ cấp khu vực, và phục cấp ngành, phụ cấp ưu đãi, Phụ cấp thu hút….,
- Công việc Tin học hoá hệ thống nhắm đáp ứng:
- Định kỳ tự động hoá đưa ra danh sách giáo viên được tăng lương
- Bất kỳ lúc nào cũng có thể trả lời các thông tin chính xác về tình hình công tác, lý lịch của một giáo viên
Trang 8CHƯƠNG II: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ PHÁT TRIỂN
A CƠ SỞ LÝ THUYẾT
I CÁC KHÁI NIỆM CƠ BẢN
+ Thực thể: Là một đối tượng cụ thể nào đó
+ Thuộc tính thực thể: Tính chất xác định thực thể
+ Lớp thực thể: Các thực thể cùng thuộc tính
+ Lược đồ quan hệ:
• Thuộc tính: Tên thuộc tính, miền xác định của thuộc tính
• Lược đồ một quan hệ gồm các thuộc tính của thực thể ( Tên miền xác định ) cùng với các mệnh đề ràng buộc
Lược đồ quan hệ: R=<x, w>=(A1:D1,A2:D2,…An:Dn,M)
Ai: Tên thuộc tính
Di: Miền xác định của thuộc tính
M: Mệnh đề ràng buộc
Nội dung của lược đồ quan hệ gọi là các bộ
+ Các phép toán tối thiểu:
• Tìm kiếm dữ liệu theo tiêu chuẩn đã chọn, không làm thay đổi trạng thái CSDL
• Thay đổi cấu trúc CSDL
• Thay đổi nộI dung CSDL
• Xử lý, tính toán trên CSDL
II KHÁI NIỆM PHỤ THUỘC DỮ LIỆU VÀ CÁC DẠNG
Một thuộc tính gọi là phụ thuộc vào các thuộc tính khác khi giá trị của các thuộc tính này phụ thuộc vào giá tri của phụ thuộc kia Sự phụ thuộc này có thể là gián tiếp hay trực tiếp
Một quan hệ bao giờ cũng có một nhóm thuộc tính mà giá trị của chúng qui định giá trị các thuộc tính khác, nhóm thuộc tính đó gọi là khoá
Trang 9Với một quan hệ tuỳ vào các phụ thuộc của các thuộc tính vào khoá có trong đó
mà ta phân chia các quan hệ đó thành các dạng chuẩn khác nhau Các dạng chuẩn cơ bản
III KHÁI NIỆM CHỈ DẪN VÀ KHOÁ CHỈ DẪN
Để có thể tìm kiếm thông tin nhanh theo một tiêu chuẩn nào đó chúng ta tạo ra các thông tin chỉ dẫn theo tiêu chuẩn nào đó Các thông tin chỉ dẫn là các thông tin giúp ta tìm kiếm dữ liệu nhanh Các thông tin này gọi là khoá chỉ dẫn Khoá chỉ dẫn có thể là một trường, hoặc nhiều trường trong trường hợp này phải chỉ ra thứ tự
Với cách tạo ra khoá chỉ dẫn theo tiêu chuẩn nào đó ta có thể tìm kiếm nhanh dữ liệu theo tiêu chuẩn nào đó
IV MỤC TIÊU VÀ TÍNH ƯU VIỆT CỦA MÔ HÌNH QUAN HỆ
- Cho một lược đồ dữ liệu dễ sử dụng, mô hình đơn giản, người dùng không cần biết cấu trúc vật lý của dữ liệu Tiện lợi cho người dùng không chuyên tin học
- Tăng cường tính độc lập của dữ liệu, đặc biệt là vật lý
- Cho một khả năng có một ngôn ngữ thao tác bậc cao
- Tối ưu việc tìm kiếm dữ liệu trong CSDL, hệ quản trị tự tìm cách truy nhập
- Cải thiện nâng cao toàn vẹn dữ liệu và bảo mật dữ liệu
- Có thể phục vụ cho nhiều chương trình ứng dụng
- Có cơ sở toán học phong phú chắc chắn:
* Lý thuyết quan hệ
* Dạng chuẩn có độ bền vững và đầy đủ thông tin
Trang 10B CÔNG CỤ PHÁT TRIỂN
I LỰA CHỌN CÔNG CỤ PHÁT TRIỂN VÀ CÁC VẤN ĐỀ KỸ THUẬT
1 Lý do lựa chọn công cụ phát triển
Hiện nay các chương trình được ứng dụng phục vụ cho Trường THCS Cao Răm được viết bằng ngôn ngữ FoxPro LAN 2.0, chạy trên mạng Novell Netware.Và một số Quản lý thì viết bằng Excel
Ưu điểm:
- Rẻ tiền
- Tiện lợi cho các ứng dụng có tính chất cá nhân hoặc nhóm nhỏ Dễ bảo trì, bảo hành
- Đồng bộ: Phát triển trên một thiết kế và định hướng thống nhất
- Tức thời: Dữ liệu được cập nhật tức thời khi phát sinh, đảm bảo thông tin kịp thời
- Được kiểm toán xác nhận về chương trình, qui trình, tính hợp pháp của các thông tin
do máy tính đưa ra
Nhược điểm:
- Không đáp ứng được mô hình các bài toán có tổ chức dữ liệu lớn Tốc độ đọc, ghi các bảng dữ liệu giảm rất nhanh khi kích thước các bảng dữ liệu tăng từ vài trăm Kb tới hàng ngàn Mb Đồng thờI tốc độ xử lý cũng phụ thuộc vào số lượng ngườI sử dụng
- Không đáp ứng được các mô hình kiến trúc Client/Server ( Mô hình này hiện đang
được sử dụng hết sức rộng rãi và ngày càng khẳng định được tính ưu việt của nó ).Đối với việc phát triển hệ thống, việc lựa chọn công cụ cũng có ý nghĩa hết sức quan trọng Người phát triển hệ thống phảI căn cứ vào khẳ năng của cơ sở mình cũng như các yếu tố đặc thù mà lựa chọn công cụ cho phù hợp
Trong đề tài Quanr lý Giáo viên có một số yếu tố được xem xét khi lựa chọn công
cụ như sau:
* Khả năng phát triển của hệ thống: Hệ thông tin xây dựng trong giai đoan hiện tại
đã và đang là bước đi ban đầu trong quá trình tiến tới một hệ thống hoàn hảo, do đó khả năng phải nâng cấp dần trong tương lai là điều không thể tránh khỏi Chính vì vậy, yếu
tố hàng đầu cần quan tâm khi lựa chọn công cụ là khả năng hỗ trợ của chúng trong việc
Trang 11bổ sung phát triển hệ thống Công cụ được chọn phảI giảm được chi phí bảo hành và nâng cấp chương trình.
* Hệ quản trị cơ sở dữ liệu được chọn phải có tính cởI mở cao để hệ thống có thể
dễ dàng kết nốI với các hệ thống thông tin khác
* Khả năng mà công cụ có thể giảm nhẹ gánh nặng công việc cho ngườI phát triển
* Trên cơ sở xem xét các yếu tố trên đây, công cụ được chọn là hệ quản trị có sở
dữ liệu MS ACCESS với ngôn ngữ để viết chương trình là Visual basic
2 Môi trường làm việc
+ Hệ thống máy tính chủ yếu được sử dụng hiện nay tại các THCS là máy PC với môi trường làm việc là hệ điều hành Window 98
+ Đa số người sử dụng trên thực tế đã làm quen với tin học qua máy PC với hệ điều hành Window
+ Hệ thống chương trình Quản lý giáo viên sẽ rất tiện dụng khi chạy trên môi trường mạng Tuy nhiên nó vẫn có thể cài đặt trên máy lẻ, áp dụng đối với những cơ sở chưa ứng dụng mạng máy tính trong quản lý
1 Access là gì?
Access là một hệ thống quản lý cơ sở dữ liệu ( CSDL ) Cũng giống như các hệ CSDL khác, Access lưu trữ và tìm kiếm dữ liệu, biểu diễn thông tin và tự động làm nhiều nhiệm vụ khác Việc sử dụng Access, chúng ta có thể phát triển cho các ứng dụng một cách nhanh chóng
Access cũng là một ứng dụng mạnh trong môi trường Windows Ngày từ đầu Access cũng là một sản phẩm của CSDL trong Microsoft Windows Bởi vì cả Window
và Access đều xuất phát từ Microsoft nên cả hai sản phẩm này làm việc rất tốt cùng nhau, Access chạy trên nền Windows cũng thể hiện được trong Access Bạn có thể cắt, dán dữ liệu từ bất cứ ứng dụng nào trong môi trường Windows nào cho Access và
Trang 12ngược lại Bạn có thể liên kết các đối tượng nào đó ví dụ như: OLE trong Excel, Paintbrush và Word for Windows vào môi trường Access.
Dù sao Access là một hệ quản trị dữ liệu rất tốt trong cơ sở dữ liệu, đồng thời nó
có thể giúp chúng ta truy nhập tới tất cả các dạng dữ liệu Nó có thể làm việc vớI nhiều hơn một mảng (Table) tạI cùng một thờI điểm để giảm bớt sự rắc rốI của dữ liệu và làm cho công việc dễ dàng thực hiện hơn Chúng có thể liên kết một bảng trong Paradox và một bảng trong dbase, có thể lấy kết quả của việc liên kết đó và kết nốI dữ liệu này vớI những bảng làm việc trong Excel một cách nhanh chóng và dễ dàng
2 Access cung cấp những công cụ gì?
Access cung cấp những thông tin quản lý CSDL quan hệ thực sự, hoàn thiện với những định nghĩa khoá (Primary key) và khoá ngoại (Foreign key), các loại luật quan
hệ (một - một, một-nhiều), các mức kiểm tra mức toàn vẹn của dữ liệu cũng như định dạng và những định nghĩa mặc định cho môi trường (Filed) trong một bảng Bằng việc thực hiện sự toàn vẹn dữ liệu ở mức database engine, Access ngăn chặn được sự cập nhật và xoá thông tin không phù hợp
Access cung cấp tất cả các kiểu dữ liệu cần thiết cho trường, bao gồm văn bản (text), kiểu số (number), kiểu tiền tệ (currency), kiểu ngày/tháng (data/time), kiểu meno, kiểu có/không (yes/no) và các đốI tượng OLE.Nó cũng hỗ trợ cho các giá trị rỗng ( Null) khi các giá trị này bị bỏ qua
Việc xử lý quan hệ trong Access đáp ứng được những đòi hỏI vớI kiến trúc mềm dẻo của nó Nó có thể sử dụng như một hệ quản lý CSDL độc lập, hoặc theo mô hình Client/ Server Thông qua ODBC (Open Database Connectivity), chúng ta có thể kết nốI vớI nhiều dạng dữ liệu bên ngoài, ví dụ như: Oracle, Sybase, thậm chí vớI cả những CSDL trên máy tính lớn như DB/2
VớI Access chúng ta cũng có thể phân quyền cho người sử dụng và cho các nhóm trong việc xem và thay đổI rất nhiều các kiểu đối tượng dữ liệu
Tóm lại: Microsoft Access là một hệ quản trị cơ sở dữ liệu tương tác với ngườI sử dụng chạy trên môi trường Windows, nó tăng thêm sức mạnh trong công tác tổ chức, tìm kiếm và tổ chức thông tin Các quy tắc kiểm tra dữ liệu, giá trị mặc định, khuôn
Trang 13nhập dữ liệu … của Microsoft Access hoàn toàn đáp ứng yêu cầu Khả năng kết nối và công cụ truy vấn mạnh của nó giúp ta tìm kiếm thông tin một cách nhanh chóng Nó cho phép ta thiết kế được các biểu mẫu và báo cáo phức tạp đáp ứng các yêu cầu đề ra Đối với những yêu cầu quản lý dữ liệu ở mức độ chuyên môn cao
III GIỚI THIỆU TỔNG QUAN NGÔN NGỮ LẬP TRÌNH VISUAL BASIC
Visual Basic là một ngôn ngữ thảo chương hoàn thiện và hoạt động theo kiểu điều khiển bởi sự kiện ( Event – Driven programming language ) nhưng lại giống ngôn ngữ thảo chương có cấu trúc ( Structured programming language )
Theo Bill Gates đã mô tả Visual Basic như một “ công cụ vừa dễ lại vừa mạnh để phát triển các ứng dụng Windows bằng Basic “.Điều này dường như chưa đủ để minh chứng cho tất cả những phô chương trên, trừ khi bạn hiểu ra rằng hiện đang có hàng chục triệu ngườI dùng Microsoft Windows
Visual Basic đã từng nhanh hơn, mạnh hơn và thậm chí dễ dùng hơn Visual Basic 1.0 Visual Basic 3 bổ sung các cách thức đơn giản để điều khiển các cơ sở dữ liệu mạnh nhất sẵn có Visual Basic 4 lại bổ sung thêm phần hỗ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basic thành một ngôn ngữ lập trình hướng đối tượng đầy
đủ Visual Basic 5 đã bổ sung khả năng tạo các tập tin thi hành thực sự, thậm chí có khẳ năng sáng tạo các điều khiển riêng Và bây giờ, Visual Basic 6.0 bổ sung một số tính năng ngôn ngữ đã được mong đợi từ lâu, tăng cường năng lực Internet, và cả các tính năng cơ sở dữ liệu mạnh hơn Quả thật, Visual Basic đã trở thành mạnh nhất và trôi chảy nhất chưa từng thấy
Mặt khác, lợi điểm khi dùng Visual Basic chính là ở chỗ tiết kiệm thời gian và công chức so với ngôn ngữ lập trình khác khi xây dựng cùng một ứng dụng
Visual Basic gắn liền vớI khái niệm lập trình trực quan ( Visual ), nghĩa là khi thiết kế một chương trình, ta nhìn thấy ngay kết quả qua từng thao tác và giao diện khi chương trình thực hiện Đây là thuận lợi lớn so với các ngôn ngữ lập trình khác, Visual Basic cho phép ta chỉnh sửa đơn giản, nhanh chóng màu sắc, kích thước, hình dáng của các đốI tượng trong ứng dụng
Trang 14Một khả năng khác của Visual Basic chính là khả năng kết hợp các thư viện liên kết động DLL ( Dynamic Link Library ) DLL chính là phầm mở rộng cho Visual Basic tức là khi xây dựng một ứng dụng nào đó đã có một số yêu cầu mà Visual Basic chưa đáp ứng đủ, ta viết thêm DLL phụ trợ.
Khi viết chương trình bằng Visual Basic, chúng ta phải qua hai bước:
Thiết kế giao diện ( Visual Programming )
Viết lệnh ( Cade Programming )
Nó cùng hỗ trợ các cấu trúc:
- Cấu trúc IF… THEN …ELSE
- Các cấu trúc lặp (Loops)
- Cấu trúc rẽ nhánh ( Select Case )
- Hàm ( Function ) và chương trình con ( Subroutines )
Visual Basic đưa ra phương pháp lập trình mớI, nâng cao tốc độ lập trình
Cũng như các ngôn ngữ khác, mỗI phiên bản mớI của Visual Basic đều chứa đựng những tính năng mớI chẳng hạn Visual Basic 2.0 bổ sung cách đơn giản để điều khiển các cơ sở dữ liệu mạnh nhất có sẵn, Visual Basic 4.0 bổ sung thêm phần hỗ trợ phát triển 32 bit và chuyển sang ngôn ngữ lập trình hướng đốI tượng đầy đủ, hiện nay ngôn ngữ mớI nhất là Visual Basic 6.0 hỗ trợ nhiều tính năng mạnh hữu hạn OLE DB để lập trình dữ liệu Các lập trình viên đã có thể dùng Visua Basic 6.0 để tự mở rộng Visual Basic
Visual Basic có sẵn các công cụ như: Các hộp văn bản, các nút lệnh, các nút tuỳ chọn, các hộp kiểm tra, các hộp liệt kê, các thanh cuộn, các hộp thư mục và tập tin… có thể dùng các khung kẻ ô để quản lý dữ liệu theo dạng bảng, liên lạc vớI các ứng dụng Windows khác, truy nhập các cơ sở dữ liệu gọI chung là điều khiển thông qua công nghệ OLE của Microsoft
Hệ trợ giúp trực tuyến đầy đủ giúp tham khảo nhanh chóng khi phát triển một ứng dụng Tuy nhiên việc này trên VB 6.0 đòi hỏI phảI có CD ROM
Visual Basic còn hỗ trợ việc lập trình bằng cách hiện tất cả tính chất của đối tượng mỗI khi ta định dùng đến nó Đây là điểm mạnh của ngôn ngữ lập trình hiện đạI
Trang 15* Các bước thiết kế một ứng dụng Visual Basic:
- Xây dựng các cửa sở mà ngườI dùng sẽ thấy
- Quyết định những sự kiện mà các điều khiển trên cửa sổ sẽ nhận ra
* Các nội dung diễn ra khi ứng dụng đang chạy:
- Visual Basic giám sát các cửa sổ và các điều khiển trong từng cửa sổ cho tất cả mọI sự kiện mà từng điều khiển có thể nhận ra ( các chuyển động chuột, các thao tác nhắp chuột, di chuyển, gõ phím …)
- Khi Visual Basic phát hiện một sự kiện, nếu không có một đáp ứng tạo sẵn cho
sự kiện đó, Visual Basic sẽ xem xét ứng dụng để kiểm tra ngườI dùng đã viết thủ tục cho sự kiện đó hay chưa
- Nếu đã viết rồi, Visual Basic sẽ thi hành và hình thành nên thủ tục sự kiện đó và quay trở lạI bước đầu tiên
* Các bước này quay vòng cho đến khi ứng dụng kết thúc
Sau khi đã tìm hiểu thế nào là hoạt động điều khiển bởI sự kiện và các hỗ trợ của Visual Basic mà phiên bản mớI nhất là Visual Basic 6.0, chúng ta sẽ thấy đây là một công cụ lập trình dễ chịu và có xu hướng trở thành môi trường lập trình hoàn hảo cho những năm sắp tới
Để hiểu rõ phần trên, sau đây tôi sẽ trình bày cụ thể hơn về ngôn ngữ lập trình Visual Basic 6.0
IV THIẾT KẾ GIAO DIỆN
Do Visual Basic là ngôn ngữ lập trình hướng đối tượng nên việc thiết kế giao diện rất đơn giản bằng cách đưa các đối tượng vào Form và tiến hành thay đổi một số thuộc tính của các đối tượng đó
1 Form
Form là biểu mẫu của mỗI ứng dụng trong Visual Basic Ta dùng Form (như là một biểu mẫu ) nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần giao tiếp với người dùng
Trang 16Ta có thể xem Form như là bộ phận mà nó có thể chứa các bộ phận khác Form chính của chúng tạo nên giao tiếp cho ứng dụng Form chính là giao diện chính của ứng dụng, các Form khác có thể chứa các hộp thoại, hiện thị cho nhập dữ liệu và hơn thế nữa.
Trong nhiều ứng dụng Visual Basic, kích cỡ và vị trí của biểu mẫu vào lúc hoàn tất thiết kế ( thường mệnh danh là thờI gian thiết kế, hoặc lúc thiết kế ) là kích cỡ và hình dáng mà người dùng sẽ gặp vào thời gian thực hiện, hoặc lúc chạy Điều này có nghĩa là Visual Basic cho phép ta thay đổI kích cỡ và di chuyển vị trí của Form cho đến bất kỳ nơi nào trên màn hình khi chạy một đề án, bằng cách thay đổI các thuộc tính của
nó trong cửa sổ thuộc tính đốI tượng ( Properties Windows ) Thực tế, một trong những
tính năng thiết yếu của Visual Basic đó là khả năng tiến hành các thay đổI để đáp ứng các sự kiện của ngườI dùng
2 Tools Box ( Hộp công cụ )
Bản thân hộp công cụ này chỉ chứa các biểu tượng biểu thị cho các điều khiển mà
ta có thể bổ sung vào biểu mẫu là bảng chứa các đốI tượng được định nghĩa sẵn của Visual Basic Các đối tượng này được sử dụng trong Form để tạo thành giao diện cho các chương trình ứng dụng của Visual Basic Các đốI tượng trong thanh công cụ sau đây là công dụng nhất:
a Scroll Ba: (Thanh cuốn)
Các thanh cuốn được dùng để nhận nhập liệu hoặc hiện thị kết xuất khi ta không quan tâm đến giá trị chính xác của đối tượng nhưng lạiquan tâm sự thay đổI đó nhỏ hay lớn Nói cách khác, thanh cuốn là đốI tượng cho phép nhận từ người dùng một giá trị
tuỳ theo vị trí con chạy (Thumb ) trên thanh cuốn thay cho cách gõ giá trị số.
Thanh cuốn có các thuộc tính quan trọng nhất là:
- Thuộc tính Min: Xác định cận dướI của thanh cuốn
- Thuộc tính Max: Xác định cận trên của thanh cuốn
- Thuộc tính Value: Xác định giá trị tạm thời của thanh cuốn
b Option Button Control ( Nút chọn )
Trang 17Đối tượng nút chọn cho phép người dùng chọn một trong những lựa chọn đưa ra Như vậy, tại một thời điểm chỉ có một trong các nút chọn được chọn.
c Check Box (Hộp kiểm tra )
Đối tượng hộp kiểm tra cho phép người dùng kiểm tra một hay nhiều điều kiện của chương trình ứng dụng Như vậy, tạI một thờI điểm có thể có nhiều hộp kiểm tra được đánh dấu
d Label ( Nhãn )
Đối tượng nhãn cho phép ngườI dùng gán nhãn một bộ phận nào đó của giao diện trong lúc thiết kế giao diện cho chương trình ứng dụng Dùng các nhãn để hiện thị thông tin không muốn người dùng thay đổi Các nhãn thường được dùng để định danh một hộp văn bản hoặc một điều khiển khác bằng cách mô tả nộI dung của nó Một công
cụ phổ biến nhất là hiện thị thông tin trợ giúp
Đối tượng Command Button cho phép quyết định thực thi một công việc nào đó
i Directory List Box, Drive List Box, File List Box
Đây là các đối tượng hỗ trợ cho việc tìm kiếm các tập tin trên một thư mục của ổ đĩa nào đó
j List Box ( Hộp danh sách)
Đối tượng List Box cho phép xuất các thông tin về chuỗi
Trên đây là những đốI tượng được sử dụngthường xuyên nhất trong phần thiết kế giao diện cho một chương trình ứng dụng của Visual Basic
3 Properties windows (Cửa sổ thuộc tính)
Trang 18Properties Windows là nơi chứa danh sách các thuộc tính của đối tượng cụ thể Các thuộc tính này có thể thay đổi được để phù hợp vớI yêu cầu về giao diện của các chương trình ứng dụng.
V VIẾT LỆNH CHO CÁC ĐỐI TƯỢNG
Điểm mẫu chốt cần phải nhận thức rõ trongkhâu lập trình Visual Basic là: Visual Basic xử lý mã chỉ để đáp ứng các sự kiện Thực vậy, không như nhiều ngôn ngữ lập trình khác, các dòng mã thi hành trong một chương trình Visual Basic phải nằm trong các thủ tục hoặc các hàm, các dòng mã bị cô lập sẽ không làm việc
1 Cửa sổ code
Của sổ Code luôn là nơi để viết mã Cửa sổ Code có một thanh tách (Split bar )
nằm bên dướI thanh tiêu đề, tạI đầu thanh cuộn dọc Thanh cuộn này có tác dụng tách cửa sổ Code thành hai cửa sổ Code con để có thể xem cả hai phần cửa sổ Code cùng một lúc
1.1 Hộp liệt kê Object
Hộp liệt kê bên trái cửa sổ Code là hộp Object, nó liệt kê mọi đốI tượng trên Form, cùng với một đối tượng trên General lưu trữ mã chung mà tất cả mọi thủ tục dính kèm với Form có thể sử dụng
1.2 Hộp liệt kê Procedure
Hộp liệt kê bên phải cửa sổ Code là hộp liệt kê Procedure Hộp liệt kê này cung cấp mọi sự kiện mà đối tượng đã lựa trong hộp liệt kê Object nhận ra
Trang 191.3 Intellisense
Intellisense là một công nghệ bổ sung hoàn thành phức hợp của hãng Microsoft,
nó cho phép đỡ mất công gõ và tra cứu Intellisense bật ra các hộp nhỏ vớI các thôg tin hữu ích về đốI tượng mà ta đang làm việc Nó có ba thành phần như mô tả dướI đây:
- QuickInfo: Đây là nơi có thông tin về cú pháp của một toán tử Visual Basic MỗI khi nhập một khoá theo sau là một dấu cách hoặc dấu ngoặc đơn mở, một gợi ý thủ thuật hiện ra cung cấp cú pháp của thành phần đó
- List Properties/ Methods: Tính năng Intellisense này đưa ra một danh sách các tính chất và phương pháp của một đốI tượng ngay sau khi bạn gõ dấu chấm
- Available Constants: Tính năng Intellisense tiện dụng này cung cấp một danh sách các hằng sẵn có
2 Biến
Trong Visual Basic, các biến [Variables] lưu giữ thông tin ( các giá trị ) Khi dùng một biến, Visual Basic xác lập một vùng trong bộ nhớ máy tính để lưu giữ thông tin Trong Visual Basic, tên biến có độ dài tớI 225 ký tự và trừ ký tự đầu tiên phảI là một mẫu tự, ta có thể gộp một tổ hợp mẫu tự, con số và gạch dướI bất kỳ Chữ hoa, chữ thường trong tên biến không quan trọng
Dữ liệu cũng có nhiều kiểu: kiểu dữ liệu số, chuỗi và Boolean Thực tế, Visual Basic điều khoản 14 kiểu dữ liệu chuẩn Ta cũng có thể định nghĩa các kiểu dữ liệu riêng Các kiểu thường dùng để điều tác dữ liệu là:
Các biến chuỗI [String] lưu giữ ký tự Một chuỗI có thể có một hay nhiều ký tự Tất nhiên, biến lưu trữ một chuỗI được gọi là một biến chuỗi Một phương pháp để định danh các biến kiểu này đó là đặt một đầu đồng đô la ($) vào cuốI tên biến: Astring Variables
Trên lý thuyết, các biến chuỗI có thể lưu giữ khoảng 2 tỷ ký tự Trong thực tế, một máy cụ thể có thể lưu giữ ít hơn, do các hạn chế của bộ nhớ, các yêu cầu phần việc chung của Windows, hoặc số lượng chuỗI dùng trong biểu mẫu
Trang 20b Kiểu Integer
Các biến số nguyên Integer lưu trữ các trị số nguyên tương đốI nhỏ ( Giữa –32768
và + 32767) Số học số nguyên tuy rất nhanh song bị hạn chế trong phạm vi này Dấu định danh được dùng dấu “ %”
c Kiểu Long Integer
Các biến số nguyên dài Long Integer lưu trữ các số nguyên giữa
– 2,147,483,648 và +2,147,483,647 Dấu định danh được dùng là dấu “ &”
Các biến kiểu này lưu giữ các con số ở các mức xấp xỉ Chúng có thể là phân bố nhưng chỉ có thể đảm bảo độ chính xác ở mức bảy chữ số Dấu định danh được dùng là dấu “!”
e Kiểu Double Precsion
Kiểu dữ liệu chính đôi [double_precision] khi cần các con số có tớI 16 vị trí độ chính xác và cho phép có hơn 300 chữ số Các phép tính cũng là xấp xỉ cho kiểu biến này, chỉ có thể căn cứ trên 16 chữ số đầu Ngoài ra, vớI các con số chính đôi, phép tính thực hiện tương đốI chậm, chủ yếu được dùng trong các phép tính khoa học của Visual Basic Dấu định danh dùng cho biến chính đôi là dấu pao
“# “ Phải dùng số “ # “ tạI cuốI con số thực tế nhất là khi có tương đốI ít chữ số bởI bằng không, Visual Basic sẽ mặc nhận ý ta muốn dùng độ chính xác của một số chính đơn chính xác hơn nếu ta viết
Trang 21đến nửa đêm ngày 31 tháng 12 năm 9999 Ta phải bao phép gán cho các biến ngày tháng bằng dấu #.
“ Dim” để khai báo biến
Ví dụ: Dim As integer
ĐIỀU KHIỂN LUỒNG CHƯƠNG TRÌNH
1 Phát biểu IF
IF điều kiện THEN
Các lệnh thực hiện khi điều kiện thỏa
ELSE
Các lệnh thực hiện khi điều kiện không thỏa
END IF
2 Phát biểu SELECT CASE
Đây là cấu trúc chọn lựa
SELECT CASE X
CASE 0:
Trang 22DO WHILE Điều kiện
Các lệnh thực hiện khi điều kiện còn thỏa
LOOP WHILE Điều kiện
Như vậy với cấu trúc này, vòng lặp thực hiện ít nhất 1 lần
Trang 23Các lệnh
LOOP UNTIL Điều kiện
Tương tự như DO LOOP WHILE Vòng lặp thực hiện ít nhất 1 lần
7 Phát biểu EXIT FOR
Phát biểu EXIT được sử dụng khi cần dừng ngay quá trình lặp FOR
8 Lệnh EXIT FOR
Phát biểu EXIT được sử dụng khi cần ngay quá trình lặp FOR
9 Lệnh EXIT DO
Phát biểu EXIT DO sử dụng khi cần dừng ngay quá trình lặp của phát biểu DO
VI HIỂN THỊ THÔNG TIN VÀ NHẬN THÔNG TIN
Ta sử dụng các hộp đối thoại để hiện thị thông tin cho người dùng hoặc nhận thông tin Trong Visual Basic có ba loại hộp đối thoại:
- Hộp đối thoại có sẵn (Predefined Dialog Box).
- Hôp đối thoạicủa ngườI dùng (Custom Dialog Box)
- Hộp đối thoại chung (Common Dialog Box)
2 Phát biểu MsgBox hay hàm MsgBox()
Ta sử dụng MsgBox hay hàm MsgBox() để hiện thị thông tin báo và nhận lại trả lời của người dùng
Phát biểu MxgBox hay hàm MsgBox() có ba đốI:
- Thông báo cần hiện thị: chuỗI ký tự
- Dạng hộp đối thoại: số nguyên ( integer)
- Tiêu đề hộp đối thoại: chuỗI kí tự
MsgBox (Message, Dialog Type, Tittle)
Trang 24Khi sử dụng hàm MsgBox() thì ta phải có giá trị trở về
* Hàm Input Box()
Hàm InputBox() dùng nhận thong tin từ người dùng Hàm InputBox() gồm: Một dòng thông báo (Message), hộp sọan thảo và hai nút OK, Cencel Người dùng đưa thông tin nhập vào hộp thoại soạn thảo và bấm OK
Tham số thứ nhất của InputBox() là dòng thông báo, thông số thứ hai là tiêu đề dòng hộp thọai InputBox () trả về chuỗI ký tự trong hộp soạn thảo
Hàm InputBox còn có thêm ba thông số khác Đối thứ ba xác định chuỗi ban đầu trong hộp soan thảo ngay khi hộp đối thoại xuất hiện
Hai đối số cuốI xác định toạ độ của hộp đối thoại
+ Hộp đối thoạicủa người dùng:
Đây là loại hộp đối thoại do người người lập trình định nghĩa để tương thích yêu cầu nhập thông tin của người sử dụng
Dùng phương thức Show với đối số 1 ( do hộp thoại dạng Modal ) để hiện thị hộp thoại ngườI dùng
Phép toán phổ dụng nhất đốI vớI các chuỗI là gom hai chuỗI lạI vớI nhau ( thuật toán gọI phép nốI [concatenate]) Để ghép nốI hai chuỗI, ta dùng dấu “&” day dấu “+”
Trang 25Dấu và nốI các chuỗI theo thứ rtự mà ta nêu chúng Do đó, giống như việc cộng các con số, thứ tự quan trọng khi dùng dấu & để nghép hai chuỗI vớI nhau Cũng có thể dùng dấu & để nghép số lượng tuỳ ý trước khi Visual Basic thực hiện điều lệnh gán Tuy trong Visual Basic vẫn có thể dùng dấu + để nghép các số vớI nhau, song không nên làm thế Nó có thể dẫn đến các mốI rất khó tìm vì Visual Basic có thói quen
là chuyển đỏI các chuỗI thành con số khi nó cho là đúng nghĩa
b Các hàm về chuỗi
Phần lớn cái ta cần trong lập trình là phân tích dữ liệu Tiến trình này có thể đơn giản chỉ là việc tách nhỏ một tên đầy đủ thành tên thường gọI và tên họ, song cũng có thể phức tạp như viết mã cần thiết để chuyển đổI một tập tin từ dạng này sang dạng thức khác MọI kiểu điều tác như vậy buộc ta phảI nắm dữ các hàm điều quản chuỗI Visual Basic Trong Visual Basic, các hàm này cho phép ta xét từng ký tự trong chuỗI tách riêng các chuỗI thay một phần trong chuỗI bằng nộI dung khác, v.v
1 Phân tích chuỗi bằng hàm Mid, Left và Right
Để tiến hành phân tích một chuỗi hiện có, ta phảI đặt một hàm trong thân vòng lặp cho phép kéo từng mẫu tự riêng lẻ ra khỏI một chuỗi
For I = I To Len ( The String )
‘ mã hàm làm việc vớI các ký ự riêng lẻ
Next I
a Hàm Mid
Trong các hàm trên, quan trọng nhất, ta có hàm Mid, trả về một chuỗI lưu trữ trong một variant, và hàm Mi$, hàm trả về chuỗI thực tế Có thể dùng hoán đổI hai phiên bản này
Cú pháp của hàm Mid là:
Mid(String, start [length]
Khoản nhập đầu tiên lưu trữ chuỗI ( hoặc biểu thức chuỗI) mà ta muốn cắt bỏ Tiếp theo là vị trí khởI đầu của kí tự mà ta muốn ra khỏI chuỗi Vị trí chót tuỳ chọn sẽ chỉ định số lượng kí tự mà ta muốn kéo ra Hai tuỳ chọn chót này có thể là những số nguyên dài hoặc một biểu thức mà Visual Basic có thể làm tròn để làm trong miền này
Trang 26Mid là một hàm có ba ( hoặc thỉnh thoảng là hai) tham số, hay đốI số Cả hai thuật ngữ này đều vay mượn từ toán học Trong một hàm, từng đói số được tách biệt vớI nhau bằng dấu phẩy Hàm Mid thườg dùng ba mẩu tin: Một chuỗI tạI vị trí đầu tiên và các số nguyên hay các số nguyên dài tạI hai vị trí còn lại.
Mid còn một tính năng hữu ích khác Ta có thể dùng nó như một điều lệnh để tiến hành các thay đổI bên trong một chuỗI
Hàm InStr báo cho biết chuỗI có thuộc thành phần của một chuỗI khác hay không ( chuyên ngữ gọI là “ chuỗI con của “) Nếu có, InStr sẽ báo cho biết vị trí bắt đầu chuỗI con
Hàm InStr cũng cho phép chỉ định bắt đầu tìm kiếm tạI một ký tự nhất định
Ví dụ: InStr ([nowi bắt đầu]) chuỗI tìm kiếm, chuỗI tìm thấy ) định nơi bắt đầu tìm kiếm Nếu để trống mục này, cuộc tìm kiếm sẽ bắt đầu từ vị trí thứ nhất
Trang 27Do hàm InStr trả về giá trị zêzo ( nghĩa là False) khi Visual Basic không tìm thấy một ký tự, hoặc một giá trị phi zêzo (True) khi tìm thấy, nên thông thường ta phảI tự mình viết các vòng lặp If _ Then hoặc Do dùng hàm InStr để tiến hành kiểm tra.
Nếu dùng giá trị mà hàm InStr đạt được trước đó, ta có thể tìm kiếm các lần xuất hiện lặp lạI của một chuỗi
d Hàm Val
Visual Basic có một hàm tên Val Đây là một dạng hàm chuyển đổI tất thảy, vì thế trong Visual Basic ngườI ta vẫn thường dùng Val để chuyển đổI một chuỗI số thành một con số Mặt khác Val lạI tỏ ra dễ dãi vớI các chuỗI nhập dữ liệu hơn Val đơn giản đọc qua chuỗI cho đến khi gặp một ký tự phi số ( hoặc một dấu chấm thứ hai ) Con số
mà ta có được tự nó sẽ được xác dịnh bởi nơi nó ngưng tìm
e Hàm Str (Str$)
Visual Basic cho phép chuyển được một con số thành một chuỗi Có nhiều cách
để thực hiện, song hàm Str vẫn là cách đơn giản nhất Hàm Str trả về một Variant lưu trữ một chuỗI còn hàm Str$ lạI trả về một chuỗI thuần tuý Các hàm Str và Str$ chuyển đổI các con số thành chuỗI, song không xoá sạch chúng hoàn toàn
Hàm này được sử dụng để loạI bỏ các khoảng trắng ở hai đầu một chuỗi.Ngoài ra, còn
có hàm Ltrim và Rtrim dùng để cắt bỏ các khoảng trắng ở bên trái, bên phải chuỗi
1 Mảng
Trang 28Trước khi dùng bảng ta cần khai báo mảng bao gồm: Tên mảng, số phần tử Tương tự như khai báo biến, nếu mảng được khai báo trong phần khai báo chung của Form, mảng được dùng chung cho mọI thủ tục trong Form Nếu mảng được khai báo trong tập tin module vớI các khoá Gobal, mảng được dùng chung cho mọI thủ tục có mặt trong Project Có khi phảI lưu trữ một mảng trong một variant, ta dùng chỉ mục bình thường để tìm đến nó.
Mảng biến [variant array] ( gọI tắt là mảng ) là cấu trúc căn bản để tổ chức thông tin trong Visual Basic Có thể dễ dàng lưu trữ và tìm nhiều mục trong mảng Để phân biệt giữa các mục lưu trữ trong mảng, ta dùng kiểu tham số đặc biệt có tên chỉ mục [index]
Tất nhiên, một khi bắt tay xây dựng các mảng lớn, ta cần có các phương cách nhanh chóng, hiệu quả để tìm và sắp xếp nộI dung
Để thực hiện ta dùng hàm Array vớI cú pháp là:
2 Các danh sách mảng môt chiều
Chủ chương của mảng một chiều ( gọI là danh sách [list] đó là cung cấp một phương thức có hệ thống để đặt tên các nhóm biến có liên quan, thuộc thành phần của một mảng VớI Visual Basic, mảng một chiều [ one_dimensional array] chẳng qua là một tập hợp [collection] các biến, mà từng biến được định dang bởI hai nộI dung:
Trang 29* Cách làm việc với mảng một chiều
Các giá rị bên trong mảng một chiều thường được gán bằng một vòng lặp For_Next hoặc dùng một vòng lặp Do kèm vớI một đợt kiểm tra, bởI thông thường ta muốn ngưng trước khi nhập toàn bộ dữ liệu Có thể ta thấy an tâm khi luôn biết chắc số lượng các mục trong một mảng một chiều Nó giúp cho tiến trình gỡ rốI dễ dàng hơn, cũng như hầu hết các lập trình viên, có thể thấy các vòng lặp For_Next dễ dàng hơn so vớI vòng lặp Do
Các hộp liệt kê cũng là một cách để lưu trữ thông tin ( kiểu mảng) trong vài tình huống, việc dùng hộp liệt kê có thể là một phương cách lưu trữ dữ liệu tốt hơn so vớI mảng một chiều
3 Mảng đa chiều
Có thể dùng các mảng có nhiều chiều; thường được gọI là mảng đa chiều [multidimensional array] Cũng như các danh sách dữ liệu dẫn đến một chỉ số dướI đơn ( các mảng một chiều), các bảng dữ liệu dẫn đến các chỉ số dướI kép ( mảng hai chiều)
Ta có qui ước: tham chiếu khoản nhập đầu tiên cho số lượng hàng và khoản nhập thứ hai để cho số lượng cột Theo qui ước này, ta có thể mô tả đoạn mã của bảng cửu chương dướI dạng điền trọn một hàng, theo từng cột nhập thứ hai để cho số lượng cột Theo qui ước này, ta có thể mô tả đoạn mã của bảng cửu chương dướI dạng điền trọn một hàng, theo từng cột, trước khi dờI đến hàng kế tiếp
Mảng được sử dụng trong chương trình ARRAYS là mảng một chiều Visual basic cho phép khai báo mảng nhiều chiều ví dụ sau khi khai báo mảng hai chiều : Static MyArray (0 to 3,1 to 4)
Các phần tử mảng được liệt kê như sau:
MyArray (0,1) My Array (0,2) MyArray (0,3) MyArray (0,4)MyArray(1,1) MyArray (1,2) MyArray (1,3) MyArray (1,4)MyArray(2,1) MyArray (2,2) MyArray (2,3) MyArray (2,4)MyArray(3,1) MyArray (3,2) MyArray (3,3) MyArray (3,4)Tương tự khai báo mảng ba chiều
Dim MyArray (1 to 3, 1 to 7, 1 to 5)
Trang 30Visual Basic cho phép mảng khai báo mảng tốI đa có 60 chiều! Sau đây là mã lệnh cho phép gán giá trị 3 vào các phần tử mảng hai chiều
Static MyArray (1 to 10, 1 to 10)Dim Counter 1, Counter 2
For Counter 1 = 1 to 10For Counter 2 = 1 to 10MyArray (Counter 1, Counter 3) =3Next
Next
4 Mảng động và mảng cố định
Trong Visual Basic, các mảng không thể kết thúc mở Mặc dù, các giới hạn khá lớn, tuỳ thuộc khá nhiều vào lượng bộ nhớ đang có, ta phảI báo cho Visual Basic biết phảI chừa riêng một lượng bộ nhớ là bao nhiêu cho mảng trước khi dùng nó
Có hai kiểu mảng trong Visual Basic: mảng cố định [fixed array], ở đó việc phân
bổ bộ nhớ không bao giờ thay đổI trong khi đang chạy chương trình, và mảng động [dynamic arrays], ở đó có thể thay đổI kích cỡ ngay khi chạy chương trình
Ưu điểm của mảng cố định là: do bộ nhớ được chừa riêng ngay tạI đầu chương trình, ta hiếm khi gặp sự cố cạn kiệt bộ nhớ trong khi chương trình đang chạy
Ưu điểm của mảng động là: Khả năng linh hoạt của chúng; có thể thay đổI kích
cớ để đáp ứng những gì mà chương trình thường gặp
Có thể cả mảng động và mảng cố định sẵn dùng cho toàn bộ ứng dụng, cho một Form hay một module cụ thể, hoặc chỉ trong phạm vi của một thủ tục hay hàm Khi dùng mảng bao giờ cũng phảI khai báo sao cho số lượng cần phảI vừa đủ theo yêu cầu ứng dụng cần xây dựng chương trình, không nên lãng phí bộ nhớ Tuy nhiên có nhiều trường hợp kích thước mảng phụ thuộc lúc chương trình thực hiện (run – time), chúng
ta không thể xác định trước được Visual Basic cung cấp một khả năng đáp ứng trường hợp này: khai báo mảng kích thước thay đổI - mảng động Ví dụ sau khi khai báo mảng động
Sub cmdArray 1_Click()
Trang 31Dim Counter
‘ khai báo mảng Array 1 là mảng động
Static Array 1() As Integer
‘ Thay đổI kích thước mảng Array 1
ReDim Array 1( 1 to 15) As IntegerFor Counter = 1 to 15
Array 1( Counter) = CounterNext
Thay đổI lại kích thước mảng Array 1
ReDim Array 1( 1 to 5) As IntegerEnd Sub
Đầu tiên khi khai báo
Static Array 1() As Integer
Kích thước mảng Array 1 chưa xác định Lệnh sau sẽ cố định mảng Array 1 có 15 phần tử:
ReDim Array 1( 1 to 15) As IntegerSau một số xử lý ( ví dụ gán giá trị cho 15 phần tử ), mảng Array 1 được cố địng lạI chỉ còn 5 phần tử
ReDim Array 1(1 to 5) As IntegerMột lưu ý khi thay đổI kích thước mảng, các nộI dung cũ sẽ bị mất,nếu ta muốn giữu lạI giá trị cũ của 5 phần tử còn lạI sau khi thay đổI, ta cần viết lạI như sau:
ReDim Preserve Array 1( 1 to 5) As Integer
5 Dùng danh sách và mảng với các thủ tục và hàm
Visual Basic có một đặc phận tuyệt vờI để dùng các danh sách và các mảng trong các thủ tục và các hàm Không như nhiều ngôn ngữ khác, Visual Basic dễ dàng gởi cho thủ tục các danh sách hay mảng có kích cỡ bất kỳ Các mảng luôn được chuyển theo tham chiếu Điều này có nghĩa là mọI thay đổI đã tạo cho mảng hay cho các khoản nhập trong mảng vẫn trường tồn cả khi Visual Basic rờI hàm thủ tục đó
Trang 32Tất nhiên để mảng chuyển theo tham chiếu có nghĩa là ta chẳng cần dùng các mảng cấp Form trừ khi muốn mảng sẵn dùng khắp nơi Để gửi một tham số mảng cho một thủ tục hay hàm, ta chỉ việc dùng tên mảng theo sau là các dấu ngoặ đơn mở và đóng (), trong danh sách các tham số
TẬP TIN TRUY CẬP TUẦN TỰ
Khi truy xuất tập tin từ đầu theo từng dòng văn bản, tập tin như thế được gọi là tập tin truy xuất tuần tự
Ta có thể mở tập tin theo kiểu truy xuất tuần tự theo ba cách
- Cách1: Output
- Cách 2: Append
- Cách 3: Input
6 Mở tập tin theo kiểu truy xuất tuần tự bằng Output
Dùng kiểu Output tạo tập tin truy cập tuần tự Sau khi tạo tập tin, ta có thể dùng các lệnh xuất để viết tên tập tin này Ví dụ sau tạo tập tin TRY.TXT:
FileNum = FreeFile Open “TRY.TXT” For Output As FileNum
Nếu tập tin TRY.TXT đã tồn tạI, nộI dung cũ bị xóa đi! Tập tin TRY.TXT không
có đường dẫn nên có được tạo trong thư mục hiện hành Muốn tạo ở thư mục xác định nào đó ( ví dụ C:\ PROG), ta cần chỉ rõ như sau:
Open “ C:\PROG\TRY.TXT” For Output As FileNum
Tập tin mở bằng kiểu Output chỉ cho phép ta viết lên mà thôi Ta có thể viết bằng phát biểu Print#
FileNum = FreeFileOpen “ TRY.TXT” For Output As FileNum
‘ Viết nộI dung thuộc tính Text cuat MyText ra
‘ TRY.TXTPrint # FileNum, txtMyText.Text
‘Đóng tập tin TRY.TXTClose FileNum
Trang 33Phát biểu Print cần hai tham số Tham số thứ nhất là thẻ File cần nghi ra và tham
số thứ hai là chuỗI cần nghi
7 Mở tập tin theo kiểu truy xuất tuần tự bằng Append:
Kiểu Append tương tự như Output nhưng điểm khác chính là khi tập tin được mở
đã tồn tạI, nộI dung cũ không bị xoá Gỉa sử tập tin TRY.TXT đang có sẵn hai dòng:
THIS IS LINE NUMBER 1THIS IS LINE NUMBER 2
Mở TRY.TXT theo kiểu Append:
FileNum = FreeFileOpen “ TRY.TXT” For Append As FileNumPrint # FileNum, “THIS IS A NEW LINE”
Close FileNum
Bây giờ TRY.TXT chứa:
THIS IS LINE NUMBER 1THIS IS LINE NUMBER 2THIS IS A NEW LINENếu đoạn lệnh trên thực hiện một lần nữa, TRY.TXT chứa
THIS IS LINE NUMBER ITHIS IS LINE NUMBER 2THIS IS A NEW LINETHIS IS A NEW LINE
8 Mở tập tin theo kiểu truy xuất tuần tự bằng Output
Khi cần đọc tập tin truy xuất tuần từ, ta cần mở tập tin theo kiểu Input Sau đó, dùng hàm Input$ ()để đọc Ví dụ, sau khi mở TRY.TXT theo kiểu Input và đọc vào txtMytext:
FileNum = FreeFileOpen “ TRY TXT” For Input As FileNum
Trang 34Open “ TRY.TXT “ For Input As FileNum.
‘Đọc vào toàn bộ TRY.TXT thuộc tính Text của
‘ txtMytexttxtMytext.Text = Input$ (LÒ (FileNum), FileNum)
‘Đóng tập tin TRY.TXTClose FileNum
Hàm Input$ () cần hai tham số Tham số thứ nhất xác định số Byte cần đọc, tham
số thứ hai là thẻ file
9 Phát biểu Write # và Input #
Cách khác thay cho Print # và Input$ () trong viẹc ghi/đọc là Write# và Input#.Phát biểu Write# cho phép ghi một loạt các biến ( dạng chuỗI hay số ) Ví dụ sau viết hai biến MyString và MyNumber ra tập tin TRY.TXT:
FileNum = FreeFileOpen “ TRY.TXT” For OUTPUT As FileNumWrite#FilenNum MyString, MyNumBerClose FileNumber
Phát biểu Input# dùng đọc tập tin nộI dung trở vào các biến Ví dụ đọc lạI giá trị ghi trở lạI các biến MyString và MyNumber:
FileNum = FreeFileOpen “ TRY.TXT” For Input As FileNumInput# FileNum MyString, MyNumBerClose FileNum
IX HÀM VÀ THỦ TỤC DO NGƯỜI DÙNG ĐỊNH NGHĨA
Trong visual Basic, thực tế có hai kiểu thủ tục chung: các thủ tục Function và thủ tục Sub
Thủ tục Function, còn gọI là hàm do ngườI dùng định nghĩa, là phương cách để xây dựng các hàm riêng ngoài các hàm do Visual Basic định sẵn Dẫu đó là hàm do ta
Trang 35viết hay của các lập trình viên Visual Basic cung cấp, nói chung ta xem nó như một đoạn mã tự chưa, được thiết kế để xử lý dữ liệu và trả về giá trị.
Trong khi đó, các thủ tục Sub là những : chương trình trợ lực nhỏ, được dùng khi cần Như vậy các thủ tục Sub là những phần tổng quát hoá của các thủ tục sự kiện mà ta
đã quen thuộc Khác vớI hàm, thường trả về một giá trị, các thủ tục đơn giản thực hiện các việc
Tóm lại, dẫu chọn thủ tục Function hay thủ tục Sub, điểm chủ yếu vẫn là: các thủ tục Function và Sub thực hiện một hay nhiều nộI dung dướI đây:
- Giúp tách nhỏ các công việc lớn thành các phần việc nhỏ
là hàm do ngườI dùng định nghĩa Như thường lệ, Cửa sổ Code vẫn là nơi để tạo mã cho các thủ tục Function
Tên hàm cũng linh hoạt như tên biến, do đó ta nên chọn các tên có ý nghĩa Nhờ vậy, chương trình sẽ minh bạch hơn và cũng dễ gỡ rốI hơn Lưu ý, trừ khi gán cho nó một dấu định danh kiểu rõ rệt ở cuốI tên hoặc thông qua mệnh đề As, kiểu của hàm sẽ ngầm định theo kiểu dữ liệu Variant DướI đây là một dạng định nghĩa hàm, tuy đơn giản nhất nhưng khá phổ biến
Pulic Function FunctionName (parameter 1, paratemeter 2, …)Staterments
FunctionName = expressionStaterments
Trang 36FunctionName = expressionStaterments
Vân vân
END FUNCTION
Ở đó, parameter 1, paratemeter 2, vân vân …, đều là biến Các biến này được xem như những tham số hay đốI số của hàm Kiểu của tham số có thể được chỉ định bởI các thẻ gán khai báo kiểu hoặc bằng các cụm từ As
Khi một điều lệnh Visual Basic sử dụng một hàm, thường có: gọI hàm và chuyển các biểu thức cho các tham số Hàm được xem là trả về giá trị của nó
Kiểu giá trị mà hàm trả về sẽ được chỉ định bằng một thẻ gán khai báo biến (%, !, &, # hoặc $) được chắp vào tên hàm, hoặc tên dùng trong mệnh đề As ở cuốI dòng Function, hoặc một điều lệnh DefType xuất hiện bên trên phần định nghĩa Function Ngoài ra, với một ngoạI lệ ta chỉ có thể gọI một hàm khi dùng cùng vớI số lượng đốI số như các tham số trong phần định nghĩa hàm Từng biến muốn gởI cho tham số phảI thuộc cùng kiểu ( số nguyên, số nguyên dài, v.v ) vớI tham số tương ứng Ngoài ra, có thể dùng bất kỳ biến nào nếu như tham số thuộc kiểu Variant
Có nghĩa là, chỉ có thể chuyển một đốI số biến số nguyên cho một tham số số nguyên Ta không thể trực tiếp chuyển nó cho một tham số số nguyên dài của một hàm.Như ta đã biết Visual Basic từ chốI chuyển một biến có kiểu số nguyên cho một
tham số kiểu long, cho dù trong hầu hết các trường hợp một số nguyên sẽ làm việc tạI
mọI nơi số nguyên dài làm việc
Cuối cùng, đừng quên rằng trong tất cả các hàm, chúng ta chưa thay đổI các biến bằng cách đưa biến tham số vào bên trái của một điều lệnh gán bên trong thân hàm Nghĩa là, ta chưa thực hiện phép gán nào cho các tham số trong thân hàm Tuy nhiên, trong thực tế, hiếm khi phảI thay đổI giá trị của một tham số trong thủ tục Function Nói chung, một hàm sẽ đơn giản điều tác các giá trị hiện có và trả về một giá trị mới
2 Thủ tuc ( SUB)
Các thủ tục Function được thành lập để thực hiện hầu như mọI thứ, chỉ cần nộI dung muốn thực hiện chính là để có một đáp số - một giá trị - rút ra từ các hàm đó Như
Trang 37đã nêu trên đây, tuy các hàm có thể thay đổI các tính chất của một Form, ảnh hưởng đến giá trị của các biến chuyển dướI dạng tham số, hoặc ảnh hưởng đến các biến cấp Form, song không thể làm thế trừ khi sự thay đổI đó có liên quan đến nộI dung thực hiện của hàm được thiết kế Trong mọI trường hợp, một hàm sẽ nhận dữ liệu thô, điều tác nó, rồI trả về một giá rị.
Để tránh gõ lặp các điều lệnh gán vô bổ và làm rốI tung vấn đề, ta có một cấu trúc mớI: thủ tục Sub Thủ tục Sub là công cụ chọn lựa trong trường hợp chỉ muốn viết một khốI mã thực hiện một nộI dung nào đó, cũng tương tự như thủ tục Event
Giống như trong thủ tục Function, ta thường dùng Tools/ Add Procedure báo cho Visual Basic biết muốn định nghĩa một thủ tục Sub Nhưng có trường hợp, ta nhắp nút tuỳ chọn Sub DướI đây là cấu trúc đơn giản nhất của thủ tục Sub – song vẫn đủ mạnh
để phiên dịch đề cương:
Puclic Sub Chorus ()
‘ Nhiều điều lệnh inEnd Sub
Cũng như các hàm khác, dòng đầu tiên của thủ tục Sub có tên là phần đầu Cũng như các hàm do ngườI dùng định nghĩa, phần đầu này có thể có các từ chỉ định truy cập ( chẳng hạn là Pulic ) Sau đó là từ khoá Sub rồI đến thủ tục Tên thủ tục Sub cũng phảI theo các qui tắc như trong biến Kế tiếp là danh sách tham số, được bao trong các dấu ngoặc đơn, dành cho các thông tin mà hàm sẽ dùng Chẳng hạn, thủ tục sự kiện Click ()
và thủ tục Chorus Sub không dùng tham số nào cả Lưu ý, cho dù thủ tục không dùng tham số, song vẫn phảI có dấu ngoặc đơn trống trong Sub Sau Sub là các dòng chứa các điều lệnh tạo thành thủ tục Các điều lệnh này còn gọI là thân ( của thủ tục ) CuốI cùng, Ta có các từ khoá End Sub nằm ở tên các dòng riêng biệt Cũng như trong các thủ tục sự kiện, các từ khoá này được dùng để nêu rõ điểm cuốI của một thủ tục chung Ngoài ra, ta cần một phương cách để chuyển giao thông tin giữa chương trình chính và thủ tục Sub Để thực hiện, ta theo cùng cách thức như các hàm: dùng danh sách tham
số Danh sách tham số được dùng để liên lạc giữa chương trình chính và thủ tục, khi
Trang 38gọI thủ tục Sub ta dùng tên của nó theo sau là các đốI số (tham số), được tách biệt bởI các dấu phẩy.
Các giá trị (mà thực tế là các vị trí bộ nhớ) của các đốI số sẽ được chuyển cho các tham số tương ứng trong thủ tục, và các điều lệnh bên trong thủ tục Sub được thi hành Khi đạt đến điều lệnh End_ Sub, việc thi hành sẽ tiếp tục vớI các dòng theo sau lệnh gọI đến thủ tục Sub Cũng như các thủ tục Function, ta phảI dùng cùng số lượng tham số như số lượng tham số đã định nghĩa trong thủ tục Sub, và chúng phảI có cùng kiểu tương thích
X MỤC ĐÍCH YÊU CẦU NGƯỜI SỬ DỤNG
⊕ Nhu cầu thực tế
Trên thực tế nhu cầu xem xét thông tin về một vấn đề nào đó tại một thờI điểm đốI vớI ngườI quản lý, lãnh đạo rất cần thiết Các thông tin này là một trong nhiều phần nhỏ trong hệ thống dữ liệu đầy đủ Các dữ liệu cần xem xét chỉ được quan tâm theo một số khía cạnh nào đó mà thôi
Phân tích là công việc đầu tiên của quá trình xây dựng hệ quản lý trên máy tính
Nó giúp chúng ta cài đặt chường trình một cách nhanh chóng và kiểm tra dữ liệu một cách tốI ưu hơn Hiệu quả đem lại cho một chương trình ứng dụng là hoàn toàn phụ thuộc vào độ nông sâu trong quá trình phân tích
I MÔ HÌNH HOÁ DỮ LIỆU
1.Mô hình quan niệm dữ liệu
Trang 39Mô hình quan niệm dữ liệu là cơ sở để trao đổi giữa người phân tích và người yêu cầu thiết kế hệ thống Hệ thống ở đây được phân tích gồm một số thực thể Một số các thực thể bao gồm một số các thuộc tính có đặc tính chung và giữa các thực thể sẽ có các mối kết hợp tương ứng với nhau Mặt khác còn tuỳ thuộc vào lần xuất hiện của mỗi thực thể vào mối kết hợp, mà các mối kết hợp còn có thể có các thuộc tính riêng.
- Thực thể DÂN TỘC chứa các thuộc tính Mã dân tộc, Tên dân tộc Trong đó
thuộc tính Mã dân tộc là khoá chính, thuộc tính này nhằm lưu trữ thông tin về dân tộc của từng giáo viên trong nhà trường
- Thực thể TÔN GIÁO chứa các thuộc tính Mã tôn giáo, Tên tôn giáo Trong đó
thuộc tính Mã tôn giáo là khoá chính, thuộc tính này nhằm lưu lại những thông tin về giáo viên thuộc tôn giáo nào
- Thực thể CHỨC VỤ chứa các thuộc tính Mã CV, Tên CV Trong đó Mã CV là
khoá chính, thuộc tính này nhằm lưu trữ thông tin về chức vụ của từng giáo viên trong nhà trường
- Thực thể TÌNH TRẠNG GV chứa các thuộc tính Mã Tình trạng, Tên tình
trạng Trong đó thuộc tính Mã tình trạng là khoá chính, thuộc tính này nhằm lưu trữ thông tin về tình trạng giáo viên của mỗi giáo viên trong nhà trường
- Thực thể TRÌNH ĐỘ NGOẠI NGỮ chứa các thuộc tính Mã TDNN, Tên
TDNN Trong đó Mã TDNN là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về ngoại ngữ của giáo viên trong nhà trường
- Thực thể TRÌNH ĐỘ CHUYÊN MÔN chứa các thuộc tính Mã CM, Tên CM
Trong đó Mã CM là khoá chính, thuộc tính này nhằm lưu trữ thông tin về chuyên môn của giáo viên trong nhà trường
- Thực thể HỆ ĐÀO TẠO chứa các thuộc tính Mã hệ đào tạo, Tên hệ đào tạo
Trong đó Mã đào tạo là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về hệ đào tạo của giáo viên trong nhà trường
- Thực thể NGÀNH ĐÀO TẠO chứa các thuộc tính Mã ngành đào tạo, Tên
ngành đào tạo Trong đó Mã ngành đào tạo là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về Ngành đào tạo của giáo viên trong nhà trường
Trang 40- Thực thể CHUYÊN MÔN ĐÀO TẠO chứa các thuộc tính Mã chuyên môn đào
tạo, Tên chuyên môn đào tạo Trong đó Mã chuyên môn đào tạo là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về Chuyên môn đào tạo của giáo viên trong nhà trường
- Thực thể HỒ SƠ GIÁO VIÊN chứa các thuộc tính Mã giáo viên, Tên giáo viên,
Bí danh, Ngày sinh, giới tính, dân tộc, email, điện thoại, số CMND, ngày cấp, nơi cấp, tôn giáo, Đảng viên, địa chỉ, quê quán, hê, số lương, lương cơ bản, thâm niên, khu vực, chức vụ, phụ cấp, ngành, ưu đãi, thu hút Trong đó Mã giáo viên là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về Hồ sơ giáo viên trong nhà trường
- Thực thể TỔ CHUYÊN MÔN chứa các thuộc tính Mã tổ chuyên môn , Tên tổ
chuyên môn Trong đó Mã tổ chuyên môn là khoá chính, thuộc tính này nhằm lưu trữ những thông tin về Tổ Chuyên môn của giáo viên trong nhà trường
2 Mối kết hợp giữa các thực thể
- Giữa thực thể HỒ SƠ GIÁO VIÊN với thực thể DÂN TỘC có mối kết hợp
(1,1)-(1,n) Vì mỗi giáo viên chỉ có thể ứng với một dân tộc và nhiều dân tộc có thể ứng với nhiều giáo viên
- Giữa thực thể HỒ SƠ GIÁO VIÊN với thực thể TÔN GIÁO có mối kết hợp
(1,1)- (1,n) Vì một giáo viên chỉ có thể ứng với một tôn giáo và một tôn giáo có thể ứng với nhiều giáo viên
- Giữa thực thể HỒ SƠ GIÁO VIÊN với thực thể TRÌNH ĐỘ NGOẠI NGỮ có
mối kết hợp (1,n)-(1,n) Vì một giáo viên ứng với nhiều trình độ ngoại ngữ và một ngoại ngữ ứng với nhiều giáo viên
- Giữa thực thể HỒ SƠ GIÁO VIÊN với thực thể TRÌNH ĐỘ CHUYÊN MÔN
có mối kết hợp (1,n)-(1,n) Vì một giáo viên ứng với nhiều chuyên môn và một chuyên môn ứng vớinhiều giáo viên
- Giữa thực thể HỒ SƠ GIÁO VIÊN với thực thể CHỨC VỤ có mối kết hợp
(1,1)-(1,n) Vì một giáo viên có một chức vụ và một chức vụ ứng với nhiều giáo viên