Cấu trúc của một Bài toá n Problem

Một phần của tài liệu Chương trình hỗ trợ dạy và học môn hình học lớp 11 (Trang 49)

5 Hiện thực chương trình

4.3 Cấu trúc của một Bài toá n Problem

Module Problem:

Ê Chứa dữ liệu của bài tốn: mơ hình (Model), thơng tin hiển thị mơ hình (Render), quản lý các bước (StepManager),...

Ê Quản lý tất cả các tác vụ liên quan đến bài tốn

Module Model: Chứa và quản lý danh sách các hình vẽ của bài tốn

Module Render:

Ê Chứa các thông số hiển thị riêng của từng mơ hình bài tốn. Đóng vai trị như một Camera lưu vị trí quan sát, góc nhìn, tỉ lệ phóng to thu nhỏ

Ê Chứa các hàm thực hiện việc hiển thị mơ hình ra View, được hiện thực sử dụng các hàm cơ bản của OpenGL

Module StepManager: Quản lý danh sách các bước (Step) và các tác vụ

4.2 Các đối tượng chính của chương trình4.2 Các đối tượng chính của chương trình 4.2 Các đối tượng chính của chương trình

4.2.1 Các class ứng với mơ hình MDI của MFC

• class CGeosApp : public CWinAppEx (MFC) • class CGeosDoc : public CDocument (MFC)

Chứa biến lưu trữ Bài tốn (class Problem) • class CGeosView : public CView (MFC)

• class CMainFrame : public CMDIFrameWndEx (MFC) • class CChildFrame : public CMDIChildWndEx (MFC)

4.2.2 Các class và namespace của mơ hình bài tốn - Prob- lem

class Problem: Ứng với Module Problem của kiến trúc Bài tốn

World m_TypeWorld (Kiểu khơng gian (2D/3D)) SModel m_Model

SRender m_Render StepManager m_StepManager

string m_FilePath (Đường dẫn đến tệp tin của bài tốn) string m_Descriptionn (Mơ tả bài tốn)

Bảng 4.1: Class Problem

class SModel: Ứng với Module Model của kiến trúc Bài tốn

Problem m_Parent (Lưu con trỏ tới bài tốn chứa nó) std::vector¡SShape*> m_ListShape (Danh sách các hình vẽ)

4.2 Các đối tượng chính của chương trình

class SFile:

Ê Chứa các hàm hiện thực việc đọc và lưu file của bài toán

Ê Hỗ trợ chuyển đổi mơ hình, các đối tượng sang dữ liệu văn bản

class StepManager: Ứng với Module StepManager của kiến trúc Bài tốn

class Step: Các bước của bài tốn, lưu trữ danh sách các mơ hình được vẽ

và mơ tả của bước đó

class SShape: Là lớp cơ sở của các hình vẽ, được các class hình vẽ ở

namespace World2d và World3d kế thừa Các thuộc tính cơ bản:

World m_TypeWorld (Kiểu không gian (2D/3D)) State m_State (Trạng thái: Ẩn/Hiện)

Color m_Color (Màu sắc) vector¡string> m_Name (Danh sách tên)

Dependency m_Dependency (Sự phụ thuộc của đối tượng vào các đối tượng khác)

Bảng 4.3: Class SShape

namespace World2d: Chứa các class liên quan đến hình vẽ và các thao tác

liên quan trong không gian 2D

Ê class Model : public class SModel

Ê class Render : public class SRender

Ê class File: Hỗ trợ đọc lưu file 2D Ê class Shape : public class SShape

Ê class Point : public class World2d::Shape - Điểm Các loại điểm

∗ Điểm tự do

∗ Điểm ngẫu nhiên nằm trên đoạn thẳng

∗ Điểm nằm trên đoạn thẳng với một tỉ lệ

4.2 Các đối tượng chính của chương trình

∗ Trực tâm

∗ Điểm là hình chiếu của một điểm lên đường thẳng ∗ Điểm là giao điểm giữa 2 đường thẳng

Ê class Vector : public class World2d::Point - Vectơ

Ê class Line: public class World2d::Shape - Đường thẳng và đoạn thẳng Các loại đường thẳng

