TIN HỌC ỨNG DỤNG 2 - K11
Bạn hãy đăng ký làm thành viên để có thể xem các thông tin trong lớp và viết bài trong diễn đàn.

Không những thế, sau khi đăng ký bạn sẽ nhận được sự hỗ trợ của diễn đàn nhiều hơn.
TIN HỌC ỨNG DỤNG 2 - K11
Bạn hãy đăng ký làm thành viên để có thể xem các thông tin trong lớp và viết bài trong diễn đàn.

Không những thế, sau khi đăng ký bạn sẽ nhận được sự hỗ trợ của diễn đàn nhiều hơn.
Change background image
TIN HỌC ỨNG DỤNG 2 - K11

Khoa CNTT - ĐH Công nghiệp Hà Nội


Go downMessage [Page 1 of 1]

© FMvi.vn

20/6/2011, 00:21
MinhTuan
MinhTuan

Admin

Mới có mấy đề, anh em vọc nhanh nhé
1. Xây dựng class CPoint với các yêu cầu sau
 CPoint có 2 biến thành viên, không cho phép truy cập trực tiếp các biến thành viên từ bên ngoài class là:
o Tung độ x.
o Hoành độ y.
 Có 1 trong số các constructor (nếu thí sinh thiết kế CPoint có nhiều hơn 1 constructor) của CPoint để khởi tạo các biến thành viên.
 Có 1 hàm thành viên dùng để nhập một điểm từ bàn phím.
 Có 1 hàm thành viên dùng để xuất thông tin của một điểm ra màn hình.
 Có 1 hàm thành viên dùng để di chuyển điểm sang phải 1 đơn vị.
 Có 1 hàm thành viên dùng để kiểm tra 3 điểm thẳng hàng. (Giả sử a, b, c lần lượt là khoảng cách từ A->B, B->C, A->C. Điều kiện để 3 điểm thẳng hàng là a+b=c hoặc a+c=b hoặc b+c=a)

2. Chương trình chính (hàm main( ) hoặc tương đương)
Trong chương trình chính thí sinh viết mã (program code) tạo ra một object (P1) thuộc class CPoint được khởi tạo bởi các giá trị tùy ý và một object khác (P2) nhập từ bàn phím. Tính khoảng cách giữa P1 và P2. Di chuyển P2 sang phải 1 đơn vị và xuất thông tin của P2 ra màn hình. Tạo ra một object khác (P3), kiểm tra xem 3 điểm: P1, P2(sau khi đã di chuyển), P3 có thẳng hàng hay không.


ĐỀ BÀI

Thí sinh viết chương trình theo mô tả dưới đây

1. Xây dựng class CCircle với các yêu cầu sau
 Circle có 3 biến thành viên, không cho phép truy cập trực tiếp các biến thành viên từ bên ngoài class là:
o Tung độ x.
o Hoành độ y.
o Bán kính R.
 Có 1 trong số các constructor (nếu thí sinh thiết kế CCircle có nhiều hơn 1 constructor) của Circle để khởi tạo các biến thành viên.
 Có 1 hàm thành viên dùng để nhập một đường tròn từ bàn phím.
 Có 1 hàm thành viên dùng để xuất thông tin của một đường tròn ra màn hình.
 Có 1 hàm thành viên dùng để di chuyển tâm đường tròn lên trên 1 đơn vị.
 Có 1 hàm thành viên dùng để xét vị trí tương đối của 2 đường tròn. Biết vị trí của 2 đường tròn (O, R) và (O’, R’) như sau:
o Giao nhau: |R-R’| < OO’ < R+R’
o Tiếp xúc trong: OO’ = |R-R’| >0
o Tiếp xúc ngoài: OO’ = R+R’
o Lồng nhau: OO’ < |R-R’|
o Nằm ngoài nhau: OO’ > R+R’

