Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

ĐỀ THI JAVA NÂNG CAO

Thời gian làm bài: 180 phút


(Không được phép sử dụng mạng LAN, Wireless, Bluetooth và Internet)
Họ tên học viên: __________________________________ Lớp: _________
Chú ý:
- Không được sao chép đề thi dưới mọi hình thức.
- Học viên được phép sử dụng tài liệu tham khảo nào có sẵn trong máy tính cá nhân: Bài
tập đã làm, sách, vở ghi chép.
- Không được phép sử dụng các thiết bị nhớ ngoài (USB Flash, thẻ nhớ, Email, các công
cụ chat) trong suốt quá trình làm bài thi.
- Các xử lý in ra message tiếng việt thì học viên có thể ghi tiếng việt không dấu.

Phần 1: Mô tả bài toán


Một khách sạn có website quản lý việc cách ly y tế đối với các đối tượng F1 như sau:
- Cho phép nhập thông tin đối tượng cách ly gồm: họ tên, giới tính, ngày sinh, địa chỉ, số
điện thoại, ngày tiếp xúc F0, mã phòng cách ly, ngày bắt đầu cách ly, ngày kết thúc cách
ly dự kiến, chi phí thanh toán dự kiến.
- Cho phép quản lý thông tin nhiễm bệnh của các đối tượng trong trung tâm cách ly.
Lược đồ cơ sở dữ liệu quan hệ của hệ thống được mô tả như sau:

(Các trường PK là trường khóa chính của bảng, kiểu dữ liệu của các trường do học viên tự định nghĩa)
Phần 2: Yêu cầu

Yêu cầu kỹ thuật (1.5 điểm)


1. Tạo đầy đủ CSDL đã cho và kết nối được đến CSDL bằng Hibernate hoặc JPA (1 điểm)
2. Sử dụng Spring MVC Framework (Nếu không sử dụng Spring MVC thì bị trừ 2 điểm).
3. Tuân thủ Java coding convention (0.5điểm)
*** Lưu ý:

1. Hãy tạo java doc (document comment) ở tất cả các phương thức được viết ra, trừ
hàm getter, setter.

Nội dung java doc phải có : Account người tạo, ngày tháng năm sinh người tạo
(định dạng YYYY_MM_DD), các nội dung khác thí sinh tự viết.

Khi chấm bài nếu thiếu một java doc cho một phương thức sẽ trừ 0.5 điểm

2. Nếu phát hiện copy code của người khác sẽ trừ 5 điểm cho cả người copy
và người cho copy.

Yêu cầu về chức năng: Xây dựng các màn hình cho các chức năng sau (Lưu ý: Không cần
làm chức năng login và logout cho các chức năng này):

Chức năng 1 (3.5 điểm): Nhập thông tin của các đối tượng F1 trong các trung tâm cách ly:
Xây dựng trang nhập thông tin các đối tượng F1 bao gồm các thông tin như sau: họ tên
bệnh nhân, giới tính, ngày sinh, địa chỉ, số điện thoại, ngày tiếp xúc F0, mã phòng cách ly,
ngày bắt đầu cách ly, ngày kết thúc cách ly dự kiến, chi phí thanh toán dự kiến.
Thực hiện các yêu cầu sau:
- Nhập được thông tin cách ly và insert dữ liệu vào database (1.5 điểm)
Lưu ý:
+ Ngày kết thúc cách ly dự kiến set mặc định bằng 21 ngày kể từ ngày bắt đầu
cách ly và cho phép chỉnh sửa.
+ Chi phí thanh toán dự kiến được tính toán tự động và không cho phép chỉnh
sửa. Chi phí này được tính bằng số ngày cách ly dự kiến * chi phí/ngày ứng
với trung tâm cách ly tương ứng. Số ngày cách ly dự kiến được tính bằng
ngày kết thúc cách ly dự kiến – ngày bắt đầu cách ly.
- Validate được phòng cách ly phải tồn tại trong database, nếu không tồn tại thì thông
báo ra màn hình nội dung message: “Khong ton tai phong cach ly trong he thong”
(validate ở phía server). (0.5 điểm)
- Validate Số điện thoại phải là số có 10 hoặc 11 chữ số, nếu nhập không đúng thì
thông báo ra màn hình nội dung message: “So dien thoai phai bao gom 10 hoac 11
chu so” (validate phia client). (0.5 điểm)
- Validate được ngày tiếp xúc F0 phải nhỏ hơn ngày hiện tại, nếu nhập không đúng thì
thông báo ra màn hình nội dung message: “Ngay tiep xuc F0 phai nho hon ngay hien
tai” (validate ở phía client). (0.5 điểm)
- Tính toán được trường Chi phí thanh toán dự kiến và insert thành công vào
database (0.5 điểm)

