1. Trang chủ
  2. » Luận Văn - Báo Cáo

thuyết mình chương trình.doc

35 578 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thuyết Minh Chương Trình
Trường học Trường Đại Học
Thể loại Luận văn
Định dạng
Số trang 35
Dung lượng 319,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

thuyết mình chương trình

Trang 1

CHƯƠNG III : THUYẾT MINH CHƯƠNG TRÌNH

I- TỔNG QUAN VỀ CHƯƠNG TRÌNH :

Nghiên cứu để thiết kế hệ thống chương trình tạo hoa văn

dựng chương trình từ các cung vẽ đơn lẻ Các cung vẽ này sẽ đựơc sắp xếp lạivới nhau tạo thành một hoa văn đẹp mắt

điểm thêm hình vẽ Tuy nhiên màu sắc thể hiện ở mỗi con người chúng ta đềukhác nhau cho nên chương trình của chúng em không những cung cấp mầu sắccó sẵn mà còn cho phép người sử dụng những mầu tự định nghĩa

tránh khỏi Do đó chương trình cho phép người sử dụng có thể thêm, xóa, sửa,thay đổi những thông số cho phù hợp

trình vẽ Chính vì vậy chương trình cho phép người sử dụng có thể in ấn, hoặclưu trữ những sản phẩm sau khi vẽ Những hình ảnh sau khi lưu cũng có thể mở

ra sửa chữa lại

và bàn phím

quản lý một cách hệ thống, chặt chẽ để tạo dễ dàng cho sự mở rộng hệ thốngvà tuân theo các nguyên tắc cơ bản về lập trình

được nhanh chóng và hiệu quả

Trang 2

II- GIAO DIỆN VÀ CÁCH SỬ DỤNG CHƯƠNG TRÌNH:

A- Giao diện chương trình:

Chúng em sẽ trình bày giao diện về chương trình theo mô hình như sau :

Chương trình này có giao diện giống như bao chương trình ứng dụng khácchạy trên môi trường Windows Nó gồm có một hệ thống Menu, thanh Toolbar,thanh Status Bar, và một vùng vẽ có thanh cuộn ngang và thanh cuốn dọc để chongười sử dụng di chuyển trên vùng vẽ, để thực hiện các thao tác vẽ một cách dễdàng

Trang 3

1 - Hệ thống Menu:

Menu chương trình gồm có các mục thành phần chính sau:

+ Close :Đóng trang vẽ hiện tại mà user đang dùng

+ Save :Lưu trang vẽ hiện hành lên đĩa.(Dùng phím Ctrl + S)

+ Save As :Lưu trang vẽ hiện hành lên đĩa được quyền đặt tên file lại

+ Print :In trang vẽ hiện hành ra máy in

+ Print Preview : Xem trước số trang in

+ Print Setup : Thiết lặp các thuộc tính cho máy in và trang in

+ Recent File : Mở lại các file trang in đã mở trước

+ Exit : Thoát khỏi ứng dụng Trở về màn hình Windows

1.2 - Menu Edit:

+ Cut :Cắt hình vẽ đang được chọn, lưu vào Clipboar(Dùng Ctrl + X)

+ Copy :Sao chép hình vẽ, hoặc một số hình vẽ đang được chọn, lưu vàoClipboard.( Dùng Ctrl + C )

+ Paste :Đưa hình vẽ đã có trong Clipboard dán vào trang vẽ hiện hành.( Dùng Ctrl + V)

+ Delete : Xóa hình vẽ đang được chọn.( Dùng phím Delete)

Vie File Edit View Draw Color Window Help

Trang 4

+ Select All : Chọn tất cả hình vẽ đang có trên trang vẽ hiện hành ( DùngCtrl + A)

1.3 -Menu Draw:

+ HillBert : Vẽ cung HillBert đã được nêu trước đó

+ PrimeRosette : Vẽ cung PrimeRosette (hay còn gọi là hoa hồng nguyêntố)

+ C_Curve : Vẽ cung C (giống hình chữ C)

+ Cung Rồng : Vẽ hình cung Rồng (Cũng tương tự như cung C nhưng hướngcủa nó thay đổi khác so với cung C)

+ PolySpirals : Vẽ cung PolySpiral Gồm có:

1.4 - Menu Color:

+ LineColor : Màu của nét vẽ ( bút vẽ) của đối tượng vẽ đang được chọn(gồm một hộp màu gồm 48 màu định sẵn và 16 màu tự pha chế tùy ý để user tựchọn)