2. Chương trình chính (hàm main( ) hoặc tương đương)
Trong chương trình chính thí sinh viết mã (program code) tạo ra một object (C1) thuộc class CCircle được khởi tạo bởi các giá trị tùy ý và một object khác (C2) nhập từ bàn phím. Tính khoảng cách tâm của C1 và C2. Di chuyển tâm của C2 lên trên 1 đơn vị và xuất thông tin của C2 ra màn hình. Xét vị trí tương đối của hai đường tròn C1 và C2 (sau khi đã di chuyển) trên.

Câu 1:
Ta cần viết một chương trình cho phép tạo một đối tuợng hình học và một dấu chữ thập, vẽ hai đối tượng đó và thông báo cho biết hình chữ thập (tâm của nó) có nằm trong đối tượng hình học kể trên không? Đối tượng hình học có thể là ellipse, hình tròn, hình chữ nhật hay hình vuông. Yêu cầu: Hoàn toàn không có sự xuất hiện của phát biểu switch/ case trong chương trình khi được cài đặt đầy đủ.
a) Xây dựng lớp biểu diễn khái niệm hình chữ thập, hình ellipse, hình tròn, hình chữ nhật và hình vuông. Thiết lập mối quan hệ kế thừa giữa các lớp. Viết khai báo các thao tác cần thiết đủ dùng cho chương trình như mô tả ở trên. Viết định nghĩa hàm xác định hình chữ thập (tâm của nó) có nằm trong hình thuộc các loại kể trên không.

b)Viết một ứng dụng cho phép tạo một hình chữ thập và tạo một hình tùy ý trong các loại kể trên (Nhập 0: tạo hình ellipse, 1:hình tròn, 2:hình chữ nhật, 3: hình vuông). Vẽ hình chữ thập và hình đã được chọn (giả sử chế độ đồ hoạ đã được khởi động), thông báo cho biết hình chữ thập có nằm trong hình đã chọn không?

Câu 2:
Một phép toán là một ký hiệu mà nó thao tác trên dữ liệu. Dữ liệu mà phép toán thao tác được gọi là toán hạng. Mỗi toán hạng của phép toán là một biểu thức. Một biểu thức là sự kết hợp các phép toán, các hằng, biến và phép gọi hàm để gút lại một giá trị duy nhất gọi là giá trị của phép toán. Phép toán có thể một ngôi hoặc hai ngôi. Hằng, biến hay một phép toán gọi hàm đều là biểu thức. Có thể thực hiện các phép toán trên biểu thức( Ví dụ cộng hai biểu thức là một biểu thức).

Trong phạm vi bài này, ta chỉ giới hạn trong phạm vi các biểu thức thực với các phép toán cộng, trừ, nhân, chia trên các hằng, không xét các biểu thức có sự tham gia của biến cũng như sự tham gia của phép gọi hàm.
a) Tổ chức, xây dựng (các) lớp cần thiết bằng cú pháp C++ mô tả được các khái niệm phép toán, biểu thức như mô tả trên. Cần chú ý các quan hệ (ví dụ một hằng là một biểu thức). Lưu ý tổ chức cấu trúc dữ liệu để biểu diễn được biểu thức.

B) Viết khai báo các thao tác cần thiết để người sử dụng có thể tạo các biểu thức, thực hiện các phép toán cộng, trừ, nhân, chia biểu thức. Có thể xuất giá trị của biểu thức. Định nghĩa phép cộng hai biểu thức.

Ví dụ:
Bieu thuc f("5+2*3"), g(3*4-2*5), h = -f;
cout<< f()-6 << "n"; // Xuat 5
cout << (f-6)() << "n"; // Xuat 5
cout << (-f _+ 2*g) () << "n"; // Xuat -7
cout << f() + h() << "n"; // Xuat 0
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:21
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp Vector được khai báo như sau:
class Vector{
public:
int getSize()const; // trả về độ dài của vector
int &kthElement(int k); // trả về phần tử dữ liệu thứ k của thành viên data
private:
int data[100];
int size;
};
Hãy cài đặt hai hàm getSize() và kthElement() và các hàm cấu tử sau của lớp Vector trên: cấu tử mặc định, cấu tử có 1 tham số mặc định là kích thước của biến thành viên size, hàm cấu tử có hai tham số tương ứng với hai biến thành viên của lớp.
b) Cài đặt một hàm toán tử * và một hàm bạn multiply cho phép lấy tích vô hướng của hai đối tượng thuộc lớp Vector trên.

