Object Oriented Programming

OOP HAS-A

Bài 1: Laptop

Thông tin về cấu tạo Laptop

Một công ty chuyên lắp ráp và kinh doanh laptop cần một ứng dụng cơ bản giúp họ nhập liệu và lưu trữ thông tin về sản phẩm.

Thông tin cơ bản của một laptop như sau: mã sản phẩm, tên sản phẩm, đơn giá (được tính tự động từ giá các thành phần cấu thành nên laptop gồm giá CPU + tổng giá của các thanh RAM + giá ổ cứng + giá màn hình), 1 bộ vi xử lý CPU, RAM (Mỗi laptop có thể có 1 hoặc 2 thanh RAM – nếu 2 thanh RAM thì luôn cùng loại RAM và cùng dung lượng), ổ cứng, màn hình.

Biết rằng linh kiện để lắp nên 1 laptop sẽ là sự tổ hợp của các phần sau:

CPU

RAM

Ổ cứng

Màn hình

Các dòng laptop công ty sản xuất

Bài 2: Hospital

Bệnh viện Nhân dân 115 là một trong những bệnh viện lớn tại TP.HCM. Hiện bệnh viện đang có nhu cầu xây dựng hệ thống quản lý hoạt động khám chữa bệnh của các bệnh nhân. Mỗi bệnh nhân được cấp 1 mã số (MSBN) để tiện việc quản lý danh sách các bệnh nhân. Bệnh viện cho phép khám điều trị nội trú và ngoại trú. Nếu cùng 1 người có cả hoạt động khám ngoại trú lẫn điều trị nội trú thì sẽ được cấp 2 mã số khác nhau và được quản lý riêng như 2 người khác nhau. Viện phí của từng bệnh nhân được tính như sau:

Với bệnh nhân ngoại trú: Bệnh viện thu một mức phí nhất định cho mỗi lần khám tùy theo mỗi loại bệnh lý.

Với bệnh nhân nội trú: Tiền khám chữa bệnh = số ngày nằm viện * (phí khám bệnh mỗi ngày + đơn giá phòng).

Có 3 loại phòng cho bệnh nhân điều trị nội trú chọn lựa với đơn giá:

Mỗi hoạt động khám chữa bệnh điều được ghi nhận lại dưới dạng nhật ký (log hoạt động) theo tháng. Tùy theo từng loại hoạt động, mỗi dòng log sẽ có các thông tin tương ứng như sau:

Yêu cầu
  1. Lập danh sách các bệnh nhân
  2. In ra màn hình bảng thống kê viện phí của từng bệnh nhân và tổng viện phí bệnh viện thu vào trong tháng
  3. Cho biết bệnh viện có bao nhiêu bệnh nhân nội trú và bao nhiêu bệnh nhân ngoại trú.

Bài 3: Store

Một tổ chức chuyên trưng bày, mua bán các sản phẩm liên quan đến nghệ thuật đang muốn xây dựng một ứng dụng để quản lý các hoá đơn khi bán các sản phẩm. Mỗi lần bán sản phẩm thành công, cửa hàng sẽ lưu trữ các hoá đơn chứa thông tin sản phẩm liên quan.

Mỗi hoá đơn sẽ có thông tin: mã hoá đơn, thông tin khách hàng, ngày lập hoá đơn, danh sách sản phẩm, tổng giá (tổng giá trị các sản phẩm trong đơn hàng).

Tổ chức này hiện tại chỉ kinh doanh 2 loại sản phẩm: tranh ảnh và CD âm nhạc (tương lai có thể thay đổi sản phẩm kinh doanh khác). Mỗi sản phẩm sẽ có thông tin chung cần quản trị: mã số, tiêu đề, giá bán. Ngoài thông tin chung, các sản phẩm tranh ảnh cần thêm thông tin kích thước của bức tranh (chiều rộng, chiều cao), tên hoạ sĩ. Sản phẩm CD âm nhạc sẽ có thêm tên ca sĩ, tên đơn vị sản xuất. Mỗi khách hàng sẽ được lưu trữ các thông tin: mã khách hàng, tên khách hàng, số điện thoại.

Áp dụng tư tưởng lập trình hướng đối tượng (có sử dụng kế thừa, đa hình), anh/chị hãy: cài đặt chi tiết các lớp

Chương trình thực hiện các tính năng sau:

  1. Nhập và xuất danh sách các hoá đơn bán hàng
  2. Tính tổng thu nhập của cửa hàng
  3. Tìm các khách hàng mua nhiều nhất ở cửa hàng (dựa vào tổng giá trị các hoá đơn khách hàng đã mua).

Bài 4: Service Hotel

Một khách sạn cung cấp hai loại dịch vụ là: giặt túi và thuê xe.

Dịch vụ giặt ủi

Tiền giặt ủi = số kg quần áo * đơn giá (12.000 VNĐ/kg) + tiền dịch vụ cộng thêm.

Nếu số kg trên 10 kg thì giảm 5%.

Tiền dịch vụ cộng thêm là phí phụ thu dành cho các sản phẩm cần chế độ giặt đặc biệt như áo tắm, áo len, áo da,…

Tiền dịch vụ cộng thêm = số lượng quần / áo (có chế độ giặt túi đặc biệt, đơn vị tính cái) * 25.000 VNĐ.

Dịch vụ thuê xe

