Đề thi Các thành phần phần mềm đề số 1 kỳ 2 năm học 2020-2021 – HUS|Trường Đại học Khoa học Tự nhiên | ĐHQGHN

✅ Chuyên mục: ĐẠI HỌC KHTN ĐHQG HN
✅ Loại file: ⭐ PDF
✅ Dung lượng: ⭐ 738.11 KB
✅ Lượt xem: ⭐ 39,854 lượt xem
✅ Loại tài liệu: ⭐ Chọn lọc (Tải miễn phí)

Đề thi cuối kỳ môn Các thành phần phần mềm

Câu1:

Xây dựng chương trình chơi bài, với mỗi quân bài có hai thuộc tính:

–    Rank (hạng): 1 đến 13, trong đó 1 là ace (A), 11 là jack (J), 12 là queen (Q) và

13 là King (K).

–    Suit (chất bài): spade (bích), club (chuồn – nhép), diamond (rô) và heart (cơ). Thuộc tính Suit cần được xây dựng dưới dạng enum.

Viết lớp Card mô tả các quân bài, với các hàm dựng không có tham số (mặc định là quân bài Ace Spade) và hàm dựng có 2 đối số cho rank và suit. Lớp Card cần được cài đặt từ giao diện Comparable<T> của JDK, trong đó T là Card để có thể so sánh theo thứ tự như trong thực tế, với quân thấp nhất là Ace Spade (át bích) và quân cao nhất là King Heart (thứ tự theo rank là từ Ace đến King, theo suit là spade đến heart – tăng dần).

Bổ sung các phương thức set (đặt giá trị) và get (lấy giá trị) cho các trường thuộc tính tương ứng.

Bổ sung các phương thức:

–    String toString()  trả lại xâu ký tự ứng với quân bài hiện tại, theo quy tắc rank,

01 khoảng trống, suit.

–    void showCard() in ra xâu tạo bởi phương thức toString().

–     ArrayList<Card>  distribCards(int parts, int index) cho phép chia ngẫu nhiên bộ bài thành parts phần (chỉ lấy số quân bằng phần nguyên phép chia), sau đó lấy ra phần thứ index và trả lại trong ArrayList.

Xây dựng lớp PlayCard với phương thức để chia bộ bài làm n phần (n nguyên dương), sau đó sắp xếp các quân bài trong mỗi phần theo thứ tự tăng dần và in ra màn hình.

Câu 2. (4 điểm)

Phát triển lớp PlayCard và bổ sung các lớp khác nếu cần, để thực hiện các công việc sau: Khởi dựng một đối tượng lớp Card, sau đó chia thành 02 phần.

Tạo cơ chế client – server cho phép 02 client có thể gửi thông điệp cho nhau.

Tạo một cửa sổ trên giao diện đồ họa phía Client, cho phép người dùng nhập dữ liệu vào một ô text và một nút lệnh send để gửi dữ liệu (cho phép dùng Eclipse, NetBean hoặc lập trình trực tiếp).

Chương trình cho phép tạo 2 client thực hiện trò chơi bài đơn giản, trong đó mỗi client sẽ được chia ngẫu nhiên một nửa số quân của bộ bài. Sau đó client thứ nhất sẽ gửi 1 quân bài (xem Câu 1) sang client thứ hai (theo thứ tự các client connect tới server). Client thứ hai sẽ phải đáp lại bằng một quân bài cao hơn có trong phần bài của mình. Tiếp theo client thứ nhất sẽ phải đáp lại bằng một quân cao hơn (trong phần mình còn lại) và quá trình này lặp lại cho đến khi một trong hai bên không tìm được quân để đáp lại.