Câu 2:
a) Cho lớp Computer được khai báo như sau:
class Computer{
public:
char * getCode() const; // trả về giá trị biến thành viên code
float getPrice() const; // trả về giá trị biến thành viên price
void setPrice(float); // thiết lập giá trị cho biến price;
void setCode(char *); // thiết lập giá trị cho biến code;
friend void sort(Computer [], int size);
private:
char code[4];
float price;
};
Hãy cài đặt hàm sort sắp xếp một mảng các đối tượng Computer theo thứ tự tăng dần của biến thành viên code, nếu cùng giá trị code thì so sánh theo biến price.

b) Giả sử có hàm sau:
template
void sort(T [], int size);
Hãy cài đặt các hàm toán tử so sánh >, ==, <, <=, >= cho lớp Computer để có thể sử dụng hàm sort với một mảng các đối tượng của lớp đó và cài đặt hàm sau:
template
int 2ndElement(T [], int size);
trả về chỉ số của phần tử lớn thứ hai (theo tiêu chí so sánh như hàm sort trong phần a) trong một mảng. Sử dụng hàm 2ndElement hãy viết một đoạn chương trình đưa ra màn hình các giá trị code và price của đối tượng Computer lớn thứ hai của một mảng các đối tượng thuộc lớp Computer Clist.


http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:22
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho đoạn chương trình sau:
class Work{
public:
char * getName();
char * getDes();
private:
char * name; // tên công việc
char * description; // mô tả về công việc
};
template
T max(T list[], int size){
T temp = list[size-1];
for(int i=0;i if(temp temp = list[i];
return new T(temp);
}

int main(){
Work works[2];
works[0] = new Work(“1”,”hard”);
works[1] = new Work(“2”);
sort(works, 2);
return 0;
}
Hãy đưa ra và cài đặt các hàm cấu tử mà lớp Work cần có để đoạn chương trình trên có thể chạy đúng. Chỉ rõ dòng lệnh nào tương ứng với hàm toán tử nào được dùng.
b) Ngoài các hàm toán tử lớp Work trên còn cần thêm các hàm nào nữa hãy cài đặt các hàm đó.

Câu 2:
a) Trình bày khái niệm chồng hàm (overload), khi nào nên dùng chồng hàm, khi nào không nên, nêu ví dụ cụ thể? Các trường hợp sau có là chồng hàm hay không?
void swap(int &, int &);
void swap(float *, float *);
template
void swap(T &, T &);
b) Một hàng truy cập Internet cần viết một chương trình tính tiền truy cập cho khách. Đối với mỗi khách hàng chương trình chỉ cần quản lý các thông tin: tên khách hàng, giờ bắt đầu vào mạng, giờ kết thúc, số máy sử dụng để vào mạng. Hãy đưa ra các lớp (nêu rõ các phương thức và dữ liệu) và mối quan hệ giữa các lớp mà bạn cho là cần thiết để xây dựng chương trình trên?

http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:22
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp số phức ComplexN được khai báo như sau
class ComplexN{
public:
float * getReal();
float * getImg();
private:
float r; // phần thực
float i ; // phần ảo.
};
Hãy cài đặt 3 hàm cấu tử khác nhau cho lớp ComplexN trong đó có hàm cấu tử mặc định.

b) Giả sử người ta thêm vào hai hàm toán tử bạn phục vụ cho các thao tác nhập xuất dữ liệu cho các đối tượng của lớp số phức trên, hãy cài đặt hai hàm này và sử dụng chúng để viết một đoạn chương trình cho phép nhập dữ liệu cho một dãy 10 số phức và in chúng ra màn hình.

