Đề thi Các thành phần phần mềm đề số 1 kỳ 2 năm học 2020-2021 | Trường Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội

Đề thi Các thành phần phần mềm đề số 1 kỳ 2 năm học 2020-2021 | Trường Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội. Tài liệu được sưu tầm và biên soạn dưới dạng PDF gồm 02 trang giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem !

Thông tin:
2 trang 1 ngày trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Đề thi Các thành phần phần mềm đề số 1 kỳ 2 năm học 2020-2021 | Trường Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội

Đề thi Các thành phần phần mềm đề số 1 kỳ 2 năm học 2020-2021 | Trường Đại học Khoa học tự nhiên, Đại học Quốc gia Hà Nội. Tài liệu được sưu tầm và biên soạn dưới dạng PDF gồm 02 trang giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem !

10 5 lượt tải Tải xuống
Đề thi cuối kỳ môn Các thành phần phần mềm
Đề số 1
Thời gian làm bài: 90 phút.
Câu 1. (4 điểm)
Xây dựng chương trình chơi bài, với mỗi quân bài hai thuộc tính:
- Rank (hạng): 1 đến 13, trong đó 1 ace (A), 11 jack (J), 12
queen (Q) 13 King (K).
- Suit (chất bài): spade (bích), club (chuồn nhép), diamond (rô)
heart (cơ). Thuộc tính Suit cần được xây dựng dưới dạng enum.
Viết lớp Card tả c quân bài, với các hàm dựng không tham số (mặc định quân
bài Ace Spade) hàm dựng 2 đối số cho rank suit. Lớp Card cần được cài đặt từ
giao diện Comparable<T> của JDK, trong đó T Card để th so sánh theo thứ tự như
trong thực tế, với quân thấp nhất Ace Spade (át bích) quân cao nhất King Heart
(thứ tự theo rank từ Ace đến King, theo suit spade đến heart tăng dần).
Bổ sung các phương thức set (đặt giá trị) 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 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 in ra màn hình.
Câu 2. (4 điểm)
Phát triển lớp PlayCard 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 chế client server cho phép 02 client 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 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 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) quá trình này
lặp lại cho đến khi một trong hai n không tìm được quân để đáp lại.
Hướng dẫn nộp bài:
Sinh viên dự thi cần lập trình trực tiếp trên máy tính
Nộp bài trên MimGo theo định dạng sau:
Tạo một thư mục tên của bạn viết kiểu không dấu, không khoảngtrống, dấu gạch ngang,
sinh viên của bạn. d sinh viên tên Nguyễn Trần,
sinh viên 10000100 thì cần đặt tên thư mục: nguyenletran-10000100.
Nén thư mục đó thành tệp ZIP cùng tên (chú ý cần nộp định dạng ZIP)
Dùng submit để nộp bài lên phần thi tương ứng.
| 1/2

Preview text:

Đề thi cuối kỳ môn Các thành phần phần mềm Đề số 1
Thời gian làm bài: 90 phút. Câu 1. (4 điểm)
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 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 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.
Hướng dẫn nộp bài:
Sinh viên dự thi cần lập trình trực tiếp trên máy tính
Nộp bài trên MimGo theo định dạng sau:
Tạo một thư mục có tên của bạn viết kiểu không dấu, không có khoảngtrống, dấu gạch ngang,
mã sinh viên của bạn. Ví dụ sinh viên tên Nguyễn Lê Trần,
mã sinh viên 10000100 thì cần đặt tên thư mục: nguyenletran-10000100.

Nén thư mục đó thành tệp ZIP cùng tên (chú ý cần nộp định dạng ZIP)
Dùng submit để nộp bài lên phần thi tương ứng.