Tiền thuê xe = số giờ thuê * đơn giá.

Nếu thuê quá 12 giờ giảm 10%.

Yêu cầu

Xây dựng lớp HoaDon cho phép thực hiện nhập thông tin hóa đơn và xuất giá trị của hóa đơn tính tiền sử dụng dịch vụ khách sạn.

Thông tin hóa đơn gồm:

Bài 5. Quản lý hóa đơn cửa hàng

Một cửa hàng muốn xây dựng một phần mềm quản lý lại các hóa đơn của cửa hàng.

Đây là một cửa hàng bán các thiết bị điện dân dụng.

Mỗi hóa đơn sẽ có thông tin mã sản phẩm, thông tin khách hàng, một tập danh sách của các chi tiết hóa đơn (chứa thông tin về sản phẩm và số lượng sản phẩm đó được bán ra), ngày lập hóa đơn, giá hóa đơn (giá hóa đơn bằng tổng giá của tất cả sản phẩm tương ứng với số lượng bán ra của sản phẩm đó).

Mỗi khách hàng sẽ có thông tin mã khách hàng, tên khách hàng, số điện thoại, địa chỉ.

Mỗi chi tiết hóa đơn trong danh sách chi tiết hóa đơn sẽ có thông tin sản phẩm (thiết bị điện dân dụng) và số lượng sản phẩm đó được bán ra trong hóa đơn.

Danh mục sản phẩm

Hiện tại, cửa hàng kinh doanh 2 dòng thiết bị điện đó là máy quạt, máy lạnh. Mỗi thiết bị điện sẽ có thông tin mã sản phẩm, tên sản phẩm, giá bán, nơi sản xuất.

Chi tiết về máy quạt

Máy quạt sẽ chia làm 3 loại: máy quạt đứng, máy quạt hơi nước và máy quạt sạc điện.

Trong máy quạt hơi nước cần thêm thông số về dung tích nước tối đa có thể chứa trong máy quạt (đơn vị: lít).

Máy quạt sạc điện sẽ có thêm thông tin dung lượng của pin.

Máy quạt đứng của cửa hàng luôn có giá 500.

Máy quạt hơi nước có giá tính công thức: Giá = dung tích * 400.

Máy quạt sạc điện có giá tính theo công thức: Giá = dung lượng pin * 500.

Chi tiết về máy lạnh

Máy lạnh sẽ có thêm thuộc tính xác định có hỗ trợ công nghệ inverter hay không. Máy lạnh thì được chia làm 2 loại: máy lạnh 1 chiều, máy lạnh 2 chiều.

Tại cửa hàng một số máy lạnh 2 chiều sẽ được hỗ trợ công nghệ khử mùi và công nghệ kháng khuẩn. Do đó máy lạnh 2 chiều cần thêm thông tin để xác định có hỗ trợ công nghệ khử mùi hay không và thông tin xác định có hỗ trợ công nghệ kháng khuẩn hay không.

Giá của máy lạnh 1 chiều không sử dụng công nghệ inverter luôn là 1000, máy lạnh 1 chiều sử dụng công nghệ inverter là 1500.

Giá của máy lạnh 2 chiều không sử dụng công nghệ inverter là 2000, có sử dụng công nghệ inverter là 2500.

Nếu có sử dụng thêm công nghệ kháng khuẩn thì thêm 500, nếu có công nghệ khử mùi thì sẽ thêm 500 nữa.

Ví dụ về cách tính giá hóa đơn

Giá hóa đơn = giá sản phẩm 1 * số lượng bán của sản phẩm 1 trong hóa đơn + giá sản phẩm 2 * số lượng bán của sản phẩm 2 trong hóa đơn + …

Viết chương trình hỗ trợ với một số thao tác cơ bản sau:

(Các yếu tố đánh giá: chương trình chạy, áp dụng tốt tư tưởng lập trình hướng đối tượng, có tính mở rộng tương lai và sử dụng được kỹ thuật kế thừa, đa hình, nạp chồng toán tử…)

Bài 6: smartphone

Tại một công ty chuyên sản xuất các loại smartphone. Mỗi chiếc smartphone sẽ có các thông tin chính về mã smartphone, dòng smartphone, giá bán, vỏ smartphone, 1 CPU, 1 màn hình.

CPU

Mỗi CPU sẽ có thông tin về mã CPU, loại CPU, hãng, số core, xung nhịp, giá nhập. CPU phân thành 3 loại:

Màn hình

Màn hình sẽ có thông tin về mã màn hình, hãng sản xuất, độ phân giải (HD hoặc FullHD), giá nhập, kích thước.

Vỏ smartphone

Vỏ smartphone có thông tin về mã vỏ, loại vỏ, hãng, giá nhập, màu sắc.

Các dòng smartphone

Công ty này có các dòng smartphone chính là Venus, Mars, Jupiter:

Biết rằng giá bán ra của một smartphone sẽ được tính theo công thức:

Trong đó X: là tổng giá nhập vào của các bộ phận thành phần cấu thành nên smartphone đó (giá của vỏ + giá của CPU + giá của màn hình).

Viết chương trình hỗ trợ công ty quản lý các sản phẩm của họ:

(Các yếu tố đánh giá: chương trình chạy, áp dụng tốt tư tưởng lập trình hướng đối tượng và sử dụng được kỹ thuật kế thừa, đa hình, nạp chồng toán tử...)