Câu 2:
a) Có đoạn chương trình sau:
enum Days{Monday, Tuesday, Wenesday,Thursday, Friday, Saturday, Sunday};
Days & operator ++(Days & d, int){
if(d==Sunday)
return d=Monday;
int temp = d;
return d = static_cast(++temp);
}
int main(){
Days day = Monday;
for(;;)
{
cout << day << endl;
day ++;
if(day==Sunday)
break;
}
return 0;
}

Hãy cho biết kết quả của đoạn chương trình trên. Nếu muốn chương trình in ra màn hình là: Thuhai, Thuba, Thutu, Thunam, Thusau, Thubay, Chunhat thì cần có thêm hàm như thế nào, hãy đưa ra cài đặt cụ thể của hàm đó.
b) Tại sao các hàm cấu tử lại được gán nhãn là pubic, có thể có hàm cấu tử gán nhãn private được không? Có thể khởi tạo các thành phần static trong cấu tử được không?
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:22
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp IntList cài đặt danh sách móc nối các số nguyên được khai báo như sau:
class IntList{
public:
IntList(); // khởi tạo danh sách rỗng kích thước bằng 100
IntList(int Size); // khởi tạo danh sách rỗng kích thước bằng Size
int getFirst(); // trả về giá trị phần tử ở đầu danh sách
int getLast(); // trả về giá trị phần tử ở cuối danh sách
void delFirst(); // xóa phần tử ở đầu danh sách
Void delLast(); // xóa phần tử ở cuối danh sách
int getSize(); // trả về số phần tử của danh sách
private:
int * data
int size;
};
Dựa vào lớp IntList hãy kế thừa và xây dựng lớp IntStack gồm các phương thức sau:
IntStack(); // khởi tạo stack rỗng kích thước bằng 100
IntStack(int Size); // khởi tạo stack rỗng kích thước bằng Size
Bool isEmpty(); // kiểm tra stack rỗng
int Pop(); // loại bỏ phần tử ở đỉnh stack
void Push(int); // thêm 1 phần tử vào đỉnh stack
b) Thế nào là ràng buộc động, cho ví dụ? Cách thức trình biên dịch giải quyết ràng buộc động?

Câu 2:
a) Cho lớp Song và một đoạn chương trình như sau:
class Song{
public:
friend void sort(Song [], int size);
private:
char * title;
char * content;
};
int main(){
Song songs[2];
songs[0] = new Song(“Yesterday”,””);
songs[1] = new Song();
sort(songs,2);
return 0;
}
Lớp Song có cần hủy tử và các hàm toán tử gán, cấu tử copy không, tại sao? Hãy cài đặt các hàm này?
b) Giả sử trong chương trình người ta muốn đếm số các đối tượng thuộc lớp Song bằng cách sử dụng một biến thành viên tĩnh, hãy viết các hàm cần thiết và đoạn chương trình đưa ra màn hình các đối tượng thuộc lớp Song.
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:23
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp Set cài đặt một tập hợp các ký tự được khai báo như sau:
const int MAX_SIZE = 255;
class CharSet{
public:
CharSet();
Bool isIn(char) const; // kiểm tra xem một ký tự có trong tập hợp không
Bool isFull()const; // kiểm tra tập hợp đã đầy chưa
Bool isEmpty() const; // kiểm tra tập hợp rỗng
int getSize() const; // trả về số phần tử của tập hợp
void add(char); // thêm vào tập hợp một ký tự mới
void del(char); // loại bỏ một ký tự khỏi tập hợp
void print()const; // in các ký tự trong tập hợp ra màn hình
private:
char data[MAX_SIZE];
int top;
};
Hãy cài đặt các các hàm của lớp Set trừ hai hàm getSize() và print().
b) Cài đặt hàm toán tử + thực hiện phép toán hợp hai tập hợp, kết quả trả về là một tập hợp mới.

