Lời nói đầu
Chuyên đề là một phần vô cùng quan trọng trong quá trình học tập, nó có thể
giúp cho sinh viên là một bớc tập duyệt vào giai đoạn thực tập. Chính vì thế mà
việc nghiên cứu một đề tài là một vấn đề hết sức cần thiết trong giai đoạn học
tập này. Vì vậy, đề tài Thiết kế và xây dựng phần mềm sắp xếp
tiếng việt theo trờng họ tên hỗ trợ cho việc tuyển sinh Đại học
Cao đẳng.
là một đề tài mà nó mang nhiều tính thực tế nhất là trong công tác tuyển sinh
và cả trong các doanh nghiệp hiện nay khi mà cha thể sắp xếp đợc họ tên theo
tiêu chuẩn của tiếng Việt.
Mục đích của đề tài :
Đây là một đề án chuyên ngành nên mục đích chính là việc áp dụng tổng
hợp các kiến thức đã học vào thực hiện một chơng trình.
Sắp xếp tiếng Việt là một chơng trình vô cùng quan trọng mà nó là một
vấn đề bức xúc nhất hiện nay ở nớc ta mà đặc biệt là nó ứng dụng vào môi tr-
ờng Access.
Đề tài còn có một mục đích nhỏ trong công tác tuyển sinh vào các trờng
Đại học và Cao đẳng mà nó đang là một vấn đề bức xúc nhất ở nớc ta hiện nay.
Nội dung của đề tài :
Vì sự cần thiết và tính cấp bách của vấn đề nên đề tài đợc trình bày với
các nội dung chính sau:
Chơng I : Những vấn đề cơ bản về font chữ Việt hiện nay.
Mục đích của chơng này sẽ trình bày khái quát về sự ra đời và
phát triển của chữ tiếng Việt theo tiêu chuẩn Việt Nam và các yêu cầu
mới với bộ mã chữ Việt. Ngoài ra trong chơng này còn trình bày bộ
mã 8 bit dùng trong trao đổi thông tin, bảng mã chữ Việt và trật tự
chữ cũng nh cấu trúc bảng mã chữ Việt.
Chơng II : Thiết kế chơng trình tuyển sinh Đại học và Cao đẳng.
Trong chơng này sẽ trình bày việc xây dựng chơng trình cũng
nh thiết kế các module chơng trình. Ngoài ra, còn trình bày về việc
2.2 Sơ đồ cấu trúc dữ liệu.---------------------------------------------------13
2.3 Sơ đồ luồng dữ liệu (DFD : Data Flow Diagram )-------------------15
2.4 Tiến hành thiết kế.-------------------------------------------------------17
2.4.1 Thiết kế vào.-----------------------------------------------------------17
2.4.1.1 Thiết kế giao diện chính.-------------------------------------------17
2.4.1.2. Thiết kế form cập nhật hồ sơ.-------------------------------------22
2.4.1.3. Thiết kế form cập nhật điểm thi.----------------------------------24
2.4.1.4. Thiết kế form cập nhật phòng thi.--------------------------------29
2.4.1.5. Thiết kế form cập nhật tỉnh, thành phố, quận, huyện.---------31
2.4.1.6. Thiết kế form cập nhật trờng và ngành đăng ký NV2, NV3.--32
2.4.2 Thiết kế đầu ra.--------------------------------------------------------33
2.4.2.1 Thiết kế giấy báo dự thi.--------------------------------------------33
2.4.2.2 Thiết kế thẻ dự thi.--------------------------------------------------34
2.4.2.3 Thiết kế giấy chứng nhận (Phiếu báo điểm).---------------------35
2.4.2.4 Thiết kế giấy báo tựu trờng.----------------------------------------36
2.4.2.4 Thiết kế các đầu ra khác.-------------------------------------------38
III. Chơng trình sắp xếp tiếng việt trên Access.--------------------------41
3.1 Một số vấn đề về sắp xếp tiếng Việt-----------------------------------41
3.2 Chơng trình sắp xếp dữ liệu chữ Việt trong Access.----------------42
Trang 3
Chơng III Một số kết quả đã đạt đợc-----------------------------------48
Kết luận-----------------------------------------------------------------------50
Tài liệu tham khảo-----------------------------------------------------------52
----------**********----------
Trang 4
Chơng I :
Những vấn đề cơ bản về font chữ Việt hiện nay.
I - Bộ Mã CHUẩN 8 bit cho font chữ tiếng việt
Trang 5
có đủ khả năng quyết định chiều hớng phát triển thị trờng tin học cả phần cứng
lẫn phần mềm chúng ta đều phải nhập ngoại.
Để dùng đợc các sản phẩm phần cứng cũng nh phần mềm quốc tế, lực l-
ợng tin học trong nớc phải tự tìm hiểu các sản phẩm quốc tế để tiến hành Việt
hoá, dùng đợc chúng cho môi trờng tiếng Việt. Việc Việt hoá này đợc thực hiện
với mục tiêu đầu tiên là dùng đợc các phần mềm phổ biến, vấn đề mã hoá chữ
Việt bị xếp ở dới yêu cầu này. Kết quả đã phát sinh nhiều bộ mã chữ Việt, mỗi
bộ mã đáp ứng cho một số phần mềm, không có tính đại diện chung. Bảng mã
chuẩn quốc gia, mặc dầu có nhiều nghiên cứu, đáp ứng các mục tiêu và nguyên
tắc đã nêu nhng nhợc điểm chính là thiếu sự hỗ trợ của các công ty phần mềm
lớn.
Đặc điểm nổi bật của sự phát triển tin học quốc tế trong thời kỳ này là
cách mã hoá con chữ dựng sẵn đang chiếm u thế. Nhng với cách mã hoá theo
con chữ dựng sẵn, chữ Việt cần bổ sung 134 dạng chữ mới, và một khó khăn
không thể vợt qua nổi là không thể bố trí vào 128 mã vùng cao, ngoài phần mã
cho chữ Anh theo ISO 646. Mặt khác, mã hoá theo con chữ dựng sẵn không
phản ánh đợc đặc thù cấu tạo chữ Việt. Kĩ thuật mã tổ hợp, mới đợc phát triển
trong quá trình xây dựng bộ mã quốc tế ISO 10646 và Unicode, cha đợc phổ
biến ở Việt Nam.
Sau hai năm ban hành và đợc triển khai, bộ mã chuẩn TCVN 5712 đã đ-
ợc chấp nhận chung trong nớc, một số công ty tin học trong nớc đã phát triển
những phần mềm theo bộ mã này, tạo ra xu hớng thống nhất chung trong các
ứng dụng. Tuy nhiên, tình hình quốc tế và trong nớc trong thới gian này cũng
đã có những thay đổi buộc chúng ta phải xem xét lại kể từ nguyên tắc thiết kế,
xây dựng bộ mã chuẩn để có đợc sự hoà đồng tốt hơn với sự phát triển tin học
quốc tế. Hai đặc điểm chủ yếu trong giai đoạn này đợc thể hiện nh sau:
Đặc điểm thứ nhất là sự xuất hiện các chi nhánh của các công ty tin học
quốc tế lớn ở Việt Nam nh Digital, Unisys, HP, IBM, Compaq, Oracle,... Các
Yêu cầu thứ nhất: tình hình mới đã dẫn đến những thay đổi mới trong
yêu cầu đối với bộ mã chuẩn chữ Việt. Yêu cầu biểu diễn đầy đủ cho chữ Việt
vẫn giữ nguyên, tuy nhiên đối với bộ mã 8 bit, cách mã hoá theo kiểu dựng sẵn
thực tế không thể đáp ứng đợc các yêu cầu của các công ty CNTT quốc tế. Do
đó việc biểu diễn đầy đủ cho chữ Việt chỉ có thể đợc giải thông qua việc sử
dụng kỹ thuật mã tổ hợp. Mặt khác sự phát triển của kĩ thuật trên thế giới đã
đảm bảo cho việc dùng kỹ thuật mã tổ hợp trong mọi hệ thống phần mềm nh
Windows, CSDL...Với việc mã hoá theo kỹ thuật này, chữ Việt chỉ cần có thêm
14 mã cho các nguyên âm và phụ âm thuần Việt và 5 mã cho dấu thanh.
Trang 7
Yêu cầu thứ hai xuất phát từ đặc điểm chữ Việt thuộc họ chữ la tinh, do
đó cần đợc hội nhập trong họ các ngôn ngữ có dùng cách viết la tinh. Tất cả các
ngôn ngữ dùng cách viết chữ la tinh đều sử dụng bảng mã ISO 8859, với nhiều
bảng khác nhau, cho tới nay đã có 14 bản 8895 cho nhiều nớc. Vậy bảng mã
chuẩn 8 bit cho chữ Việt cũng cần phải dựa trên khuôn khổ của chuẩn quốc tế
này.
Yêu cầu thứ ba xuất phát từ một thực tế Việt Nam là một nớc có truyền
thống hội nhập với nhiều nền văn hoá khác nhau. Do đó bố trí bộ mã chuẩn cho
chữ Việt cần cố gắng đảm bảo cho chữ Việt có thể cùng tồn tại với chữ của một
số nớc khác. Mặt khác bởi vì việc xây dựng bộ mã chữ Việt đi sau bộ mã các n-
ớc khác nên không thể đáp ứng cho sự cùng tồn tại trên một bảng mã cả chữ
Việt lẫn các thứ chữ la tinh khác. Vậy một số ngôn ngữ chính đợc chọn để có
thể cùng tồn tại trong bảng mã chữ Việt là Anh, Pháp, Đức, Tây ban nha, Thuỵ
Điển, Nauy...
Yêu cầu thứ t là yêu cầu cho nhợc điểm chính của bộ mã TCVN 5712:
mọi bộ mã chuẩn quốc gia cần có đợc sự ủng hộ và thực hiện của ít nhất một
công ty tin học quốc tế lớn. Yêu cầu này đảm bảo cho bộ mã quốc gia đợc tuân
thủ trên thực tế, từ chính gốc các công ty sản xuất công cụ công nghệ thông tin.
Tóm lại, 4 yêu cầu mới cho bộ mã chuẩn chữ Việt 8 bit là:
Bảng các thanh tiếng Việt bao gồm:
Hình dấu thanh:
Tên thanh: huyền hỏi ngã sắc nặng
Mỗi nguyên âm có thể đợc gắn thêm với các một trong các dấu thanh
trên.
2.2.3 Đơn vị chính tả, ký tự chính tả
Một đơn vị chính tả là một phụ âm hoặc một nguyên âm hay một dấu
thanh.
Một ký tự chính tả là một phụ âm hoặc một nguyên âm hay một nguyên
âm có mang dấu thanh.
Mỗi từ có nhiều nhất là một nguyên âm mang dấu thanh.
2.2.4 Trật tự chữ Việt
Trật tự các đơn vị chữ Việt sau (theo thứ tự từ nhỏ đến lớn):
Trật tự các chữ cái trong bảng chữ:
Trang 9
a ă â b c d đ e ê f g h i j k l m n o ô ơ p r s
t u v w x y z
Trật tự các thanh:
không dấu huyền hỏi ngã sắc nặng
Thanh là một thuộc tính của vần tiếng Việt không phụ thuộc vào nguyên
âm mang dấu thanh bên trong vần. Trật tự các thanh xác định trật tự các vần
cùng gốc. Trật tự chữ cái và vần xác định trật tự các từ.
Chơng II :
Thiết kế chơng trình tuyển sinh đại học và cao
đẳng
I. Một số vấn đề về chơng trình.
Trang 10
Quản lý cơ sở dữ liệu là một công việc vô cùng quan trọng trong công
trọng. Nếu dữ liệu không đợc sắp xếp thì việc tìm kiếm, xử lý gặp rất nhiều khó
khăn. Hơn nữa đối với một số lệnh trong các chơng trình phần mềm nếu trớc
Trang 11
khi thực hiện các lệnh đó mà dữ liệu cha đợc sắp xếp thì các lệnh đó sẽ không
thể thực hiện đợc.
Trong các cơ sở dữ liệu soạn thảo bằng các ngôn ngữ chỉ sử dụng các ký
tự Latin nên việc sắp xếp đợc thực hiện khá dễ dàng nhng đối với chữ Việt vì
có đặc thù riêng nên chúng ta không thể sử dụng trực tiếp đợc các công cụ của
chính phần mềm nên việc sắp xếp sẽ gặp nhiều khó khăn. Mặt khác, sự sắp xếp
các chữ cái tiếng Việt phải tuân thủ theo thứ tự a, à, ả, ., x, y, z. Từ đó xuất
hiện nhu cầu cần thiết phải xây dựng các chơng trình phần mềm để hỗ trợ cho
việc sắp xếp này.
Nh vậy, muốn danh sách thí sinh dự thi đợc sắp xếp đúng theo thứ tự
chuẩn thì cần phải có một phần mềm hỗ trợ việc xử lý dữ liệu phục vụ cho việc
nhập danh sách này. Tất cả các vấn đề nêu trên nhằm đạt đạt đợc những mục
tiêu cuối cùng cho công tác tuyển sinh đó là bất cứ một thí sinh nào khi nộp hồ
sơ của mình vào các trờng Đại học sẽ đợc cập nhật các thông tin về họ tên,
ngày sinh và qua ch ơng trình sẽ cho ta đợc danh sách các thí sinh sắp xếp
theo thứ tự chuẩn Việt Nam và số báo danh sẽ đợc đánh khi chơng trình đã đợc
sắp xếp. Bên cạnh đó đánh số phòng thi theo từng địa điểm thi với số lợng thí
sinh có ở từng phòng trong mỗi địa điểm.
Ngoài các kết quả mà qua chơng trình đạt đợc nh đánh số báo danh,
đánh số phòng thi, địa điểm thi, sắp xếp thì ch ơng trình còn cần phải đạt đợc
một số kết quả khác đó là :
* Phiếu báo dự thi .
* Thẻ dự thi.
* Danh sách thí sinh ở mỗi phòng thi.
* Giấy báo điểm cho mỗi thí sinh sau khi đã dự thi.
* Giấy báo tựu trờng cho mỗi thí sinh sau khi đã đủ các điều kiện trúng
Thí sinh dự thi
Thí sinh dự thi
Hồ sơ
thí sinh
Các đầu ra
báo cáo
Mã ngành NV2 Tên ngànhNV2 Mã trường NV2
Tên trường NV2 Mã trường NV2
Mã ngành NV3 Tên ngành NV3 Mã trường NV3
MãHS Họtên MãHuyện MãTỉnh MNgànhNV2 MTrườngNV2 MNgànhNV3 MTrườngNV3 ..
Mã tỉnh Tên tỉnh
Mã tỉnh Mã huyện Tên huyện
Tên trường NV2 Mã trường NV2
Sơ đồ2 : Cấu trúc dữ liệu
Qua sơ đồ cấu trúc dữ liệu ở trên nên trong chơng trình sẽ đợc thiết kế
các mối quan hệ giữa các bảng nh sau:
Trang 14
Hình 1 : Sơ đồ mối quan hệ giữa các thực thể
2.3 Sơ đồ luồng dữ liệu (DFD : Data Flow Diagram )
Sơ đồ dới đây nhằm để mu tả các công đoạn chính trong chơng trình. Vì
sơ đồ DFD là một dạng sơ đồ hệ thống thông tin trên góc độ trừu tợng nên trên
sơ đồ chỉ bao gồm các luồng dữ liệu, các xử lý, các lu trữ, các nguồn, đích mà
không đề cập tới nơi, thời điểm, đối tợng xử lý. Sơ đồ luồng dữ liệu chỉ mô tả
đơn thuần hệ thống thông tin làm gì và để làm gì.
Chính vì yếu tố đó, nên đề hiểu đợc chơng trình, các nguồn dữ liệu và
tiến trình xử lý thì nhất thiết phải có sơ đồ DFD.
Sơ đồ đợc thể hiện nh sau:
Trang 15
Xử lý điểm thi
11.0 Giấy báo
nhập học
10.0 phiếu
báo điểm
Thí sinh
Thí sinh
Điểm thi
thí sinh
TS trúng
tuyển
Sơ đồ 3 : Sơ đồ luồng dữ liệu
(DFD : Data Flow Diagram)
Lãnh đạo
Lãnh đạo
2.4 Tiến hành thiết kế.
Thiết kế bất kỳ một chơng trình nào chúng ta cũng cần phải dựa chủ yếu
vào các thông tin đầu ra và các yêu cầu của ngời sử dụng. Vì công tác tuyển
sinh vào bất kỳ một trờng Đại học Cao đẳng nào cũng cần phải có một trình
tự thứ tự các bớc không đợc bỏ qua bất kỳ một bớc nào nên trong chơng trình
sẽ đợc tiến hành theo một trình tự các bớc theo sơ đồ nh sau:
Trang 16
Nhập hồ sơ thí sinh
Đánh số báo danh
Gửi kết quả thi
Gửi giấy báo dự thi
Đánh số phòng thi
Gửi giấy nhập học
Các command chính
chương trình
Toolbar
Menu Bar
Ca
pti
on
Hình 1: Giao diện chính trong chương trình
Trªn form ®îc thiÕt kÕ víi nót ®¸nh sè b¸o danh nh sau:
‘ §¸nh sè b¸o danh cho tõng thÝ sinh
Private Sub SBD_Click()
On Error Goto Loi
Dim Db As Database, RES As Recordset
Set Db = CurrentDb()
Set RES = Db.OpenRecordset("HOANTHIENDS", DB_OPEN_DYNASET)
Trang 19
sobaodanh = 1
Do Until RES.EOF
RES.Edit
RES!sobaodanh = sobaodanh
RES.Update
sobaodanh = sobaodanh + 1
RES.MoveNext
Loop
RES.Close
MsgBox "Hoàn thiện việc đánh số báo danh cho các thí sinh dự thi",
vbCritical, "Chúc mừng "
ERR:
DDT(i) = RES!DiaDiem
Sots_Pthi = Sots_Pthi + (PC(i) - PD(i) + 1) * SoTS(i)
RES.MoveNext
Loop
n = i
RES.Close
Set RES = Db.OpenRecordset("hoanthiends", DB_OPEN_DYNASET)
Sots_Duthi = RES.RecordCount
TB = "Sè thÝ sinh dù thi : " & STR(Sots_Duthi) & Chr(10)
TB = TB + "Kh¶ n¨ng phßng thi :" & STR(Sots_Pthi)
tieu = "Th«ng b¸o"
MsgBox TB, vbCritical, tieu
If Sots_Duthi > Sots_Pthi Then
MsgBox "Kh«ng ®ñ sè phßng thi ", vbCritical, "Th«ng b¸o"
Exit Sub
End If
For k = 1 To n
For p = PD(k) To PC(k)
For i = 1 To SoTS(k)
RES.Edit
RES!phongthi = p
RES!DiaDiem = DDT(k)
RES.Update
RES.MoveNext
Trang 21
If RES.EOF Then
RES.Close
MsgBox "Hoàn thành công việc đánh số phòng thi", vbCritical, "Chúc mừng"
Exit Sub
sinh đã đợc nhập và các thí sinh này đợc xếp theo thứ tự a, b, c tiêu chuẩn Việt
Nam.
Form đợc thiết kế với các Combo Box nhằm giúp cho ta hiện những
thành phần mà đã nhập ở lúc ban đầu. Nếu không có thông tin đó thì nó sẽ đợc
báo lỗi. Ví dụ nh khi ta tiến hành nhập giới tính vì giới tính chỉ có Nam,
Nữ ngoài ra không có bất kỳ một giới tính nào khác nên khi ta tiến hành
nhập các thông tin khác vào đây thì chơng trình sẽ thông báo lỗi hoặc khi ta
tiến hành cập nhật thông tin về tỉnh với mã tỉnh thì tên tỉnh sẽ đợc hiện ngay
bên cạnh và chỉ có những huyện có mã nằm trong tỉnh đó đợc hiện ra.
2.4.1.3. Thiết kế form cập nhật điểm thi.
Điểm thi là một vấn đề cần phải đợc thực hiện chính xác, vì đây là bớc
nhằm thông báo điểm tới tất cả các thí sinh và cũng dựa vào đây để ta có thể
Trang 23
lên điểm chuẩn nhằm tuyển những thí sinh đã đủ điều kiện tiêu chuẩn để đợc
gọi nhập học.
Form đợc thiết kế nh sau:
Trên form đợc thiết kế chủ yếu gồm có 3 thông tin chính đó là : toán, lý,
hóa, đây cũng là các môn mà thí sinh phải thi tuyển. Mặt khác, vì tất cả các thí
sinh khi tham gia dự thi đều đã đợc đánh số báo danh, đánh phòng thi cho nên
bài thi của thí sinh cũng sẽ đợc cán bộ coi thi xếp theo một thứ tự nhất đinh
trong khi thu bài. Chính vì yếu tố này cho nên trên form cũng đợc thiết kế với
công việc nhập điểm theo một thứ tự nhất định. Ngoài ra, trên form còn có các
text box để hiện ra lần lợt từng thí sinh theo thứ tự vần a,b,c để cho ta tiến hành
nhập điểm cho mỗi thí sinh.
Trang 24
Hình 3 : Form cập nhật điểm
Danh sách theo
thứ tự a,b,c
On Error GoTo Ten_Err
Dim rs As Recordset, Db As Database
Set rs = CurrentDb.OpenRecordset("HoSo", DB_OPEN_SNAPSHOT)
Ngay_Sinh = " "
rs.MoveFirst
Do Until rs.EOF
Trang 25