Luận văn Xây dựng phần mềm dạy học Toán học

- i - LỜI MỞ ĐẦU Ngày nay, ngành công nghệ thông tin trên thế giới ngày càng phát triển mạnh mẽ, và ngày càng ứng dụng vào nhiều lĩnh vực. Với khả năng ứng dụng rộng rãi của ngành công nghệ thông tin, với chính sách phát triển ngành công nghệ thông tin của nhà nước, với việc nâng cao chất lượng giáo dục ở nước ta thì việc tin học hóa giáo dục (ứng dụng ngành công nghệ thông tin vào ngành giáo dục) là phù hợp và thiết thực. Với khả năng trên, việc đưa tin học hỗ trợ cho lãnh vực gi

pdf213 trang | Chia sẻ: huong20 | Ngày: 08/01/2022 | Lượt xem: 427 | Lượt tải: 0download
Tóm tắt tài liệu Luận văn Xây dựng phần mềm dạy học Toán học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iáo dục, trong đó việc hỗ trợ cho việc giải bài tập của học sinh tại nhà là có thể thực hiện được. Để giúp học sinh có khả năng tự giải bài tập mà không cần đến lớp học thêm, không cần người hướng dẫn giải bài tập, thì với một phần mềm hỗ trợ giải bài tập trên máy tính tại nhà sẽ đáp ứng được cho học sinh những nhu cầu này. Và điển hình là phần mềm hỗ trợ ôn thi tốt nghiệp phổ thông trung học môn toán mà chúng em đã nghiên cứu và thực hiện. Để nâng cao chất lượng giáo dục phổ thông Bộ Giáo dục và Đào tạo đã cái tiến cách dạy và học: tăng cường thiết bị dạy và học, thêm kiến thức vào một số sách giáo khoa, thêm một số môn học mới vào chương trình học. Lượng kiến thức cần truyền đạt và đòi hỏi học sinh nắm bắt tăng nhiều hơn. Trong khi đó, với lượng kiến thức như thế, việc dạy của giáo viên và sự tiếp thu của một số học sinh ở trường, đôi khi không đạt được những kết quả mong muốn. Vì lí do, không đủ thời gian trên lớp để giáo viên hướng dẫn cặn kẽ cho học sinh giải bài tập, nên một số học sinh không thể hoặc khó khăn để theo kịp chương trình học của mình. Vì vậy, việc tự giải bài tập của học sinh ở nhà là việc hết sức khó khăn, nếu không muốn nói là đôi khi không không thể làm được nếu không có người hướng dẫn. Cho nên, một số học sinh đã phải nhờ người hướng dẫn tại nhà (giáo viên kèm tại nhà; anh, chị, phụ huynh có kiến thức về bài tập - ii - của con em mình), số học sinh còn lại không có điều kiện trên thì đến lớp học thêm (hình thức phổ biến) của giáo viên bộ môn. Với lượng kiến thức nhiều hơn trước đây, đòi hỏi học sinh và giáo viên phải đầu tư nhiều thời gian và công sức hơn. Vì thế, một phần mềm để hỗ trợ thêm cho học sinh và giáo viên dạy và học tốt hơn là thực sự cần thiết. Trong đề tài của mình, chúng em mong muốn cung cấp cho giáo viên khả năng biên soạn lý thuyết, biên soạn bài tập trắc nghiệm cũng như tự luận để cung cấp cho học sinh, hỗ trợ phát sinh đề và giải bài tập tự luận cho hầu hết các dạng toán thi tốt nghiệp, hỗ trợ cho học sinh làm bài và chấm bài trắc nghiệm cho học sinh, hỗ trợ thể hiện các ký hiệu toán học trên chương trình. Nội dung của luận văn được chia làm 5 chương cụ thể như sau: Chương 1 Mở Đầu: giới thiệu tổng quan về đề tài, những công việc cần làm trong đề tài. Chương 2 Phân Tích: phân tích đề tài. Chương 3 Thiết Kế: thiết kế đề tài. Chương 4 Kỹ Thuật: giới thiệu các kỹ thuật sử dụng trong quá trình thực hiện đề tài như việc thể hiện các ký hiệu toán học, XML, XSLT, MathML... Chương 5 Thực hiện và kiểm tra: thực hiện và các bộ kiểm tra chương trình. Chương 6 Tổng kết: tóm tắt kết quả đạt được, đề ra hướng phát triển trong tương lai. Phụ lục: Một số vấn đề cần quan tâm của đề tài. - iii - MỤC LỤC LỜI MỞ ĐẦU..................................................................................................................i MỤC LỤC .................................................................................................................. iii DANH SÁCH CÁC HÌNH...........................................................................................vii DANH SÁCH CÁC BẢNG........................................................................................ viii Chương 1 Mở đầu ......................................................................................................1 1.1. Giới thiệu về đề tài ...........................................................................................2 1.2. Khảo sát hiện trạng...........................................................................................3 1.2.1. Tình hình thực tế ........................................................................................3 1.2.2. Hiện trạng tin học.......................................................................................4 1.3. Nhu cầu thực tế ................................................................................................6 1.4. Mục tiêu ...........................................................................................................6 1.5. Yêu cầu.............................................................................................................7 1.5.1. Yêu cầu chức năng.....................................................................................7 1.5.2. Yêu cầu phi chức năng.............................................................................11 1.5.2.1. Tính tiến hóa :...................................................................................11 1.5.2.2. Tính tiện dụng :.................................................................................11 1.5.2.3. Tính hiệu quả : ..................................................................................12 1.5.2.4. Tính tương thích : .............................................................................12 1.5.3. Các yêu cầu khác .....................................................................................13 1.5.3.1. Tính tái sử dụng :..............................................................................13 1.5.3.2. Tính dễ bảo trì : ................................................................................13 1.5.3.3. Tính dễ mang chuyển : .....................................................................13 Chương 2 Phân tích .................................................................................................14 2.1. Sơ đồ sử dụng.................................................................................................15 Danh sách các yêu cầu: ................................................................................................15 2.2. Sơ đồ luồng dữ liệu ........................................................................................17 2.2.1. Soạn lý thuyết ..........................................................................................17 2.2.2. Soạn bài tập mẫu......................................................................................17 2.2.3. Phát sinh bài tập .......................................................................................18 2.2.4. Phát sinh bài giải ......................................................................................18 2.2.5. Soạn câu trắc nghiệm...............................................................................18 2.2.6. Phát sinh đề thi trắc nghiệm.....................................................................19 2.2.7. Xem lý thuyết...........................................................................................20 2.2.8. Xem bài tập mẫu ......................................................................................20 - iv - 2.2.9. Thi tự luận................................................................................................21 2.2.10. Làm bài trắc nghiệm.............................................................................21 2.2.11. Chấm bài trắc nghiệm ..........................................................................22 2.3. Sơ đồ lớp ........................................................................................................23 Chương 3 Thiết kế....................................................................................................25 3.1. Sơ đồ kiến trúc tổng thể .................................................................................26 3.2. Chi tiết tổ chức lưu trữ đối tượng...................................................................38 3.2.1. Câu trắc nghiệm .......................................................................................38 3.2.2. Lý thuyết ..................................................................................................39 3.2.3. Bài Tập Mẫu ............................................................................................39 3.2.4. Đề thi trắc nghiệm....................................................................................40 3.3. Thiết kế các lớp đối tượng xử lý thể hiện ......................................................42 3.3.1. Sơ đồ màn hình trong phân hệ học sinh...................................................42 3.3.2. Sơ đồ màn hình trong phân hệ giáo viên .................................................43 3.3.3. Các màn hình chung của hai phân hệ ......................................................44 3.3.3.1. Màn hình chính.................................................................................44 3.3.3.2. Màn hình Soạn Lý Thuyết ................................................................46 3.3.3.3. Thể hiện Lý thuyết............................................................................50 3.3.3.4. Màn hình Soạn Bài tập mẫu .............................................................53 3.3.3.5. Thể hiện bài tập mẫu ........................................................................56 3.3.3.6. Màn hình Soạn đề trắc nghiệm.........................................................58 3.3.3.7. Màn hình điều kiện phát sinh đề trắc nghiệm ..................................63 3.3.3.8. Thể hiện câu trắc nghiệm .................................................................67 3.3.3.9. Thể hiện câu trắc nghiệm loại 1 .......................................................70 3.3.3.10. Thể hiện câu trắc nghiệm loại 2 .......................................................71 3.3.3.11. Thể hiện câu trắc nghiệm loại 3 .......................................................73 3.3.3.12. Thể hiện cây danh mục.....................................................................74 3.3.3.13. Thể hiện thời gian.............................................................................75 3.3.3.14. Màn hình Nhập câu trắc nghiệm ......................................................77 3.3.3.15. Màn hình Khảo sát và vẽ đồ thị hàm số ...........................................79 3.3.3.16. Màn hình tính đạo hàm biểu thức.....................................................81 3.3.3.17. Thể hiện Bảng biến thiên..................................................................82 3.3.3.18. Thể hiện đồ thị hàm số .....................................................................83 3.3.3.19. Màn hình Không Gian – Mặt Phẳng ................................................84 3.3.3.20. Màn hình Thư viện ...........................................................................86 3.3.3.21. Màn hình Tham Số ...........................................................................88 3.3.4. Các màn hình của phân hệ học sinh.........................................................89 3.3.4.1. Thể hiện Lý Thuyết Chính ...............................................................89 3.3.4.2. Thể hiện Bài tập chính......................................................................90 - v - 3.3.4.3. Thể hiện Trắc nghiệm Chính............................................................92 3.3.4.4. Màn hình thi trắc nghiệm .................................................................93 3.3.5. Các màn hình của phân hệ giáo viên .......................................................96 3.3.5.1. Màn hình Lý thuyết Chính ...............................................................96 3.3.5.2. Màn hình bài tập chính .....................................................................97 3.3.5.3. Màn hình trắc nghiệm chính.............................................................99 3.3.5.4. Màn hình Soạn Câu trắc nghiệm : ..................................................100 3.4. Thiết kế các lớp đối tượng xử lý nghiệp vụ .................................................104 3.4.1. Lý thuyết ................................................................................................104 3.4.1.1. Lớp LyThuyet.................................................................................104 3.4.1.2. Lớp DSLyThuyet............................................................................105 3.4.2. Trắc Nghiệm ..........................................................................................106 3.4.2.1. Lớp CauTracNghiem......................................................................106 3.4.2.2. Lớp DanhSachCauTN ....................................................................106 3.4.2.3. Lớp DethiTracNghiem ...................................................................108 3.4.2.4. Lớp DanhSachDethiTN..................................................................109 Bảng 3-42 Các bảng mô tả lớp DanhSachDeThiiTN...........................................109 3.4.3. Bài tập: ...................................................................................................109 3.4.3.1. Lớp Thư viện (THUVIEN):............................................................109 3.4.3.2. Lớp Bài tập tự luận (BaiTapTuLuan):............................................110 3.4.3.3. Lớp hàm số(HAM_SO): .................................................................111 3.4.3.4. Lớp xử lý không gian tọa độ (XL_KhongGianToaDo): ................114 3.4.3.5. Lớp xử lý mặt phẳng tọa độ (XL_MatPhangToaDo):....................117 3.4.3.6. Lớp biểu thức (BIEU_THUC):.......................................................121 Bảng 3-46 Các bảng mô tả lớp BIEU_THUC .............................................121 3.4.3.7. Lớp đơn thức (DON_THUC): ........................................................121 3.4.3.8. Lớp hằng số (HANG_SO)..............................................................122 3.4.3.9. Lớp biểu thức 1 ngôi (BIEU_THUC_1_NGOI).............................122 3.4.3.10. Lớp biểu thức 2 ngôi (BIEU_THUC_2_NGOI) ............................123 3.4.3.11. Lớp Tham số ( ThamSo ): ..............................................................125 3.5. Sơ đồ phối hợp hoạt động ............................................................................126 3.5.1. Lưu trữ bài lý thuyết ..............................................................................126 3.5.2. Lưu trữ câu trắc nghiệm.........................................................................126 3.5.3. Phát sinh đề trắc nghiệm........................................................................127 3.5.4. Thi trắc nghiệm ......................................................................................127 3.5.5. Chấm điểm bài trắc nghiệm ...................................................................128 Chương 4 Một số kỹ thuật đặc trưng của đề tài .................................................129 4.1. XML.............................................................................................................130 4.2. XSLT............................................................................................................130 - vi - 4.3. MATHML....................................................................................................130 4.4. MATHML Control.......................................................................................131 4.5. Thư viện hỗ trợ nhận dạng đề tự luận ..........................................................132 Chương 5 Thực hiện và kiểm tra..........................................................................133 5.1. Thực hiện phần mềm....................................................................................134 5.2. Kiểm tra phần mềm......................................................................................134 Chương 6 Tổng kết ................................................................................................139 6.1. Các kết quả đạt được....................................................................................140 6.1.1. Các yêu cầu chức năng : ........................................................................140 6.1.2. Các yêu phi chức năng:..........................................................................142 6.2. Tự đánh giá ..................................................................................................142 6.2.1. Ưu điểm: ................................................................................................142 6.2.2. Hạn chế: .................................................................................................142 6.3. Hướng phát triển ..........................................................................................143 PHỤ LỤC ................................................................................................................144 TÀI LIỆU THAM KHẢO .........................................................................................204 - vii - DANH SÁCH CÁC HÌNH Hình 1-1 Giao diện của PM Ôn Thi Toán của ADCOM .................................................4 Hình 1-2 GD của “LTĐH”...............................................................................................4 Hình 1-3 Giao Diện của PM Toán của ESoft...................................................................5 Hình 2-1 Sơ đồ sử dụng .................................................................................................15 Hình 2-2 Sơ đồ lớp.........................................................................................................23 Hình 3-1 Sơ đồ kiến trúc tổng thể ..................................................................................26 Hình 3-2 Sơ đồ màn hình phân hệ Học Sinh .................................................................42 Hình 3-3 Sơ đồ màn hình phân hệ Giáo Viên................................................................43 Hình 3-4 Màn hình chính ...............................................................................................44 Hình 3-5 Màn hình Soạn lý thuyết.................................................................................47 Hình 3-6 Thể hiện Lý Thuyết.........................................................................................51 Hình 3-7 Màn hình Soạn Bài Tập Mẫu..........................................................................53 Hình 3-8 Thể hiện bài tập mẫu.......................................................................................56 Hình 3-9 Màn hình Soạn Đề Trắc Nghiệm....................................................................59 Hình 3-10 Màn hình Điều kiện phát sinh Đề Trắc Nghiệm...........................................64 Hình 3-11 Thể hiện Câu Trắc Nghiệm...........................................................................67 Hình 3-12 Thể hiện Câu Trắc Nghiệm loại 1.................................................................70 Hình 3-13 Thể hiện Câu Trắc Nghiệm loại 2.................................................................71 Hình 3-14 Thể hiện Câu Trắc Nghiệm loại 3.................................................................73 Hình 3-15 Thể hiện Cây Danh Mục...............................................................................74 Hình 3-16 Thể hiện Thời Gian.......................................................................................75 Hình 3-17 Màn hình Nhập Câu Trắc Nghiệm................................................................77 Hình 3-18 Màn hình Khảo sát và vẽ đồ thị ....................................................................79 Hình 3-19 Màn hình Tính Đạo Hàm Biểu thức .............................................................81 Hình 3-20 Thể hiện Bảng Biến Thiên............................................................................82 Hình 3-21 Thể hiện Đồ thị Hàm số ................................................................................83 Hình 3-22 Màn hình Không Gian – Mặt phẳng .............................................................84 Hình 3-23 Màn hình thư viện.........................................................................................86 Hình 3-24 Màn hình thư viện.........................................................................................88 Hình 3-25 Thể hiện Lý Thuyết.......................................................................................89 Hình 3-26 Thể hiện Bài Tập Chính................................................................................90 Hình 3-27 Thể hiện Trắc Nghiệm Chính .......................................................................92 Hình 3-28 Màn hình Thi Trắc Nghiệm ..........................................................................93 Hình 3-29 Thể hiện Lý Thuyết Chính_Giáo viên ..........................................................96 Hình 3-30 Thể hiện Bài Tập Chính_Giáo viên ..............................................................97 Hình 3-31 Thể hiện Trắc Nghiệm Chính_Giáo Viên.....................................................99 Hình 3-32 Màn hình Soạn Câu Trắc Nghiệm ..............................................................100 - viii - DANH SÁCH CÁC BẢNG Bảng 1-1 Tính tiến hoá...................................................................................................11 Bảng 1-2 Tính hiệu quả..................................................................................................12 Bảng 2-1 Danh sách các usecase....................................................................................16 Bảng 2-2 Danh sách các lớp đối tượng ..........................................................................24 Bảng 3-1 Danh sách các lớp thể hiện.............................................................................28 Bảng 3-2 Danh sách các lớp xử lý .................................................................................30 Bảng 3-3 Danh sách các lớp lưu trữ...............................................................................31 Bảng 3-4 Danh sách các lớp con của XL_KhongGianToaDo .......................................32 Bảng 3-5 Danh sách các lớp con của XL_MatPhangToaDo .........................................35 Bảng 3-6 Danh sách các lớp con của lớp HAMSO........................................................36 Bảng 3-7 Danh sách các lớp con của lớp BIEUTHUC..................................................37 Bảng 3-8 Các bảng thông tin về màn hình chính...........................................................46 Bảng 3-9 Các bảng mô tả màn hình Soạn Lý Thuyết ....................................................50 Bảng 3-10 Các bảng mô tả Thể hiện Lý thuyết .............................................................52 Bảng 3-11 Các bảng mô tả màn hình Soạn Bài Tập Mẫu..............................................55 Bảng 3-12 Các bảng mô tả thể hiện Bài Tập Mẫu .........................................................58 Bảng 3-13 Các bảng mô tả màn hình Soạn Đề Trắc Nghiệm........................................63 Bảng 3-14 Các bảng mô tả màn hình Điếu kiện Phát sinh ............................................67 Bảng 3-15 Các bảng mô tả thể hiện Câu Trắc Nghiệm .................................................69 Bảng 3-16 Các bảng mô tả thể hiện Câu Trắc Nghiệm 1 ..............................................71 Bảng 3-17 Các bảng mô tả thể hiên câu Trắc Nghiệm 2 ...............................................72 Bảng 3-18 Các bảng mô tả thể hiện Câu Trắc Nghiệm 3 ..............................................73 Bảng 3-19 Các bảng mô tả thể hiện Cây Danh Mục......................................................75 Bảng 3-20 Các bảng mô tả thể hiện Thời Gian..............................................................77 Bảng 3-21 Các bảng mô tả màn hình Nhập Câu Trắc Nghiệm .....................................79 Bảng 3-22 Các bảng mô tả màn hình Khảo sát và vẽ Đố thị .........................................80 Bảng 3-23 Các bảng mô tả màn hình Tính Đạo Hàm Biểu thức ...................................82 Bảng 3-24 Các bảng mô tả thể hiện Bảng Biến Thiên...................................................82 Bảng 3-25 Các bảng mô tả thể hiện đồ thị .....................................................................84 Bảng 3-26 Các bảng mô tả màn hình Không Gian Mặt phẳng......................................86 Bảng 3-27 Các bảng mô tả màn hình Thư viện .............................................................87 Bảng 3-28 Các bảng mô tả màn hình Thư viện .............................................................89 Bảng 3-29 Các bảng mô tả thể hiện Lý Thuyết Chính_ Học sinh .................................90 Bảng 3-30 Các bảng mô tả thể hiện Bài Tập Chính _Học sinh .....................................91 Bảng 3-31 Các bảng mô tả thể hiện Trắc Nghiệm Chính ..............................................93 Bảng 3-32 Các bảng mô tả màn hình Thi Trắc Nghiệm ................................................96 Bảng 3-33 Các bảng mô tả thể hiện Lý Thuyết Chính...................................................97 Bảng 3-34 Các bảng mô tả thể hiện Bài Tập Chính.......................................................98 - ix - Bảng 3-35 Các bảng mô tả thể hiện Bài Tập Chính.....................................................100 Bảng 3-36 Các bảng mô tả màn hình Soạn Câu Trắc Nghiệm ....................................103 Bảng 3-37 Các bảng mô tả lớp Lý Thuyết ...................................................................104 Bảng 3-38 Các bảng mô tả lớp DSLyThuyet...............................................................105 Bảng 3-39 Các bảng mô tả lớp CauTracNghiem.........................................................106 Bảng 3-40 Các bảng mô tả lớp DanhSachCauTN .......................................................107 Bảng 3-41 Các bảng mô tả lớp DeThiTracNghiem .....................................................108 Bảng 3-42 Các bảng mô tả lớp DanhSachDeThiiTN...................................................109 Bảng 3-43 Các bảng mô tả lớp HAMSO .....................................................................112 Bảng 3-44 Các bảng mô tả lớp XL_KhongGianToaDo...............................................115 Bảng 3-45 Các bảng mô tả lớp XL_MatPhangToaDo.................................................118 Bảng 3-46 Các bảng mô tả lớp BIEU_THUC .............................................................121 Bảng 3-47 Các bảng mô tả lớp DON_THUC ..............................................................122 Bảng 3-48 Các bảng mô tả lớp HANG_SO.................................................................122 Bảng 3-49 Các bảng mô tả lớp BIEU_THUC_1_NGOI .............................................123 Bảng 3-50 Các bảng mô tả lớp BIEU_THUC_2_NGOI .............................................123 Chương 1. Mở đầu - 1 - Chương 1 Mở đầu ªChương này giới thiệu tổng quan về đề tài, gồm các phần sau: • Giới thiệu về đề tài • Khảo sát hiện trạng • Nhu cầu thực tế • Mục tiêu • Yêu cầu Chương 1. Mở đầu - 2 - 1.1. Giới thiệu về đề tài Ngày nay, ngành công nghệ thông tin trên thế giới đang trên đà phát triển mạnh mẽ, và ngày càng ứng dụng vào nhiều lĩnh vực: kinh tế, khoa học kĩ thuật, quân sự, y tế, giáo dục và nó đã đáp ứng ngày càng nhiều yêu cầu của các lĩnh vực này, để phục vụ cho nhu cầu của con người. Với khả năng ứng dụng rộng rãi của ngành công nghệ thông tin, với chính sách phát triển ngành công nghệ thông tin của nhà nước, với việc nâng cao chất lượng giáo dục ở nước ta thì việc tin học hóa giáo dục (ứng dụng ngành công nghệ thông tin vào ngành giáo dục) là phù hợp và thiết thực. Với khả năng trên, việc đưa tin học hỗ trợ cho lãnh vực giáo dục, trong đó việc hỗ trợ cho việc giải bài tập của học sinh tại nhà là có thể thực hiện được. Để giúp học sinh có khả năng tự giải bài tập mà không cần đến lớp học thêm, không cần người hướng dẫn giải bài tập, thì với một phần mềm hỗ trợ giải bài tập trên máy tính tại nhà sẽ đáp ứng được cho học sinh những nhu cầu này. Và điển hình là phần mềm hỗ trợ ôn thi tốt nghiệp phổ thông trung học môn toán mà chúng em đã nghiên cứu và thực hiện. Chương 1. Mở đầu - 3 - 1.2. Khảo sát hiện trạng 1.2.1. Tình hình thực tế Các nghiệp vụ của giáo viên Soạn bài giảng: Trước giờ lên lớp dạy, giáo viên soạn bài giảng của mình từ sách giáo khoa của bộ giáo dục và những tài liệu tham khảo khác. Soạn bài tập: Những bài tập cho học sinh làm, giáo viên có thể tự soạn hay lấy từ sách giáo khoa, những tài liệu tham khảo. Soạn hướng dẫn giải bài tập: Để đưa ra các hướng dẫn, gợi ý giải bài tập cho học sinh, giáo viên soạn thông qua kiến thức sẵn có của mình hay tham khảo tài liệu. Chấm điểm và cho nhận xét, đánh giá kết quả: Giáo viên chấm điểm bài làm của học sinh. Các nghiệp vụ của học sinh Giải bài tập: Đa số học sinh làm nháp trước, đến khi tìm ra được hướng đi đến kết quả bài toán thì mới thực sự ghi vào tập hoặc giấy kiểm tra. Xem tóm tắt lý thuyết: Học sinh nghe giảng và ghi chép lý thuyết ở lớp; về nhà, học sinh xem lại bài giảng và đôi khi, học sinh cần tra cứu lý thuyết trong quá trình làm bài tập. Xem đánh giá: Học sinh xem lại bài làm của mình sau khi giáo viên chấm bài và sửa bài. Xem đáp án: Học sinh xem bài giải mẫu của giáo viên để học tập cách giải. Chương 1. Mở đầu - 4 - 1.2.2. Hiện trạng tin học Thực hiện khảo sát trên 3 chương trình là : • “Phần mềm Ôn Thi Đại Học – Môn Toán” của công ty ADCOM Hình 1-1 Giao diện của PM Ôn Thi Toán của ADCOM Nhận xét : Phần mềm cung cấp lý thuyết khá đầy đủ. Hỗ trợ học sinh làm bài trắc nghiệm, chấm bài làm trắc nghiệm. Ngân hàng dữ liệu bài tập mẫu không nhiều. Phần lý thuyết không có chức năng biên soạn. • “Luyện Thi Đại Học” của tác giả Nguyễn Văn Hảo. Hình 1-2 GD của “LTĐH” Nhận xét : Cho phép thực hiện nhiều phép toán. Biên soạn bài tập một cách thủ công. Chưa hỗ trợ chức năng phát sinh đề trắc nghiệm tự động. Chưa hỗ trợ chức năng giải toán. Chương 1. Mở đầu ....... 3.2.4. Đề thi trắc nghiệm <!DOCTYPE DanhSachDeThiTracNghiem [ <!ATTLIST CauTracNghiem Ma CDATA #REQUIRED Chuong CDATA #REQUIRED Lop CDATA #REQUIRED MucDo CDATA #REQUIRED > <!ATTLIST CauTraLoi DapAn CDATA #REQUIRED > <!ATTLIST DeThi Ma CDATA #REQUIRED Ten CDATA #REQUIED ThoiGian CDATA #REQUIED > ]> Chương 3. Thiết kế - 41 - Ví dụ : <CauTracNghiem Ma="Cb6184343-9" Chuong="Số học" Lop="10" Mucdo="4"> <CauTracNghiem Ma="C0e80f80e-c" Chuong="Số học" Lop="10" Mucdo=”1”> ..................................................... ........................................................ .......................................................... Chương 3. Thiết kế - 42 - 3.3. Thiết kế các lớp đối tượng xử lý thể hiện 3.3.1. Sơ đồ màn hình trong phân hệ học sinh Hình 3-2 Sơ đồ màn hình phân hệ Học Sinh Chương 3. Thiết kế - 43 - 3.3.2. Sơ đồ màn hình trong phân hệ giáo viên Hình 3-3 Sơ đồ màn hình phân hệ Giáo Viên Chương 3. Thiết kế - 44 - 3.3.3. Các màn hình chung của hai phân hệ 3.3.3.1. Màn hình chính Màn hình chính cho phép chọn lựa đến từng chức năng của chương trình : Lý Thuyết, Bài Tập, Trắc Nghiệm, xem Giúp đỡ, Giới thiệu, hoặc là Thoát khỏi chương trình. Hình 3-4 Màn hình chính Chương 3. Thiết kế - 45 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 pboxTieuDe A_PictureBox Tiêu đề của màn hình. 2 Panel1 A_Panel Panel của màn hình, gồm 2 Panel con là Panel Chức năng tổng quát và Panel chức năng cụ thể. 3 outlookBar1 A_OutlookBar Thể hiện Menu các chức năng của chương trình. 4 uctManHinhChinh A_UserControl Thể hiện UserControl của các chức năng chính. Danh sách các biến cố STT Thể hiện Loại biến cố Xử lý Ghi chú 1 olbItemLyThuyet: A_Button A_Click Hiển thị UserControl TH_LyThuyetChinh lên. 2 olbItemBaiTap: A_Button A_Click Hiển thị UserControl TH_BaiTapChinh lên. 3 olbItemTracNghiem: A_Button A_Click Hiển thị UserControl TH_TracNghiemChinh lên. 4 olbItemGioiThieu: A_Button A_Click Hiển thị UserControl TH_GioiThieu lên. 5 olbItemTacGia: A_Button: A_Click Hiển thị UserControl TH_TacGia lên. 6 olbItemGiupDo: A_Button A_Click Hiển thị tập tin Help lên. 7 olbItemThoat: A_Button A_Click Thoát khỏi chương trình. Chương 3. Thiết kế - 46 - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 ChonManHinh A_Int Tuỳ theo tham số truyền vào mà new 1 loại Usercontrol khác nhau để thêm vào màn hình chính (0:TH_LyThuyetChinh, 1:TH_BaiTapChinh, 2:TH_TracNghiemChinh ). 2 outlookBar1_ ItemClick Tuỳ theo item được chọn mà cho Usercontrol nào mà thêm vào màn hình. Bảng 3-8 Các bảng thông tin về màn hình chính 3.3.3.2. Màn hình Soạn Lý Thuyết Màn hình soạn lý thuyết bao gồm các chức năng : Tạo mới một bài lý thuyết, Chỉnh sửa bài lý thuyết, Lưu bài lý thuyết, Xuất bài lý thuyết ra tập tin, Nhập bài lý thuyết từ tập tin, Gửi mail và In ấn bài lý thuyết. Chương 3. Thiết kế - 47 - Hình 3-5 Màn hình Soạn lý thuyết Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 uctCayDM A_UserControl UserControl dùng để hiển thị Danh Sách các bài lý thuyết. 2 uctLyThuyet A_UserControl UserControl dùng để hiện thị thông tin về bài lý thuyết. 3 btnLuuBai A_Button Button thực hiện chức năng Chương 3. Thiết kế - 48 - Lưu bài. 4 btnCapNhat A_Button Button thực hiện chức năng Cập Nhật bài. 5 btnXoaBai A_Button Button thực hiện chức năng Xoá bài. 6 btnNhapTuFile A_Button Button thực hiện chức năng Nhập các bài lý thuyết từ tập tin. 7 btnXuatRaFile A_Button Button thực hiện chức năng Nhập các bài lý thuyết được chọn ra tập tin. 8 btnInAn A_Button Button thực hiện chức năng cho chỉnh sửa trước khi In Ấn. 9 btnBienSoan A_Button Button thực hiện chức năng cho biên soạn bài lý thuyết trong word. 10 btnGuiMail A_Button Button thực hiện chức năng Gửi mail các bài lý thuyết được chọn. 11 btnThoat A_Button Thoát khỏi màn hình Soạn Lý Thuyết. 12 Panel1 A_Panel Panel của màn hình, gồm 2 panel con : panel cây danh mục và panel câu trắc nghiệm. Chương 3. Thiết kế - 49 - Danh sách các đối tượng xử lý Danh sách các biến cố STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 m_DSLyThuyet DSLyThuyet Danh sách các bài lý thuyết được hiển thị trên màn hình. STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnNhapTuFile: A_Button A_Click Chọn tập tin cần nhập rồi thêm các bài lý thuyết đó vào dữ liệu. 2 btnXuatRaFile: A_Button A_Click Chọn các bài lý thuyết cần xuất ra tập tin, nhập tên tập tin rồi xuất bài lý thuyết ra tập tin. 3 btnGuiMail: A_Button A_Click Chọn các bài lý thuyết, xuất ra tập tin rồi gọi Microsoft Outlook và attach tập tin đó vào. 4 btnInAn: A_Button A_Click Chọn bài lý thuyết, rồi gọi màn hình in ấn ra để biên soạn trước khi in. 5 btnThoat: A_Button A_Click Thoát khỏi màn hình soạn lý thuyết. 6 btnLuuBai: A_Button A_Click Lấy bài lý thuyết trên UserControl uctLyThuyet rồi Chương 3. Thiết kế - 50 - Bảng 3-9 Các bảng mô tả màn hình Soạn Lý Thuyết 3.3.3.3. Thể hiện Lý thuyết Đây là UserControl dùng để hiển thị thông tin của một bài lý thuyết. lưu xuống dữ liệu. 7 btnBienSoan: A_Button A_Click Gọi Microsoft Word ra để biên soạn. 8 btnXoaBai: A_Button A_Click Lấy các bài lý thuyết được chọn rồi xoá bài lý thuyết đó. 9 btnCapNhat: A_Button A_Click Lấy bài lý thuyết mới từ uctLyThuyet rồi thay thế cho bài lý thuyết cũ. 10 uctCayDM: A_UserControl A_Click Lấy mã bài lý thuyết được chọn trên uctCayDM rồi hiển thị trên uctLyThuyet. 11 MH_LyThuyet: A_Form A_Load Load danh sách các bài lý thuyết và hiển thị lên uctCayDM. Chương 3. Thiết kế - 51 - Hình 3-6 Thể hiện Lý Thuyết Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 cmbChuong A_ComboBox ComboBox cho chọn Chương của bài lý thuyết. 2 cmbLop A_ComboBox ComboBox cho chọn Lớp của bài lý thuyết. 3 txtTenBai A_TextBox TextBox cho nhập tên của Chương 3. Thiết kế - 52 - bài lý thuyết. 4 rtbNoiDung A_ExRichTextBox Rich Text Box hiển thị nội dung của bài lý thuyết. 5 lblChuong A_Label Tiêu đề của cmbChuong. 6 lblLop A_Label Tiêu đề của cmbLop 7 lblTenBai A_Label Tiêu đề của txtTenBai. 8 Panel1 A_Panel Panel của màn hình gồm 2 panel con : Panel thông tin và panel Lý thuyết. Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 HienThi TH_LyThuyet Hiển thị thông tin bài lý thuyết vào các control tương ứng. 2 TaoBaiMoi TH_LyThuyet Tạo một bài lý thuyết mới từ nội dung của các control. 3 KiemTra A_Boolean Kiếm tra các thông tin bài lý thuyết đã nhập đầy đủ chưa (lớp, chương, tên, nội dung). Bảng 3-10 Các bảng mô tả Thể hiện Lý thuyết Chương 3. Thiết kế - 53 - 3.3.3.4. Màn hình Soạn Bài tập mẫu Màn hình soạn bài tập mẫu bao gồm những chức năng : Tạo bài tập mậu mới, Lưu, Xoá, Chỉnh Sửa, Xuất ra Tập Tin, Nhập từ Tập tin bài tập mẫu. Hình 3-7 Màn hình Soạn Bài Tập Mẫu Chương 3. Thiết kế - 54 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 pboxTieuDe A_PictureBox Tiêu đề của màn hình. 2 treeBT A_TreeView Danh sách các bài tập mẫu. 3 uctBaiTapMau A_UserControl Hiển thị thông tin của bài tập mẫu. 4 btnTaoBaiMoi A_Button Tạo một bài tập mẫu mới. 5 btnLuu A_Button Lưu bài tập mẫu. 6 btnXoa A_Button Xoá bài tập mẫu. 7 btnCapNhat A_Button Cập nhật bài tập mẫu. 8 btnXuatRaFile A_Button Xuất bài tập mẫu ra tập tin. 9 btnNhapTuFile A_Button Nhập bài tập mẫu từ tập tin. 10 btnThoat A_Button Thoát khỏi màn hình soạn bài tập mẫu. Danh sách các đối tượng xử lý STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 _BaiTap BaiTapMau Bài tập mẫu hiện hành. 2 _DSBaiTap DSBaiTapMau Danh sách các bài tập mẫu. Chương 3. Thiết kế - 55 - Danh sách các biến cố Bảng 3-11 Các bảng mô tả màn hình Soạn Bài Tập Mẫu STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnTaoBaiMoi: A_Button A_Click Tạo một bài tập mẫu mới. 2 btnLuu : A_Button A_Click Lấy bài tập mẫu trên uctBaiTapMau và lưu vào dữ liệu. 3 btnXoa : A_Button A_Click Lấy mã bài tập mẫu trên uctCayDM và xoá bài tập đó 4 btnCapNhat: A_Button A_Click Lấy bài tập mẫu trên uctBaiTapMau và thay thế cho bài tập mẫu cũ. 5 btnXuatRaFile A_Button A_Click Lấy bài tập mẫu được chọn, nhập tên tập tin và xuất ra tập tin đó. 6 btnNhapTuFile A_Button A_Click Mở tập tin cần nhập và thêm bài tập mẫu vào dữ liệu. 7 btnThoat A_Button A_Click Thoát khỏi màn hình soạn bài tập mẫu. 8 uctCayDM A_TreeView A_Click Lấy mã của bài tập mẫu cần chọn rồi hiển thị lên uctBaiTapMau. 9 MH_SoanBaiTapMau : A_Form A_Load Load danh sách các bài tập mẫu trong dữ liệu và hiển thị lên uctCayDM. Chương 3. Thiết kế - 56 - 3.3.3.5. Thể hiện bài tập mẫu Đây là UserControl thể hiện thông tin bài tập mẫu. Hình 3-8 Thể hiện bài tập mẫu Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 lblChuong A_Label Tiêu đề của cmbChuong. 2 cmbChuong A_ComboBox Danh sách các chương. 3 rtbBaiTap A_RichTextBox Đề bài của bài tập mẫu. 4 treeBaiTap A_TreeView Cấu trúc của bài tập mẫu (bao nhiêu câu, bao nhiêu Chương 3. Thiết kế - 57 - bước). 5 rtbNoiDung A_RichTextBox Bài giải của bài tập mẫu. 6 axWebBrowser NoiDung A_WebBrowser Thể hiện phần bài giải của bài tập mẫu (thể hiện biểu thức toán học). 7 Panel1 A_Panel Panel của màn hình, gồm 3 panel con : panel thông tin, panel cấu trúc, panel bài tập. Danh sách các đối tượng xử lý Danh sách các biến cố STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 _BaiTap BaiTapMau Bài tập mẫu trong usercontrol. STT Thể hiện Loại biến cố Xử lý Ghi chú 1 treeBaiTap: A_TreeView A_Click Hiển thị nội dung của bước trong bài tập vừa chọn trên A_TreeView. 2 panelPreview: A_Panel A_Click Hiển thị nội dung của bài tập mẫu đã được định dạng rồi. 3 treeBaiTap: A_TreeView A_RClick Hiển thị context menu. Chương 3. Thiết kế - 58 - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 KhoiTao BaiTapMau Gán _BaiTap = tham số. 2 KiemTra A_Boolean Kiểm tra thông tin về bài mẫu đã đủ chưa, trả về false nếu chưa đủ. 3 HienThi Hiển thị thông tin bài tập mẫu lên các control tương ứng. ` 4 XuLy A_String Chuyển chuỗi nội dung của bài tập mẫu thành chuỗi có định dạng. 5 TaoMoi BaiTapMau Tạo mới một bài tập mẫu với thông tin từ uctBaiTapMau. Bảng 3-12 Các bảng mô tả thể hiện Bài Tập Mẫu 3.3.3.6. Màn hình Soạn đề trắc nghiệm Màn hình soạn đề trắc nghiệm bao gồm những chức năng : Tạo mới một đề trắc nghiệm, Lưu, Xoá, Chỉnh Sửa, Nhập từ tập tin, Xuất ra tập tin, Gửi mail đề thi trắc nghiệm. Chương 3. Thiết kế - 59 - Hình 3-9 Màn hình Soạn Đề Trắc Nghiệm Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 pboxTieuDe A_PictureBox Tiêu đề của màn hình. 2 uctCayDM A_UserControl Cây danh mục hiển thị danh sách các câu trắc nghiệm. 3 uctCauTN A_UserControl Hiển thị thông tin câ trắc nghiệm. 4 uctDethiTN A_UserControl Cây hiển thị danh sách các câu trắc nghiệm trong 1 đề thi. 5 lblThoiGian A_Label Tiêu đề cho Combo Box thời Chương 3. Thiết kế - 60 - gian. 6 cmbThoiGian A_ComboBox Hiển thị thời gian thi của đề thi. 7 lblTen A_Label Tiêu đề cho TextBox tên đề thi. 8 txtTen A_TextBox Hiển thị tên đề thi. 9 btnTaoDeMoi A_Button Button thực hiện chức năng tạo một đề thi mới. 10 btnLuuDe A_Button Button thực hiện chức năng lưu đề thi. 11 btnXoaDe A_Button Button thực hiện chức năng xoá đề thi. 12 btnXuatRaFile A_Button Button thực hiện chức năng xuất đề thi ra tập tin. 13 btnNhapTuFile A_Button Button thực hiện chức năng nhập đề thi từ tập tin. 14 btnInAn A_Button Button thực hiện chức năng chỉnh sửa đề thi trước khi in ấn. 15 btnPhatSinhDe A_Button Hiển thị màn hình các tiêu chuẩn để phát sinh đề thi. 16 btnThem A_Button Button thực hiện chức năng thêm một câu trắc nghiệm vào đề thi. 17 btnXoa A_Button Button thực hiện chức năng xoá một câu trắc nghiệm trong đề thi. 18 btnThoat A_Button Thoát khỏi màn hình Soạn đề thi trắc nghiệm. Chương 3. Thiết kế - 61 - Danh sách các đối tượng xử lý Danh sách các biến cố 1 btnGuiMail: A_Buton A_Click Lấy các đề thi được chọn, xuất ra tập tin, gọi Microsoft Outlook rồi attach tập tin này vào. 2 btnXuatRaFile: A_ Buton A_Click Lấy các đề thi được chọn, lấy tên tập tin và xuất ra tập tin đó. 3 NhatTuFile: A_ Buton A_Click Mở tập tin cần nhập và thêm các đề thi vào dữ liệu. 4 btnThoat: A_ Buton A_Click Thoát khỏi màn hình soạn đề trắc nghiệm 5 btnThem: A_ Buton A_Click Thêm một câu trắc nghiệm được chọn trên uctCayDM vào đề thi đang soạn 6 btnXoa: A_ Buton A_Click Xoá một câu trắc nghiệm được chọn trong STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 DeThiTN DeThiTracNghiem Đề thị trắc nghiệm hiện hành. 2 DSDethiTN DanhSachDethiTN Danh sách đề thi trắc nghiệm hiển thị trong màn hình. STT Thể hiện Loại biến cố Xử lý Ghi chú Chương 3. Thiết kế - 62 - uctDethiTN. 7 btnTaoDeMoi: A_ Buton A_Click Tạo một đề thi mới. 8 btnLuuDe: A_ Buton A_Click Kiểm tra đề thi cần lưu đã đầy đủ thông tin chưa, nếu đủ thì lưu vào dữ liệu. 9 btnInAn: A_ Buton A_Click Lấy mã các đề thi cần in trên uctCayDM và hiển thị màn hình in ấn để biên soạn trước khi in. 10 btnPhatSinhDe: A_ Buton A_Click Hiển thị màn hình các tiêu chuẩn phát sinh đề thi 11 uctCayDM: A_TreeView A_Click Lấy mã của đề thi được chọn và hiển thị lên uctDethiTN. 12 MH_SoanDeTracNghiem :A_Form A_Load Load danh sách các đề thi trong dữ liệu lên uctCayDM. Chương 3. Thiết kế - 63 - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 PhatSinhDe A_rrayList A_Int DeThiTracNghiem Phát sinh một số ngẫu nhiên và lấy câu trắc nghiệm ở vị trí đó và đảm bảo rằng không trùng lại câu trắc nghiệm đã chọn. 2 TaoTapTinXSLT A_String Tạo tập tin XSLT để phát sinh đề thi trắc nghiệm. Bảng 3-13 Các bảng mô tả màn hình Soạn Đề Trắc Nghiệm 3.3.3.7. Màn hình điều kiện phát sinh đề trắc nghiệm Màn hình điều kiện phá sinh đề trắc nghiệm đưa ra những tiêu chuẩn đế phát sinh đề thi trắc nghiệm, gồm : Số câu trong đề thi, các chương được chọn, khoảng mức độ. Chương 3. Thiết kế - 64 - Hình 3-10 Màn hình Điều kiện phát sinh Đề Trắc Nghiệm Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 lblTieuDe A_Label Tiêu đề của màn hình. 2 lblSoCau A_Label Tiêu để của txtSoCau. 3 txtSoCau A_TextBox Hiển thị số câu trong đề thi cần phát sinh. 4 lblDSChuong A_Label Tiêu đề của lstDSChuong. 5 lblDSChuongDuocChon A_Label Tiêu để của Chương 3. Thiết kế - 65 - lstDSChuongDuocChon. 6 lstDSChuong A_ListBox Hiển thị danh sách các chương của các câu trắc nghiệm. 7 lstDSChuongDuocChon A_ListBox Hiển thị danh sách các chương được chọn dùng để phát sinh đề thi. 8 btnThem A_Button Thêm một chương vào danh sách chương được chọn. 9 btnThemTatCa A_Button Thêm tất cả các chương vào danh sách chương được chọn. 10 btnXoa A_Button Xoá một chương trong danh sách chương được chọn. 11 btnXoaTatCa A_Button Xoá tất cả các chương trong danh sách chương được chọn. 12 lblMucDoDau A_Label Tiêu để của cmbMucDoDau. 13 cmbMucDoDau A_ComboBox Hiển thị mức độ đầu tiên trong phạm vi mức độ được chọn. 14 lblMucDoCuoi A_Label Tiêu để của cmbMucDoCuoi. Chương 3. Thiết kế - 66 - 15 cmbMucDoCuoi A_ComboBox Hiển thị mức độ cuối trong phạm vi mức độ cuối được chọn. 16 btnDongY A_Button Đồng ý các lựa chọn trên và phát sinh đề thi. 17 btnThoat A_Button Thoát khỏi màn hình điều kiện phát sinh đề thi. Danh sách các đối tượng xử lý Danh sách các biến cố 1 MH_DieuKien PhatSinhDethiTN :A_Form A_Load Load tất cả các chương của các câu trắc nghiệm và hiển thị lên lstDSChuong. 2 btnXoa : A_Button A_Click Xoá chương được chọn trong lstDSChuongDuocChon. 3 btnXoaTatCa: A_Button A_Click Xoá tất cả chương được chọn trong lstDSChuongDuocChon. 4 btnThem: A_Button A_Click Thêm chương được chọn trong lstDSChuong vào trong lstDSChuongDuocChon. STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 strTruyVan A_String Chuỗi truy vấn các câ trắc nghiệm. 2 Socau A_Int Số câu trắc nghiệm trong đề thi. STT Thể hiện Loại biến cố Xử lý Ghi chú Chương 3. Thiết kế - 67 - 5 btnThemTatCa: A_Button A_Click Thêm chương có trong lstDSChuong vào trong lstDSChuongDuocChon. 6 btnDongY: A_Button A_Click Kiểm tra các tiêu chuẩn có hợp lệ không, nếu hợp lệ thì đóng màn hình. 7 btnThoat: A_Button A_Click Thoát khỏi màn hình. Bảng 3-14 Các bảng mô tả màn hình Điếu kiện Phát sinh 3.3.3.8. Thể hiện câu trắc nghiệm Đây là Usercontrol hiển thị thông tin của câu trắc nghiệm. Hình 3-11 Thể hiện Câu Trắc Nghiệm Chương 3. Thiết kế - 68 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 lblLop A_Label Tiêu để của cmbLop. 2 cmbLop A_ComboBox Hiển thị lớp của câu trắc nghiệm. 3 lblChuong A_Label Tiêu đề của cmbChuong. 4 cmbChuong A_ComboBox Hiển thị chương của câu trắc nghiệm. 5 lblMucDo A_Lable Tiêu đề của cmbMucDo 6 cmbMucDo A_ComboBox Hiển thị mức độ của câu trắc nghiệm. 7 rtbHuongDan A_ExRichTextBox Hiển thị hướng dẫn giải của câu trắc nghiệm. 8 lblSoCau A_Label Tiêu đề của cmbSoCau. 9 cmbSoCau A_ComboBox Số câu trả lời của câu trắc nghiệm. Danh sách các đối tượng xử lý STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 uctCauTN TH_CauTN UserControl ảo là cha của các UserControl Câu trắc nghiệm cụ thể. 2 MathMLControl2 MathMLControl Chương 3. Thiết kế - 69 - Danh sách các biến cố Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú HienThi CauTracNghiem A_Boolean A_Boolean Hiển thị thông tin câu trắc nghiệm lên các control tương ứng. KiemTra A_Boolean Kiểm tra thông tin câu trắc nghiệm có hợp lệ, không hợp lệ trả về false. ResizeControl A_Int A_Boolean Tạo ra câu trắc nghiệm với số câu trả lời theo tham số. TaoCauTN CauTracNghiem Lấy câu trắc nghiệm theo thông tin hiển thị trên control. Bảng 3-15 Các bảng mô tả thể hiện Câu Trắc Nghiệm STT Thể hiện Loại biến cố Xử lý Ghi chú 1 cmbSoCau: A_ComboBox A_Click Lấy số câu trả lời rồi hiển thị câu trắc nghiệm với số câu trả lời tương ứng. Chương 3. Thiết kế - 70 - 3.3.3.9. Thể hiện câu trắc nghiệm loại 1 Đây là UserControl hiển thị thông tin của câu trắc nghiệm dạng 1. Hình 3-12 Thể hiện Câu Trắc Nghiệm loại 1 Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 rtbCauHoi A_RichTextBox Câu hỏi của câu trắc nghiệm. 2 arrRadioButton A_RadioButton[] Các radio button để đánh trắc nghiệm. 3 arrLabel A_Label[] Thứ tự của các câu trả lời (theo thứ tự A, B, C, ...). 4 arrRichTextBox A_RichTextBox[] Các câu trả lời của câu trắc nghiệm. 5 gboxCauTraLoi A_GroupBox Nhóm các câu trả lời trong 1 khung. Chương 3. Thiết kế - 71 - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 HienThi CauTracNghiem A_Boolean A_Boolean Hiển thị thông tin câu trắc nghiệm ra các control tương ứng. 2 ResizeControl A_Int A_Boolean Khởi tạo các control theo số câu trả lời. Bảng 3-16 Các bảng mô tả thể hiện Câu Trắc Nghiệm 1 3.3.3.10. Thể hiện câu trắc nghiệm loại 2 Đây là UserControl hiển thị thông tin của câu trắc nghiệm dạng 2. Hình 3-13 Thể hiện Câu Trắc Nghiệm loại 2 Chương 3. Thiết kế - 72 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 rtbCauHoi A_RichTextBox Câu hỏi của câu trắc nghiệm. 2 arrCheckBox A_CheckBox[] Các check box để đánh trắc nghiệm. 3 arrLabel A_Label[] Thứ tự của các câu trả lời (theo thứ tự A, B, C, ...). 4 arrRichTextBox A_RichTextBox[] Các câu trả lời của câu trắc nghiệm. 5 gboxCauTraLoi A_GroupBox Nhóm các câu trả lời trong 1 khung. Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 HienThi CauTracNghiem A_Boolean A_Boolean Hiển thị thông tin câu trắc nghiệm ra các control tương ứng. 2 ResizeControl A_Int A_Boolean Khởi tạo các control theo số câu trả lời. Bảng 3-17 Các bảng mô tả thể hiên câu Trắc Nghiệm 2 Chương 3. Thiết kế - 73 - 3.3.3.11. Thể hiện câu trắc nghiệm loại 3 Đây là UserControl hiển thị thông tin của câu trắc nghiệm dạng 3. Hình 3-14 Thể hiện Câu Trắc Nghiệm loại 3 Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 rtbCauHoi A_RichTextBox Câu hỏi của câu trắc nghiệm. 2 rtbCauTraLoi A_RichTextBox Câu trả lời của câu trắc nghiệm. Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 HienThi CauTracNghiem A_Boolean A_Boolean Hiển thị thông tin câu trắc nghiệm ra các control tương ứng. 2 ResizeControl A_Int A_Boolean Khởi tạo các control theo số câu trả lời. Bảng 3-18 Các bảng mô tả thể hiện Câu Trắc Nghiệm 3 Chương 3. Thiết kế - 74 - 3.3.3.12. Thể hiện cây danh mục Đây là Usercontrol hiển thị danh sách các thành phần như câu trắc nghiệm, đề thi trắc nghiệm, bài lý thuyết. Hình 3-15 Thể hiện Cây Danh Mục Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 treeDanhMuc A_TreeView Cây thể hiện danh sách. 2 ctmnDangHienThi A_ContextMenu ContextMenu của control, gồm 4 menu con : lớp, chương, thứ tự, đề thi. Chương 3. Thiết kế - 75 - Danh sách các biến cố Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 HienThi A_Int Hiển thị danh sách các câu trắc nghiệm theo dạng được truyền vào (0:chương, 1:mức độ, 2:thứ tự, 3:đề thi). 2 LayDSDuocChon A_Array Lấy tất cả các node được check trên cây danh mục. 3 HuyCay Huỷ cây. Bảng 3-19 Các bảng mô tả thể hiện Cây Danh Mục 3.3.3.13. Thể hiện thời gian. Đây là UserControl dùng để hiển thị thời gian khi thi trắc nghiệm. Hình 3-16 Thể hiện Thời Gian STT Thể hiện Loại biến cố Xử lý Ghi chú 1 treeDanhMuc: A_TreeView A_Click Hiển thị contextmenu ctmnDangHienThi. Chương 3. Thiết kế - 76 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 picPhutHangTram A_PictureBox Thể hiện con số hàng trăm của phút. 2 picPhutHangChuc A_PictureBox Thể hiện con số hàng chục của phút. 3 picPhutHangDonVi A_PictureBox Thể hiện con số hàng đơn vị của phút. 4 picGiayHangChuc A_PictureBox Thể hiện con số hàng chục của giây. 5 picGiayHangDonVi A_PictureBox Thể hiện con số hàng đơn vị của giây. 6 picHaiCham A_PictureBox Thể hiện dấu hai chấm. 7 Timer A_Timer Timer để tính thời gian. Danh sách các đối tượng xử lý Danh sách các biến cố STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 ThoiGian A_Int Thời gian cần hiển thị. STT Thể hiện Loại biến cố Xử lý Ghi chú 1 Timer: A_Timer A_Timer Cứ mỗi giây trừ đi một đơn vị. Chương 3. Thiết kế - 77 - Danh sách các hàm xử lý STT Tên hàm Tham số Kết quả Xử lý Ghi chú 1 BatDau Khởi động timer. 2 TamDung Tạm dừng timer. 3 KetThuc Dừng hẳn timer. 4 CapNhatThoiGian Hiển thị thời gian hiện tại ra các picturebox tương ứng. Bảng 3-20 Các bảng mô tả thể hiện Thời Gian 3.3.3.14. Màn hình Nhập câu trắc nghiệm Màn hình nhập câu trắc nghiệm có chức năng nhập một đề thi trắc nghiệm vào và cho phép chỉnh sửa lại đề thi đó như xoá bớt câu trắc nghiệm. Sau đó lưu vào dữ liệu. Hình 3-17 Màn hình Nhập Câu Trắc Nghiệm Chương 3. Thiết kế - 78 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 pboxTieuDe A_PictureBox Tiêu đề của màn hình. 2 uctCayDM A_UserControl Danh sách các câu trắc nghiệm. 3 uctCauTN A_UserControl Thể hiện thông tin câu trắc nghiệm. 4 btnLuu A_Button Lưu các câu trắc nghiệm. 5 btnXoa A_Button Xoá câu trắc nghiệm trong danh sách. 6 btnThoat A_Button Thoát khỏi màn hình Nhập câu trắc nghiệm. Danh sách các đối tượng xử lý Danh sách các biến cố STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 DSCauTN DanhSachCauTN Danh sách câu trắc nghiệm cần nhập. STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnLuu: A_Button A_Click Lưu tất cả các câu trắc nghiệm trong danh sách vào dữ liệu. 2 btnXoa: A_Button A_Click Lấy mã câu trắc nghiệm trong uctCayDM rồi xoá câu đó trong Chương 3. Thiết kế - 79 - Bảng 3-21 Các bảng mô tả màn hình Nhập Câu Trắc Nghiệm 3.3.3.15. Màn hình Khảo sát và vẽ đồ thị hàm số Màn hình khảo sát và vẽ đồ thị hàm số có những chức năng : khảo sát và vẽ đồ thị hàm số nhập vào, phát sinh một hàm số bất kỳ. Hình 3-18 Màn hình Khảo sát và vẽ đồ thị danh sách. 3 btnThoat: A_Button A_Click Thoát khỏi màn hình Nhập Câu TN. 4 uctCayDM: A_TreeView A_Click Lấy mã câu trắc nghiệm được chọn và hiển thị lên uctCauTN. 5 MH_NhapCauTN :A_Form A_Load Load danh sách các câu trắc nghiệm. Chương 3. Thiết kế - 80 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 uctBangBienThien A_UserControl UserControl bảng biến thiên. 2 uctDoThi A_UserControl UserControl đồ thị hàm số. 3 rtbDeBai A_RichTextBox Đề bài. 4 btnGiaiDe A_Button Giải Đề (khảo sát và vẽ hàm số). 5 btnPhatSinhDe A_Button Phát sinh đề (hàm số). 6 rtbBaiGiai A_RichTextBox Bài giải. Danh sách các biến cố Bảng 3-22 Các bảng mô tả màn hình Khảo sát và vẽ Đố thị STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnGiaiDe: A_Button A_Click Tiến hành khảo sát và vẽ hàm số. 2 btnPhatSinhDe: A_Button A_Click Phát sinh ngẫu nhiên một hàm số. 3 uctDoThi: A_UserControl A_MouseDrag Kéo chuột trái thì đồ thị thể hiện được những vị trí khuất trên màn hình. Chương 3. Thiết kế - 81 - 3.3.3.16. Màn hình tính đạo hàm biểu thức Màn hình tính đạo hàm biểu thức có chức năng tính đạo hàm một biểu thức nhập vào từ MathMLControl và đưa ra kết quả. Hình 3-19 Màn hình Tính Đạo Hàm Biểu thức Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 mathML MathMLControl MathMLControl dùng để nhập biểu thức toán. 2 rtbBaiGiai A_RichTextBox Hiển thị bài giải. 3 btnTinhDaoHam A_Button Tính đạo hàm của biểu thức toán. 4 btnThoat A_Button Thoát khỏi màn hình. Chương 3. Thiết kế - 82 - Danh sách các biến cố Bảng 3-23 Các bảng mô tả màn hình Tính Đạo Hàm Biểu thức 3.3.3.17. Thể hiện Bảng biến thiên Đây là Usercontrol dùng để vẽ Bảng Biến Thiên của một hàm số. Hình 3-20 Thể hiện Bảng Biến Thiên Danh sách biến thành phần STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 hamso HAM_SO Hàm số cần thể hiện bảng biến thiên. Danh sách các hàm thành phần STT Tên Kết quả Xử lý Ghi chú 1 VeBangBienThien((A_Graphics) Vẽ bảng biến thiên của hàm số. Bảng 3-24 Các bảng mô tả thể hiện Bảng Biến Thiên STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnTinhDaoHam: A_Button A_Click Nhận diện biểu thức toán trong mathML và tính đạo hàm. 2 btnThoat: A_Button A_Click Thoát khỏi màn hình. Chương 3. Thiết kế - 83 - 3.3.3.18. Thể hiện đồ thị hàm số Đây là UserControl vẽ đồ thị của hàm số. Hình 3-21 Thể hiện Đồ thị Hàm số Danh sách biến thành phần STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 hamso HAM_SO Hàm số cần vẽ đồ thị. Danh sách các biến cố STT Thể hiện Loại biến cố Xử lý Ghi chú 1 uctDoThi: A_UserControl A_MouseDrag Kéo chuột trái thì đồ thị thể hiện được những vị trí khuất trên màn hình. Chương 3. Thiết kế - 84 - Danh sách các hàm thành phần STT Tên Kết quả Xử lý Ghi chú 1 VeTrucToaDo(A_Graphics) Vẽ trục tọa độ. 2 VeDoThi(A_Graphics) Vẽ đồ thị. 3 VeCacDiemDacBiet(A_Graphics) Vẽ các điểm đặc biệt. Bảng 3-25 Các bảng mô tả thể hiện đồ thị 3.3.3.19. Màn hình Không Gian – Mặt Phẳng Màn hình này có chức năng phát sinh một bài tập, giải bài tập, lưu bài tập. Hình 3-22 Màn hình Không Gian – Mặt phẳng Chương 3. Thiết kế - 85 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 rdbKhongGian A_RadioButton Lựa chọn phần Không Gian. 2 rdbMatPhang A_RadionButton Lựa chọn phần Mặt Phẳng. 3 lblDangToan A_Label Tiêu đề của cmbDangToan 4 cmbDangToan A_ComboBox Danh sách các dạng toán. 5 grdLoaiBaiTap A_GroupBox Chứa rdbKhongGian và rdbMatPhang. 6 rtbDeBai A_RichTextBox Hiển thị đề bài. 7 rtbBaiGiai A_RichTextBox Hiển thị bài giải. 8 rtbBaiLam A_RichTextBox Hiển thị bài làm. 9 btnPSBaiGiai A_Button Phát sinh bài giải. 10 btnPSDeBai A_Button Phát sinh để bài. 11 btnThuVien A_Button Hiển thị màn hình thư viện. 12 btnLuu A_Button Lưu bài làm. 13 btnThoat A_Button Thoát khỏi màn hình. Danh sách các đối tượng xử lý STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 btTuLuan BaiTapTuLuan Bài tập tự luận. Chương 3. Thiết kế - 86 - Danh sách các biến cố Bảng 3-26 Các bảng mô tả màn hình Không Gian Mặt phẳng 3.3.3.20. Màn hình Thư viện Màn hình này có chức năng cho thay đổi các văn bản để nhận diện đề Hình 3-23 Màn hình thư viện STT Thể hiện Loại biến cố Xử lý Ghi chú 1 btnPSBaiGiai: A_Button A_Click Nhận diện bài tập, xem nó thuộc dạng toán nào và phát sinh bài giải. 2 btnPSDeBai : A_Button A_Click Phát sinh đề bài theo dạng Toán đã chọn. 3 btnLuu : A_Button A_Click Lưu bài làm xuống dữ liệu. 4 btnThuVien : A_Button A_Click Hiển thị màn hình thư viện. 5 btnThoat: A_Button A_Click Thoát khỏi màn hình. Chương 3. Thiết kế - 87 - Danh sách các đối tượng thể hiện STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 treeThuVien A_TreeView Hiển thị danh sách các thư viện. 2 rtbNoiDung A_RichTextBox Hiển thị nội dung của thư viện. ...ệu MathML xuống tập tin public bool MC_save( string fileName ); fileName : đường dẫn tập tin cần lưu. - 146 - Hàm MC_saveAsJPEG : lưu biểu thức toán học thành một tập tin ảnh JPEG. Dạng 1 : public bool MC_saveAsJPEG( string fileName, float fontSize, enum_ImageResolution imageResolution ); fileName : đường dẫn tập tin JPEG. fontSize : Kích thước của chữ (theo đơn vị point). imageResolution : độ phân giải của ảnh (96dpi, 300 dpi, 600 dpi, ...) Ví dụ : float fontSize =18F; MathMLControl.enum_ImageResolution imgResolution =MathMLControl.enum_ImageResolution._300dpi; string fileName ='C:\\test.jpg'; MathMLControl.MC_saveAsJPEG(fileName,fontSize,imgResolution); Dạng 2 public bool MC_saveAsJPEG( string fileName, float fontSize, enum_ImageResolution imageResolution, ref int imageBaseline ); fileName : đường dẫn tập tin JPEG. fontSize : Kích thước của chữ (theo đơn vị point). imageResolution : độ phân giải của ảnh (96dpi, 300 dpi, 600 dpi, ...) imageBaseline : vị trí “đường gốc” của biểu thức trong ảnh. - 147 - Ví dụ : float fontSize =18F; int imgBaseline =0; MathMLControl.enum_ImageResolution imgResolution =MathMLControl.enum_ImageResolution._300dpi; string fileName ='C:\\test.jpg'; MathMLControl.MC_saveAsJPEG(fileName,fontSize,imgResolution,ref imgBaseline); Dạng 3 public bool MC_saveAsJPEG( string fileName, float fontSize, int imageResolution ); fileName : đường dẫn tập tin JPEG. fontSize : Kích thước của chữ (theo đơn vị point). imageResolution : độ phân giải của ảnh theo kiểu integer. Ví dụ : float fontSize =18F; int imgResolution =300; string fileName ='C:\\test.jpg'; MathMLControl.MC_saveAsJPEG(fileName,fontSize,imgResolution); - 148 - Dạng 4: public bool MC_saveAsJPEG( string fileName, float fontSize, int imageResolution, ref int imageBaseline ); fileName : đường dẫn tập tin JPEG. fontSize : Kích thước của chữ (theo đơn vị point). imageResolution : độ phân giải của ảnh theo kiểu integer. imageBaseline : vị trí “đường gốc” của biểu thức trong ảnh. Ví dụ : float fontSize =18F; int imgBaseline =0; int imgResolution =300; string fileName ='C:\\test.jpg'; MathMLControl.MC_saveAsJPEG(fileName,fontSize,imgResolution,ref imgBaseline); - 149 - Hàm RE_CreateBitmap : chuyển một chuỗi MathML sang dạng System.Drawing.Bitmap. Sau đó bitmap có thể được lưu dưới dạng JPEG, GIF hay các dạng ảnh khác. public Bitmap RE_CreateBitmap( string MathML, float FontSize, bool Bold, bool Italic, Color ForeColor, Color BackColor, int ImgResolution, ref int ImgBaseline ); MathML : chuỗi MathML. FontSize : cỡ chữ trong ảnh. Bold : in đậm. Italic : in nghiêng. ForeColor : màu của chữ. BackColor : màu nền. ImgResolution : độ phân giải của ảnh. ImgBaseLine : vị trí “đường gốc” của biểu thức trong ảnh theo đơn vị pixel. - 150 - Chú ý : Hàm này sẽ đưa ra System.Exception trong trường hợp bị lỗi. Có thể sử dụng hàm này trong trường hợp không có MathML Control trên màn hình. Hàm này hoạt động độc lập với nội dung MathML của MathML Control. Ví dụ : int ImgBaseLine=0; string sMathML=""; [...] System.Drawing.Bitmap bitmap; bitmap=this.m_MathMLControl.RE_CreateBitmap(sMathML, 18F, false, false, System.Drawing.Color.Black, System.Drawing.Color.White, 96, ref ImgBaseline); [...] - 151 - B. Ngôn ngữ XSLT: Khái niệm : XSLT, viết tắt của eXtensible StyleSheet Language Transformation, là ngôn ngữ đặc tả cho phép biến đổi hệ thống đối tượng (được biểu diễn qua XML) thánh một hệ thống đối tượng (được biểu diễn qua ngôn ngữ bất kỳ). Ví dụ : Ta có tài liệu planets.xml lưu giữ thông tin về các hành tinh trong hệ mặt trời. Nội dung tài liệu planets.xml thể hiện như sau : Mecury .0553 58.65 1516 .983 - 152 - 43.4 Venus .815 116.75 3716 .943 66.8 Earth 1 1 2107 1 128.4 Ta thấy tài liệu planets.xml ngoài khai báo thông thường là Còn khai báo thêm Với khai báo trên trình xử lý và phân tích sẽ biết nội dung dữ liệu trong planets.xml cần được kết hợp với tài liệu planets.xsl để thực hiện chuyển dữ liệu từ XML thành tài liệu hiển thị và đọc được bởi người dùng. Nội dung tài liệu planets.xsl như sau : - 153 - Sau quá trình diễn dịch tài liệu kết xuất cuối cùng có dạng : Mercury Vernus Earth Cấu trúc tài liệu XSLT Tài liệu XSLT yêu cầu tiếp nhận dữ liệu XML theo cấu trúc hình cây, thực hiện biến đổi và cho ra một tài liệu định dạng cũng theo cấu trúc hình cây khác. Ở góc độ tài liệu XSLT, dữ liệu đầu vào là một tập hợp các nút (node). Có 7 loại nút mà bộ xử lý XSLT có thể nhận dạng và chuyển dịch: STT Nút (node) Mô tả 1 Document Root (gốc tài liệu) Nơi khởi đầu của tài liệu cần diễn dịch. 2 Attribute (thuộc tính) Nắm giữ thuộc tính của phần tử thẻ. Giá trị thuộc tính đã loại bỏ dấu bao chuỗi. 3 Element (phần tử) Bao gồm thẻ tên của phần tử (thẻ đóng, thẻ - 154 - mở) và tập các phần tử con giữa thẻ đóng và thẻ mở (nếu có). 4 Comment (chú thích) Nằm giữ dữ liệu của chuỗi văn bản chú thích (dã loại bỏ ký hiệu 5 Namespace (không gian tên) Nắm giữ chuỗi định dạng URI của không gian tên. 6 Processing Instruction (chỉ thị xử lý) Nắm giữ nội dung chuỗi chỉ thị xử lý đã loại bỏ hai ký tự định dạng là . 7 Text (văn bản) Dữ liệu thuần text nằm giữa hai thẻ đóng và thẻ mở. Trước hết tài liệu XSLT phải được đặt trong cặp thẻ . Chúng ta sử dụng bí danh cho không gian tên là xsl (đây cũng là quy ước chuẩn của W3C) cho biết các thẻ sử dụng trong tài liệu phân biệt với không gian tên thông thường khác (chẳng hạn như HTML). . . . Khi bộ chuyển dịch XSLT được gọi nó sẽ thực hiện hai thao tác, đọc các chỉ thị so khớp trong tài liệu XSLT và truy tìm dữ liệu trong tài liệu XML đặt vào tương ứng. Quá trình truy tìm dữ liệu trong tài liệu XML (cụ thể ở đây là planets.xml) sẽ được duyệt bắt đầu từ phần tử gốc. Chẳng hạn nếu muốn khi gặp phần tử gốc của tài liệu XML thì trình diễn dịch XSLT phải kết xuất chuỗi mang nội dung “This is XML Root” để thực hiện điều này trong tài liệu XSLT, ta phải so khớp như sau : - 155 - This is XML Root Tài liệu kết xuất cuối cùng là : This is XML Root Chỉ định mẫu so khớp với thuộc tích match Thuộc tính so khớp dùng để yêu cầu một thẻ lệnh thực hiện theo một điều kiện dữ liệu thỏa mãn nào đó. Ta có thể dùng thuộc tính so khớp trong các phần tử điều khiển XSL như , , , hay . Các trường hợp sử dụng của thuộc tính match. So khớp phần tử gốc của dữ liệu XML (matching root) Phần tử gốc của tài liệu XML được so khớp bằng ký tự “/” khi ta nhận được ký tự “/” cũng có nghĩa là trình duyệt bắt đầu phân tích gốc của cây tài liệu đầu vào. Ví dụ: So khớp các phần tử (matching element) So khớp một phần tử đơn giản bằng cách chỉ định tên của phần tử. - 156 - Ví dụ : So khớp các phần tử con Ký tự “/” không chỉ dùng so khớp phần tử gốc mà còn được dùng làm dấu phân cách biểu diễn đường dẫn từ nút cha đến nút con sang dữ liệu XML. Ví dụ để so khớp phần tử NAME là con của phần tử PLANET ta có thể viết như sau trong XSLT. Ký tự “.” trong thuộc tính select yêu cầu thẻ chọn dữ liệu của nút hiện hành trong cây tài liệu đang được xử lý. Ta có thể dùng ký tự “*” trong thuộc tính select để yêu cầu thẻ chọn tất cả các phần tử. Ví dụ : Sẽ lấy tất cả phần tử bên dưới PLANET có phần tử con tên là NAME. So khớp các phần tử cấp dưới (descendant) - 157 - Để so khớp và chọn ra tất cả các phần tử cấp dưới của PLANET mà không phân biệt mức độ lồng nhau của các phần tử ta dùng PLANET//NAME. PLANET//NAME tương đương với PLANET/NAME, PLANET/*/NAME, PLANET/*/*/NAME... Ví dụ: So khớp bằng biểu thức ngoặc vuông [] Ta có thể dùng biểu thức ngoặc vuông để kiểm tra xem một điều kiện nào đó là true hay false. Ví dụ như kiểm tra : Giá trị thuộc tính trong một chuỗi. Giá trị của một phần tử. Kiểm tra xem một phần tử có chứa thuộc tính hay phần tử con khác không. Ví trí của một nút dữ liệu. Ví dụ : Để so khớp và chọn ra phần tử PLANET có chứa phần tử con NAME ta dùng : Để so khớp và chọn ra mọi phần tử có chứa thuộc tính con NAME Để so khớp và chọn ra phần tử PLANET có chứa phần tử con là NAME hay MASS Để so khớp và chọn ra phần tử PLANET có chứa thuộc tính UNITS mang giá trị “days” : - 158 - <xsl:template match=”PLANET[@UNITS=’days’]” Chỉ định mẫu và chọn dữ liệu bằng thuộc tính select Phần tử được dùng để lấy ra nội dung của một mục dữ liệu trong tài liệu XML. Bạn có thể sử dụng thuốc tính select của để chọn chính xác một mục dữ liệu. Thuộc tính select yêu cầu một đường dẫn XPath đến phần tử hay thuộc tính được chọn. Ví dụ : The Planets Kết quả xuất : - 159 - The Planets Mercury Venus Earth Thay đổi cấu trúc tài liệu đầu vào: Tạo một phần tử mới Sử dụng phần tử để tạo mới một phần tử khác cho dữ liệu đầu vào. Ví dụ : giả sử ta có tài liệu xml sau: .0553 58.65 1516 .983 43.4 .815 116.75 3716 .943 66.8 - 160 - 1 1 2107 1 128.4 Tài liệu XSLT: Planets “{@NAME}” có nghĩa là lấy giá trị của thuộc tính NAME trong phần tử PLANET. - 161 - Kết quả là : Planets .0553 .815 1 Tạo thuộc tính mới Phần tử dùng tạo mới một thuộc tính cho phần tử nào đó. Ví dụ : Mecury .0553 58.65 1516 .983 - 162 - 43.4 Venus .815 116.75 3716 .943 66.8 Earth 1 1 2107 1 128.4 Ta muốn tạo một thuộc tính mang tên của các hình tinh trong tài liệu đích đồng thời giá trị thuộc tính mới sẽ được gán chính là giá trị rút trích từ thuộc tính COLOR của phần tử PLANET. Tài liệu XSLT như sau : Planets - 163 - “{NAME}” có nghĩa là lấy giá trị của phần tử NAME là con của phần tử PLANET. Kết quả xuất là : Planets Sao chép các nút dữ liệu - 164 - Phần tử xsl:copy cho phép sao chép dữ liệu của một nút trong tài liệu đầu vào sử dụng cho mục đích chuyên dụng nào đó. Ví dụ : thay vì kết xuất ra tài liệu HTML, ta tạo lại một tài liệu XML mới ở đầu ra bằng cách copy toàn bộ tất cả các nút của tài liệu XML đầu vào. Kết quả xuất : Mecury .0553 58.65 1516 .983 43.4 Venus .815 116.75 3716 .943 - 165 - 66.8 Earth 1 1 2107 1 128.4 Sử dụng xsl:if Sử dụng phần tử để phát biểu một điều kiện lựa chọn. Để sử dụng phần tử này ta đặt thuộc tính test của nó biểu thức cần kiểm tra trị true, false. Ví dụ : ta muốn khi gặp phần tử cuối cùng trong dữ liệu đầu vào cần so khớp thì in ra thẻ (phần tử định dạng tạo một đường gạch ngang trong HTML): Planets - 166 - is planet number from the sun. Position() cho biết vị trí của phần tử đang xét Last(.) vị trí cuối cùng của phần tử đang xét. Kết quả kết xuất : Planets Mercury is planet number 1 from the sun. Earth is planet number 2 from the sun. Venus is planet number 3 from the sun. Sử dụng xsl:choose - 167 - Phần tử điều khiển lựa chọn tương tự lệnh switch của Java hay C. Phần tử này cho phép kiểm tra và chọn ra giá trị trong một danh sách các so khớp thoả mãn điều kiện đề ra. Giả sử tài liệu xml như sau : Mecury .0553 58.65 1516 .983 43.4 Venus .815 116.75 3716 .943 66.8 Earth 1 1 2107 1 128.4 - 168 - Giả sử ta muốn định dạng tên của các hành tinh tuỳ thuộc vào màu sắc COLOR của nó, màu đỏ thì in đậm tên, màu trắng thì in nghiêng tên, màu xanh dương thì gạch dưới tên, ta thực hiện điều này bằng cách chọn trong thuộc tính test của như sau : Planets - 169 - Trong ví dụ ta sử dụng phần tử để yêu cầu chọn gái trị mặc định khi không có biểu thức nào thoả mãn. Kết quả xuất sẽ là : Planets Mercury Venus Earth - 170 - Sử dụng xsl:for-each Tương tự vòng lặp for trong Java và C. Ví dụ : dữ liệu xml được định nghĩa : Mercury Closet planet to the sun .0553 58.65 1516 .983 43.4 Ta sẽ lấy tất cả các phần tử trùng tên như sau : Nội dung tài liệu planets.xsl như sau : - 171 - Kết quả là : Mercury Closet planet to the sun Các tập tin XSLT dùng trong chương trình Tập tin XSLT này dùng để nhóm các câu trắc nghiệm theo chương. <xsl:stylesheet version="1.0" xmlns:xsl=""> Matched <xsl:for-each select="//CauTracNghiem[generate-id(.)= generate- id(key('keyChuongID',@Chuong)[1])]"> <xsl:value-of select="@Chuong"/> <xsl:variable name="lstChuong" select="//CauTracNghiem[@Chuong=$lngChuongID]"/> - 172 - <xsl:for-each select="$lstChuong[generate-id(.) = generate- id(key('keyMaID', @Ma)[1])]"> Tập tin XSLT này dùng để nhóm các bài lý thuyết theo từng lớp, trong từng lớp lại nhóm các bài lý thuyết thành từng chương. <xsl:stylesheet version="1.0" xmlns:xsl=""> Matched <xsl:for-each select="//BaiHoc[generate-id(.)= generate- id(key('keyGenreID',@Lop)[1])]"> - 173 - <xsl:value-of select="@Lop"/> <xsl:variable name="lstPhoto" select="//BaiHoc[@Lop=$lngGenreID]"/> <xsl:with-param name="lstPhoto" select="$lstPhoto" /> <xsl:for-each select="$lstPhoto[generate-id(.) = generate- id(key('keyPDID', @Chuong)[1])]"> <xsl:value-of select="@Chuong" /> <xsl:variable name="lstPD" select="$lstPhoto[@Chuong=$lngPDID]" /> - 174 - <xsl:for-each select="$lstPD[generate-id(.) = generate- id(key('keyPhotoID', @TenBai)[1])]"> Tập tin XSLT này dùng để lấy danh sách các chương trong các câu trắc nghiệm. <xsl:stylesheet version="1.0" xmlns:xsl=""> Matched <xsl:for-each select="//CauTracNghiem[generate-id(.)= generate-id(key('keyChuongID',@Chuong)[1])]"> <xsl:value-of select="@Chuong"/> <xsl:variable name="lstChuong" select="//CauTracNghiem[@Chuong=$lngChuongID]"/> - 175 - Tập tin XSLT này dùng để lấy danh sách các chương trong các câu trắc nghiệm. <xsl:stylesheet version="1.0" xmlns:xsl=""> <FONT FACE="Times New Roman", SIZE="3", COLOR="RED"> Cau - 176 - </FONT> <FONT FACE="Times New Roman", SIZE="2", COLOR="GREEN"> Buoc </FONT> <FONT FACE="Times New Roman", SIZE="3", COLOR="BLUE"> </FONT> C. Các quy tắc xử lý bắt buộc khi sử dụng chương trình: Không gian toạ độ: Quy ước xác định 1 điểm: “chuỗi phía trước” TênĐiểm(x,y,z). Mặc định : “chuỗi phía trước” = “điểm” - 177 - “chuỗi phía trước” = “có tâm là” “chuỗi phía trước” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có điểm trong đề ta tiến hành cắt chuỗi lấy các thông số cho điểm. − Quy ước xác định 1 đường thẳng: Tìm “chuỗi nhận dạng” có trong đề. Mặc định : “chuỗi nhận dạng” = “đường thẳng” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có đường thẳng trong đề ta tiến hành cắt chuỗi lấy các thông số cho đường thẳng. − Quy ước xác định 1 mặt cầu: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “mặt cầu” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề.Sau khi xác định là có mặt cầu trong đề ta tiến hành cắt chuỗi lấy các thông số cho mặt cầu. − Quy ước xác định 1 mặt phẳng: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “mặt phẳng” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có mặt phẳng trong đề ta tiến hành cắt chuỗi lấy các thông số cho mặt phẳng. − Quy ước xác định 1 tứ diện: - 178 - Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “tứ diện” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có tứ diện trong đề ta tiến hành cắt chuỗi lấy các thông số cho tứ diện. − Quy ước xác định 1 tam giác: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “tam giác” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có tam giác trong đề ta tiến hành cắt chuỗi lấy các thông số cho tam giác. − Quy ước xác định 1 vector: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “vector” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có vector trong đề ta tiến hành cắt chuỗi lấy các thông số cho vector. Mặt phẳng toạ độ: − Quy ước xác định 1 điểm: “chuỗi phía trước” TênĐiểm(x,y). Mặc định : - 179 - “chuỗi phía trước” = “điểm” “chuỗi phía trước” = “có tâm là” “chuỗi phía trước” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có điểm trong đề ta tiến hành cắt chuỗi lấy các thông số cho điểm. − Quy ước xác định 1 đường thẳng: Tìm “chuỗi nhận dạng” có trong đề. Mặc định : “chuỗi nhận dạng” = “đường thẳng” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có đường thẳng trong đề ta tiến hành cắt chuỗi lấy các thông số cho đường thẳng. − Quy ước xác định 1 đường tròn: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “đường tròn” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có đường tròn trong đề ta tiến hành cắt chuỗi lấy các thông số cho đường tròn. − Quy ước xác định 1 Ellipse: Tìm “chuỗi nhận dạng” có trong đề Mặc định : - 180 - “chuỗi nhận dạng” = “Ellipse” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có Ellipse trong đề ta tiến hành cắt chuỗi lấy các thông số cho Ellipse. − Quy ước xác định 1 Hyperbol: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “Hyperbol” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có Hyperbol trong đề ta tiến hành cắt chuỗi lấy các thông số cho Hyperbol. − Quy ước xác định 1 vector: Tìm “chuỗi nhận dạng” có trong đề Mặc định : “chuỗi nhận dạng” = “vector” “chuỗi nhận dạng” : có thể do người dùng qui định trong thư viện nhận dạng đề. Sau khi xác định là có vector trong đề ta tiến hành cắt chuỗi lấy các thông số cho vector. - 181 - Đạo hàm: Nhập các biểu thức bằng các ky tự toán học đặc trưng. Lưu ý: Khi muốn thực hiện phép nhân 2 biểu thức, ví dụ u.v thì ta phải nhập như sau (u)(v). Khi muốn lũy thừa 1 biểu thức, ví dụ uv thì ta phải nhập như sau (u)v. D. Phụ lục các thuật giải trong chương trình: Không gian toạ độ: − Tính vector tạo bởi 2 điểm: vector.x = Bx – A.x vector.y = By – A.y vector.z = Bz – A.z − Tính khoảng cách từ 1 điểm đến 1 mặt phẳng: kc = mp.n.z*mp.n.zmp.n.y*mp.n.ymp.n.x*mp.n.x mp.Dz*mp.n.zy*mp.n.yx*mp.n.x ++ +++ − Tính khoảng cách giữa 2 đường thẳng: A ∈ đt1, 1vt là vector chỉ phương B ∈ đt2, 2vt là vector chỉ phương kc = ( AB . 1vt ). 2vt / 1vt . 2vt − Viết phương trình đoạn vuông góc chung giữa 2 đường thẳng chéo nhau: temp = 1vt . 2vt mp1.vt1 = temp; mp1.vt2 = vt1; mp1.TinhPhapVector(); - 182 - mp1.a = a1; mp1.TinhD(); mp2.vt1 = temp; mp2.vt2 = vt2; mp2.TinhPhapVector(); mp2.a = a2; mp2.TinhD(); dt_kq.mp1 = mp1; dt_kq.mp2 = mp2; − Tính diện tích mặt cầu: S = 4*PI*R2 − Tính thể tích mặt cầu: V = 3 4 *PI*R3 − Kiểm tra mặt phẳng song song với 1 mặt phẳng khác: Nếu (mp1.n.x*mp2.n.y != mp1.n.y*mp2.n.x) không song song; Nếu (mp1.n.x*mp2.n.z != mp1.n.z*mp2.n.x) không song song; Nếu (mp1.n.y*mp2.n.z != mp1.n.z*mp2.n.y) không song song; Nếu (mp1.n.x*mp2.D == mp1.D*mp2.n.x) không song song; Còn lại : song song - 183 - − Kiểm tra mặt phẳng trùng với 1 mặt phẳng khác: Nếu (n.x*mp.n.y != n.y*mp.n.x) không trùng Nếu (n.x*mp.n.z != n.z*mp.n.x) không trùng Nếu (n.y*mp.n.z != n.z*mp.n.y) không trùng Nếu (n.x*mp.D != D*mp.n.x) không trùng Trùng − Kiểm tra mặt phẳng vuông góc với 1 mặt phẳng khác: Nếu (n.x*mp.n.x + n.y*mp.n.y + n.z*mp.n.z == 0) Vuông góc Không vuông góc − Tính diện tích của tứ diện: AB = A.TinhVector(B); AC = A.TinhVector(C); S = ((AB.TichHuuHuong(AC)).TinhGiaTri())/2 ; − Tính thể tích của tứ diện: AB = A.TinhVector(B); AC = A.TinhVector(C); AD = A.TinhVector(D); V = (((AB.TichHuuHuong(AC)).TichHuuHuong(AD)).TinhGiaTri())/2 ; − Tính tích hữu hướng của 2 vector: vtkq.x = y*vt.z - z*vt.y; - 184 - vtkq.y = z*vt.x - x*vt.z; vtkq.z = x*vt.y - y*vt.x; Mặt phẳng toạ độ: − Khoảng cách từ 1 điểm đến 1 đường thẳng: kc = dt.vtpt.y*dt.vtpt.ydt.vtpt.x*dt.vtpt.x dt.C y *dt.vtpt.y x *dt.vtpt.x + ++ − Tìm giao điểm giữa 2 đường thẳng: Nếu ( vtpt.x==0 ) { diem.y = vtpt.y C- diem.x = dt.vtpt.x dt.vtpt.y*diem.y-dt.C- } Nếu ( vtpt.y==0 ) { diem.x = vtpt.x C- diem.y = dt.vtpt.y dt.vtpt.x*diem.x-dt.C- } Nếu ( dt.vtpt.x==0 ) { diem.y = dt.vtpt.y dt.C- diem.x = vtpt.x vtpt.y*diem.y-C- } Nếu ( dt.vtpt.y==0 ) - 185 - { diem.x = dt.vtpt.z dt.C- diem.y = vtpt.y vtpt.x*diem.x-C- } diem.y = vtpt.x*dt.vtpt.y-dt.vtpt.x*vtpt.y dt.vtpt.x*C-vtpt.x*dt.C diem.x = vtpt.y*dt.vtpt.x-dt.vtpt.y*vtpt.x dt.vtpt.y*C-vtpt.y*dt.C − Phương trình tiếp tuyến qua 1 điểm thuộc đường tròn: tt.a = diem; tt.vtpt.x = diem.x - Tam.x; tt.vtpt.y = diem.y - Tam.y; tt.TinhVectorChiPhuong(); tt.TinhC(); − Phương trình tiếp tuyến qua 1 điểm không thuộc đường tròn: t1 = Tam.x-diem.x; t2 = Tam.y-diem.y; candelta = )-2(*)-1(-21 RtRt)t*t( 22222 k1 = Rt tt 22 21 -1 candelta - * k2 = Rt tt 22 21 -1 candelta * + - 186 - tt1.a = diem; tt1.vtpt.x = k1; tt1.vtpt.y = -1; tt1.TinhVectorChiPhuong(); tt1.TinhC(); taphop.Thêm(temp); tt2.a = diem; tt2.vtpt.x = k2; tt2.vtpt.y = -1; tt2.TinhVectorChiPhuong(); tt2.TinhC(); taphop.Thêm(temp); − Vị trí tương đối giữa 2 đường tròn: Nếu ( Tam.KhoangCachDenDiem(dt.Tam)==0 && R==dt.R) 2 đường tròn trùng nhau. Nếu ( Tam.KhoangCachDenDiem(dt.Tam)==0 && R!=dt.R) 2 đường tròn trùng tâm. Nếu ( Tam.KhoangCachDenDiem(dt.Tam) > R+dt.R) 2 đường tròn nằm ngoài nhau." Nếu ( Tam.KhoangCachDenDiem(dt.Tam) == R+dt.R) đường tròn tiếp xúc ngoài nhau. Nếu ( Tam.KhoangCachDenDiem(dt.Tam) < Math.Abs(R-dt.R) ) 2 đường tròn chứa nhau Nếu ( Tam.KhoangCachDenDiem(dt.Tam) == Math.Abs(R-dt.R) ) - 187 - 2 đường tròn tiếp xúc trong nhau. còn lại 2 đường tròn cắt nhau tại 2 điểm phân biệt. − Kiểm tra 1 đường thẳng tiếp xúc với Ellipse: Nếu ( dthang.vtpt.x*dthang.vtpt.x*a*a + dthang.vtpt.y*dthang.vtpt.y*b*b == dthang.C*dthang.C) Có tiếp xúc Ngược lại : không tiếp xúc − Kiểm tra 1 đường thẳng tiếp xúc với Hyperbol: Nếu ( dthang.vtpt.x*dthang.vtpt.x*a*a - dthang.vtpt.y*dthang.vtpt.y*b*b == dthang.C*dthang.C) Có tiếp xúc Nếu ( dthang.vtpt.x*dthang.vtpt.x*a*a - dthang.vtpt.y*dthang.vtpt.y*b*b == -dthang.C*dthang.C) Có tiếp xúc Ngược lại : không tiếp xúc Khảo sát và vẽ đồ thị hàm số: − Khảo sát và vẽ đồ thị hàm số đa thức: + Tìm miền xác định. + Tính đạo hàm cấp 1. + Tính đạo hàm cấp 2. + Tính giới hạn vô cực. + Tìm giao điểm với OY. + Xuất kết quả khảo sát. + Vẽ bảng biến thiên. + Vẽ đồ thị. - 188 - − Khảo sát và vẽ đồ thị hàm số hữu tỉ: + Tìm miền xác định. + Tính đạo hàm cấp 1. + Tìm giới hạn tiệm cận đứng. + Tìm giới hạn tiệm cận ngang. + Tìm giới hạn tiệm cận xiên. + Xuất kết quả khảo sát. + Vẽ bảng biến thiên. + Vẽ đồ thị. Đạo hàm: − Nhận diện đề: + Lớp cha sẽ nhận diện ra dạng đề thuộc lớp con nào. + Lớp cha cấp địa chỉ của lớp con và gọi hàm nhận diện đề của lớp con. + Lớp con phân tích đề để lấy các thông tin cần thiết. Các dạng MathML đặc trưng cho các dạng biểu thức là: Đơn thức: Ax 3 X x X - 189 - axb 3 X 5 xb X 5 A X 3 X - 190 - X X A C X 3 X 4 C X - 191 - X 4 A X B 3 X 5 X B - 192 - X 5 A C BX 3 X 5 4 - 193 - ( − 3 ) X 5 4 C BX - 194 - X 5 4 A X C B 3 X 5 4 X C B - 195 - X 5 4 Biểu thức phức: CONG,TRU U + V (U)V ( - 196 - U ) V U/V U V (U)(V) ( U ) ( V - 197 - ) COS(U) SIN TG COTG LN COS ( U ) HANGSO hs CANSO X X - 198 - 4 " #lpar; #minus; 3 #rpar; x " ( − 3 ) X − Tính đạo hàm: + Đạo hàm của 1 biểu thức là một biểu thức. + Một biểu thức phức tạp được cấu thành từ nhều biểu thức nhỏ hơn. - 199 - + Tính đạo hàm của một biểu thức phức tạp bằng cách tính đạo hàm của từng thành phần nhỏ và kết hợp thành biểu thức cần tính. Phụ lục quy tắc tính đạo hàm: Biểu thức căn: public override BIEU_THUC TinhDaoHam() { HANG_SO hs1 = new HANG_SO(); hs1.hangso = 1 - CanSo; BIEU_THUC_U_MU_V umuv1 = new BIEU_THUC_U_MU_V(); umuv1.u = u; umuv1.v = hs1; BIEU_THUC_CAN can1 = new BIEU_THUC_CAN(); can1.CanSo = CanSo; can1.u = umuv1; BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); nhan1.u = u.TinhDaoHam(); nhan1.v = can1; return nhan1; } Biểu thức chia: public override BIEU_THUC TinhDaoHam() { BIEU_THUC_CHIA chia = new BIEU_THUC_CHIA(); BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); BIEU_THUC_NHAN nhan2 = new BIEU_THUC_NHAN(); BIEU_THUC_NHAN nhan3 = new BIEU_THUC_NHAN(); BIEU_THUC_TRU tru = new BIEU_THUC_TRU(); nhan1.u = u.TinhDaoHam(); nhan1.v = v; nhan2.u = u; nhan2.v = v.TinhDaoHam(); nhan3.u = v; - 200 - nhan3.v = v; tru.u = nhan1; tru.v = nhan2; chia.u = tru; chia.v = nhan3; return chia; } Biểu thức cộng: public override BIEU_THUC TinhDaoHam() { BIEU_THUC_CONG cong = new BIEU_THUC_CONG(); cong.u = u.TinhDaoHam(); cong.v = v.TinhDaoHam(); return cong; } Biểu thức COS: public override BIEU_THUC TinhDaoHam() { HANG_SO hs = new HANG_SO(); hs.hangso = -1; BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); nhan1.u = hs; nhan1.v = u.TinhDaoHam(); BIEU_THUC_SIN sin = new BIEU_THUC_SIN(); sin.u = u; BIEU_THUC_NHAN nhan2 = new BIEU_THUC_NHAN(); nhan2.u = nhan1; nhan2.v = sin; return nhan2; } Biểu thức COTG: public override BIEU_THUC TinhDaoHam() { HANG_SO hs = new HANG_SO(); hs.hangso = -1; - 201 - BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); nhan1.u = hs; nhan1.v = u.TinhDaoHam(); BIEU_THUC_SIN sin = new BIEU_THUC_SIN(); sin.u = u; BIEU_THUC_NHAN nhan2 = new BIEU_THUC_NHAN(); nhan2.u = sin; nhan2.v = sin; BIEU_THUC_CHIA chia = new BIEU_THUC_CHIA(); chia.u = nhan1; chia.v = nhan2; return chia; } Biểu thức LN: public override BIEU_THUC TinhDaoHam(){ BIEU_THUC_CHIA chia = new BIEU_THUC_CHIA(); chia.u = u.TinhDaoHam(); chia.v = u; return chia; } Biểu thức nhân: public override BIEU_THUC TinhDaoHam() { BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); nhan1.u = u.TinhDaoHam(); nhan1.v = v; BIEU_THUC_NHAN nhan2 = new BIEU_THUC_NHAN(); nhan2.u = u; nhan2.v = v.TinhDaoHam(); BIEU_THUC_CONG cong = new BIEU_THUC_CONG(); cong.u = nhan1; cong.v = nhan2; return cong; } Biểu thức SIN: public override BIEU_THUC TinhDaoHam(){ BIEU_THUC_COS cos = new BIEU_THUC_COS(); cos.u = u; BIEU_THUC_NHAN nhan = new BIEU_THUC_NHAN(); nhan.u = u.TinhDaoHam(); nhan.v = cos; return nhan; } - 202 - Biểu thức TG: public override BIEU_THUC TinhDaoHam(){ BIEU_THUC_COS cos = new BIEU_THUC_COS(); cos.u = u; BIEU_THUC_NHAN nhan = new BIEU_THUC_NHAN(); nhan.u = cos; nhan.v = cos; BIEU_THUC_CHIA chia = new BIEU_THUC_CHIA(); chia.u = u.TinhDaoHam(); chia.v = nhan; return chia; } Biểu thức trừ: public override BIEU_THUC TinhDaoHam() { BIEU_THUC_TRU tru = new BIEU_THUC_TRU(); tru.u = u.TinhDaoHam(); tru.v = v.TinhDaoHam(); return tru; } Biểu thức uv: public override BIEU_THUC TinhDaoHam() { BIEU_THUC_NHAN nhan1 = new BIEU_THUC_NHAN(); nhan1.u = u.TinhDaoHam(); nhan1.v = v.TinhDaoHam(); HANG_SO hs1 = new HANG_SO(); hs1.hangso = 1; BIEU_THUC_TRU tru1 = new BIEU_THUC_TRU(); tru1.u = v; tru1.v = hs1; BIEU_THUC_U_MU_V umuv1 = new BIEU_THUC_U_MU_V(); umuv1.u = u; umuv1.v = tru1; BIEU_THUC_NHAN nhan2 = new BIEU_THUC_NHAN(); nhan2.u = v; nhan2.v = umuv1; BIEU_THUC_NHAN nhan3 = new BIEU_THUC_NHAN(); nhan3.u = nhan1; nhan3.v = nhan2; return nhan3; } Đơn thức: public override BIEU_THUC TinhDaoHam() - 203 - { DON_THUC temp = new DON_THUC(); temp.heso = (heso*somu.tuso)/somu.mauso; temp.somu.tuso = somu.tuso-somu.mauso; temp.somu.mauso = somu.mauso;sư return temp; } Hằng số: public override BIEU_THUC TinhDaoHam() { HANG_SO temp = new HANG_SO(); temp.hangso = 0; return temp; } - 204 - TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Văn Như Cương (Chủ biên), Tạ Mân, Hình học 12, Tái bản lần thứ nhất, Nhà xuất bản Giáo dục, Hà Nội, năm 2000. [2] TS Lê Anh Vũ, Nguyễn Kỳ Sơn, Nguyễn Danh Phan, Giải toán hình học 12, Lần thứ nhất, Nhà xuất bản TPHCM, TP.HCM, 2003. [3] Giải toán hình học 12 (dùng cho học sinh các lớp chuyên), Nhà xuất bản Giáo dục. Tiếng Anh: [1] Eric Gunnerson, A Programmer's Introduction to C#, Apress, 2000. [2] Eric Butow and Tommy Ryan, C# Book, Hungry Minds, Inc, New York, 2002. [3] Anders Hejlsberg and Scott Wiltamuth, C# Language Reference, Microsoft Corporation 1999-2000. Website:

Các file đính kèm theo tài liệu này:

  • pdfluan_van_xay_dung_phan_mem_day_hoc_toan_hoc.pdf