∗ Đường thẳng đi qua 2 điểm ∗ Đoạn thẳng

∗ Đường thẳng đi qua 1 điểm và có vectơ chỉ phương

∗ Đường thẳng đi qua 1 điểm và song song với đường thẳng khác

Ê class Cirlcle : public class World2d::Shape - Đường tròn

Ê class Polygon : public class World2d::Shape - Đa giác

namespace World3d: Chứa các class liên quan đến hình vẽ và các thao tác

liên quan trong khơng gian 3D

Ê class Model : public class SModel

Ê class Render : public class SRender

Ê class File: Hỗ trợ đọc lưu file 3D Ê class Shape : public class SShape

Ê class Point : public class World3d::Shape - Điểm Các loại điểm

∗ Điểm tự do

∗ Điểm ngẫu nhiên nằm trên đoạn thẳng, đường thẳng ∗ Điểm nằm trên đoạn thẳng với một tỉ lệ

∗ Điểm ngẫu nhiên nằm trên đa giác ∗ Trực tâm của tam giác

∗ Trọng tâm của đa giác/đa diện

∗ Điểm là hình chiếu của một điểm lên đường thẳng, mặt phẳng ∗ Điểm là giao điểm giữa 2 đường thẳng

4.3 Yêu cầu hệ thốngÊ class Line: public class World2d::Shape - Đường thẳng và đoạn thẳng Ê class Line: public class World2d::Shape - Đường thẳng và đoạn thẳng

Các loại đường thẳng

∗ Đường thẳng đi qua 2 điểm ∗ Đoạn thẳng

∗ Đường thẳng đi qua 1 điểm và có vectơ chỉ phương

∗ Đường thẳng đi qua 1 điểm và song song với đường thẳng khác ∗ Đường thẳng là giao giữa 2 mặt phẳng

Ê class Polygon : public class World3d::Shape Đa giác bao gồm 3 hoặc nhiều điểm hơn tạo thành

Ê class Plane: public class World3d::Shape - Mặt phẳng Các loại Mặt phẳng

∗ Mặt phẳng đi qua 1 điểm và có vectơ pháp tuyến ∗ Mặt phẳng đi qua 2 đường thẳng đồng phẳng ∗ Mặt phẳng đi qua 1 điểm và một đường thẳng ∗ Mặt phẳng đi qua 1 đa giác

Ê class Mesh : public class World3d::Shape - Đa diện Các loại đa diện

∗ Tứ diện ∗ Hình chóp ∗ Hình hộp ∗ Hình lăng trụ ∗ Hình chóp cụt

class TDependency: Biểu thị sự phụ thuộc của 1 đối tượng vào các đối

tượng khác

4.3 Yêu cầu hệ thống

4.3.1 Yêu cầu phi chức năng

Ẹ Ứng dụng có thể chạy tốt trên nền tảng hệ điều hành Windows Ẹ Thời gian xử lý các tương tác nhanh

4.3 Yêu cầu hệ thống

Ẹ Thiết kế giao diện thân thiện với người dùng Ẹ Sử dụng ngôn ngữ là Tiếng Việt

4.3.2 Yêu cầu chức năng

Actor: chỉ có 1 actor duy nhất là người dùng (user)

Usecase: Hình 4.1 là biểu đồ use case của hệ thống thể hiện các chức năng của ứng dụng bao gồm:

Các usecase ứng với màn hình chính:

Ẹ Thêm đối tượng hình vẽ

Ê Chọn hình vẽ có sẵn

Ê Nhập thơng số Ẹ Tạo trang vẽ mới 2D/3D Ẹ Mở tệp tin bài tốn đã có sẵn Ẹ Lưu bài tốn

Ẹ Lưu bài tốn thành tệp Ẹ Đặt lại bài toán về mặc định

Ẹ Hiển thị thơng tin và mơ hình của bài tốn Ẹ Phóng to/ Thu nhỏ mơ hình hiển thị Ẹ Dịch chuyển mơ hình hiển thị

Ẹ Thay đổi góc nhìn của mơ hình hiển thị Ẹ Chuyển bước kế tiếp/ Lùi bước

