Hiện nay, ứng dụng công nghệ thông tin đang là vấn đề nóng của toàn thế giới.Không chỉ trong hoạt động khoa học kỹ thuật, lao động sản xuất mà đặc biệt trong lĩnhvực đào tạo giáo dụccông
Trang 1Hiện nay, ứng dụng công nghệ thông tin đang là vấn đề nóng của toàn thế giới.Không chỉ trong hoạt động khoa học kỹ thuật, lao động sản xuất mà đặc biệt trong lĩnhvực đào tạo giáo dụccông nghệ thông tin cũng đã trở thành công cụ trợ giúp đắc lực.Vượt ra ngoài các ứng dụng chính như giải các bài tập, phân tích, tính toán thiết kế,học trên máy tính, mô phỏng, tra cứu , máy tính còn là công cụ để đánh giá kết quảđào tạo thông qua các chương trình thi trắc nghiệm.
Trong quá trình đào tạo, đánh giá kết quả học tập bằng các kỳ thi, kiểm tra làcông việc phải tiến hành thường xuyên, không kém phần khó khăn cho người quản lý
và khó bảo đảm độ chính xác, tính công bằng khách quan đối với người học Do đó,việc cải tiến hệ thống thi, kiểm tra đã và đang dược nhiều người quan tâm Một trongnhững xu hướng chung và đầy triển vọng, được nhiều cơ sở đào tạo trên thế giới cũngnhư trong nước đầu tư nghiên cứu là áp dụng thi trắc nghiệm trên máy tính
Sự kết hợp giữa hình thức thi trắc nghiệm và tin học không những đáp ứngđược các yếu tố mà còn giúp tiết kiệm được chi phí tổ chức 1 kỳ thi , thời gian ,côngsức của giáo viên đồng thời kết quả đem lại nhanh chóng , chính xác cao và mang tínhkhách quan
Chương trình thi trắc nghiệm tin học đại cương có thể giúp giáo viên tạo các đềthi và chủ đề tương ứng với đề thi được ra Có thể giúp giáo viên lưu đề và mở đề thi,
bổ sung them các đề mục và các câu hỏi cho đề thi Giúp thì sinh có thể luyện tậptrước kì thi để đánh giá năng lực có cách học hiệu quả hơn trước kỳ thi Giúp sinh viênđánh giá năng lức bản than trong môn học và nhất là rèn luyện khả năng nhanh nhạytrong phương pháp học tập
Tên đề tài: “Xây dựng phần mềm trộn đề thi trắc nghiệm tự động”
Đối tượng nghiên cứu:
- Các phần mềm thi trắc nghiệm trên thị trường;
- Công nghệ NET C# winform
Phạm vi nghiên cứu: khảo sát thực tế tại Trường Đại Học Mở Hà Nội
Phương pháp nghiên cứu:
Phương pháp khảo sát áp dụng:
Phỏng vấn
Trang 2Phương pháp phân tích, tổng hợp: Mục đích để chứng minh từng luận điểm của
đề tài có tính thuyết phục hơn
Trang 3Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ,
sự giúp đỡ dù ít hay nhiều, dù là trực tiếp hay gián tiếp của người khác Trong suốtthời gian từ khi bắt đầu học tập ở giảng đường Đại học đến nay, em đã nhận được rấtnhiều sự quan tâm, giúp đỡ của Thầy Cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến Thầy Cô ở Khoa Công NghệThông Tin trường Đại Học đã cùng với tri thức và tâm huyết của mình để truyền đạtvốn kiến thức quý báu cho em trong suốt thời gian học tập tại trường Và đặc biệt,trong kỳ này, Khoa đã tổ chức cho em được tiếp cận với môn học rất hữu ích đối với
sinh viên ngành Công Nghệ Thông Tin Đó là môn: “Thực tập tốt nghiệp”
Em xin chân thành cám thầy và các anh chị trong phòng đã tận tâm hướng dẫn
em qua từng buổi thực tập trên trung tâm cũng như những buổi nói chuyện, thảo luận
về dự án Trong thời gian được học tập và thực hành dưới sự hướng dẫn của thầy vàcác anh chị trong phòng, em không những thu được rất nhiều kiến thức bổ ích, mà còn
được truyền sự say mê và thích thú đối với bộ môn “Đồ án tốt nghiệp” Nếu không có
những lời hướng dẫn, dạy bảo của thầy và các anh chị em nghĩ đồ án này của em rấtkhó có thể hoàn thành được
Xin gửi lời cảm ơn chân thành đến gia đình, bè bạn, đã luôn là nguồn động viên
to lớn, giúp em vượt qua những khó khăn trong suốt quá trình học tập và thực hiện đồ
án
Mặc dù đã rất cố gắng hoàn thiện đồ án với tất cả sự nỗ lực, tuy nhiên đồ án “”chắc chắn sẽ không thể tránh khỏi những thiếu sót Em rất mong nhận được sự quantâm, thông cảm và những đóng góp quý báu của các thầy cô và các bạn để đồ án nàyngày càng hoàn thiện hơn
Trang 4.
MỤC LỤC
Trang 51.1 Khảo sát hiện trạng 1
1.2 Mục đích đề tài 1
1.3 Yêu cầu đặt ra (đề tài sẽ giải quyết vấn đề gì) 2
1.4 Các chức năng chính: 2
1.5 Mô tả chức năng của phần mềm 3
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 5
2.1 Sơ đồ chức năng hệ thống 5
2.2 Sơ Đồ Dòng Dữ Liệu(DFD) 6
.Khái niệm 6
2.2.1 Biểu đồ DFD hoạt động của Thí Sinh 7
2.2.2 Biểu đồ DFD hoạt động của Quản trị 8
2.2.3 Phân tích CSDL (lược đồ quan hệ) 8
2.2.4 Mô hình quan hệ dữ liệu 9
2.3 Mô tả cơ sở dữ liệu 9
CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ GIAO DIỆN HỆ THỐNG 11
3.1 Giới thiệu NET Framework và ngôn ngữ lập trình C# 11
3.1.1 Ngôn ngữ lập trình C# 14
3.2 Windows Forms 16
3.3 Cơ sở dữ liệu Access 18
3.4 Các màn hình chức năng chính và Chú thích các chức năng 26
3.4.1 Form Đăng Nhập Theo Quyền Admin: 26
3.5 Một vài đoạn chương trình minh họa 47
3.6 Những gì làm được 49
3.7 Chưa làm được (so với yêu cầu ban đầu) 49
KẾT LUẬN 50
Trang 6Hình 2.1 Sơ đồ chức năng hệ thống 6
Hình 2.2 Biểu đồ DFD mức đỉnh 7
Hình 2.3 Biểu đồ DFD hoạt động Thí Sinh 7
Hình 2.4 Hoạt động Quản trị 8
Hình 2.5 Mô hình quan hệ dữ liệu 9
Hình 3.1 Chức năng đăng nhập 27
Hình 3.2 Giao diện chính Admin 28
Hình 3.3 Giao diện quản lý đề thi 29
Hình 3.4 Giao diện tạo bộ đề thi 31
Trang 7(“Ca” sử dụng) Biểu diễn một chức năng xác địnhcủa hệ thống
Mối quan hệ giữa
từ Use case kia
Biểu đồ LỚP
Lớp
(Class) Biểu diễn tên lớp, thuộc tính, vàphương thức của lớp đó
Quan hệ kiểu kết
hợp Biểu diễn quan hệ giữa hai lớp độclập, có liên quan đến nhau
Trang 8Biểu đồ TRẠNG THÁI
Trạng thái Biểu diễn trạng thái của đối tượngtrong vòng đời của đối tượng đó
Các luồng tượng khác nhau trongPhân tách các lớp đối
biểu đồ hoạt động
Phân cách nhau bởi một đường kẻdọc từ trên xuống dưới biểu đồ
Biểu đồ THÀNH PHẦN
Thành phần Mô tả một thành phần của biểu đồ,mỗi thành phần có thể chứa nhiều
lớp hoặc nhiều chương trình con
Trang 10CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH TÍNH CẦN
THIẾT CỦA HỆ THỐNG
1.1 Khảo sát hiện trạngNgày nay, ứng dụng máy tính cá nhân đang là vấn đề sôi động của toàn thế giới.Không chỉ trong hoạt động khoa học kỹ thuật, lao động sản xuất mà đặc biệt trong lĩnhvực đào tạo giáo dục, máy tính cũng đã trở thành công cụ trợ giúp đắc lực Vượt rangoài các ứng dụng chính như giải các bài tập, phân tích, tính toán thiết kế, học trênmáy tính, mô phỏng, tra cứu…, máy tính còn là công cụ để đánh giá kết quả đào tạothông qua các chương trình thi trắc nghiệm
Trong quá trình đào tạo, đánh giá kết quả học tập bằng các kỳ thi, kiểm tra làcông việc phải tiến hành thường xuyên, không kém phần nặng nhọc cho người quản lý
và khó bảo đảm độ chính xác, tính công bằng khách quan đối với người học Do đó,việc cải tiến hệ thống thi, kiểm tra đã và đang được nhiều người quan tâm Một trongnhững xu hướng chung và đầy triển vọng, được nhiều cơ sở đào tạo trên thế giới cũngnhư trong nước đầu tư nghiên cứu là áp dụng thi trắc nghiệm trên máy vi tính
Hệ thống thi trắc nghiệm sẽ giúp cho việc tổ chức kỳ thi một cách nhanh chóng,hiệu quả, tiết kiệm và đặc biệt là có tính khách quan cao trong đánh giá kết quả của cáchọc viên Ngoài ra nó cũng hỗ trợ cho việc kiểm tra kiến thức học viên nhằm nâng caochất lượng học tập
1.2 Mục đích đề tài
- Giáo viên có thể nhập câu hỏi vào ngân hàng Tạo bộ đề cho riêng mình
Ban Giám Hiệu có thể kiểm soát các thông tin về điểm, thí sinh, đề, câu hỏi
Phần mềm sẽ lựa chọn ngẫu nhiên trong ngân hàng dữ liệu số câu hỏi theo đúngcấu trúc đề thi và tỷ lệ số câu trong ngân hàng, lấy ngẫu nhiên thứ tự xuất hiện và xáotrộn đáp án rồi xuất ra thành một đề thi hoàn chỉnh cùng phiếu trả lời cũng như đáp áncủa từng đề
Đề ra hoàn toàn độc lập với ý muốn chủ quan của mỗi giáo viên
Các đề hoàn toàn tương đương
Nếu số lượng câu hỏi trong cơ sở dữ liệu đủ lớn thì số đề xuất ra không hạn chế
Trang 11Cho phép sửa chữa, bổ sung, hoàn thiện ngân hàng câu hỏi bất cứ lúc nào và sửdụng lại.
Tăng nhanh tốc độ chấm thi và loại bỏ hoàn toàn yếu tố cảm tính khi chấm
Ngoài ra với cách soạn đề thi như trên còn tạo điều kiện cho trường không ngừng
mở rộng, tăng số lượng câu hỏi trong ngân hàng đề thi; đa dạng hóa các câu hỏi thi;làm các nghiên cứu thống kê đánh giá độ khó và phù hợp của từng câu hỏi để tiến tớiloại bỏ các câu quá dễ hoặc quá khó; nghiên cứu sử dụng máy vi tính trong quá trìnhchấm thi Tuy nhiên đó là công việc đòi hỏi khá nhiều công sức và thời gian mà tác giả
hy vọng có thể đề cập tới vào một thời điểm thích hợp
Giúp giảm chi phí cho việc in ấn đề thi
1.3 Yêu cầu đặt ra (đề tài sẽ giải quyết vấn đề gì)
• Cho phép tạo nhiều dạng trắc nghiệm khách quan
• Có giao diện đẹp mắt, chuyên nghiệp hơn
• Cho thí sinh biết kết quả từng câu sau khi đã trả lời câu đó, thậm chí cho biếtđáp án đúng
• Tiện ích này thuận tiện cho giáo viên khi ra đề thi
• Trắc nghịêm khách quan có khả năng bao quát kiến thức nhiều hơn
1.4 Các chức năng chính:
• Chức năng đăng ký thông tin người dùng
• Chức năng xử lý thông tin người dùng
• Thêm , xóa, cập nhật các thông tin câu hỏi
• Thêm , xóa, cập nhật thông tin thí sinh, nhân viên
• Thí sinh đăng nhập thi
• Thí sinh chọn mã đề thi
• Tự động chấm điểm thí sinh và lưu vào hệ thống khi hết thời gian làm bài vànộp bài sớm
Trang 12• Xem điểm của một hoặc nhiều thí sinh đã làm bài thi.
- Không cho phép sinh viên chỉnh sửa đề thi
- Đề thi được ra ngẫu nhiên với các đáp án lựa chọn ngẫu nhiên
- Định dạng lưu và mở đề là dạng xml hoặc các định dạng khác
1.5 Mô tả chức năng của phần mềm
-Chương trình được thiết kế như một phần mềm , thi trắc nghiệm thực sự , vớimục đích đổi mới công tác thi cử theo hướng tách thi cử độc lập với giảng dạy, chấmdứt tiêu cực công khai trong thi cử, nâng cao chất lượng và đẩy mạnh trong việc đàotạo theo nhu cầu xã hội ngày càng phát triển về công nghệ hiện đại, bằng cách cho cácthí sinh thi bằng phương pháp trắc nghiệm
-Chương trình bao gồm 2 phân quyền sử dụng đó là quyền quản trị(admin) vàquyền người dùng(thí sinh)
-Quyền quản trị: bao gồm các quyền thêm, xóa, sửa, các câu hỏi của bộ đề thi,cập nhật các thông tin về bộ đề thi, và tạo thành file đề thi và có thể ứng dụng cho cácmôn thi khác ! Ngoài ra quyền quản trị cũng có tất cả các quyền như một người dùngthông thường !
-Quyền thí sinh: muốn sử dụng các chức năng của chương trình thì phải đăng ký
để được dự thi, hoặc đã có tên trong danh sách dự thi trong cở sở dự liệu
- Chức chính là bao gồm thi trắc nghiệm, ngoài ra còn có chức năng tạo đề thi !bằng cách thêm câu hỏi và đáp án được thiết lập cho đúng hoặc có thể lấy từ ngânhàng câu hỏi trắc nghiệm, có trong cơ sở dữ liệu, bằng cách thêm ngẩu nhiên hoặcthêm bằng tay, ngoài ra người tạo đề có thể dùng chức năng tìm kiếm để lọc ra các câuhỏi dạng dể hoặc khó và đánh dấu câu hỏi rồi thêm Chương trình còn có chức năng
Trang 13cho người tạo đề thi kiểm thử nếu có lỗi sai về đáp án ! người tạo đề có thể sử dụngchức năng chỉnh sửa, cho đến khi thấy phù hộp, thì bắt đầu lưu file và cuối cùng là quyđịnh thời gian 1 câu là bao nhiêu giây,
- Khi người dùng đăng nhập vào hệ thống với quyền thí sinh, hệ thống sẽ yêu cầucho biết tên đăng nhập Nếu chưa lần nào đăng nhập thì sẽ cho đăng kí Khi thí sinhmuốn thi thì phải bắt buộc có tên trong cơ sở dữ liệu Ứng với môn thi thì có mức độkhó dể tùy theo đề thi, thí sinh có thề chọn đề thi tùy ý trong đó 1 đề thi để làm bài.Dựa trên đáp án câu hỏi tương ứng với đề của thí sinh đã làm và câu trả lời của thí sinh
để chấm điểm cho bài làm của thí sinh
-Quy định :1 điểm cho mỗi câu trả lời đúng và nếu câu trà lời sai thì điểm củacâu đó là 0 Thí sinh muốn làm lại thì có thể chọn mã đề khác để làm hoặc đăng kí làmbài mới ứng với một môn và mức độ khác nhau
-Khi người dùng đăng nhập hệ thống với quyền quản trị(Admin) với tên đăngnhập và mật khẩu đã đăng kí, sẽ được quyền thêm xóa sửa trên hệ thống, về môn thi,câu hỏi, đề thi
Trang 14CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Sơ đồ chức năng hệ thống- FDD: Functional Decomposition Diagram
- Xác định chức năng nghiệp vụ là bước đầu tiên của phân hệ thống Cần phảibiết tổ chức thực hiện những nhiệm vụ, chức năng gì Từ đó tìm ra các dữ liệu, cácthông tin được sử dụng và đầu ra của chức năng cũng như những hạn chế, các ràngbuộc của các chức năng đó
Trang 15Giải thích sơ đồ dòng dữ liệu
Biểu đồ dòng dữ liệu gồm các yếu tố biểu diễn sau đây:
- Biểu diễn: Là hình tròn hay hình ovan, bên trong có tên chức năng:
- Các luồng dữ liệu: Một luồng dữ liệu là một tuyến truyền dẫn thông tin vào hay ra một chức năng nào đó Tên luồng dữ liệu phải là một danh từ, biểu diễn dưới dạng
một mũi tên, ở trên ghi tên của luồng dữ liệu
Tên luồng dữ liệu
- Các kho dữ liệu: Kho dữ liệu là một dữ liệu được lưu lại, để có thểđược truy nhập nhiều lần về sau Tên của kho là một danh từ, biểu diễn bằng haiđường thẳng song song ở giữa ghi tên kho dữ liệu:
Tên kho dữ liệu
- Tác nhân ngoài: Là một thực thể ngoài hệ thống, có trao đổi thông tinvới hệ thống Tên tác nhân là một danh từ, biểu diễn, được biểu diễn bằng một hìnhchữ nhật, bên trong có tên tác nhân
Tên tác nhân ngoài
2.2.2 Biểu đồ DFD mức đỉnh
Tên chức năng
Trang 16Hình 2.2 Biểu đồ DFD mức đỉnh
2.2.1 Biểu đồ DFD hoạt động của Thí Sinh.
Hình 2.3 Biểu đồ DFD hoạt động Thí Sinh
Trang 172.2.2 Biểu đồ DFD hoạt động của Quản trị
Trang 18Thực Thể Mức Độ:
Mỗi thực thể mô tả một mức độ của câu hỏi với các thuộc tính MaMD,TenMD
Thực thể Tính Chỉ:
Mỗi thực thể mô tả một tính chỉ , với các thuộc tính MaTC,TenTC
2.2.4 Mô hình quan hệ dữ liệu
Hình 2.5 Mô hình quan hệ dữ liệu
2.3 Mô tả cơ sở dữ liệu
Bảng phân quyền:
Bảng thư viện:
Trang 19Bảng đáp án:
Bảng mức đô:
Bảng tính chỉ:
Trang 20CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ GIAO DIỆN HỆ THỐNG
3.1 Giới thiệu NET Framework và ngôn ngữ lập trình C#C# là một trong những ngôn ngữ hoạt động trên một nền tảng đặc biệt gọi là
“.NET Framework” Chương trình viết bằng C# (và các ngôn ngữ NET khác) có quytrình dịch và cách thực thi khác biệt với các ứng dụng windows “bình thường” Sựkhác biệt này có ảnh hưởng lớn đến cách nghĩ và cách code trong C#
Do vậy, các tài liệu về lập trình C# hầu như luôn phải giới thiệu về NETFramework trước khi bắt đầu nói về chính ngôn ngữ
.NET framework là gì?
Với câu hỏi “.NET Framework là gì” bạn sẽ nhận được hai cầu trả lời: (1) NETFramework là một bộ thư viện lớp; (2) NET Framework là một môi trường thực thicủa ứng dụng
.NET framework là một bộ thư viện lớp
.NET framework chứa một bộ thư viện rất lớn chứa các loại công cụ khác nhaugiúp người lập trình xử lý được hầu hết các công việc thường gặp trong quá trình pháttriển ứng dụng Vì vậy, lập trình ứng dụng với NET framework thường có hiệu quả rấtcao và thời gian làm việc ngắn hơn
Người lập trình có thể sử dụng bất kỳ ngôn ngữ nào mà trình biên dịch của nó cóthể dịch mã nguồn sang một dạng mã trung gian theo yêu cầu của NET framework.Visual C#, Visual Basic.NET, Visual C++.NET, và F# là bốn ngôn ngữ chính thứcđược Microsoft phát triển để hoạt động trên NET framework
Ngoài ra còn một số ngôn ngữ khác không do Microsoft phát triển cũng đượcthiết kế hướng tới nền tảng NET như Delphi.NET, Oxygence (hai ngôn ngữ có cấutrúc cú pháp tương tự Pascal), IronPython (phiên bản của Python dịch sang NETframework), v.v
Các ngôn ngữ hướng tới NET framework ngoài việc có thể truy cập tới bộ thưviện còn có thể sử dụng thư viện người dùng viết bằng các ngôn ngữ NET khác Ví
dụ, người phát triển ứng dụng trên C# hoàn toàn có thể sử dụng thư viện do ngườikhác phát triển trên Visual Basic
.NET framework là một môi trường thực thi cho ứng dụng
Trang 21Chương trình viết cho NET framework không thực thi trực tiếp trong môi trường
hệ điều hành mà thực thi trong khuôn khổ của chương trình CLR và được quản lý bởichương trình này
Vì thực thi trong một môi trường riêng khép kín và được quản lý chặt chẽ,chương trình NET có thể tránh được nhiều lỗi thường gặp trong quá trình phát triểnứng dụng
Do môi trường thực thi của các ứng dụng NET cung cấp nhiều tính năng cao cấp(như quản lý bộ lý, xử lý ngoại lệ, v.v.), việc lập trình ứng dụng trên NET frameworkđơn giản hơn
Việc học lập trình với một ngôn ngữ bất kỳ của NET framework có giá trị rất lớnkhi ta có thể sử dụng nó để viết hầu như bất kỳ loại ứng dụng nào, có thể viết ứngdụng không chỉ ứng dụng chạy trên Windows mà còn có thể cho các nền tảng khác
Một số công nghệ trong NET Framework
Dưới đây là một số công nghệ phổ biến trong NET framework
Console: xây dựng ứng dụng với giao diện dòng lệnh;
Windows Forms: xây dựng ứng dụng desktop (giao diện đồ họa) cho windows;Windows Presentation Foundation: công nghệ mới xây dựng ứng dụng desktop(giao diện đồ họa) cho windows;
ASP.NET: nền tảng để phát triển các ứng dụng web chạy trong chương trình máychủ IIS, bao gồm ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API;
ADO.NET và Entity Framework: công nghệ cho phép chương trình kết nối và sửdụng cơ sở dữ liệu quan hệ (SQL Server, MySQL, v.v.);
Windows Communications Foundation: công nghệ cho phép phát triển ứng dụngmạng hướng dịch vụ (Service Oriented Application, SOA)
Hiện nay bạn có thể sẽ nghe thấy cả NET Core, hay NET 5 (sắp ra mắt) Lưu ýrằng, mặc dù đều có chung phần “.NET” nhưng chúng là những nền tảng khác nhau
Để phân biệt, người ta thường nói rõ “.NET Framework” hay “.NET Core” Trong
đó, NET Framework là nền tảng thuần túy cho windows, NET Core hoạt động đa nềntảng (trong đó có cả windows), NET 5.0 là nền tảng hợp nhất trong tương lai
Ngôn ngữ C# sử dụng để lập trình cho tất cả các nền tảng này
Cài đặt NET framework trên windows
Trang 22Trên hệ điều hành Windows, NET framework có thể cài đặt trên phiên bảnWindows 98 và mới hơn, hoặc Windows NT 4.0 về sau Các phiên bản cũ hơn củaWindows không cho phép cài đặt .NET framework Các hệ điều hành mới nhưWindows 10 đều mặc định cài đặt NET và có thể tự động cập nhật phiên bản mới.
Các chương trình viết cho NET framework chỉ có thể hoạt động nếu trên hệ điềuhành có cài đặt phiên bản tương đương hoặc mới hơn của NET (so với phiên bản sửdụng cho quá trình phát triển ứng dụng)
Phiên bản mới nhất của NET Framework hiện nay là 4.7 Nếu bạn đang dùngWindows 10, hoặc bạn đã cài đặt Visual Studio, máy tính của bạn đã có sẵn NET bảnmới nhất
Biên dịch mã nguồn và thực thi chương trình trong NET framework
.NET framework và các ngôn ngữ hỗ trợ nền tảng này hoạt động không giốngnhư các chương trình “bình thường” khác trong Windows
Biên dịch và thực thi chương trình native
Các file mã nguồn của chương trình viết bằng một ngôn ngữ lập trình nào đó sẽđược chương trình dịch của ngôn ngữ đó chuyển thành file chương trình chứa mã máy(native code/instruction) Giai đoạn này gọi là Compile time
Khi người dùng chạy ứng dụng, file chương trình được hệ điều hành tải vào bộnhớ và bắt đầu thực hiện các lệnh chứa trong đó Hệ điều hành đóng vai trò môi trườnghoạt động và là người quản lý việc thực thi của ứng dụng Giai đoạn tải và thực thi cáclệnh gọi là Runtime
Loại chương trình được hệ điều hành tải, thực thi và quản lý trực tiếp như vậythường được gọi là ứng dụng native Ứng dụng native trong windows được tạo ra vớicác ngôn ngữ như C/C++, Pascal, Delphi, Visual basic, v.v
Biên dịch và thực thi chương trình trong NET framework
Trong NET framework, mã nguồn viết bằng các ngôn ngữ lập trình không đượcbiên dịch trực tiếp thành mã máy để thực thi (trực tiếp trong hệ điều hành) như cácchương trình viết bằng C/C++ hay Pascal/Delphi
Quy trình biên dịch và thực thi chương trình trong NET frameworkQuy trìnhbiên dịch và thực thi chương trình trong NET framework
Trang 23Mã nguồn viết bằng một ngôn ngữ NET (C#, Visual basic NET) được trình biêndịch của ngôn ngữ đó dịch thành tệp mã đặc biệt gọi là tệp mã CIL (CommonIntermediate Language) CIL là một loại ngôn ngữ trung gian đặc biệt được Microsofttạo ra cho nền tảng NET.
CIL, trước đây còn được gọi là MSIL (Microsoft Intermediate Language), cũngchính là một ngôn ngữ lập trình Đây là ngôn ngữ cấp thấp nhất mà người lập trình còn
có thể đọc được code Mã CIL cũng thường được gọi là bytecode
Ở giai đoạn Runtime, một chương trình dịch đặc biệt có tên gọi là JIT time compiler) đọc và dịch tiếp mã CIL thành mã máy để thực thi Quá trình thực thinày được kiểm soát bởi một chương trình đặc biệt gọi là CLR (Common LanguageRuntime)
(Just-in-Như vậy có thể hình dung (gần đúng) rằng, chương trình viết bằng một ngôn ngữ.NET sẽ chạy bên trong một chương trình khác (CLR) và bị chương trình CLR nàykiểm soát Cả CIL và CLR đều là các thành phần của một hệ thống tổng thể gọi làCommon Language Intermediate (CLI)
Do việc biên dịch tất cả các ngôn ngữ NET đều tạo ra CIL nên, ví dụ, một objecttạo ra bằng Visual Basic NET có thể được truy xuất từ code viết trên C#
3.1.1 Ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình được phát triển riêng biệt cho NET framework vớiphiên bản C# 1.0 ra đời vào năm 2002 cùng với NET framework 1.0 Phiên bản hiệntại của C# (ở thời điểm viết tài liệu này) là 7
Một số đặc điểm của ngôn ngữ C#
Ngôn ngữ C# chịu ảnh hưởng của nhiều ngôn ngữ lập trình khác, trong đó có C++, Eiffel, Java Lập trình viên đã làm việc với các ngôn ngữ như C/C++ hay Java sẽ rất
dễ dàng tiếp thu C#
C# được thiết kế theo hướng đơn giản, hiện đại, đa chức năng và hỗ trợ hầu hếtcác nguyên tắc lập trình hiện có:
định kiểu mạnh (strong typing),
hướng mệnh lệnh (imperative programming),
hướng khai báo (declarative programming),
hướng hàm (functional programming),
Trang 24hướng đối tượng (object-oriented programming),
hướng thành phần (component-oriented programming),
lập trình tổng quát (generic programming)
Bạn không nhất thiết phải hiểu hết các thuật ngữ “kỳ lạ” trên Ở đây chỉ liệt kê ranhằm chứng minh sự mạnh mẽ và phong phú của ngôn ngữ C# Tuy nhiên, một sốnguyên tắc trong số đó có ảnh hưởng rất lớn và trực tiếp đến việc học lập trình C#
Trình biên dịch C#
Để dịch mã nguồn C# thành chương trình cần sử dụng một trình biên dịch(compiler) cho ngôn ngữ này
Hiện nay đang tồn tại một số trình biên dịch C# khác nhau:
Microsoft Visual C# của Microsoft được xem là chương trình “chính thống”;
Mono và trình biên dịch C# mã nguồn mở (tương đương với NET 3.5, đồng thờicũng không hỗ trợ toàn bộ các class của NET framework);
DotGNU và trình biên dịch C# mã mở (tương đương với NET 2.0);
Trình biên dịch C# của Microsoft’s Rotor project (chỉ hỗ trợ tới C# 2.0 WindowsXP)
Nếu bạn đã cài đặt sẵn Visual Studio, bạn không cần để ý đến trình biên dịch C#nữa Mọi thứ đã setup sẵn sàng!
Một số điểm cần lưu ý
C# có cú pháp, các cấu trúc điều khiển, một số kiểu dữ liệu cơ sở, v.v rất giốngC/C++ và Java Nếu bạn có xuất phát điểm từ các ngôn ngữ này có thể dễ dàng nắmđược các thành phần cơ bản của C# Tuy nhiên đừng để sự tương đồng này đánh lừabạn
C# là ngôn ngữ hướng đối tượng 100% Tức là mọi thứ trong C# đều là class Do
đó bạn sẽ không bao giờ nghe thấy các khái niệm như hàm toàn cục, biến toàn cụctrong C# Đặc điểm này giống với Java Nếu xuất phát từ C/C++ bạn nên lưu ý vấn đềnày
Khi học lập trình C#, bạn đồng thời phải học thư viện NET, mà trước hết là cácthành phần cơ bản của thư viện này Sau đó bạn phải đầu tư thời gian cho các kỹ thuật
Trang 25nâng cao của NET và C# Cuối cùng bạn nên lựa chọn và đi sâu vào các công nghệxây dựng trên nền tảng NET.
Do đó, đừng suy nghĩ kiểu đốt cháy giai đoạn, muốn nhảy ngay vào các côngnghệ (như winform, asp.net) Nắm càng chắc C# và NET, bạn càng dễ dàng tiếp cậncác công nghệ Nếu nhảy ngay vào công nghệ, bạn chỉ học được cái vỏ chứ không thểtiến xa được
3.2 Windows Forms
Windows Forms (thường gọi tắt là winforms) là framework dành cho phát triểnứng dụng desktop cho Windows đầu tiên trên NET Framework, được sử dụng rất rộngrãi và tồn tại cho đến tận ngày nay
Windows Forms hoàn toàn đơn giản hóa việc lập trình GUI (giao diện đồ họa),
hỗ trợ thiết kế giao diện trực quan (mà không cần tự viết code), đồng thời nhận được
sự hỗ trợ rất tốt từ các hãng thứ ba (Devexpress, Syncfusion, Telerik, v.v.) và cộngđồng
Khuyến nghị
Winforms rất dễ học với người mới bắt đầu Sau khi học qua C#/VB.NET cănbản hầu hết đều có thể tự bắt đầu học Windows Forms Mô hình lập trình củaWindows Forms đơn giản và dễ nắm bắt Việc thiết kế giao diện rất trực quan, đơngiản Tuy nhiên, mô hình thiết kế giao diện người dùng và mô hình lập trình củaWinforms không thực sự phù hợp với yêu cầu hiện nay
Hiện nay vẫn có nhiều công ty tuyển nhân sự về mảng này, chủ yếu để bảo trì vàcải tiến các hệ thống đã xây dựng từ trước
Windows Forms cũng vẫn là một công cụ hữu ích cho quá trình học tập Trongquá trình học có thể thường xuyên phải làm project môn học Winforms là một công
cụ rất thích hợp
Sau khi học NET căn bản nên học qua Windows Forms Khi cần thiết có thể sửdụng như một công cụ lập trình nhanh ra các ứng dụng nhỏ hoặc prototype
Windows Presentation Foundation (WPF)
WPF ra đời cùng với NET 3.5 và có thể coi như người kế tục Windows Forms
Trang 26WPF sử dụng DirectX để tạo ra giao diện với khả năng xử lý đồ họa rất mạnhcho phép tạo ra những giao diện hiện đại, đẹp, mượt mà và những hiệu ứng màWindows Forms không thể hoặc rất khó đạt được.
WPF sử dụng ngôn ngữ riêng, XAML, để biểu diễn giao diện, cho phép cácdesigner chuyên nghiệp hoạt động độc lập với coder
WPF có một mẫu kiến trúc riêng, MVVM (Model-View-ViewModel)
Cơ chế Data binding của WPF mạnh hơn nhiều so với Windows Forms, giúp giảiquyết vấn đề hiển thị dữ liệu rất hiệu quả, ổn định và an toàn
Khuyến nghị
Đây là một framework xứng đáng để đầu tư Các dự án mới, nếu phát triểndesktop application, đều được khuyến nghị sử dụng WPF Nếu tìm kiếm trên Google
có thể thấy rất nhiều yêu cầu tuyển dụng về WPF
Nhược điểm lớn nhất của WPF là phức tạp, khó học, khó thành thạo (nếu so vớiWindows Forms) Để phát huy hiệu quả thực sự của WPF đòi hỏi người người lậptrình phải sử dụng mẫu thiết kế MVVM xây dựng riêng cho WPF, thành thạo XAML,hiểu cơ chế Data Binding, có khả năng thiết kế, và rất nhiều kỹ thuật nâng cao khác
Do đó, nếu xác định học WPF sẽ phải đầu tư nhiều thời gian và công sức, cũngnhư phải chuẩn bị kỹ thuật nền tảng rất chắc về NET
Nếu cần một công nghệ phát triển ứng dụng nhỏ và nhanh thì WPF không phải làlựa chọn phù hợp WPF phù hợp với các dự án lớn
Universal Windows Platform (UWP)
UWP là framework mới nhất chuyên để phát triển ứng dụng cho Windows Store
và xuất hiện cùng với Windows 10
Microsoft phát triển UWP với mục tiêu tạo ra một cấu trúc thống nhất cho ứngdụng chạy trên các nền tảng của mình mà không cần phải phát triển riêng cho từng nềntảng cụ thể nào
Khuyến nghị
Đây là framework còn rất mới và sự hỗ trợ chưa thực sự tốt
Trang 27Thêm vào đó, ứng dụng UWP chỉ có thể cài đặt thông qua windows store Điềunày có thể không thực sự phù hợp với một số loại ứng dụng (như ứng dụng quản lýchuyên dụng cho doanh nghiệp).
Ở Việt Nam hiện nay nhu cầu về công nghệ này chưa rõ ràng Vì vậy việc họcUWP hướng tới làm việc chuyên nghiệp tạm thời chưa khuyến khích Tuy nhiên, bạnđọc cũng hoàn toàn có thể tự tìm hiểu thử
3.3 Cơ sở dữ liệu Access
Access là gì?
Access là tên gọi tắt của phần mềm Microsoft Access, hay cũng được gọi là MSAccess Microsoft Access là Hệ thống quản lý cơ sở dữ liệu (DBMS) của Microsoft,thuộc bộ ứng dụng của Microsoft Office
Access là một hệ thống quản lý cơ sở dữ liệu hoặc một hệ quản trị cơ sở dữ liệuquan hệ với khả năng giúp chúng ta phát triển nhanh những giải pháp lưu trữ và quản
lý thông tin
Chức năng chính của Access
Với Access, bạn hoàn toàn có thể phát triển được một hệ thống quản trị thông tin dànhcho các doanh nghiệp vừa và nhỏ rất nhanh chóng, thậm chí Access còn có thể giúpcho việc quản trị dữ liệu trong một số mảng của doanh nghiệp lớn như quản lý thôngtin các đầu mối khách hàng, các cơ hội bán hàng, trạng thái khách hàng, quản lý đơnhàng, thông tin đặt hàng và thông tin sản phẩm
Ngoài ra Access còn cho chúng ta khả năng phát triển giao diện người dùng ở mứcđơn giản để chúng ta có thể tiến hành nhập dữ liệu và lưu vào các bảng
Một số chức năng chính của Access là:
Chức năng thiết kế bảng
Chức năng lưu trữ
Chức năng cập nhật thông tin
Chức năng đưa kết quả và xuất thông tin
Chức năng thiết lập các mối quan hệ giữa các bảng với nhau
Trang 28Liên kết các thông tin về khách hàng.
Một số công ty cũng sử dụng access để xây dựng phần mềm quản lý nội bộ cho côngty
Trang 29Access ứng dụng nhiều trong công việc báo cáo.
Sử dụng Access có khó không?
Với một chương trình thông tin được tạo ra để làm việc thì dường như là Accesskhông khó sử dụng Tương tự như các phần mềm Word hay Excel, nếu bạn luyện tậpnhiều và ứng dụng nó thì mọi thứ khá dễ dàng
Access được chia làm hai phần, đó là cơ bản và nâng cao Nếu sử dụng vừa phải thìphần cơ bản dễ dàng còn nếu muốn khai thác nhiều thông tin cũng như vận hành nhiềutính năng trong chương trình này thì cần có kiến thức cũng như kỹ năng nhiều hơn
Phần cơ bản Phần này tương đối dễ hơn cho người mới sử dụng vì chúng ta chỉ dùng
thao tác kéo thả nên tương đối đơn giản và dễ làm, một số truy vấn đơn giản và thống
kê và cách tạo form đơn giản, làm báo cáo
Phần nâng cao Phần này thì phức tạp hơn vì chúng ta cần xây dựng những chức năng
xử lý phức tạp hơn và những câu truy vấn phức tạp để lấy ra dữ liệu Hơn nữa muốnxây dựng được một chương trình theo ý muốn thì bạn phải biết về lập trình
Trong Access, ngôn ngữ lập trình VBA một ngôn ngữ được dùng để trong bộ officecủa Microsoft
Xem thêm: VBA là gì?
Cần chuẩn bị gì để học Access?
Trang 30Một chương trình công nghệ thông tin để hầu hết mọi người có thể sử dụng thì cầnngôn ngữ chung Vậy thì tiếng Anh là ngôn ngữ thông dụng nhất Các nội dung trongchương trình sử dụng ngôn ngữ tiếng Anh cho nên người Việt muốn sử dụng hiệu quả,
sử dụng các công cụ cũng như đọc thông tin thì nên có hiểu biết cơ bản về ngoại ngữnày
Ngoài ra, là một chương trình cho nên bạn cần thực hành nhiều, làm bài tập liên quanđến những thao tác cơ bản nhất giúp bạn sử dụng tốt Access Sử dụng Access khôngkhó nhưng với những ai không quen thì sẽ khó tiếp cận thông tin, cũng như ngôn ngữ
nó sử dụng Vốn dĩ cách trình bày, giao diện cũng như phương thức vận hành của nólogic nên bạn cũng cần suy nghĩ, kiên trì để học
Những kiến thức cần nắm trước khi bắt tay học access
Cơ sở dữ liệu (database) là gì?
Cơ sở dữ liệu được hiểu là nơi chứa dữ liệu Tại đây những dữ liệu bạn tạo ra, nhậpvào sẽ được lưu trữ
Có những loại cơ sở dữ liệu nào?
Hiện nay có nhiều loại cơ sở dữ liệu, một vài cái tên là Oracle, MySQL, MS SQL,Access, PostgreSQL, MongoDB (no SQL)…
Các loại dữ liệu được lưu trong database
Để lưu trữ dữ liệu trong Database, trong Access sẽ phân loại theo mục đích sử dụngcủa loại dữ liệu đó
Ví dụ dữ liệu Họ và tên sẽ dùng kiểu dữ liệu là text; lưu trữ tiền tệ hoặc những con sốthì chúng ta cần sử dụng kiểu dữ liệu number; còn đối với những kiểu dữ liệu kháccũng sẽ có 1 kiểu dữ liệu tương ứng Tuỳ thuộc vào đặc tính và mục đích sử dụng của
dữ liệu đó mà chúng ta sẽ có kiểu dữ liệu nhất định
Dữ liệu được quản lý như thế nào?
Chúng ta đang học về Access là một RDBMS, dữ liệu sẽ được lưu trữ trong các bảng(table) và giữa các bảng có tính liên kết với nhau tạo thành một hệ thống Nếu các bạn
đã làm việc với Excel thì sẽ thấy phần này rất quen thuộc, trong Excel, chúng ta lưutrữ dữ liệu trong các sheet, mỗi sheet chứa 1 thông tin nhất định Còn đối với Accessthì sử dụng các bảng (table)