You are on page 1of 5

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

ĐẠI HỌC QUỐC GIA HÀ NỘI


NAM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Độc lập – Tự do – Hạnh phúc

ĐỀ THI CUỐI KỲ
Môn: Lập trình Java
Đề 3
Thời gian: 90 phút

Bài 1 (7đ)
Công ty ViTech chuyên phân phối máy tính, điện thoại thông minh
có phần mềm quản lý nhân viên gồm 4 lớp:
Employee, Technician, Maketer, và EmployeeManagement
 Lớp Employee (nhân viên) có các thuộc tính như sau: String id
(mã nhân viên), String name (họ và tên), int age (tuổi), String
address (quê quán), double basicSalary (lương cơ bản), String
email (địa chỉ email).
 Lớp Technician (Kỹ thuật viên) kế thừa từ lớp Employee và có
thêm các thuộc tính: int no_test_equipments (số lượng thiết bị
kiểm tra thành công), double allowance (phụ cấp). Một kỹ thuật
viên chỉ có thể phụ trách một trong hai lĩnh vực: máy tính hoặc
điện thoại thông minh.
 Lớp Marketer (Nhân viên tiếp thị) kết thừa từ lớp Employee và
có thêm thuộc tính: int no_customers (số lượng khách hàng
mua sản phẩm mà nhân viên đó tiếp thị).
Hoàn thiện các phương thức sau:
 Phương thức getField() ở lớp Technician. Lĩnh vực mà mỗi kỹ
thuật viên phụ trách được xác định dựa vào việc phân tích tên
miền trong địa chỉ email của kỹ thuật viên. Cụ thể thông tin về
tên miền được cho tương ứng trong bảng dưới đây:
Tên Tên lĩnh vực phụ trách
miền
smp Điện thoại thông minh
(smart phone)
comp Máy tính (computer)
Ví dụ:
- Địa chỉ email minhht@smp.vitech.vn là kỹ thuật viên phụ
trách lĩnh vực về điện thoại thông minh
- Địa chỉ emal: duongkl@comp.vitech.vn là kỹ thuật viên
phụ trách lĩnh vực về máy tính
 Phương thức getSalary() ở lớp Technician và lớp Marketer,
trong đó:
o Lương của kỹ thuật viên = lương cơ bản + số thiết bị kiểm
tra thành công * 150.000 + phụ cấp
o Lương của nhân viên tiếp thị= lương cơ bản + tiền thưởng
hoa hồng (trong đó tiền thưởng hoa hồng = số lượng khách
hàng mua sản phẩm * 250.000)
 Phương thức public ArrayList<Employee>
readData(String fileName) ở lớp EmployeeManagement
để đọc vào một danh sách nhân viên từ tệp văn bản.
- Dòng đầu tiên là số lượng nhân viên
- Mỗi thuộc tính của một đối tượng được viết trên 1 dòng
theo thứ tự: index, id, name, age, address, basicSalary,
email. Trong đó, nếu index = 1 thì đối tượng được hiểu là
Technician và có thêm các thuộc tính
no_test_equipments (số lượng thiết bị kiểm tra thành
công), allowance (phụ cấp). Ngược lại, index = 0 thì đối
tượng là Marketer có thêm 01 thuộc tính no_customers.
Ví dụ:
 Phương thức public void printInforEmployees(ArrayList
<Employee> employees) để in ra thông tin của mỗi nhân viên
trên một dòng.
 Phương thức public void sortBySalary(ArrayList
<Employee> employees) để sắp xếp lương các nhân viên theo
thứ tự tăng dần.
 Phương thức public ArrayList <Employee>
filterTech(ArrayList <Employee> employees, String
fields) trả về những nhân viên kĩ thuật phụ trách lĩnh vực
fields
 Phương thức public ArrayList <Employee>
filterMark_bySalary(ArrayList <employee> employees)
để tìm những nhân viên tiếp thị có mức lương cao hơn mức
lương cao nhất của các kỹ thuật viên.

Bài 2 (3 điểm)
Hoàn thiện các phương thức trong file ArrayUtils.java theo các yêu
cầu sau:
1. Phương thức public static int[][]
inputMatrix(Scanner reader) thực hiện nhập số nguyên
dương n và n*n số nguyên từ bàn phím, kết quả trả về là ma
trận kích thước n*n được nhập từ bàn phím.
2. Phương thức public static int findMax(int[][]
mat) trả về giá trị lớn nhất trong ma trận.
3. Phương thức public static int[] findRows(int[][]
mat) trả về các hàng có tổng lớn thứ hai trong ma trận.

----------------------------------------Hết phần đề
bài--------------------------------------

Chú ý: Sinh viên đọc cẩn thận các lưu ý sau đây để tránh mắc các
lỗi khi làm bài
1. Sinh viên chỉ cần hoàn thiện các phương thức được yêu cầu,
tuyệt đối không chỉnh sửa nguyên mẫu (bao gồm danh sách đối
và kiểu dữ liệu trả về) của các phương thức này, chỉ viết thêm
vào phần nội dung phương thức.
2. Sinh viên có thể viết thêm các phương thức phụ trợ khác nếu cần,
tuy nhiên tốt nhất tránh đặt tên trùng với tên các phương thức đã
cho.
3. Các phương thức được chấm điểm độc lập, đúng phương thức
nào sẽ được điểm phương thức đó, tuy nhiên cần đảm bảo bài
làm có thể biên dịch và chạy được. Các bài có lỗi biên dịch, hoặc
không chạy được sẽ nhận điểm 0.
4. Các phương thức sinh viên chưa làm đến, hoặc không hoàn thiện
được thì để lại như nguyên mẫu ban đầu, không chỉnh sửa, thêm
bớt, tránh việc bài không biên dịch được.
5. Khi làm bài sinh viên có thể tự nộp bài và chấm điểm trên 1 bộ
test mẫu, kết quả này chỉ là kết quả tham khảo, bài làm của sinh
viên sẽ được chấm lại trên một bộ test khác và thông báo kết quả
sau.
6. Bài được sử dụng để chấm điểm cho sinh viên là bài nộp lần cuối
cùng trước khi hết giờ, các bài nộp trước đó không tính, do vậy
sinh viên hết sức chú ý và cẩn trọng khi nộp bài lần cuối.

You might also like