Ẹ Hiển thị thuộc tính Ẹ Thay đổi thuộc tính Ẹ Xóa hình vẽ

4.3 u cầu hệ thống

4.3 Yêu cầu hệ thống Thêm đối tượng hình vẽ bằng cách chọn hình vẽ có sẵn

Use Case ID 01

Use Case Name Chọn hình vẽ có sẵn

Actor Người dùng

Description Thêm đối tượng hình vẽ có sẵn vào mơ hình đang được hiển thị trên cửa sổ khung nhìn

Pre-conditions Người dùng đang ở giao diện chính. Người dùng đang hoạt động trên một cửa sổ khung nhìn

Postconditions Tạo ra một hình vẽ theo mẫu có sẵn được lưu vào mơ hình và được cập nhật trên cửa sổ khung nhìn đang hoạt động.

Normal Flow

1. Ở giao diện chính, người dùng chọn “2D” hoặc “3D” trên thanh menu tùy theo loại mơ hình đang được hiển thị 2. Chọn biểu tượng hình vẽ tương ứng: Tứ diện, hình chóp,

hình hộp, hình lăng trụ, hình chóp cụt Alternative Flow Khơng có

Exception Flow Khơng có

4.3 Yêu cầu hệ thống Thêm đối tượng hình vẽ bằng cách nhập thơng số

Use Case ID 02

Use Case Name Nhập thông số

Actor Người dùng

Description Thêm đối tượng hình vẽ được tạo vào mơ hình đang được hiển thị trên cửa sổ khung nhìn

Pre-conditions Người dùng đang ở giao diện chính. Người dùng đang hoạt động trên một cửa sổ khung nhìn

Postconditions

Tạo ra một hình vẽ dựa trên thơng số đã nhập, lưu vào mơ hình và được cập nhật trên cửa sổ khung nhìn đang hoạt động nếu thành cơng.

Normal Flow

1. Ở giao diện chính, người dùng chọn “2D” hoặc “3D” trên thanh menu

2. Chọn loại hình cần vẽ được liệt kê ở bên dưới: Điểm, Đường thẳng, Mặt phẳng, Đa giác, Đa diện

3. Người dùng nhập thơng số của hình vẽ và nhấn “Xong” để hoàn tất.

Alternative Flow

Alternative1: bước 3

3a. Người dùng chọn “Hủy” để thoát ra khỏi hộp thoại và quay trở về màn hình chính.

Exception Flow

Exception1: bước 3

3a. Hình vẽ tạo khơng thành công. Hệ thống sẽ hiển thị hộp thoại thông báo.

3b. Người dùng chọn “Xong” và quay về bước 1. Bảng 4.5: Chức năng thêm đối tượng hình vẽ bằng cách nhập thơng số

4.3 Yêu cầu hệ thống Tạo trang vẽ mới 2D/3D

Use Case ID 03

Use Case Name Tạo trang vẽ mới 2D/3D

Actor Người dùng

Description Chọn trang vẽ mới trong không gian 2D hoặc 3D Pre-conditions Người dùng đang ở màn hình chính

Postconditions Việc chọn sẽ tạo ra một cửa sổ khung nhìn mới ứng với không gian 2D hoặc 3D.

Normal Flow 1. Ở màn hình chính, người dùng chọn “Tệp” -> “Tạo mới2D”/ “Tạo mới 3D” Alternative Flow Khơng có

Exception Flow Khơng có

4.3 u cầu hệ thống Mở tệp tin bài tốn đã có sẵn

Use Case ID 04

Use Case Name Mở tệp tin

Actor Người dùng

Description Mở mơ hình đã được lưu dưới dạng tệp tin Pre-conditions Người dùng đang ở giao diện chính

Postconditions

Hệ thống tiến hành đọc dữ liệu từ tệp, tạo ra một cửa sổ khung nhìn mới với mơ hình đã được lưu trong tệp tin được chọn

Normal Flow

1. Ở giao diện chính, người dùng chọn “Tệp” -> “Mở tệp tin”

2. Một hộp thoại hiện ra, người dùng chọn đường dẫn chứa tệp tin cần mở, rồi chọn “Xong”.

Alternative Flow Khơng có

Exception Flow

Exception1: bước 3

