You are on page 1of 8

THỰC HÀNH

HƯỚNG ĐỐI TƯỢNG

Chú ý:
- Dùng StarUML vẽ sơ đồ lớp.
- Thiết kế các testcase để kiểm tra các yêu cầu.

Lớp và Đối tượng

BÀI 1.

Xây dựng lớp PhanSo để biểu diễn một phân số gồm hai thành phần:
- Thành phần dữ liệu: tử số, mẫu số.
- Thành phần xử lý: xuất-nhập giá trị cho phân số, cộng, trừ, nhân, chia
hai phân số…
Viết chương trình đáp ứng các yêu cầu sau:
1. Khởi tạo phân số (xây dựng constructor)
2. Xuất phân số
3. Đổi dấu phân số
4. Rút gọn phân số
5. Cộng hai phân số
6. Trừ hai phân số
7. Nhân hai phân số
8. Chia hai phân số
9. Thực hiện phép so sánh hai phân số.
10. Tìm phân số lớn nhất trong nhiều phân số
Tự xây dựng thêm các thao tác thích hợp minh họa cho bài toán.
BÀI 2.

Xây dựng lớp ToaDo để biểu diễn một điểm trong mặt phẳng:
- Thành phần dữ liệu: hoành độ và tung độ
- Thành phần xử lý: nhập, xuất, thay đổi tọa độ điểm, lấy tung độ, lấy
hoành độ, thay đổi tung độ, hoành độ, tịnh tiến…
Viết chương trình minh họa:
1. Khởi tạo tọa độ một điểm
2. Xuất tọa độ một điểm
3. Lấy tung độ, hoành độ của một điểm
4. Thay đổi tung độ, hoành độ của một điểm
5. Di chuyển đến tọa độ
6. Khoảng cách hai điểm
7. Tìm tọa độ trung điểm khi biết hai điểm
8. Xóa tọa độ điểm
9. Sao chép điểm tọa độ
10. Tìm tọa độ có khoảng cách gần tâm O nhất trong nhiều tọa độ. Nếu có
nhiều tọa độ thì lấy tọa độ đầu tiên được tìm thấy.

BÀI 3.

Thiết kế lớp TamGiac để biểu diễn một tam giác trong mặt phẳng. Sau đó, viết
chương trình minh họa:
1. Khởi tạo tam giác
2. Xuất thông tin tam giác
3. Xét loại tam giác
4. Tính chu vi
5. Tính diện tích
6. Tìm bán kính đường tròn ngoại tiếp của tam giác.
7. Tìm bán kính đường tròn nội tiếp của tam giác.

BÀI 4.

Xây dựng một lớp để biểu diễn một đường tròn trong mặt phẳng. Sau đó, viết
chương trình minh họa:
1. Khởi tạo đường tròn
2. Xuất thông tin đường tròn
3. Tính chu vi
4. Tính diện tích
5. Phóng to đường tròn theo phần trăm
6. Thu nhỏ đường tròn theo phần trăm
7. Cho hai đường tròn, kiểm tra chúng có giao nhau không

BÀI 5.

Xây dựng lớp nhân viên (NhanVien) cần quản lý các thông tin sau: mã nhân
viên, họ tên, lương cơ bản, số sản phẩm đã bán được, lương hằng tháng.
Lương hằng tháng cho nhân viên được tính theo công thức sau:
- Lương HT = lương căn bản + số sản phẩm * 175.000 đ
- Nếu lương từ 10 triệu trở lên thì thưởng thêm 10%.
Sau đó, viết chương trình theo giải quyết các yêu cầu sau:
1. Tạo dữ liệu nhân viên.
2. Xuất các nhân viên trong công ty.
3. Tính lương nhân viên.
4. Tìm nhân viên theo theo mã nhân viên.
5. Cập nhật lương cơ bản nhân viên theo mã nhân viên.
6. Tìm nhân viên có lương cao nhất.
7. Tìm nhân viên có số sản phẩm bán được thấp nhất.
8. Tìm 10 nhân viên có lương cao nhất.
Tự xây dựng thêm các thao tác thích hợp cho bài toán.

Kế thừa – Đóng gói và che giấu dữ liệu


BÀI 6.

Xây dựng lớp hỗn số (HonSo) được kế thừa từ lớp phân số (PhanSo) để biểu
diễn một hỗn số gồm hai thành phần:
- Thành phần dữ liệu: phần nguyên, tử số, mẫu số.
- Thành phần xử lý: xuất-nhập giá trị cho hỗn số, chuyển đổi hỗn số sang
phân số và ngược lại, cộng, trừ, nhân, chia hai hỗn số, so sánh hai hỗn
số….
Sau đó, thiết kế chương trình cho phép:
1. Khởi tạo hỗn số
2. Khởi tạo hỗn số theo phương pháp tự động
3. Xuất hỗn số
4. Chuyển đổi phân số sang hỗn số
5. Chuyển đổi hỗn số sang phân số
6. Thực hiện các phép toán cộng, trừ, nhân, chia
7. Thực hiện phép so sánh.
8. Tự xây dựng thêm các thao tác thích hợp minh họa cho bài toán.

BÀI 7.

Xây dựng lớp đường tròn (DuongTron) được kế thừa từ lớp điểm (Diem) để
biểu diễn một đường tròn trong mặt phẳng. Sau đó, viết chương trình minh
họa:
1. Nhập đường tròn
2. Xuất thông tin đường tròn
3. Tính chu vi
4. Tính diện tích
5. Kiểm tra mối quan hệ giao, tiếp xúc, không giao của hai đường tròn.

