0
Tải bản đầy đủ (.pdf) (73 trang)

Array and Collections

Một phần của tài liệu BÀI TẬP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA (Trang 43 -48 )

Nội dung kiến thức thực hành:

- Thao tác trên mảng dữ liệu cơ sở

- Thao tác trên mảng đối tượng

- Viết lớp tập hợp sử dụng mảng và ArrayList

- Sắp xếp mảng đối tượng với Comparable interface

Bài 1:

Mục đích:

- Sử dụng mảng.

Yêu cầu:

Viết chương trình cho nhập mảng n số nguyên với các giá trị ngẫu nhiên. Xuất tổng, giá trị nhỏ nhất của mảng. Sắp xếp mảng.

Yêu cầu viết hàm để xử lý mảng.

Hướng dẫn:

-

Bài tập 2:

Mục đích: Yêu cầu:

Làm lại bài tập 1 bằng cách viết lớp RandomArray để xử lý mảng.

HD: lớp RandomArray có 2 thuộc tính là mảng số ngun và vị trí hiện hành, trong đó viết hàm thêm 1 phần tử vào mảng tại vị trí hiện hành, hàm in mảng, hàm tính tổng mảng, hàm tìm giá trị nhỏ nhất, hàm sắp xếp mảng. Hướng dẫn: -

Bài tập 3:

Mục đích: - Yêu cầu:

Làm lại bài tập 2 bằng cách sử dụng ArrayList thay cho mảng thông thường. HD: lớp RandomArray chỉ có 1 thuộc tính là mảng số nguyên.

Trang 44

Bài tập 4:

Mục đích: Yêu cầu:

Thao tác trên mảng số nguyên, viết hàm để thực hiện các yêu cầu sau: - Nhập / xuất mảng nguyên bất kỳ

- Tìm kiếm giá trị bất kỳ nhập vào từ bàn phím - Xuất tất cả các số nguyên tố trong mảng

- Sắp xếp mảng: BubbleSort, SelectionSort, InsertionSort, QuickSort - Xóa một giá trị bất kỳ trong mảng

- Kiểm tra mảng có đối xứng hay khơng

Hướng dẫn:

Bài tập 5:

Mục đích:

- Viết và sử dụng lớp mảng đối tượng.

Yêu cầu:

(i) Viết lớp Circle, biết lớp có một thuộc tính là radius (bán kính). Viết hàm getArea() tính diện tích hình trịn, và hàm toString() trả về chuỗi gồm bán kính và diện tích hình trịn. Kiểm tra lớp Circle.

(ii) Viết lớp CircleCollection, trong đó viết các hàm: + addCircle: thêm 1 hình trịn vào mảng; +getSize: lấy số lượng hình trịn trong mảng;

+getCircle/setCircle: lấy/gán hình trịn tại vị trí xác định trong mảng; +toString: trả về thơng tin của tập các hình trịn trong mảng;

+ Hàm tính tổng diện tích hình trịn; + Hàm tìm diện tích lớn nhất;

+ Hàm lấy hình trịn có diện tích nhỏ nhất.

(iii) Viết chương trình tạo một mảng N hình trịn, với bán kính được phát sinh ngẫu nhiên. Thực hiện các yêu cầu sau:

- Xuất thông tin của các hình trịn đã nhập. - Xuất tổng diện tích của chúng.

- Xuất diện tích lớn nhất.

- Xuất thơng tin hình trịn có diện tích nhỏ nhất.

Hướng dẫn:

Trang 45

Mục đích:

- Sử dụng ArrayList.

Yêu cầu:

Sửa lại bài ví dụ CDColection.java trong giáo trình: sử dụng ArrayList thay cho mảng thông thường. Hướng dẫn: -

Bài tập 7:

Mục đích: Yêu cầu:

(i) Sử dụng lớp NhanVien đã viết trong bài tập 6 Module 3, viết lớp DanhSachNhanVien với các yêu cầu sau:

1. Thêm một nhân viên vào danh sách (mỗi nhân viên cho nhập vào mã nhân viên và số sản phẩm).

2. Lấy thông tin của tất cả nhân viên, xuất dạng bảng với các cột: mã nhân viên, số sản phẩm, lương, tổng kết.