3a. Mơ hình lưu trong tệp được chọn không đúng định dạng, hệ thống đọc dữ liệu khơng thành cơng

3b. Khơng có cửa sổ mới nào được tạo ra, người dùng trở về màn hình chính

4.3 Yêu cầu hệ thống Lưu bài toán

Use Case ID 05

Use Case Name Lưu

Actor Người dùng

Description Lưu mơ hình bài tốn đang hiển thị trong cửa sổ khung nhìn hiện hành dưới dạng tập tin.

Pre-conditions Có một cửa sổ khung nhìn đang hoạt động Postconditions

Hệ thống tiến hành ghi dữ liệu vào tệp với đường dẫn ứng với mơ hình ở cửa sổ khung nhìn hiện tại hoặc tạo ra một tập tin mới

Normal Flow

1. Ở giao diện chính, người dùng chọn “Tệp” Ê> “Lưu” 2. Nếu cửa sổ khung nhìn hiện tại có đường dẫn, khơng

phải được tạo mới thì hệ thống sẽ cập nhật ghi đè vào đường dẫn đó

Alternative Flow Khơng có

Exception Flow

Exception1: bước 2

3a. Cửa sổ khung nhìn được tạo mới.

3b. Hiển thị hộp thoại chọn đường dẫn lưu tệp

3c. Người dùng chọn đường dẫn có sẵn để ghi đè, hoặc nhập tên để tạo tệp mới

4.3 Yêu cầu hệ thống Lưu bài toán thành tệp

Use Case ID 06

Use Case Name Lưu thành tệp

Actor Người dùng

Description Lưu mơ hình bài tốn đang hiển thị trong cửa sổ khung nhìn hiện hành dưới dạng tập tin mới.

Pre-conditions Có một cửa sổ khung nhìn đang hoạt động

Postconditions Hệ thống tiến hành ghi dữ liệu vào tệp với đường dẫn được nhập.

Normal Flow

1. Ở giao diện chính, người dùng chọn “Tệp” Ê> “Lưu với tên”

2. Một hộp thoại hện ra, người dùng nhập đường dẫn mới và chọn “Lưu”

3. Hệ thống tiến hành tao tệp mới theo đường dẫn và lưu mơ hình vào têp.

Alternative Flow Khơng có

Exception Flow

Exception1: bước 2

3a. Nếu đường dẫn đã tồn tại, hệ thống sẽ hiển thị hộp thoại cảnh báo ghi đè

3b. Người dùng chọn “Có” để ghi đè và trở về màn hình chính, hoặc “Khơng” để quay trở lại bước 2

4.3 Yêu cầu hệ thống Đặt lại bài toán về mặc định

Use Case ID 07

Use Case Name Đặt lại bài toán về mặc định

Actor Người dùng

Description Đặt lại tệp tin của bài toán được chọn về mặc định. Pre-conditions Người dùng đang ở giao diện chính

Postconditions Hệ thống tiến hành ghi dữ liệu vào tệp với đường dẫn được nhập.

Normal Flow 1. Người dùng nhấp chuột phải vào bài toán trên thanhMục lục và chọn “Đặt lại về mặc định” Alternative Flow Khơng có

Exception Flow Khơng có

4.3 Yêu cầu hệ thống Hiển thị thơng tin và mơ hình của bài tốn

Use Case ID 08

Use Case Name Hiển thị bài toán

Actor Người dùng

Description Hiển thị mơ hình và thơng tin, danh sách hình vẽ,.. của bài tốn được chọn

Pre-conditions Người dùng đang ở giao diện chính Postconditions

Hệ thống tạo cửa sổ khung nhìn mới và hiển thị mơ hình của bài tốn được chọn, liệt kê danh sách hình vẽ của bài tốn trên cửa sổ Mơ hình, hiển thị

Normal Flow

1. Người dùng nhấp đúp chuột trái vào bài toán trên thanh Mục lục

2. Hệ thống tạo cửa sổ khung nhìn mới và hiển thị mơ hình của bài tốn được chọn

3. Cửa sổ mơ hình sẽ cập nhật và liệt kê danh sách tên hình vẽ ứng với bài tốn theo từng loại: Điểm, Đường thẳng, Đa giác,...