BÀI 8.

Viết chương trình quản lý và tính tiền lương cho các nhân viên trong một đại
lý. Biết đại lý có hai loại nhân viên: Nhân viên văn phòng và Nhân viên sản
xuất. Đại lý yêu cầu mỗi nhân viên cần quản lý các thông tin sau: mã nhân
viên, họ tên, lương cơ bản và lương hằng tháng.
Công thức tính tiền lương hằng tháng cho nhân viên như sau:
• Đối với nhân viên sản xuất:
Lương hằng tháng = lương căn bản + số sản phẩm * 170.000 đ
Nếu số sản phẩm lớn hơn 200 thì thưởng thêm 10%.
• Đối nhân viên văn phòng:
Lương hằng tháng = lương căn bản + số ngày làm việc * 220.000 đ
Nếu số ngày làm việc < 10 thì lương hằng tháng bằng lương cơ bản.
Chương trình quản lý nhân viên đáp ứng các yêu cầu:
1. Xuất các nhân viên trong đại lý.
2. Tính và cập nhật tiền lương cho các loại nhân viên
3. Tìm nhân viên theo theo mã nhân viên.
4. Cập nhật thông tin (bất kỳ) nhân viên theo mã nhân viên.
5. Tìm các nhân viên có lương cao nhất.
6. Tìm các nhân viên có số ngày làm việc thấp nhất.
7. Tự xây dựng thêm các thao tác thích hợp cho bài toán.

Trừu tượng và Đa hình

BÀI 9. Giống bài 8, nhưng áp dụng thêm trừu tượng và đa hình

Viết chương trình quản lý và tính tiền lương cho các nhân viên trong một đại
lý. Biết đại lý có hai loại nhân viên: Nhân viên văn phòng và Nhân viên sản
xuất. Đại lý yêu cầu mỗi nhân viên cần quản lý các thông tin sau: mã nhân
viên, họ tên, lương cơ bản và lương hằng tháng.
Công thức tính tiền lương cho nhân viên như sau:
• Đối với nhân viên sản xuất:
Lương = lương căn bản + số sản phẩm * 170.000 đ
• Đối nhân viên văn phòng:
Lương = lương căn bản + số ngày làm việc * 220.000 đ
Biết lương cơ bản của nhân viên văn phòng: 4.500.000 đ, lương cơ bản của
nhân viên sản xuất: 5.300.000 đ

Yêu cầu: Sử dụng tính trừu tượng và đa hình trong OOP để giải quyết bài toán
tính lương.

Viết chương trình minh họa đáp ứng yêu cầu sau:
1. Xuất các nhân viên (mã nhân viên, họ tên, lương cơ bản và lương).
2. Tính và cập nhật tiền lương cho các loại nhân viên
3. Tìm nhân viên theo theo mã nhân viên.
4. Cập nhật thông tin (bất kỳ) nhân viên theo mã nhân viên.
5. Tìm nhân viên có lương cao nhất.
6. Tìm nhân viên có số sản phẩm thấp nhất.
7. Tìm top10 nhân viên có số sản phẩm nhiều nhất.
8. Tự xây dựng thêm các thao tác thích hợp cho bài toán.

BÀI 10.

Viết chương trình quản lý và tính tiền lương cho một Công ty TNHH MTV S102.
Trong công ty có ba loại nhân viên và mỗi loại nhân viên có thông tin sau:
• Lập trình viên: mã nhân viên, họ tên, lương cơ bản, số giờ tăng ca.
• Phân tích viên: mã nhân viên, họ tên, lương cơ bản, số giờ tăng ca, phụ
cấp.
• Nhân viên kiểm: mã nhân viên, họ tên, lương cơ bản, số lỗi phát hiện.
Do tính chất công việc khác nhau, nên lương hàng tháng của các nhân viên
cũng khác nhau (lương cơ bản của mỗi nhân viên đề khác nhau). Cụ thể:
- Lương (lập trình viên) = lương cơ bản + số giờ làm thêm * 250.000
- Lương (phân tích viên) = Lương cơ bản * hệ số 1.8
- Lương (nhân viên kiểm thử) = lương cơ bản + số lỗi * 85.000
Yêu cầu:
- Thiết kế các lớp cần thiết để quản lý danh sách các nhân viên.
- Áp dụng tính kế thừa, đa hình và trừu tượng.
Sản phẩm chương trình đáp ứng:
1. Tạo dữ liệu nhân viên.
2. Xuất danh sách nhân viên.
3. Xuất danh sách các nhân viên có lương thấp hơn mức lương trung bình
của các nhân viên trong công ty.
4. Xuất thông tin nhân viên có lương cao nhất.
5. Xuất thông tin nhân viên có lương thấp nhất.
6. Xuất thông tin lập trình viên có lương cao nhất.
7. Xuất thông tin nhân viên kiểm thử có lương thấp nhất.
8. Cập nhật lương cơ bản của nhân viên theo mã nhân viên.

Chú ý:
― Vẽ sơ đồ lớp cho các bài.
― Viết mô tả theo đúng hướng dẫn.
― Mỗi bài tổ chức thành 1 package để lưu trữ.
― Trong main, thiết kế các testcase để kiểm tra các yêu cầu của mỗi bài.
― SV trễ deadline thì nộp gộp deadline hiện tại.

You might also like