3. Lấy tổng số nhân viên.

4. Lấy thơng tin của các nhân viên có số sản phẩm vượt chuẩn. 5. Đếm số nhân viên có số sản phẩm khơng vượt chuẩn.

6. Tính tổng lương của các nhân viên vượt chuẩn. 7. Lấy nhân viên có số sản phẩm ít nhất.

8. Lấy nhân viên có lương cao nhất.

9. Lấy nhân viên khơng vượt chuẩn có lương cao nhất. 10. Lấy tổng lương của tất cả nhân viên.

11. Tìm kiếm nhân viên theo mã nhập vào, trả về nhân viên tìm thấy. 12. Sắp xếp mảng nhân viên tăng dần theo số sản phẩm.

13. Xóa 1 nhân viên tại vị trí nhập vào.

(ii) Viết chương trình cho nhập mảng n nhân viên và thực hiện các yêu cầu trong (i) Chú ý : tùy chọn sử dụng ArrayList thay hoặc mảng thơng thường.

Hướng dẫn:

Bài tập 8:

Mục đích: u cầu:

- Viết chương trình cho nhập vào danh sách sinh viên của một trường và xuất danh sách đó theo từng lớp. Biết rằng trường có nhiều lớp và một lớp có nhiều sinh viên. Lớp gồm các thông tin: mã lớp, tên lớp, sĩ số. Sinh viên gồm các thông tin: mã sinh viên, họ tên, nơi sinh, mã lớp.

Trang 46

Hướng dẫn:

Bài tập 9:

Mục đích: u cầu:

Viết chương trình quản lý bán hàng được mơ tả như bên dưới, yêu cầu dùng ArrayList : Mỗi một danh mục sản phẩm sẽ có nhiều sản phẩm, thơng tin danh mục sản phẩm gồm: Mã danh mục, tên danh mục. Thông tin sản phẩm gồm: mã sản phẩm, tên sản phẩm, giá cả, xuất xứ.

- Viết hàm cho phép thông tin danh mục sản phẩm và sản phẩm

- Xuất danh sản phẩm thuộc một danh mục bất kỳ nhập vào từ bàn phím - Cho phép cập nhật thơng tin sản phẩm

- Xóa sản phẩm bất kỳ trong danh mục - Thống kê tổng giá trị của các mặt hàng

- Liệt kê các sản phẩm có xuất xứ từ trung quốc

Hướng dẫn:

Bài tập 10:

Mục đích: u cầu:

Viết chương trình cho phép nhập liên tục các giá trị trong khoảng từ 1100. Sau khi kết thúc q trình nhập dữ liệu thì xuất thơng tin như yêu cầu bên dưới:

Hướng dẫn:

-

Nếu người sử dụng nhập 4,5,4,3, 100,91. Thì 110 sẽ xuất hiện 4 dấu *. 91100 xuất hiện 2 dấu *. Các vùng còn lại để trống.

Trang 47

Mục đích:

Lưu đối tượng: Object Serializable

Yêu cầu:

- Tất cả các class phải implements Serializable:

o public class Sanpham implements Serializable{…}

o public class DanhMucSanPham implements Serializable{…} - Viết một class MyFile có 2 phương thức:

o Lưu đối tượng:

public static void luuDoiTuong(Object obj, String fileName)

{

try

{

FileOutputStream fOut=new FileOutputStream(fileName); ObjectOutputStream out=new ObjectOutputStream(fOut); out.writeObject(obj); out.close(); } catch(Exception ex) { ex.printStackTrace(); } } o Đọc đối tượng

public static Object docDoiTuong(String fileName)

{

try

{

FileInputStream fIn=new FileInputStream(fileName); ObjectInputStream in=new ObjectInputStream(fIn); Object o=in.readObject(); in.close(); return o; } catch(Exception ex) { ex.printStackTrace(); } return null; } - Trong testMain:

DanhMucSanPham dsDienTu=(DanhMucSanPham )MyFile.docDoiTuong("luuluu.data");

if(dsDienTu!=null)

System.out.println(dsDienTu);

MyFile.luuDoiTuong(dsDienTu, "luuluu.data");

Trang 48

Một phần của tài liệu BÀI TẬP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA (Trang 43 -48 )

×