Câu 2:
a) Cho một hàm bản mẫu hoán đổi giá trị của hai đối tượng bất kỳ và đoạn chương trình sau:
template
void swap(T& x, T& y){
T tmp = x;
x = y;
y = tmp;
}
int main(){
int i, j; swap(i, j);
float a, b ; swap(a, b);
char c, d; swap(c, d);
Person p1, p2; swap(p1, p2);
return 0;
}
Trong đó Person là một lớp có hai thành viên dữ liệu là name (một xâu ký tự có độ dài không quá 37) và age (một số nguyên dương). Hãy cho biết để có thể dùng hàm swap với một lớp nào đó thì lớp đó phải thỏa mãn điều kiện gì, hãy đưa ra cài đặt cụ thể với lớp Person. Trong đoạn chương trình chính trên có các thể nghiệm hàm bản mẫu nào được trình biên dịch sinh ra?
b) Thế nào là lớp trừu tượng, cho ví dụ? Khi nào người ta nên dùng lớp trừu tượng? Với một lớp trừu tượng thực sự có thể dùng hàm hủy tử ảo thực sự được không, tại sao?

http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:23
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp Animal mô tả các đối tượng động vật nói chung và lớp Cat mô tả các đối tượng mèo kế thừa từ lớp Animal và có thêm 1 thành viên dữ liệu là color để mô tả màu lông, lớp Animal được khai báo như sau:
class Animal{
public:
Animal(char * N = “”):age(0){
name = new char[strlen(N)+1];
strcpy(name, N);
}
Animal(char * N, int Age):age(Age){
name = new char[strlen(N)+1];
strcpy(name, N);
}
~Animal(){delete name;}
private:
char * name;
int age;
};
Giả sử lớp Cat có hai cấu tử: một cấu tử mặc định và một cấu tử có đầy đủ 3 tham số cho các biến thành viên và một hủy tử. Hãy đưa ra cài đặt của lớp Cat.
b) Nêu sự khác nhau giữa việc gọi một hàm ảo và một hàm bình thường? Có thể thực hiện chồng hàm hủy tử của một lớp được không, tại sao?

Câu 2:
Cho lớp bản mẫu Stack được khai báo như sau:
template
class Link{
T data;
Link* next;
void initialize(T dat, Link* nxt){};
public: friend class Stack;
~Link(){delete next;}
};
template
class Stack {
Link* head;
public:
void initialize(); // khởi tạo một Stack rỗng
void push(D dat); // thêm một phần tử vào đầu Stack
D pop(); // loại bỏ phần tử trên đỉnh Stack
~Stack();
};
Hãy đưa ra cài đặt đầy đủ của lớp Stack và cho biết một lớp C bất kỳ cần thỏa mãn điều kiện gì để có thể sử dụng lớp thể nghiệm Stack.
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:23
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho hai lớp A, B các lớp C, D dựa trên hai lớp A, B như sau:
class C{
public:
C();
~C();
private:
A aObj;
B bObj;
}; class D{
public:
D();
~D();
private:
A aObjList[10];
};
Giả sử các lớp A, B có đầy đủ các hàm cấu tử và hủy tử hãy cho biết thứ tự gọi tới các hàm cấu tử và hủy tử của hai đối tượng aObj, bObj đối với lớp C và các đối tượng của mảng aObjList đối với lớp D.
b) Chỉ ra các chỗ sai trong đoạn chương trình sau và sửa lại (có thể bỏ đi nếu cần thiết) cho đúng:
class Point {
public:
Point(float x, float y); // hàm cấu tử khởi tạo tọa độ
Point(float r, float a); // hàm cấu tử khởi tạo tọa độ
Point():x(0.0), y(0.0), numberOfPoints(0){}; // hàm cấu tử khởi tạo
~Point();
private:
float x, y;
static int numberOfPoints; // biến dùng để đếm số đối tượng thuộc lớp Point
};
main(){
Points p[10];
cout << “So cac diem hien tai la:” << Points::numberOfPoints;
}
Đưa ra đoạn cài đặt cần thiết để đoạn chương trình trong hàm main có thể chạy đúng.