Chức năng 2 (2.0 điểm): Liệt kê thông tin các đối tượng đang bị cách ly.
- Học viên liệt kê được danh sách các đối tượng F1 đang được cách ly (1.0 điểm)
Lưu ý: Những đối tượng đã hoàn tất cách ly (có ngày kết thúc cách ly thực tế nhỏ
hơn ngày hiện tại) thì không hiển thị
- Học viên thực hiện được chức năng tìm kiếm theo Họ tên đối tượng hoặc Mã trung
tâm cách ly (1.0 điểm)
Trường hợp học viên chỉ xử lý tìm kiếm theo 1 trong 2 trường (Họ tên đối tượng
hoặc Mã trung tâm cách ly) thì được tối đa 0.5 điểm

Chức năng 3 (2.0 điểm): Update thông tin phát bệnh của đối tượng F1.
- Học viên thiết kế trang update thông tin phát bệnh của các đối tượng trong các
trung tâm cách ly bao gồm: Họ tên, ngày phát bệnh. Trường Ngày kết thúc cách
ly thực tế (NgayKTCLTT) set đúng bằng Ngày phát bệnh (Do đối tượng F1 phải
được chuyển đến bệnh viện điều trị).
- Với các đối tượng thuộc cùng phòng cách ly với đối tượng F1 đã bị phát bệnh thì
cần update lại Ngày kết thúc cách ly dự kiến cộng thêm 14 ngày.
- Thực hiện validate các trường hợp sau:
Ngày phát bệnh phải nhỏ hơn hoặc bằng ngày hiện tại và sau ngày bắt đầucách
ly. Nếu không đúng thì thông báo ra màn hình nội dung message lỗi tương ứng
(nội dung lỗi là : “Error_[YYYYMMDD]{Ngày tháng năm sinh của thí sinh}:Ngay
phat benh khong hop le”)
Ví dụ : Error_19980705: Ngay phat benh khong hop le. (0.5 điểm)
- Trường hợp update thành công thì phải thông báo ra màn hình message “Update
thong tin phat benh cua F1 thanh cong” (1.5 điểm)
Nếu học viên update thông tin F1 bị phát bệnh mà chưa cập nhật lại Ngày hoàn
tất cách ly dự kiến của các đối tượng thuộc cùng phòng cách ly theo mô tả ở trên thì chỉ
được 1.0 điểm.

Chức năng 4 (1 điểm):


- Yêu cầu xây dựng chương trình liền mạch, có liên kết các yêu cầu 1,2,3 lại với nhau
(0.5 điểm)
Ví dụ nhập xong yêu cầu 1 thành công thì chuyển đến trang ở yêu cầu 2. Trong yêu
cầu 2 thì có link chuyển trang update thông tin ở yêu cầu 3. Trong yêu cầu 3 thì có
link để quay trở lại màn hình list ở yêu cầu 2.
- Yêu cầu xây dựng trang lỗi (0.5 điểm)
Học viên xây dựng trang error.jsp với nội dung thông tin tùy ý. Khi có bất kỳ 1 lỗi
nào của hệ thống trong quá trình client thao tác các yêu cầu 1,2,3 (ví dụ lỗi sql hoặc
lỗi null pointer exception) thì phải hiển thị trang lỗi này lên màn hình.

Yêu cầu không bắt buộc


- Nếu giao diện có tính mỹ thuật cao (có sử dụng CSS, Bootstrap...) sẽ được cộng thêm
tối đa 0.5 điểm
Điểm tối đa toàn bài: 10 điểm

You might also like