4.1 Mô tả dữ liệu
Dữ liệu của ứng dụng vẽ công thức hóa học được mô tả theo hướng đối tượng, dữ liệu này được lưu trữ dưới dạng tập tin *.dat để giữ lại logic vẽ hình của ứng dụng nhằm thuận tiện cho người dùng có thể lưu trữ tạm thời công việc lúc đó. Việc quản lý dữ liệu sẽ do
DanhSachHinhVe đảm nhiệm, đây là danh sách quản lý dữ liệu theo kiểu cấu trúc mảng liên kết.
4.2 Từ điển dữ liệu
Đối tượng thực thể của hệ thống
- Hình vẽ cơ bản (BaseShape) o Hình bầu dục (Ellipse) o Hình chữ nhật (Rectangle) o Đường thẳng (Line)
o Hình tam giác (Triangle)
- Hình vẽ hóa học o Cyclohexane o CircleBenzen o Benzen
- Ký hiệu (Symbol)
o Liên kết đơn (One bond) o Liên kết đôi (Double bond) o Liên kết ba (Triple bond) o HashedWedge
o LeakBond
- Văn bản (Text)
Bảng 2-4-1: Bảng mô tả Enum ShapeType trong xử lý giao diện
STT Tên Mô tả
1 stNone Đại diện cho kiểu NULL
2 stRectangle Hình vuông
3 stEllipse Hình bầu dục
4 stLine Đường thẳng
5 stTriangle Hình tam giác
6 stCycloHexan CycloHexan
7 stCircleBenzen Circle Benzen
8 stBenzen Benzen
9 stPentagon Hình lục giác
10 stOneBond Liên hết đơn
11 stDoubleBond Liên kết đôi
12 stTripleBond Liên kết ba
13 stHashedWegde Liên kết chèn
14 stLeakBond Liên kết yếu
15 stSelect Di chuyển hình
16 stDelete Xóa hình
17 stRepaint Tô màu hình
18 stRotate Xoay hình
19 stGroup Nhóm hình
20 stUnGroup Rã nhóm hình
21 stSave Lưu tập tinh tạm
22 stLoad Mở tập tin tạm
23 stExport Xuất tập tin ảnh
24 stText Viết văn bản
Bảng 2-4-2: Bảng dữ liệu của đối tượng hình vẽ cơ bản Hình Vẽ Cơ Bản
# Tên Loại Kiểu Mô tả
1 m_nBegin Property POINT Tọa độ bắt đầu đối tượng
2 m_nEnd Property POINT Tọa độ kết thúc đối tượng
3 m_nPenStype Property INT Kiểu bút vẽ (SOLID, DOT,
DASH, …)
4 m_BrushColor Property BRUSH Màu tô
5 m_PenColor Property COLORS Màu nét vẽ (đường bao)
6 m_nPattern Property INT Mẫu tô của đối tượng
7 m_uFormat Property UNIT Xác định định dạng của text
8 m_TextColor Property COLORS Màu chữ viết ra
9 m_szBuffer Property String Nội dung của text
10 BaseShape() Method HinhVeCoBa
n Hàm xây dựng mặc nhiên
11 IsEmpty() Method BOOL Kiểm tra chưa vẽ
12 Draw(HDC) Method Void
Hàm vẽ đối tượng:
HDC: device context vẽ các đối tượng
13 IsSlected(POINT) Method BOOL
Kiểm tra tọa độ con trỏ chuột có nằm trong đối tượng hay không.
X và y là tọa độ con trỏ chuột
14 DrawSelected(HDC) Method INT
Vẽ các hình chữ nhật nhỏ xung quanh khi thực hiện chọn đối tượng, kéo thả chuột
15 Rotate(HDC) Method BOOL Quay đối tượng
16 Resize(POINT, INT) Method BOOL Điều chỉnh kích thước đối tượng
17 Move(POINT, POINT) Method BOOL Di chuyển đối tượng
18 DrawShadow() Method Void Vẽ bóng của đối tượng
19 Modify(HDC, POINT,
POINT, int) Method BOOL Xác định tọa độ đối tượng
Bảng 2-4-3: Bảng dữ liệu của đối tượng hình vẽ hóa học Hình Vẽ Hóa Học
# Tên Loại Kiểu Mô tả
1 NumAngle Property INT Số đỉnh của hình
2 ChemisShape() Method HinhVeHoaHoc Hàm xây dựng mặc nhiên
3 TopModify Method BOOL Xác định tọa độ các đỉnh của
hình
4 LinkingShape() Method BOOL Nối kết 2 hình với nhau từ một đỉnh của hình
Bảng 2-4-4: Bảng dữ liệu của đối tượng quản lý Canvas Quản lý Canvas
# Tên Loại Kiểu Mô tả
1 ListShape Property List<BaseSha
pe*>
Danh sách các đối tượng được vẽ
2 m_bCopy Property BOOL Flag xác định copy một hay
3 m_bCut Property BOOL Flag xác định cắt một hay nhiều đối tượng
4 ListCopy Property List<BaseSha
pe*>
Danh sách chứa các đối tượng được copy
5 ListDelete Property List<BaseSha
pe*>
Danh sách chứa các đối tượng bị delete, dùng cho việc undo
6 ListShape() Method ListShape Hàm xây dựng mặc nhiên
7 AddShapeToList(BaseShap e*)
Method Void Thêm một đối tượng vào danh sách
8 GetShape(int) Method BaseShape* Lấy đối tượng từ danh sách với thứ tự “int”
9 GetCurrentShape() Method INT Trả về vị trí đối tượng muốn lấy ra
10 ClearListShape() Method Void Xóa toàn bộ danh sách
11 SaveToFile(fstream&, char*)
Method BOOL Lưu hình vẽ vào file
12 LoadToFile(fstream&, char*)
Method BOOL Mở hình từ file
13 CopyShape() Method Void Sao chép một hay nhiều đối
tượng
14 CutShape() Method Void Cắt một hay nhiều đối tượng
15 Pastshape(HDC, PONT) Method Void Dán đối tượng tại vị trí POINT
16 Undo() Method BOOL Trở về thao tác liền trước
17 DeDraw(HDC) Method BOOL Vẽ lại các hình dùng khi load
file
Bảng 2-4-5: Bảng dữ liệu của đối tượng văn bản (Text) Text
# Tên Loại Kiểu Mô tả
1 FontFamily Property FONT Kiểu font cho chữ
2 FontSize Property INT Độ lớn của chữ
3 SetFont() Method Void Thiết lập font cho chữ