Câu 2:
a) Cho hàm bản mẫu Max trả về phần tử lớn nhất của một mảng khai báo như sau:
template
T & Max(T a[], int size);
Hãy cài đặt hàm Max và các hàm cần thiết khác để đoạn chương trình sau đây có thể chạy đúng:
main(){
int a[] = {1, 3 , -9}, char * str[] = {“Nam”, “Bac”, “Dong”, “Tay”};
cout << Max(a, 3) << “ “ << Max(str, 4);
}
b) Trong thuật toán sắp xếp nổi bọt giảm dần khi xét phần tử thứ i, ta sẽ đổi chỗ nó với phần tử lớn nhất trong số n – i phần tử đứng sau nó. Hãy viết hàm bản mẫu Sort sắp xếp một mảng bất kỳ bằng cách sử dụng gợi ý trên và hàm bản mẫu Max ở phần a.

http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:23
MinhTuan
MinhTuan

Admin

Câu 1:
a) Cho lớp Stdlib được khai báo như sau:
class Stdlib {
public:
static int strlen(const char* s) { return ::strlen(s); }
static int strcmp(const char* a, const char* b) { return ::strcmp(a, b); }
};
Khai báo trên có gì sai không, nếu có hãy chỉ rõ chỗ sai và sửa lại. Cho biết giá trị của sizeof(Stdlib). Để sử dụng các phương thức của lớp Stdlib có cần tạo ra đối tượng nào tương ứng hay không, cho ví dụ cụ thể?
b) Cho hai lớp Base và Derived được khai báo như sau:
class Base {
private:
int x;
public:
Base() : x(0) {}
Base(int x) : x(x) {}
protected:
void print(ostream&);
}; class Derived : public Base {
private:
int y;
char* s;
public:
Derived() : Base(), y(0), s(0) {}
Derived(int x,int y): Base(x), y(0), s(0){}
void print(ostream& s);
};

Hãy cho biết giá trị của sizeof(Base), sizeof(Derived) và giải thích?

Câu 2:
Cho lớp bản mẫu LinkList được khai báo như sau:
template
class Node{
T data;
Node* next;
void initialize(T dat, Node* nxt):data(dat), next(nxt){};
friend class LinkList;
~Node(){delete next;}
};
template
class LinkList{
Node* head;
public:
LinkList(); // khởi tạo một danh sách rỗng
void add(D & dat); // thêm một phần tử vào danh sách
void del(D & dat); // loại bỏ phần tử khỏi danh sách
void sort(); // sắp xếp danh sách
~LinkList();};
Hãy đưa ra cài đặt đầy đủ của lớp LinkList và cho biết một lớp C bất kỳ cần thỏa mãn điều kiện gì để có thể sử dụng lớp thể nghiệm LinkList.
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:36
MinhTuan
MinhTuan

Admin

Ko copy paste nữa, thấy lỗi ko ah, conver ra mấy cái ảnh poste lên cho đỡ lỗi vậy

Đề thi LTHDT 10000
Đề thi LTHDT 1000111
Đề thi LTHDT 10002
Đề thi LTHDT 10003
Đề thi LTHDT 10004
Đề thi LTHDT 10005
Đề thi LTHDT 10006
Đề thi LTHDT 10007
Đề thi LTHDT 10008
http://my.opera.com/anhlavip12a4/blog/

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà MinhTuan
Trả lời nhanh
20/6/2011, 00:50
TaiChat
TaiChat

V.I.P

sáng mai mà 1h sáng mới đưa thì ăn thế éo nào được

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà TaiChat
Trả lời nhanh
20/6/2011, 09:34
Anh Quân
Anh Quân

Member

chả làm đc bài nào hjx 1 đc C 2 thi lại Đề thi LTHDT 919185 Đề thi LTHDT 919185

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà Anh Quân
Trả lời nhanh
20/6/2011, 22:44
Nguyen Tien Thanh
Nguyen Tien Thanh

Member

:hug: :oh: :shoot1:

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà Nguyen Tien Thanh
Trả lời nhanh

Thích

Báo xấu [0]

Gửi một bình luận lên tường nhà Sponsored content
Trả lời nhanh

Back to topMessage [Page 1 of 1]

  © FMvi.vn

« Xem bài trước | Xem bài kế tiếp »

Bài viết liên quan

    Quyền hạn của bạn:

    You cannot reply to topics in this forum