+ FillColor : Màu nền tô của đối tượng (màu dùng cho cọ vẽ) đang đượcchọn (Hộp màu cũng tương tự như LineColor)

Tóm lại : Cả FillColor và LineColor đều có hộp màu như sau:

Trang 5

1.5- Menu View:

+ ToolBar : Dùng để thể hiện hoặc không thể hiện thanh toolbar

+ Status Bar : Dùng để thể hiện hoặc không thể hiện thanh status bar

+ Paper Color : Dùng để định nghĩa màu nền của trang vẽ (cho user tự chọnmàu nền

1.6 -Menu Windows:

+ New Window : Tạo một cửa sổ window mới

+ Cascade : Thể hiện các window theo cửa sổ tầng

+ Tile : Thể hiện các window theo kiểu lát gạch

+ Arrange : Sắp xếp các window theo thứ tự

+ Danh sách các window đã được mở ra trước đó

1.7- Menu Help:

Trang 7

B- Cách sử dụng chương trình:

1- Vẽ ra màn hình :

Để vẽ ra một hình nào đó trên Viewport (danh sách hình trên menu Draw).Đầu tiên người sử dụng kích chuột vào item nào mà mình muốn chọn trong menuDraw, hoặc nhấp lên nút biểu tượng trên thanh Toolbar Tiếp theo di chuyển chuộtđến vùng vẽ ( trang vẽ) và click trái chuột, một hộp đối thoại dialog hiện ra yêucầu người sử dụng nhập vào một số thông số cần thiết có liên quan đến việc vẽhình Sau khi nhập vào đầy đủ các yêu cầu thông số về đối tượng hình vẽ đó nhấpnút OK thì đối tượng hình vẽ được vẽ ra trên vùng làm việc

Ví dụ : Muốn vẽ cung PrimeRosette ( hoa hồng nguyên tố ) thì chúng ta kíchchuột vào menu Draw, chọn tiếp item PrimeRosette bằng cách nhấp nút chuột tráilên item PrimeRosette( hoặc chọn biểu tượng Prime Rosset trên thanh Toolbar), dichuyển chuột đến vùng vẽ đồng thời click trái chuột xuống thì hộp đối thoạidialog hiện lên với yêu cầu nhập hai thông số là:

Sau đó nếu không có gì thay đổi thì nhấp nút OK, cung PrimeRosette được hiện

ra trên vùng làm việc tại vị trí mà chúng ta click chuột xuống, nếu nhấnCANCEL tức hủy bỏ quá trình vẽ (vị trí click chuột là tâm của hình)

Việc thực hiện vẽ các đối tượng hình vẽ khác cũng tương tự như vậy

2- Chọn đối tượng - hiệu chỉnh - sửa đổi :

- Chọn đối tượng : Khi trên trang vẽ đã có nhiều đối tượng đã được vẽ (và người

sử dụng đang ở chế độ vẽ) mà muốn ngưng việc vẽ để chọn đối tượng nào đó màmình muốn thao tác thì trước tiên phải chọn đối tượng bằng cách vào menu Drawchọn item Select ( hoặc nhấp lên biểu tượng có hình dạng mũi tên trên thanhToolbar) Sau đó click chuột trái vào đối tượng nào mình muốn chọn Tiếp theothì người sử dụng có thể thực hiện các thao tác như : sao chép, di chuyển, co dãn,cắt dán

- Hiệu chỉnh - sữa đổi: Chỉ hiệu chỉnh trên từng đối tượng riêng lẻ tại một thời

điểm, chẳng hạn như :số đỉnh, bán kính (của hồng nguyên tố), bậc (còn gọi là cấpđệ quy của cung như : HilBert, cung Rồng, cung C, cung Polysprials) Để thựchiện việc hiệu chỉnh – sữa đổi thì ta tiến hành như sau:

Bước 1 : Chọn đối tượng cần hiệu chỉnh (như đã trình bày ở trên)

Trang 8

Bước 2 : Quay lên thanh Toolbar chọn đúng nút biểu tượng của đối tượngvừa được chọn ở bước 1 (lúc này đối tượng đang ở chế độ được chọn và trênthanh Toolbar nút biểu tượng bị ấn xuống ).

Bước 3 : Trở lại vùng vẽ và click phải chuột lên đối tượng đã được chọn ở

bước 1 và 2, hộp đối thoại dialog của đối tượng đó hiện lên với các thông số làcác giá trị hiện thời của đối tượng Nếu đồng ý với các thay đổi vừa được chọn thìnhấn OK và ngược lại thì nhấp CANCEL

Ví dụ: Muốn di chuyển cung PrimeRosette trên thì trước tiên ta chọn cungPrimeRosette bằng cách nhấp trái chuột Giữ nguyên trạng thái nhấn chuột đồngthời di chuyển chuột (rê chuột) tới vị trí cần di chuyển đến và thả tay ra

Còn đối với việc cắt, dán, sao chép thì cũng thực hiện tương tự : đầu tiên tachọn đối tượng cần thao tác và chọn các chức năng (cut, copy, paste) trên thanhToolBar hoặc trong menu Edit hoặc dùng tổ hợp các phím như đã nêu trong trongphần menu Edit

Ngoài chức năng chọn đơn lẻ từng đối tượng hình Chương trình còn chophép người sử dụng chọn cùng lúc nhiều đối tượng hình vẽ bằng cách nhấn giữ

phím <Shift> và nhấn giữ nút trái chuột trên các đối tượng, hoặc có dùng chuột

kéo thành một đường bao hình chữ nhật bao trùm tất cả các đối tượng nào

mình muốn chọn Hoặc vào Menu Edit chọn Item Select All (Ctrl + A)

3- Thay đổi màu nét vẽ – màu nền:

Để thay đổi màu nét vẽ - màu cọ vẽ thì ta chọn đối tượng hình cần thayđổi và sau đó chọn menu Color Chọn tiếp item LineColor (nếu như thay đổi màunét vẽ) hoặc chọn FillColor nếu như thay đổi màu cọ vẽ Ngoài ra ta có thể thayđổi màu nền của trang vẽ bằng cách vào Menu View chọn item Paper Color, sauđó chọn màu muốn thay đổi

Nhấn OK , thì việc thay đổi được thực hiện

III- TỔ CHỨC CÁC LỚP TRONG CHƯƠNG TRÌNH:

Chương trình được xây dựng bằng App Wizard, một tiện ích tạo ứng dụng tựđộng có sẵn của Mirosoft Visual C++ với các lựa chọn theo các bước như sau:

chương trình có khả năng giao tiếp

Trang 9

- Bước 4: Chọn Docking toolbar, initial status bar, printing and print preview chophép sử dụng toolbar, status bar print preview và máy in.

dọc

Ngoài những lớp do MFC tạo ra thông qua các bước trên chúng em còn tạo rathêm một số lớp để phục vụ cho quá trình vẽ Đó là các lớp :

Sơ đồ luồng chương trình

Người sử dụng Các biến cố

CDemoTool CDemoView

CDemoObj

CDemoDoc

Các lớp Dialog

Trang 10

Sau đây chúng em sẽ liệt kê thành phần của từng lớp, và chỉ liệt kê các biếnthành viên và các hàm thành viên do chúng em tạo ra.

CDemoObjList m_objects

CSize m_size

COLORREF m_paperColor

CDemoObjList* GetObjects() { return &m_objects; }

const CSize& GetSize() const { return m_size; }

void ComputePageSize();

COLORREF GetPaperColor() const { return m_paperColor; }

CDemoObj* ObjectAt(const CPoint& point);

void Draw(CDC* pDC, CDemoView* pView);

void Add(CDemoObj* pObj);

void Remove(CDemoObj* pObj);

Lớp này được xuất từ lớp CScrollView Nhiệm vụ chính của lớp này là xửlý các biến cố và giao tiếp với ngưới sử dụng Ví dụ để vẽ một cung người sửdụng chọn cung cần vẽ rồi click traí chuột, khi này sẽ sinh ra một thông điệpcủa Window là WM_ONLBUTTONDOWN, người thiết kế chương trình cónhiệm vụ đón bắt thông điệp này bằng cách phủ quyết hàm OnLButtonDownđể xử lý các nhu cầu từ việc nhấn nút chuột Trong trường hợp của chúng emhàm OnLButtonDown không làm gì nhiều ngoài việc gọi hàm FindTool từ lớp

Trang 11

CDemoTool để tìm kiếm xem đối tượng nào được vẽ và gọi hàmOnLButtonDown từ lớp đó.

Ngoài ra lớp này còn có các hàm lo việc chuyển đổi tọa độ, các hàm xử lýviệc chọn hình vẽ từ ToolBar, các hàm xử lý việc cắt gián và biến lưu trữ cácđối tượng đã chọn để phục vụ cho viêc di chuyển, co giãn hoặc sửa đổi

CDemoObjList m_selection;

BOOL m_bActive;

static CLIPFORMAT m_cfDraw;

static BOOL gtDe;

void DocToClient(CRect& rect);

void DocToClient(CPoint& point);

void ClientToDoc(CPoint& point);

void ClientToDoc(CRect& rect);

void Select(CDemoObj* pObj, BOOL bAdd = FALSE)

void SelectWithinRect(CRect rect, BOOL bAdd = FALSE)

void CloneSelection()

void InvalObj(CDemoObj* pObj)

void Remove(CDemoObj* pObj)

BOOL ObjectAt(const CPoint& point)

void PasteNative(COleDataObject& dataObject)

Lớp này được dẫn xuất từ lớp CObject Nhiệm vụ của lớp này là quản lýcác đối tượng vẽ Để vẽ ra một cung ngoài những đặc tính chung là hình dáng,bút vẽ, cọ ve õ….Lớp này còn có các lớp thừa kế từ nó như: CDemoCcurve,CDemoDragon, CDemoPoly, CDemoPolySpirals và CDemoRosset Mỗi mộtlớp sẽ có các biến, các hàm thành viên riêng cho việc vẽ ra cung đó

Trang 12

enum TrackerState { normal, selected, active }

int GetHandleCount()

CPoint GetHandle(int nHandle)

CRect GetHandleRect(int nHandleID, CDemoView* pView)

HCURSOR GetHandleCursor(int nHandle)

void SetLineColor(COLORREF color)

void SetFillColor(COLORREF color)

virtual void Draw(CDC* pDC)

void DrawTracker(CDC* pDC, TrackerState state)

virtual void MoveTo(const CRect& positon, CDemoView* pView = NULL)

CDemoHilber

Trang 13

int HitTest(CPoint point, CDemoView* pView, BOOL bSelected)

virtual BOOL Intersects(const CRect& rect)

virtual void MoveHandleTo(int nHandle, CPoint point, CDemoView*pView = NULL)

virtual CDemoObj* Clone(CDemoDoc* pDoc = NULL)

virtual void Serialize(CArchive& ar)

virtual CDemoObj* Clone(CDemoDoc* pDoc=NULL)

virtual BOOL Intersects(const CRect& rect)

virtual void MoveHandleTo(int nHandle,CPoint point,CDemoView*pView=NULL)

void RecalcBounds(CDemoView* pView=NULL)

virtual void MoveTo(const CRect& position,CDemoView* pView=NULL)void PolySpirals(CDC* pDC,int radius, CPoint cent,int start_angle, intvertice)

void DrawNGon(CDC* pDC, CPoint point1[100],CPoint point2[100],int vertice)

virtual void Draw(CDC* pDC)

Trang 14

virtual void Serialize(CArchive& ar)

virtual CDemoObj* Clone(CDemoDoc* pDoc=NULL)

virtual BOOL Intersects(const CRect& rect)

virtual void MoveHandleTo(int nHandle,CPoint point,CDemoView*pView=NULL)

void RecalcBounds(CDemoView* pView=NULL)

virtual void MoveTo(const CRect& position,CDemoView* pView=NULL)virtual void Draw(CDC* pDC)

- Bieán:

int d_SoBac

CPoint d_DD,d_DC

virtual void Serialize(CArchive& ar)

virtual CDemoObj* Clone(CDemoDoc* pDoc=NULL)

virtual BOOL Intersects(const CRect& rect)

virtual void MoveHandleTo(int nHandle,CPoint point,CDemoView*pView=NULL)

void RecalcBounds(CDemoView* pView=NULL)virtual void MoveTo(const CRect& position,CDemoView*pView=NULL)

virtual void Draw(CDC* pDC)void Dragon(CDC* pDC,CPoint pos1,CPoint pos2,unsigned int order)void Dragon(CRect& rect,CPoint pos1,CPoint pos2,unsigned intorder)

int Max(int x, int y, int z, int t)int Min(int x, int y, int z, int t)

- Bieán:

int c_SoBac

CPoint c_DD,c_DC

virtual void Serialize(CArchive& ar)

virtual CDemoObj* Clone(CDemoDoc* pDoc=NULL)

virtual BOOL Intersects(const CRect& rect)

Trang 15

virtual void MoveHandleTo(int nHandle,CPoint point,CDemoView*pView=NULL)

void RecalcBounds(CDemoView* pView=NULL)

virtual void MoveTo(const CRect& position,CDemoView* pView=NULL)virtual void Draw(CDC* pDC)

void Ccurve(CDC* pDC,CPoint pos1,CPoint pos2,unsigned int order)

void Ccurve(CRect& rect,CPoint pos1,CPoint pos2,unsigned int order)int Max(int x, int y, int z, int t)

int Min(int x, int y, int z, int t)

virtual void Serialize(CArchive& ar)

virtual CDemoObj* Clone(CDemoDoc* pDoc=NULL)

virtual BOOL Intersects(const CRect& rect)

virtual void MoveHandleTo(int nHandle,CPoint point,CDemoView*pView=NULL)

void RecalcBounds(CDemoView* pView=NULL)

virtual void MoveTo(const CRect& position,CDemoView* pView=NULL)virtual void Draw(CDC* pDC)

int DIV(int x , int y)

int MOD(int x , int y)

virtual CDemoObj* Clone(CDemoDoc* pDoc = NULL)

virtual void Draw(CDC* pDC)

virtual void MoveTo(const CRect& position,CDemoView* pView=NULL)

Trang 16

virtual void MoveHandleTo(int nHandle, CPoint point,CDemoView*pView=NULL)

virtual void Serialize(CArchive& ar)

virtual BOOL Intersects(const CRect& rect)

void RecalcBounds(CDemoView* pView = NULL)

void Hilbert(CDC* pDC,int kind, int order,int& dx,int& dy)

void Hilbert(CRect& rect,CPoint& point,CSize size,int kind, int order)

void LineRel(CDC* pDC, int x, int y,int& dx,int& dy)

int Min(int x, int y)

int Max(int x, int y)

Lớp này không được thừa kế từ bất kỳ lớp nào Nó được tạo ra để giảiquyết chủ yếu các hàm đón bắt chuột từ lớp CDemoView Khi nhận được tácvụ từ lớp CDemoView, nó sẽ tiến hành thao tác các lớp tương ứng trên nó.Ngoài ra CDemoTool còn gọi một trong các lớp Dialog cho phép người sử dụngcó thể nhập các thông số cần thiết ứng với mỗi cung vẽ Quá trình thao tác cogiãn, di chuyển, hoặc chọn lựa các cung vẽ cũng được thực hiện từ lớp này.Các lớp thừa kế từ CDemoTool là CPolySpiralsTool, CRossetTool, CPolyTool,CDragonTool, CCcurveTool, CHilberTool, bao gồm các hàm chủ yếu phủquyết lại các hàm từ lớp CDemoTool

Trang 17

 Các biến thành viên :

static CPtrList c_tools

static CPoint c_down

static UINT c_nDownFlags

static CPoint c_last

static DrawShape c_drawShape

DrawShape m_drawShape

enum DrawShape {selection, polyspirals, rosset, poly, dragon, Ccurve, hilbert} enum SelectMode {none, netSelect, move, size }

virtual void OnLButtonDown(CDemoView* pView, UINT nFlags, constCPoint& point)

virtual void OnRButtonDown(CDemoView* pView, UINT nFlags, constCPoint& point)

virtual void OnLButtonUp(CDemoView* pView, UINT nFlags, constCPoint& point)

virtual void OnMouseMove(CDemoView* pView, UINT nFlags, constCPoint& point)

BOOL Check(CDemoView* pView)

Các lớp này thừa kế từ lớp CDialog bao gồm: CDlgRosset, CDlgPoly,CDlgCcurve, CDlgDragon, CDlgPolySpirals, CDlgDetai, CDlgHilber Mỗi một lớpsẽ có các biến riêng để lưu lại các giá trị do người sử dụng nhập liệu sau khi nhấnnút OK từ khung đối thoại Các hàm từ các lớp này đươc tạo ra từ Wizard khi kếtnối với khung đối thoại

Ngày đăng: 25/08/2012, 11:26

HÌNH ẢNH LIÊN QUAN

Chúng em sẽ trình bày giao diện về chương trình theo mô hình như sau: - thuyết mình chương trình.doc
h úng em sẽ trình bày giao diện về chương trình theo mô hình như sau: (Trang 2)
trên cơ sở đường tròn, nhưn gở đây hình dáng của cung quá phức tạp nên chúng em sử dụng diện tích bao quanh cung giao vơiù đối tượng rect - thuyết mình chương trình.doc
tr ên cơ sở đường tròn, nhưn gở đây hình dáng của cung quá phức tạp nên chúng em sử dụng diện tích bao quanh cung giao vơiù đối tượng rect (Trang 29)

TỪ KHÓA LIÊN QUAN

w