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 potx

15 416 0
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 potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

124 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 125 - 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 126 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. 127 Hình 9-3 Edit macro trong MS Word Hình 9-4 Kết quả edit macro trong MS Word 128 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); 129 wordApp.ActiveDocument.Close(ref missing, ref missing, ref missing); StreamReader r = new StreamReader(uniqueFileName); string str = r.ReadToEnd(); r.Close(); int n1 = str.IndexOf("<body"); char tempChar = '<'; while(tempChar != '>') { tempChar = str[n1]; n1++; } int n2 = str.IndexOf("</body>"); string strFinal = str.Substring(n1, n2 - n1); Dựa vào các dấu phân cách quy định sẵn, chúng em sẽ tách được nội dung các câu hỏi, và trong mỗi câu hỏi sẽ lọc ra được đâu là nội dung hỏi và đâu ra nội dung các lựa chọn (đơn thuần chỉ là thao tác xử lý chuỗi). Cụ thể, một câu hỏi trong file muốn import phải có định dạng như sau: [!!!] Nội dung hỏi <!!!> Nội dung lựa chọn thứ 1 * <!!!> Nội dung lựa chọn thứ 2 <!!!> Nội dung lựa chọ n thứ 3 <!!!> Nội dung lựa chọn thứ 4 * <!!!> Nội dung lựa chọn thứ 5 Trong đó: - [!!!] là dấu quy định phân cách các câu hỏi. - <!!!> là dấu quy định phân cách các lựa chọn. - * là dấu quy định lựa chọn đúng. - Số lựa chọn và số lựa chọn đúng là không có giới hạn. Thông tin nội dung câu hỏi lấy được sẽ được sử dụng để xây dựng thành chuỗi xml và lưu vào CSDL. 130 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("<img"); while (pos >= 0) { privateWordApp.Selection.TypeText(strText.Substring(0, pos)); strText = strText.Remove(0, pos); 131 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("<img"); } privateWordApp.Selection.TypeText(strText); } 132 Chương 10 Tổng kết 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 133 Phuï luïc A - Export database theo đặc tả IMSQTI Nội dung file XSLT làm nhiệm vụ export: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="@*|node()"> <xsl:apply-templates select="*" /> </xsl:template> <xsl:template match="assessmentItem"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="responseDeclaration"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="responseDeclaration/node() | responseDeclaration/text() | responseDeclaration/node()/node() | responseDeclaration/text()/node()"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="outcomeDeclaration"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="itemBody"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="itemBody/node() | itemBody/text() | itemBody/node()/node() | itemBody/node()/text()"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> . 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. tin nội dung câu hỏi lấy được sẽ được sử dụng để xây dựng thành chuỗi xml và lưu vào CSDL. 130 9.2.4.2 Export Hệ thống hỗ trợ việc export 1 đề thi ra file .doc theo 1 template. 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

Ngày đăng: 30/07/2014, 20:20

Từ khóa liên quan

Mục lục

  • Tổng quan

    • Xu hướng chung

    • Hình thức thi trắc nghiệm

    • Lý do và mục tiêu của đề tài

    • Cấu trúc của báo cáo:

    • Chuẩn, chuẩn trắc nghiệm và đặc tả IMSQTI

      • Chuẩn và chuẩn trắc nghiệm

        • Giới thiệu chung

        • Tổ chức IMS

          • Tổ chức IMS

          • Mục đích, hoạt động của tổ chức IMS

          • Các đặc tả tổ chức IMS đặt ra

          • Tại sao tham gia IMS?

          • Sự hợp tác của IMS với các tổ chức khác

          • Đặc tả IMSQTI (Question and Test Interoperability)

            • Lịch sử các phiên bản:

            • Mục đích thiết kế

            • Cấu trúc tổ chức bài thi và câu hỏi

              • Cấu trúc chung

              • Bài thi

              • Section

              • Câu hỏi

              • Phân loại câu hỏi trắc nghiệm

                • Sơ đồ lớp interaction

                  • interaction

                  • inlineInteraction

                  • blockInteraction

                  • Sơ đồ lớp choice

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan