Chào bạn Tìm kiếm | Bài viết mới | Thành viên | Đăng ký | Đăng nhập |
Diễn đàn - Công ty TNHH Thương mại và Giải pháp công nghệ THÀNH NAM » Kiến thức lập trình » C, C++, MFC » Chương trình mô phỏng đỉnh và đường của đồ thị
Chương trình mô phỏng đỉnh và đường của đồ thị      
Chủ đề trước ·
vitxam
15/9/2011 10:21:21 AM
Chung tay xây dựng cộng đồng

Cấp bậc: Binh nhì

Tham gia: 21/8/2011
Bài viết: 18
Đến từ: Hà Nội

Đánh giá: [0]

a1011 108a Chương trình mô phỏng đỉnh và đường của đồ thịBài toán tìm đường đi hay tìm đường đi ngắn nhất thường có nhiều giải thuật khác nhau. Bài viết sẽ thể hiện cụ thể các ý tưởng tìm đường theo thuật giải của Dijsktra bằng qui trình điển hình để xây dựng ứng dụng đơn giản cho việc tìm đường đi ngắn nhất trong 1 đồ thị vô hướng (cung miêu tả đường 2 chiều) gồm 8 nút.

Để viết chương trình mô phỏng việc tìm đường đi ngắn nhất giữa 2 nút bất kỳ trong 1 đồ thị cho trước, bạn cần thực hiện một số công việc sau:

- Tìm hiểu và nắm vững cách thức hiển thị các dữ liệu lên cửa sổ đồ họa của ứng dụng trên Windows. Các dữ liệu cần hiển thị của 1 ứng dụng chỉ thuộc 1 trong 3 loại: chuỗi văn bản, ảnh bitmap, hình toán học như đoạn thẳng, chữ nhật, vòng tròn… Qui trình hiển thị chuỗi văn bản gồm 3 bước chính: tạo font chữ cần dùng, đăng ký font cho Windows dùng, gọi hàm TextOut() để xuất chuỗi ra cửa sổ. Qui trình hiển thị ảnh bitmap gồm 2 bước chính: nạp ảnh từ file vào bộ nhớ (đối tượng BITMAP), gọi hàm BitBlt() để copy 1 phần hay toàn bộ ảnh gốc và dán vào vùng hiển thị của cửa sổ. Qui trình hiển thị các hình toán học gồm 3 bước chính : tạo đối tượng Pen miêu tả nét vẽ và màu vẽ đường viền, tạo đối tượng Brush miêu tả mẫu tô và màu tô phần diện tích bên trong hình cần vẽ, gọi hàm vẽ để vẽ hình cần vẽ (hàm Lineto để vẽ đoạn thằng, hàm Rectangle để vẽ khối chữ nhật, hàm Ellipse để vẽ khối tròn hay ellipse…).

- Đặc tả đồ thị chứa các nút: đặc tả thuộc tính từng nút và đặc tả các cung nối giữa các nút. Để đặc tả từng nút của đồ thị, bạn sẽ định nghĩa 1 kiểu record gồm nhiều field theo yêu cầu, thí dụ như sau:

1
2
3
4
5
6
7
8
9
10
//kiểu đặc tả mỗi nút
typedef struct {
//các thuộc tính miêu tả sự hiển thị nút
char* name;//tên nhận dạng nút
int x,y; //tọa độ hiển thị nút
//các thuộc tính phục vụ giải thuật tìm đường
int predecessor;// chỉ số nút đi trước
int length;// độ dài từ nút gốc đến nút này
int label;// trạng thái xử lý nút
} T_Node;

- Để đặc tả các cung nối giữa các nút, bạn có thể dùng 1 dãy 2 chiều, phần tử (i,j) trong dãy miêu tả độ dài cung nối từ nút i đến j (=0 nghĩa là không có cung nối).

- Viết hàm tìm đường đi từ nút s đến e theo thuật giải tìm đường nào đó, thí dụ thuật giải của Dijsktra.

Để thấy rõ ràng và cụ thể các ý tưởng nêu trên, chúng tôi giới thiệu qui trình điển hình để xây dựng ứng dụng đơn giản demo việc tìm đường đi ngắn nhất trong 1 đồ thị vô hướng (cung miêu tả đường 2 chiều) gồm 8 nút như sau:

1. Chạy VC++ (hoặc bằng icon shortcut trên desktop hoặc bằng menu Start.Programs…). Tạo Project quản lý ứng dụng bằng cách chọn menu File.New…, khi cửa sổ New hiển thị, chọn loại project “MFC AppWizard (exe)”, chọn vị trí thư mục chứa project, nhập tên Project (thí dụ Timduong) rồi ấn button OK

2. Trong cửa sổ Wizard – Step 1, chọn checkbox “Dialog Based”, rồi ấn button Finish để hoàn thành việc đặc tả các thông số miêu tả Project

3. Khi cửa sổ thiết kế Form ứng dụng hiển thị, chọn từng đối tượng giao diện được tạo sẵn rồi xóa chúng để chuẩn bị thiết kế giao diện theo yêu cầu riêng của mình

4. Vẽ 2 label, 2 combobox, 1 button cần dùng vào cửa sổ ứng dụng như sau:

5. Ấn phải chuột vào button và chọn option Properties để hiển thị cửa sổ thuộc tính cho button, thay đổi thuộc tính Caption = “Bat dau tim”, thuộc tính ID = IDC_START. Tương tự thay đổi thuộc tính ID của combox bên trái là IDC_SLIST, ID của button bên phải là IDC_ELIST

6. Lưu ý việc vẽ 2 comboBox gồm 2 bước: bước đầu vẽ comboBox ở trạng thái chưa được người dùng chọn, sau đó dời chuột tới đầu mũi tên chỉ xuống, ấn chuột vào nó, handle ở giữa dưới được tô đậm, 7 handle còn lại rỗng ruột. Dời chuột về handle tô đậm ruột, kéo chuột đi xuống để xác định kích thước menu pop-up của comboBox khi người dùng chọn nó

7. Chọn menu View.Classwizard để hiển thị cửa sổ Classwizard, chọn tag “Member Variables”, chọn mục IDC_SLIST, ấn button “Add variable” để hiển thị cửa sổ tạo tên biến kết hợp với combobox tương ứng, đặt tên cho tên biến là m_lstart, category là Control. Tương tự đặt tên biến kết hợp với combobox IDC_ELIST là m_lend, category là Control. Ấn chuột vào button OK để đóng cửa sổ Classwizard lại

8. Ấn kép chuột vào button để tạo hàm xử lý sự kiện nhấn chuột cho nó rồi viết code cho hàm này như sau:

1
2
3
4
5
6
7
8
9
10
11
12
void CTimduongDlg::OnStart() {
//xác định chỉ số nút bắt đầu s
int s = m_lstart.GetCurSel();
//xác định chỉ số nút cuối e
int e = m_lend.GetCurSel();
//tìm đường ngắn nhất từ s tới e
len = shortest_path(s,e,path);
//xóa vùng vẽ để hàm OnPaint vẽ lại kết quả
RECT rect;
rect.left = 0; rect.top = 0; rect.right = 800; rect.bottom = 600;
InvalidateRect(&rect);
}

