intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FRAMEWORK HỖ TRỢ CÁC HÌNH THỨC TRẮC NGHIỆM -10

Chia sẻ: Cao Tt | Ngày: | Loại File: PDF | Số trang:15

114
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

9.2 Kỹ thuật automation Microsoft Word 9.2.1 Giới thiệu Automation là kỹ thuật cho phép tận dụng các tính năng của 1 ứng dụng có sẵn và tích hợp vào trong chương trình của mình. Hệ thống của chúng em đòi hỏi phải kết xuất các đề thi ra file để phục vụ cho yêu cầu thi trên giấy, cũng như phải nhập được dữ liệu câu hỏi từ các định dạng file để tận dụng ngân hàng đề thi đã có từ trước đến nay. Theo nhận xét thì định dạng file .doc và file .pdf là phổ biến nhất...

Chủ đề:
Lưu

Nội dung Text: TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FRAMEWORK HỖ TRỢ CÁC HÌNH THỨC TRẮC NGHIỆM -10

  1. 9.2 Kỹ thuật automation Microsoft Word 9.2.1 Giới thiệu Automation là kỹ thuật cho phép tận dụng các tính năng của 1 ứng dụng có sẵn và tích hợp vào trong chương trình của mình. Hệ thống của chúng em đòi hỏi phải kết xuất các đề thi ra file để phục vụ cho yêu cầu thi trên giấy, cũng như phải nhập được dữ liệu câu hỏi từ các định dạng file để tận dụng ngân hàng đề thi đã có từ trước đến nay. Theo nhận xét thì định dạng file .doc và file .pdf là phổ biến nhất hiện nay cho việc lưu trữ ngân hàng đề thi, tuy nhiên đã có nhiều chương trình hỗ trợ cho việc chuyển qua lại giữa 2 định dạng file này. Thêm nữa, file .doc có thể dễ dàng được tạo ra vì MS Word là trình soạn thảo văn bản rất thân thiện, phổ biến. Vì vậy, chúng em quyết định sử dụng kỹ thuật automation để automate MS Word nhằm sử dụng trực tiếp các tính năng có sẵn của Word phục vụ cho yêu cầu nhập xuất/kết xuất ngân hàng đề thi, câu hỏi của hệ thống. 9.2.2 Các đối tượng trong MS Word Hình 9-1 Sơ đồ quan hệ của các đối tượng của MS Word 124
  2. - Application chính là ứng dụng MS Word đang được gọi thực thi. - Document là đại diện cho các văn bản Word đang quản lý. Khi mở hay tạo 1 văn bản mới chính là tạo nên 1 đối tượng document và thêm đối tượng này vào tập hợp các document của application hiện hành. Văn bản đang được trực tiếp xử lý là active document. - Selection đại diện cho vùng văn bản đang được chọn. Khi không có gì được chọn thì selection chính là vị trí con trỏ. Selection có thể bao gồm nhiều vùng văn bản không liên tiếp nhau. - Range đại diện cho 1 vùng văn bản liên tục được xác định bởi ký tự bắt đầu và ký tự kết thúc vùng văn bản. 1 document có thể được chứa nhiều range. Range có thể: Chỉ chứa duy nhất vị trí con trỏ (điểm chèn) hay 1 đoạn văn bản hay toàn bộ document. Gồm cả các ký tự không in được như là khoảng trắng, khoảng tab, dấu phân cách đoạn văn bản … Chỉ tồn tại khi đoạn code tạo ra nó đang được thực thi. - Bookmark cũng đại diện cho 1 vùng văn bản liên tục, được sử dụng để đánh dấu vị trí. Bookmark có thể chỉ là 1 điểm chèn, mà cũng có thể là toàn bộ văn bản. Bookmark có các đặc điểm sau: Có thể có tên. Được lưu cùng với document. Mặc định là được ẩn đi. 9.2.3 Ngôn ngữ VBA (Microsoft Visual Basic for Applications) Tất cả các ứng dụng của Microsoft Office đều có ngôn ngữ script của nó, đó chính là VBA. Ngôn ngữ này có thể được sử dụng để thực hiện các nhiệm vụ trong ứng dụng. Nói 1 cách dễ hiểu thì tất cả các thao tác trên ứng dụng thông qua thanh menu và bàn phím đều có thể được diễn tả lại bằng ngôn ngữ này. Vì vậy, có 1 cách giúp cho người chưa quen với đối tượng của MS Word xác định được các công việc 125
  3. phải làm khi thực hiện automation là sử dụng các macro của chính MS Word ghi lại các thao tác muốn automate. Ví dụ bạn muốn automate MS Word để tạo 1 file mới, gõ vào 1 đoạn text rồi lưu lại nhưng bạn không biết phải sử dụng các hàm nào. Bạn có thể thông qua các macro để biết được điều đó. Trước tiên, bạn phải ghi lại 1 macro mới. Hình 9-2 Record macro trong MS Word Sau đó, bạn thực hiện các thao tác muốn automate rồi dừng việc ghi macro lại. Và cuối cùng, bạn chỉ việc xem MS Word đã thao tác như thế nào thông qua macro vừa ghi được. 126
  4. Hình 9-3 Edit macro trong MS Word Hình 9-4 Kết quả edit macro trong MS Word 127
  5. 9.2.4 Ứng dụng trong hệ thống Để có thể thực hiện automation, trước tiên phải cho phép chương trình tham chiếu đến thư viện xử lý của Word. Hình 9-5 Add reference đến Word Object Library trong .NET 9.2.4.1 Import Thao tác import trong hệ thống cần phải xử lý cả việc import hình ảnh. Mà như đã biết, các hình ảnh được chèn vào trong file .doc thì sẽ được lưu cùng với file .doc đó. Do vậy, để lấy được hình cụ thể, chúng em phải tiến hành lưu tạm file .doc dưới dạng trang web, rồi tìm trong source của trang web liên kết đến hình ảnh cụ thể để copy lưu vào trong cơ sở dữ liệu. Object missing = System.Reflection.Missing.Value; object saveFileName = uniqueFileName; object fileFormat = Word.WdSaveFormat.wdFormatHTML; // Luu vao file tam duoi dang html wordApp.ActiveDocument.SaveAs( ref saveFileName, ref fileFormat, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 128
  6. wordApp.ActiveDocument.Close(ref missing, ref missing, ref missing); StreamReader r = new StreamReader(uniqueFileName); string str = r.ReadToEnd(); r.Close(); int n1 = str.IndexOf("
  7. 9.2.4.2 Export Hệ thống hỗ trợ việc export 1 đề thi ra file .doc theo 1 template đề thi có sẵn. Template đề thi được tạo ra theo ý thích của các giáo viên và được copy vào trong thư mục WordFile Temlates của hệ thống. 1 template đề thi phải đáp ứng các yêu cầu sau: - Có 1 bookmark có tên là assName đặt tại vị trí giáo viên muốn hiển thị tên bài thi. - Có 1 bookmark có tên là assHeader đặt tại vị trí giáo viên muốn hiển thị các ghi chú đầu bài thi (header) - Có 1 bookmark có tên là assFooter đặt tại vị trí giáo viên muốn hiển thị các ghi chú cuối bài thi (footer) - Có 1 bookmark có tên là assSections đặt tại vị trí giáo viên muốn bắt đầu hiển thị các section, các câu hỏi của bài thi. - Phần nào giáo viên không muốn hiển thị thì bookmark đánh dấu phần đó không cần phải được tạo ra. Khi có yêu cầu export 1 đề thi ra file, chương trình sẽ tìm vị trí các bookmark, nếu bookmark tồn tại trong file template được chọn thì chương trình sẽ ghi đoạn văn bản phù hợp vào vị trí bookmark đó. foreach (Word.Bookmark brm in privateWordApp.ActiveDocument.Bookmarks) if (brm.Name == "assHeader") ReplaceBookmarkText("assHeader", privateAssessment.HeaderNote); Trường hợp đoạn văn bản cần ghi có chứa tag image (tức là phải chèn 1 hình vào file) thì chương trình sẽ thực hiện thêm 1 đối tượng Word.Shape vào tập hợp hình ảnh mà văn bản đang được xử lý quản lý. Khi lưu văn bản, các hình ảnh cũng sẽ được lưu trữ theo. private void TypeString(Word.ApplicationClass privateWordApp, string strText) { int pos = strText.IndexOf("
  8. pos = strText.IndexOf("src="); strText.Remove(0, pos+1); pos = strText.IndexOf("\""); string image = strText.Substring(0, pos); Object oFalse = false; Object oTrue = true; Object oMissing = Type.Missing; // them 1 hinh anh vao tap hop InlineShapes privateWordApp.Selection.InlineShapes.AddPicture(image, ref oFalse, ref oTrue, ref oMissing); pos = strText.IndexOf("/img>"); strText.Remove(0, pos); pos = strText.IndexOf("
  9. Tổng kết Chương 10 10.1 Kết luận Sau thời gian nghiên cứu, tìm hiểu các hình thức trắc nghiệm và phát triển ứng dụng, đề tài đã đạt được các mục tiêu sau: o Xây dựng được một cổng dịch vụ thi cử là một hệ thống liên hoàn phối hợp nhuần nhuyễn giữa môi trường web và windows trong việc quản lý ngân hàng câu hỏi, đề thi và tổ chức thi trắc nghiệm. o Có một khung ứng dụng (framework) hết sức linh động, có tính tiến hóa cao giúp cho việc mở rộng và nâng cấp hệ thống thật sự dễ dàng và hiệu quả. o Xây dựng được các ứng dụng trên web và trên windows tiện dụng, ổn định và nhiều tính năng hữu ích, có thể ứng dụng được ngay trong thực tế trong việc soạn câu hỏi, đề thi trắc nghiệm và thực hiện việc đánh giá, kiểm tra nhanh chóng. o Cấu trúc câu hỏi trắc nghiệm tuân theo đặc tả IMSQTI – một đặc tả XML, là đặc tả quốc tế được sử dụng rộng rãi nhất trên thế giới. Nhờ đó, cơ sở dữ liệu ngân hàng câu hỏi của hệ thống có khả năng trao đổi, có thể phân phối hay sử dụng lại ở bất cứ hệ thống nào khác trên thế giới có sử dụng đặc tả này. 10.2 Hướng phát triển Thêm nhiều loại câu hỏi thêm nữa Hỗ trợ thêm nhiều phiên bản khác nhau cho từng loại câu hỏi Hoàn thiện thêm các chức năng giúp thuận tiện hơn cho người sử dụng 132
  10. Phuï luïc A - Export database theo đặc tả IMSQTI Nội dung file XSLT làm nhiệm vụ export: 133
  11. 134
  12. Phuï luïc B - Phần lưu trữ XML của một số dạng câu hỏi trong đặc tả IMSQTI o Câu hỏi inlineChoiceInteraction: H O Which of the following elements are used to form water? Hydrogen Helium Carbon Oxygen Nitrogen Chlorine 135
  13. o Câu hỏi textEntryInteraction: York Identify the missing word in this famous quote from Shakespeare's Richard III. Now is the winter of our discontent Made glorious summer by this sun of ; And all the clouds that lour'd upon our house In the deep bosom of the ocean buried. 136
  14. o Câu hỏi orderInteraction: DriverC DriverA DriverB The following F1 drivers finished on the podium in the first ever Grand Prix of Bahrain. Can you rearrange them into the correct finishing order? Rubens Barrichello Jenson Button Michael Schumacher 137
  15. TÀI LIỆU THAM KHẢO [1] www.msdn.microsoft.com [2] www.imsglobal.org [3] www.el.edu.net.vn [4] www.codeproject.com [5] www.dnzone.com [6] www.asp.net [7] www.w3.org 138
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2