4. Cửa sổ Mơ tả bài tốn sẽ cập nhật hiển thị mơ tả/ u cầu của bài tốn

Alternative Flow Khơng có Exception Flow Khơng có

4.3 u cầu hệ thống Phóng to/ Thu nhỏ mơ hình hiển thị

Use Case ID 09

Use Case Name Phóng to/ Thu nhỏ

Actor Người dùng

Description Phóng to/ Thu nhỏ mơ hình hiển thị trên cửa sổ khung nhìn bằng chuột

Pre-conditions Người dùng đang ở hoạt động trên cửa sổ khung nhìn

Postconditions Mơ hình trên cửa sổ khung nhìn sẽ được phóng to/ thu nhỏ theo thao tác lăn chuột

Normal Flow 1. Người dùng lăn chuột trên cửa sổ khung nhìn Alternative Flow Khơng có

Exception Flow Khơng có

4.3 u cầu hệ thống Dịch chuyển mơ hình hiển thị

Use Case ID 10

Use Case Name Dịch chuyển

Actor Người dùng

Description Dịch chuyển mơ hình hiển thị trên cửa sổ khung nhìn bằng chuột

Pre-conditions Người dùng đang ở hoạt động trên cửa sổ khung nhìn

Postconditions Mơ hình trên cửa sổ khung nhìn sẽ được dịch chuyển sang vị trí tương ứng với thao tác của người dùng

Normal Flow

1. Người dùng nhấn giữ phím Alt đồng thời nhấn giữ và dichuyển chuột phải trên cửa sổ khung nhìn để dịch chuyển mơ hình sang vị trí tương ứng

Alternative Flow Khơng có Exception Flow Khơng có

4.3 Yêu cầu hệ thống Thay đổi góc nhìn của mơ hình hiển thị

Use Case ID 11

Use Case Name Dịch chuyển

Actor Người dùng

Description Thay đổi góc nhìn của mơ hình hiển thị trên cửa sổ khung nhìn bằng chuột

Pre-conditions Người dùng đang ở hoạt động trên cửa sổ khung nhìn

Postconditions Mơ hình trên cửa sổ khung nhìn sẽ được thay đổi góc nhìn sang góc nhìn tương ứng với thao tác của người dùng

Normal Flow

1. Người dùng nhấn giữ đồng thời di chuyển chuột phải trên cửa sổ khung nhìn để thay đổi góc nhìn mơ hình sang góc tương ứng

Alternative Flow Khơng có Exception Flow Khơng có

4.3 Yêu cầu hệ thống Chuyển bước kế tiếp/ Lùi bước

Use Case ID 12

Use Case Name Chuyển bước kế tiếp/ Lùi bước

Actor Người dùng

Description Chuyển bước kế tiếp/ Lùi bước

Pre-conditions Người dùng đang ở hoạt động trên cửa sổ khung nhìn

Postconditions Hiển thị mơ hình ứng với bước kế tiếp của bài tốn trên cửa sổ khung nhìn

Normal Flow

1. Người dùng nhấn chuột trái hoặc nhấn kết hợp phím Shift để chuyển bước kế tiếp hoặc lùi bước

2. Hệ thống sẽ cập nhật bước kế tiếp của bài tốn trên cửa sổ khung nhìn

3. Tab Mơ tả bước trên cửa sổ Mơ tả bài tốn sẽ cập nhật lại mơ tả và danh sách các hình được hiển thị của bước. Alternative Flow Khơng có

Exception Flow

Exception1: bước 2

3a. Nếu bài tốn khơng mơ tả bước hoặc khơng có bước kế tiếp thì sẽ giữ nguyên khung nhìn

Nếu bài tốn khơng mơ tả bước hoặc khơng có bước kế tiếp thì sẽ giữ nguyên khung nhìn

4.3 Yêu cầu hệ thống Hiển thị thuộc tính

Use Case ID 13

Use Case Name Hiển thị thuộc tính

Một phần của tài liệu Chương trình hỗ trợ dạy và học môn hình học lớp 11 (Trang 49)

Tải bản đầy đủ (PDF)

(92 trang)