9. Duyệt tìm hàm OnPaint() rồi hiệu chỉnh thân của hàm này thành:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
void CTimduongDlg::OnPaint() {
CPaintDC dc(this); // device context for painting
if (IsIconic()) {
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
} else {
//phần viết mới bắt đầu từ đây
//gọi cha làm trước
CDialog::OnPaint();
//định nghĩa các biến cần dùng
int i,j;
HPEN hpen, hpenOld;
HBRUSH hbrush, hbrushOld;
//tạo pen nét liền, 1 pixel màu xanh để vẽ đường viền
hpen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
//tạo Brush màu đỏ để tô toàn bộ nền đối tượng
hbrush = CreateSolidBrush(RGB(255, 0, 0));
//đăng ký cho Windows dùng
hpenOld = (HPEN)dc.SelectObject(hpen);
hbrushOld = (HBRUSH)dc.SelectObject(hbrush);
//thiết lập các thuộc tính font để hiển thị chuỗi
LOGFONT strFont;
char bufout[256];
HFONT hFont,hFontOld;
strFont.lfEscapement = 0;
strFont.lfOrientation = 0;
strFont.lfWeight = FW_REGULAR;
strFont.lfItalic =0;
strFont.lfUnderline = 0;
strFont.lfStrikeOut = 0;
strFont.lfCharSet = ANSI_CHARSET;
strFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
strFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
strFont.lfQuality = PROOF_QUALITY;
strFont.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
strcpy(strFont.lfFaceName,"Times New Roman");
strFont.lfHeight = 20;
strFont.lfWidth = 8;
//tạo đối tượng font để hiển thị chuỗi
hFont = CreateFontIndirect(&strFont);
//đăng ký font cho Windows dùng
hFontOld = (HFONT)dc.SelectObject((HFONT)hFont);
//thiết lập các chế độ hiển thị chuỗi
dc.SetBkMode(TRANSPARENT);
dc.SetTextAlign(TA_CENTER);
//vẽ các nút của đồ thị
dc.SetTextColor(RGB(0,0,0));
for (i= 0; i
//vẽ khối tròn miêu tả nút i
dc.Ellipse(Node[i].x-4,Node[i].y-4,Node[i].x+4,Node[i].y+4);
//xác định tọa độ hiển thị tên nút
int x = Node[i].x - 20, y = Node[i].y-10;
//hiển thị tên nút
dc.TextOut(x,y,Node[i].name,strlen(Node[i].name));
}
//vẽ các cung nối các nút
dc.SetTextColor(RGB(0,0,255));
for (i=0; i < Sonut; i++)
for (j=i+1; j
if (dist[i][j] !=0) { //nếu có cung nối i tới j
int x, y;
//vẽ cung nối từ i tới j
dc.MoveTo (Node[i].x,Node[i].y);
dc.LineTo (Node[j].x,Node[j].y);
//xác định tọa độ hiển thị độ dài cung
x = (Node[i].x + Node[j].x)/2;
y = (Node[i].y + Node[j].y)/2;
//đổi độ dài cung từ số sang chuỗi
sprintf(bufout,"%d",dist[i][j]);
//vẽ độ dài cung từ i tới j
dc.TextOut(x,y,bufout,strlen(bufout));
}
//khôi phục lại font cũ
dc.SelectObject(hFontOld);
DeleteObject(hFont);
//tạo pen vẽ đường đi tìm được
hpen = CreatePen(PS_SOLID,2, RGB(255, 0,20));
//đăng ký pen cho Windows dùng
hpenOld = (HPEN)dc.SelectObject(hpen);
for (i= 0; i
//vẽ từng đoạn của đường đi
dc.MoveTo (Node[path[i]].x,Node[path[i]].y);
dc.LineTo (Node[path[i+1]].x,Node[path[i+1]].y);
}
}
}

10. Duyệt tìm hàm OnInitDialog() rồi thêm vào cuối hàm (ngay trước lệnh return TRUE;) đoạn code khởi động như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// TODO: Add extra initialization here
Sonut = 8;
int i,j;
InitGraph(Sonut);
//thiết lập các thuộc tính hiển thị từng nút của đồ thị
Node[0].x = 40; Node[0].y = 140; Node[0].name = "A";
Node[1].x = 120; Node[1].y = 60; Node[1].name = "B";
Node[2].x = 360; Node[2].y = 60; Node[2].name = "C";
Node[3].x = 440; Node[3].y = 140; Node[3].name = "D";
Node[4].x = 200; Node[4].y = 140; Node[4].name = "E";
Node[5].x = 280; Node[5].y = 140; Node[5].name = "F";
Node[6].x = 120; Node[6].y = 220; Node[6].name = "G";
Node[7].x = 360; Node[7].y = 220; Node[7].name = "H";
//thiết lập các cung giữa các nút
for (i=0; i < 8; i++)
for (j=i; j<8; j++)
dist[i][j] = 0;
dist[0][1] = 2; dist[0][6] = 6;
dist[1][2] = 7; dist[1][4] = 2;
dist[2][3] = 3; dist[2][5] = 3;
dist[3][7] = 2;
dist[4][6] = 1; dist[4][5] = 2;
dist[5][7] = 2;
dist[6][7] = 4;
//copy ma trận chéo trên sang ma trận chéo dưới
for (i=0; i < 8; i++)
for (j=0; j
dist[i][j] = dist[j][i];
//thiết lập danh sách tên nút cho 2 comboBox
for (i = 0; i < 8 ; i++) {
m_lstart.AddString(Node[i].name);
m_lend.AddString(Node[i].name);
}
return TRUE;

11. Dời về đầu file, ngay trước lệnh đặc tả class CAboutDlg, viết đoạn code định nghĩa kiểu, biến và hàm tìm đường đi ngắn nhất như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#define INFINITY 1000000 //miêu tả độ dài cung lớn nhất
#define E_Chuathu 0
#define E_Dathu 1
//kiểu đặc tả mỗi nút
typedef struct {
//các thuộc tính miêu tả sự hiển thị nút
char* name;
int x,y;
//các thuộc tính phục vụ giải thuật tìm đường
int predecessor; // chỉ số node đi trước
int length; // độ dài từ nút gốc đến nút này
int label; // trạng thái xử lý nút
} T_Node;
int Sonut; //số nút của đồ thị
int **dist; //dist[i][j] là khoảng cách từ i đến j
int *path; //danh sách các chỉ số nút liên tiếp miêu tả đường đi
int len = 0; //số nút trong đường đi tìm được
T_Node* Node;//thông tin về các nút
//hàm xin cấp phát vùng nhớ cho các dữ liệu đồ thị
void InitGraph(int n) {
int i;
//xin cấp phát vùng nhớ chứa ma trận khoảng cách
dist = (int**) malloc(n*sizeof(int*));
for (i = 0; i
dist[i] = (int*) malloc(n*sizeof(int));
//xin cấp phát vùng nhớ chứa thông tin của các nút
Node = (T_Node*) malloc(n*sizeof(T_Node));
//xin cấp phát vùng nhớ chứa kết quả đường đi tìm được
path = (int*) malloc(n*sizeof(int));
}
//hàm tìm đường đi ngắn nhất theo thuật giải Dijsktra
int shortest_path(int s, int e, int path[]) {
int i,k,min;
T_Node *p;
//khởi tạo trạng thái đầu của các nút
for (i = 0; i
Node[i].predecessor = -1;
Node[i].length= INFINITY;
Node[i].label= E_Chuathu;
}
Node[s].length =0; Node[s].label = E_Dathu; k = s;
do { //từ nút k có đường đi tốt hơn?
for (i =0; i
if (dist[k][i] !=0 && Node[i].label == E_Chuathu)
if (Node[k].length +dist[k][i] < Node[i].length) {
Node[i].predecessor = k;
Node[i].length = Node[k].length + dist[k][i];
}
//tìm nút có nhãn E_Chuathu và độ dài nhỏ nhất
k = 0; min = INFINITY;
for (i = 0; i
if (Node[i].label == E_Chuathu && Node[i].length < min) {
min = Node[i].length;
k = i;
}
Node[k].label = E_Dathu;
} while (k !=e);
//copy các nút của đường đi tìm được vào biến path
i = 0; k = e;
do {
path [i++] = k ;
k = Node[k].predecessor;
} while (k>=0);
return i;
}//kết thúc hàm shortest_path

12. Chọn menu Build.Execute Timduong.exe để dịch và chạy ứng dụng. Nếu bạn thực hiện đúng mọi bước trên thì chương trình không có lỗi và sẽ chạy tốt. Bạn thử chọn 1 nút bắt đầu, 1 nút kết thúc, ấn button “Bat dau tìm”, chương trình sẽ tìm đường đi ngắn nhất giữa 2 nút và hiển thị đường đi lên đồ thị cho bạn thấy trực quan. Bạn hãy thử tìm lần lượt nhiều đường đi theo ý muốn và kiểm tra kết quả xem có đúng không. Cửa sổ ứng dụng sẽ có dạng sau:

Bạn có thể truy cập website của tạp chí để copy file Timduong.zip chứa toàn bộ Project VC++ của chương trình.

Theo pcworld


{ Hãy nhập thông tin bình luận bài viết này }
 
vitxam đã offline
 #1  
nguyenhanamhaiha
7/11/2017 2:52:44 PM
Chung tay xây dựng cộng đồng

Cấp bậc: Binh nhì

Tham gia: 15/6/2017
Bài viết: 10
Đánh giá: [0]
Bạn nào chưa biết cách code chương trình tìm diện tích hình tròn có thể tham khảo mã code mình viết bằng ngôn ngữ C/C++, trình bày chi tiết v
{ Hãy nhập thông tin bình luận bài viết này }
 
nguyenhanamhaiha đã offline
 #2  
kakakaoo
14/4/2018 9:46:28 AM
Chung tay xây dựng cộng đồng

Cấp bậc: Bô lão

Tham gia: 13/3/2018
Bài viết: 1136
Đến từ: USA

Đánh giá: [0]
cc20180414
fitflops sale
ugg boots outlet
pandora rings
mbt shoes sale
louis vuitton handbags
louis vuitton factory outlet
timberland boots outlet
louis vuitton outlet online
coach outlet online
louboutin shoes
coach outlet online
pandora jewelry
mont blanc pens
adidas nmd r1
yeezy boost 350
moncler jackets
adidas outlet store
louis vuitton outlet store
birkenstock uk
cheap air jordans
longchamp sale
adidas nmd runner
air max
pandora charms outlet
yeezy boost 350
canada goose coats
kate spade outlet online
ugg outlet online
kate spade handbags
adidas store
yeezy shoes
pandora charms outlet
fitflops sale
oakley sunglasses outlet
michael kors outlet clearance
discount oakley sunglasses
adidas yeezy
coach outlet store
canada goose jackets
adidas originals
pandora charms
ralph lauren outlet
adidas yeezy boost
coach factory outlet online
hermes bags
yeezy boost 350
prada outlet online
ugg sale
new balance outlet
polo ralph lauren outlet
fitflop shoes
cheap jordan shoes
ralph lauren outlet online
birkenstock shoes outlet
moncler
nike air max 2019
nike outlet
birkenstock shoes
coach factory outlet
hermes bag
canada goose
yeezy boost
christian louboutin shoes
mlb jerseys cheap
ray ban sunglasses outlet
pandora charms
valentino outlet
tiffany and co outlet
yeezy boost 350
tiffany outlet
canada goose jackets
mulberry uk
coach factory outlet
hollister clothing
polo ralph lauren outlet
pandora charms sale clearance
adidas outlet
michael kors outlet online
fred perry polo shirts
ralph lauren outlet
nike outlet online
oakley sunglasses wholesale
nike outlet
michael kors outlet store
polo ralph lauren outlet online
ralph lauren outlet online
cheap jordans
red bottom heels
longchamp outlet
coach factory outlet online
coach outlet canada
air jordans
christian louboutin shoes
michael kors outlet store
michael kors outlet
pandora charms sale clearance
supreme shirts
coach outlet online
kate spade outlet online
michael kors outlet clearance
cheap oakley sunglasses
moncler sale
canada goose coats
kate spade outlet
christian louboutin shoes
fitflops uk
coach outlet online
michael kors outlet online
birkenstock sale
pandora charms sale clearance
michael kors outlet store
jordans
pandora jewelry outlet
michael kors bags
nfl jerseys
kate spade handbags
coach outlet
tory burch outlet online
hermes bags
cheap jordans free shipping
birkenstock outlet online
jordan shoes for sale
canada goose
valentino outlet
moncler pas cher
asics outlet
coach factory outlet
ugg canada
kate spade outlet
ralph lauren uk
ugg boots women
cheap jordan shoes
coach factorty outlet online
cheap jordans for sale
toms outlet online
birkenstock uk
converse all star
tory burch shoes
ugg outlet store
hollister clothing store
canada goose sale
timberland boots
coach outlet store online
ralph lauren outlet
kate spade outlet online
moncler uk
yeezy shoes
adidas outlet online
adidas superstar shoes
canada goose jackets
ray ban sunglasses discount
birkin handbags
ugg boots
mlb jerseys
nike sneakers
air max
louboutin outlet
rolex replica watches
tory burch outlet online
ralph lauren
coach outlet online
ralph lauren outlet online
vans outlet
cheap nike shoes
nmd adidas
uggs outlet
canada goose jackets
adidas nmd r1
coach outlet store
oakley sunglasses for women
adidas sneakers
canada goose sale
philipp plein outlet
adidas yeezy shoes
pandora jewelry outlet
timberland outlet
moncler outlet online
michael kors canada
polo ralph lauren
red bottom
salvatore ferragamo shoes
canada goose jackets
louis vuitton outlet
michael kors outlet online
cheap air max
canada goose jackets
coach outlet online
nike outlet store online
coach factory outlet
ugg boots sale
ugg outlet
pandora jewelry
uggs outlet
louis vuitton outlet online
pandora outlet
fitflop uk
longchamp outlet store
ugg outlet online
fitflop shoes
michael kors outlet store
michael kors outlet online
ecco outlet
cheap jordan shoes
ralph lauren
nba jerseys wholesale
fitflop sandals
ralph lauren sale
supreme uk
mulberry
gucci outlet online
ralph lauren uk
timberland shoes
air jordan shoes
air max 90
tiffany and co jewelry
polo ralph lauren outlet
ugg outlet store
cheap ugg boots
discount ray ban sunglasses
coach outlet store online clearance
adidas outlet online
nike air max 90
pandora charms sale clearance uk
coach outlet online
michael kors outlet online
uggs outlet
nike shoes outlet
ugg boots
michael kors outlet store
canada goose coats
valentino
longchamp bags
pandora charms outlet
canada goose jackets uk
canada goose parka
skechers outlet
ralph lauren outlet online
puma outlet
the north face jackets
louis vuitton factory outlet
nmd adidas
canada goose sale
coach outlet online
adidas nmd r1
polo ralph lauren outlet
coach factory outlet online
adidas outlet online
coach factory outlet
tory burch outlet store
canada goose jackets
coach factory outlet online
salvatore ferragamo outlet
red bottoms
mbt
cheap air jordans
oakley sunglasses outlet
kobe shoes
coach factory outlet online
hollister sale
mbt
nike shoes
burberry outlet online
cheap jordan shoes
michael kors outlet
adidas yeezy boost 350
pandora charms
the north face outlet
nike air max uk
adidas yeezy boost
nba jerseys cheap
pandora charms sale clearance
timberland outlet store
pandora charms sale
nike outlet store
pandora jewelry store
coach factory outlet online
ray ban glasses
polo ralph lauren
pandora charms sale
adidas yeezy
polo ralph lauren outlet online
canada goose jackets
cheap nfl jerseys wholesale
ray bans
supreme shirts
moncler jackets
adidas outlet store
louis vuitton outlet
oakey sunglasses outlet
fitflops sale clearance
cheap jordan shoes
birkenstock outlet store
canada goose jackets
louboutin outlet
adidas shoes
birkenstock sale
mcm bags
nike outlet store
polo outlet online
coach outlet online
converse outlet
kate spade outlet online
michael kors
coach outlet online
nike air max 2018
christian louboutin shoes
pandora jewelry
coach outlet online
moncler outlet online
cheap jordans
canada goose
coach outlet store
michael kors outlet clearance
pandora jewelry
polo ralph lauren outlet online
cheap jordan shoes
pandora sale clearance
burberry handbags
canada goose
mlb jerseys wholesale
coach outlet online
pandora charms uk
hermens
moncler coats
cheap oakley sunglasses
birkenstock sandals
cheap oakley sunglasses
kate spade outlet online
nike zoom
moncler coats
coach factorty outlet online
michael kors handbags
yeezy shoes
pandora charms outlet
nike outlet online
michael kors outlet store
ralph lauren sale clearance uk
oakey sunglasses outlet store
birkenstock outlet store
rolex replica watches for sale
michael kors
louboutin shoes
cheap jordan shoes
supra for sale
moncler jacket
fred perry outlet
nike outlet store
ralph lauren outlet online
coach factory outlet online
ferragamo outlet
birkenstock outlet
retro 11
adidas campus shoes
canada goose outlet store
jordan shoes
hermes handbags
supreme clothing
moncler outlet online
kate spade outlet
canada goose sale
supra for sale
adidas superstars
vans outlet store
ferragamo shoes
mulberry outlet uk
michael kors uk
polo ralph lauren outlet
discount oakley sunglasses
ugg boots
coach factory outlet
abercrombie and fitch canada
ray ban sunglasses outlet
canada goose jackets
nike huarache shoes
air max outlet
michael kors outlet online
canada goose jackets
michael kors outlet online
gucci outlet
harden vol 1
moncler sale
adidas ultra boost
coach outlet store online
tory burch handbags
kate spade handbags
coach outlet online
ray ban sunglasses sale
philipp plein
fitflop sandals
coach factory outlet online
christian louboutin sale
nike air max 2018
oakley sunglasses outlet
canada goose
nfl jerseys
coach outlet online
fitflops sale clearance
nike running shoes
ecco shoes for women
tods shoes
birkenstock outlet
ralph lauren uk
oakley sunglasses outlet
air jordan retro
reebok outlet
gucci outlet online
michael kors outlet store
moncler outlet online
cheap air jordans
coach outlet online
coach outlet store online
mcm outlet store
prada shoes
adidas nmd r1
nike sneakers
pandora outlet
coach outlet online
canada goose jacket
air max shoes
cheap ray ban sunglasses
michael kors outlet online
toms shoes
ralph lauren uk
mulberry handbags
moncler uk
ugg boots
kate spade outlet store
coach factory outlet online
abercrombie kids
discount oakley sunglasses
nike air max 97
toms outlet store
cheap oakley sunglasses
new balance outlet store
north face outlet
coach outlet store online
timberland outlet
cheap oakley sunglasses
mont blanc pen
mlb jerseys cheap
nike air max 97
air jordan shoes
canada goose coats
fitflop uk
durant shoes
cheap ray ban sunglasses
coach factory outlet online
coach outlet online
canada goose jackets
adidas yeezy boost
air max
fitflops sale
pandora uk
cc20180414

{ Hãy nhập thông tin bình luận bài viết này }
 
kakakaoo đã offline
 #3  
kakakaoo
11/7/2018 2:08:03 PM
Chung tay xây dựng cộng đồng

Cấp bậc: Bô lão

Tham gia: 13/3/2018
Bài viết: 1136
Đến từ: USA

Đánh giá: [0]
wfrnjyutoakley sunglasses
tory burch outlet
michael kors outlet
coach factory outlet
polo outlet
cheap snapbacks
ugg outlet
air jordan retro
pandora outlet
longchamp outlet
coach outlet
uggs outlet
coach outlet
coach outlet online
michael kors outlet
canada goose jackets
coach outlet
cheap nfl jerseys
kate spade outlet
nfl jerseys wholesale
ray ban sunglasse
nfl jerseys
hermes belts
pandora jewelry
coach outlet
coach outlet
canada goose outlet
moncler jackets
fred perry polo
cheap nfl jerseys
true religion jeans
pandora outlet
louboutin shoes
christian louboutin outlet
coach factory outlet
uggs outlet
ugg boots
mbt shoes
manolo blahnik outlet
canada goose outlet
pandora jewelry
pandora charms
ugg outlet
moncler outlet
michael kors outlet
ed hardy clothing
pandora outlet
ray ban sunglasses
ray ban sunglasses
christian louboutin outlet
coach outlet online
michael kors outlet
lacoste outlet
adidas yeezy
mulberry handbags
uggs outlet
michael kors outlet
ralph lauren shirts
tory burch outlet
coach outlet
ugg outlet
fitflops sale clearance
michael kors outlet
fred perry outlet
oakley sunglassescdsddd
nike huarache
uggs outletvfds
nike shoes
coach outlet
yaoxuemei20180711

{ Hãy nhập thông tin bình luận bài viết này }
 
kakakaoo đã offline
 #4  
kakakaoo
9/8/2018 9:13:52 AM
Chung tay xây dựng cộng đồng

Cấp bậc: Bô lão

Tham gia: 13/3/2018
Bài viết: 1136
Đến từ: USA

Đánh giá: [0]
michael kors outlet clearance
tory burch outlet
canada goose outlet
adidas nmd shoes
uggs outlet
moncler jackets
michael kors outlet
ray ban sunglasse
coach outlet
nhl jerseys
coach outlet
polo ralph lauren
cheap ugg boots
true religion jeans
ralph lauren polo
canada goose jackets
moncler outlet
pandora outlet
coach outlet
cheap ugg boots
pandora charms
ugg outlet
nfl jerseys wholesale
ralph lauren outlet
canada goose jackets
clarks shoes
asics running shoes
canada goose jackets
coach outlet online
ed hardy clothing
nfl jerseys
canada goose outlet
ugg boots
lebron james shoes
canada goose outlet
coach outlet
michael kors outlet
canada goose jackets
longchamp outlet
uggs outlet
nfl jerseys wholesale
pandora outlet
ralph lauren outlet
coach outlet
polo ralph lauren
polo ralph lauren
michael kors outlet
mbt shoes
canada goose outlet
ralph lauren sale clearance
ralph lauren polo
ugg boots
moncler jackets
true religion outlet
canada goose jackets
polo ralph lauren
mlb jerseys
coach outlet
polo ralph lauren
coach outlet
nba jersey
supreme uk
ralph lauren polo shirts
michael kors outlet
pandora outlet
coach outlet online
louboutin shoes
pandora outlet
giuseppe zanotti outlet
mbt shoes
canada goose jackets
michael kors outlet
nike outlet
fred perry polo shirts
fitflops sale clearance
coach factory outlet
coach outlet
uggs outlet
mbt shoes
canada goose outlet
ralph lauren shirts
coach factory outlet
kate spade outlet
oakley sunglasses
coach outlet
oakley sunglasses
kate spade outlet
coach outlet
true religion outlet
yeezy boost 350
canada goose outlet
true religion jeans
michael kors outlet
giuseppe zanotti outlet
mulberry handbags
ugg boots
coach outlet
cheap oakley sunglasses
rolex watches
nike trainers
kebirong20180809

{ Hãy nhập thông tin bình luận bài viết này }
 
kakakaoo đã offline
 #5  
kakakaoo
9/8/2018 9:21:27 AM
Chung tay xây dựng cộng đồng

Cấp bậc: Bô lão

Tham gia: 13/3/2018
Bài viết: 1136
Đến từ: USA

Đánh giá: [0]
mcm handbags
coach factory outlet
canada goose outlet
coach outlet
cheap nfl jerseys
adidas yeezy shoes
nike air max
ray ban sunglasses
pandora jewelry
cheap nfl jerseys
ugg outlet
ugg boots
coach outlet
canada goose outlet
canada goose outlet
pandora outlet
michael kors outlet
polo outlet
canada goose outlet
nfl jerseys wholesale
superdry clothing
coach outlet
coach outlet store online
coach outlet
air jordan shoes
nike shoes outlet
canada goose outlet
polo outlet
ugg boots
cheap jordans
oakley sunglasses
polo outlet
coach outlet
michael kors outlet
nike kyrie 3
oakley sunglasses
michael kors outlet
christian louboutin outlet
coach factory outlet
adidas outlet
coach outlet
gucci outlet
canada goose jackets
michael kors outlet
pandora charms
fred perry polo shirts
birkenstock shoes
coach factory outlet
pandora outlet
ugg boots
longchamp handbags
ugg outlet
pandora jewelry
canada goose outlet
mbt shoes
christian louboutin outlet
vibram fivefingers
prada outlet
christian louboutin outlet
christian louboutin shoes
adidas outlet
nfl jerseys wholesale
pandora charms
ugg outlet
ugg outlet
adidas outlet
michael kors handbags
nfl jerseys
polo ralph lauren pas cher
tory burch outlet
canada goose jackets
mbt shoes
ed hardy
michael kors outlet
kate spade outlet
canada goose
ralph lauren outlet
canada goose jackets
cheap snapbacks
red bottom shoes
coach outlet
kate spade outlet
oakley sunglasses wholesale
true religion jeans
ray ban sunglasses
lunette ray ban
hermes birkin
christian louboutin outlet
ray ban sunglasses
michael kors outlet
coach outlet
michael kors outlet
cheap ugg boots
coach outlet
ugg outlet
christian louboutin outlet
coach factory outlet
hermes belts
coach outlet online
coach outlet
kebirong20180809

{ Hãy nhập thông tin bình luận bài viết này }
 
kakakaoo đã offline
 #6  
kakakaoo
18/9/2018 1:22:59 PM
Chung tay xây dựng cộng đồng

Cấp bậc: Bô lão

Tham gia: 13/3/2018
Bài viết: 1136
Đến từ: USA

Đánh giá: [0]
2018918 leilei3915
off white
coach factory outlet
lebron shoes
coach factory outlet
puma shoes
fitflops sandals
oakley sunglasses wholesale
ugg outlet
coach outlet online
cheap nfl jerseys
ray ban outlet
nike air max 90
michael kors outlet clearance
coach outlet
coach outlet online
coach factory outlet
coach factory outlet
pandora charms
christian louboutin outlet
michael kors outlet
nike shoes
pandora outlet
michael kors outlet online
christian louboutin shoes
canada goose
ugg outlet store
gucci outlet online
polo ralph lauren
canada goose jackets
polo ralph lauren
true religion outlet
polo outlet
michael kors outlet clearance
coach outlet
coach outlet
superdry shirts
canada goose outlet store
kate spade bags
coach outlet
michael kors outlet online
ugg boots
red bottoms
coach factory outlet
michael kors handbags
polo ralph lauren
lebron james shoes
coach outlet online
nike shoes
christian louboutin outlet
christian louboutin
ferragamo outlet store
coach outlet online
canada goose
uggs outlet
coach outlet
cheap nfl jerseys
ugg outlet
mbt shoes outlet
pandora charms outlet
coach outlet
michael kors handbags
canada goose
polo ralph lauren
polo ralph lauren
pandora charms
canada goose uk
michael kors outlet clearance
michael kors outlet online
pandora
michael kors outlet
tory burch outlet stores
kate spade bags
ferragamo shoes sale
michael kors outlet
true religion outlet
adidas yeezy shoes
coach outlet online
coach outlet online
fred perry shirts
pandora
coach outlet
adidas nmd r1
prada handbags
pandora jewelry
ugg outlet
coach factory outlet
canada goose jackets
coach outlet online
true religion jeans
giuseppe zanotti sneakers
mcm backpack
polo outlet
coach outlet online
cheap ugg boots
polo outlet stores
coach outlet
nfl jerseys wholesale
cheap nhl jerseys
nmd adidas
cheap jerseys
adidas outlet
pandora charms sale clearance
polo ralph lauren
pandora charms sale clearance
ugg boots outlet
polo ralph lauren outlet
coach outlet
nhl jerseys
ugg outlet
adidas yeezy
nike outlet
moncler jackets
kate spade bags
michael kors outlet
michael kors handbags
michael kors outlet clearance
michael kors outlet
nike outlet store
cheap oakley sunglasses
true religion
polo ralph lauren
fitflops clearance
longchamp handbags
ray ban sunglasses

{ Hãy nhập thông tin bình luận bài viết này }
 
kakakaoo đã offline
 #7  
Thành viên đang xem
Có 609 người dùng đang xem (609 thành viên - 609 khách) : atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia , atcmedia
Diễn đàn - Công ty TNHH Thương mại và Giải pháp công nghệ THÀNH NAM » Kiến thức lập trình » C, C++, MFC » Chương trình mô phỏng đỉnh và đường của đồ thị
Di chuyển nhanh:  
Có bài mới Có bài mới Không có bài mới Không có bài mới
Có bài mới (Đã khóa) Có bài mới (Đã khóa) Không có bài mới (Đã khóa) Không có bài mới (Đã khóa)
Thông báo Thông báo Chú ý Chú ý
Đã chuyển Đã chuyển Bình chọn Bình chọn
Bạn không thể gửi bài viết mới
Bạn không thể trả lời bài viết
Bạn không thể xóa bài viết của bạn
Bạn không thể chỉnh sửa bài viết của bạn
Bạn không thể tạo bình chọn
Bạn không thể bình chọn
Giờ hiện tại: 3:33 PM - GMT + 7
 
Bán textlink
giá 50.000 VNĐ/text/tháng:

Mọi chi tiết xin liên hệ:
Mrs Hạnh - Phòng Kinh doanh
Hot-line: 093 615 2984
Điện thoại công ty: 04 6680 9640
Email: dthanh@giadinhit.net

Motor cửa cổng YH  |  Motor cua cong YH
khóa cửa  |  bản lề cửa

cọc tiếp địa  | coc tiep dia  | Hàn hóa nhiệt Han hoa nhiet
điện thoại giá tốt
quảng cáo google-adwords
trường quốc tế  | bé vào lớp 1  | chọn trường cho con
dán xe máy  | dan xe may
đồng hồ cổ hà nội  | đồng hồ trung quốc  | đồng hồ con gà  | đồng hồ liên xô  | đồng hồ pháp  | đồng hồ cũ  | dong ho  | dong ho co  | đồng hồ cổ  | phụ kiện đồng hồ  | vật dụng thời bao cấp  | đèn dầu  | quạt cổ  | bàn là
Bán textlink giá 50.000 VNĐ/text/tháng