Chợ OOP-Market là một khu kinh doanh sầm uất của thành phố. Mặt bằng chợ được chia thành các sạp có diện tích khác nhau cho tiểu thương thuê. Có ba loại sạp tương ứng với ba loại mặt hàng được phép kinh doanh tại chợ là: thực phẩm, quần áo, và trang sức. Đơn giá thuê ở mỗi loại sạp là như nhau: 40.000.000 đồng/m2/năm. Thông tin chung để quản lý mỗi sạp bao gồm:
Vào cuối năm, số tiền mỗi tiểu thương thuê sạp phải đóng = tiền thuê sạp + thuế doanh thu.
Tiền thuê sạp = đơn giá thuê * diện tích sạp.
Thuế doanh thu tùy thuộc vào từng loại sạp và cho bởi bảng sau:
Loại sạp | Thuế doanh thu |
Sạp thực phẩm | 5% |
Sạp quần áo | 10% |
Sạp trang sức | - Phần doanh thu < 100.000.000 đồng: 20% - Phần doanh thu >= 100.000.000 đồng: 30% |
Ngoài ra, những tiểu thương thuê sạp thực phẩm phải đóng thêm tiền sử dụng dịch vụ đông lạnh để bảo quản thực phẩm mà sạp của mình đã sử dụng trong năm (số tiền khác nhau ở từng sạp).
Cài đặt chương trình cho phép quản lý số tiền mỗi sạp được thuê phải đóng hàng năm như sau:
Áp dụng kế thừa và đa hình để tăng tính tái sử dụng và tính dễ mở rộng của chương trình.
Một công ty viễn thông cung cấp dịch vụ điện thoại và internet hỗn hợp cho khách hàng theo hình thức trả sau. Để sử dụng dịch vụ, khách hàng cần ký hợp đồng với công ty. Trong hợp đồng, cần có các thông tin cá nhân của khách hàng (họ tên, chứng minh nhân dân, địa chỉ) và thông tin về cách tính cước mà khách hàng chọn. Cuối mỗi tháng, khách hàng sẽ được thông báo cước tùy theo lượng sử dụng của mình tương ứng với gói cước đã đăng ký ban đầu.
Hợp đồng với gói cước Basic có cách tính tiền như sau:
Để thu hút thêm đối tượng khách hàng thường xuyên sử dụng internet, công ty mở rộng thêm hai loại hợp đồng mới có cách tính cước linh hoạt như sau:
Gói cước | Cước điện thoại | Cước internet |
---|---|---|
Data Free | Tương tự gói Basic |
Ghi chú:
|
Data Fix | Tương tự gói Basic + Giảm 10% giá cước |
Mức cố định 1.000.000 đồng |
Viết chương trình cho phép công ty quản lý các hợp đồng trong một danh sách duy nhất với 2 chức năng:
Áp dụng kế thừa và đa hình để tăng tính tái sử dụng và tính dễ mở rộng của chương trình.
Công ty XYZ quản lý việc mua hàng của 3 loại khách hàng:
Số tiền khách hàng trả = Số lượng hàng * đơn giá hàng + Thuế VAT (10%)
Phần trăm khuyến mãi = MAX (Số năm thân thiết * 5%, 50%)
Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng) * (100% - Phần trăm khuyến mãi) + Thuế VAT (10%)
Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng) * 50% + Thuế VAT (10%)
Viết chương trình thực hiện các yêu cầu sau:
Một nông trại chăn nuôi có 3 loại gia súc: bò, cừu, và dê. Mỗi loại gia súc đều có thể sinh con, cho sữa và phát ra tiếng kêu riêng của chúng. Khi đói, các gia súc sẽ phát ra tiếng kêu để đòi ăn. Sau một thời gian chăn nuôi, người chủ nông trại muốn thống kê xem trong nông trại có bao nhiêu gia súc ở mỗi loại, tổng số lít sữa mà tất cả các gia súc của ông đã cho. Áp dụng kế thừa, xây dựng chương trình cho phép người chủ nông trại nhập vào số lượng gia súc ban đầu ở mỗi loại.
Công ty phát triển phần mềm Alpha có nhu cầu quản lý các nhân viên văn phòng gồm:
Thông tin cơ bản các nhân viên đều có:
Hành tinh Babilon có 3 loại robot: Pedion, Zattacker và Carrier. Cả 3 loại robot đều có trọng lượng nhất định là M. Pedion thuộc loại robot xây dựng, có M = 20 kg và một độ linh hoạt F (1 ≤ F ≤ 5). Zattacker là robot có khả năng tấn công với trọng lượng M = 50 kg có sức mạnh P (20 ≤ P ≤ 30). Carrier là robot mang theo năng lượng tiếp tế cho 2 loại còn lại, có trọng lượng M = 30 kg và kho năng lượng vận chuyển E (50 ≤ E ≤ 100). Năng lượng tiêu thụ khi robot đi 1 quãng đường S km là:
Một hôm, tổng chỉ huy Babilon điều động một đoàn tàu robot gồm a Pedion, b Zattacker và c Carrier (a, b, c là do người dùng nhập vào) đi khai phá những vùng đất còn bỏ hoang. Các robot có trọng lượng cố định theo loại, nhưng F, P và E thì có giá trị ngẫu nhiên trong miền giá trị của nó. Giả sử tất cả các robot đều đi được một đoạn đường dài 10km. Hãy xuất ra:
Một cửa hàng quần áo bán giày, quần và áo. Cửa hàng cũng cho phép khách hàng mua một “bộ trang phục”, bao gồm ba món: một đôi giày, một chiếc quần và một chiếc áo. Mỗi mặt hàng quần áo có một mô tả và một mức giá. Bốn loại mặt hàng quần áo được đại diện bởi bốn class Shoes, Pants, Top, and Outfit. Tất cả bốn class đều phải cài đặt theo interface ClothingItem sau
public interface IClothingItem{
string GetDescription();
double GetPrice();
}
Sơ đồ sau đây cho thấy mối quan hệ giữa interface IClothingItem và các class Shoes, Pants, Top và Outfit.
Cửa hàng cho phép khách hàng tạo các bộ trang phục bao gồm một đôi giày, quần và áo. Phần mô tả trang phục bao gồm phần mô tả theo thứ tự giày, quần và áo được phân tách bằng dấu "/" và theo sau là khoảng trắng và "outfit". Giá của một bộ trang phục được tính như sau. Nếu tổng giá của hai mặt hàng bất kỳ bằng hoặc vượt quá $100 , thì sẽ được giảm giá 25% cho tổng giá của cả ba mặt hàng. Ngược lại thì giảm giá 10%.
Ví dụ 1: một bộ trang phục bao gồm giày sneakers ($40), quần bue jeans ($50) và T-shirt ($10) sẽ có tên "sneakers/blue jeans/T-shirt outfit" và giá là 0.90(40 + 50 + 10) = $90,00.
Ví dụ 2: Một bộ trang phục bao gồm giày loafers ($50), quần cutoffs ($20) và áo dress-shirt ($60) sẽ có mô tả "loafers/cutoffs/dress-shirt outfit" và giá 0.75(50 + 20 + 60) = $97.50. Viết class Outfit cài đặt interface IClothingItem. Việc triển khai phải có một phương thức khởi tạo có ba tham số đại diện cho một đôi giày, quần và áo.
Shoes shoes = new Shoes("sneakers", 40);
Pants pants = new Pants("blue jeans", 50);
Top top = new Top("T-Shirt", 10);
Outfit outfit = new Outfit(shoes, pants, top);
Console.WriteLine(outfit.GetDescription());
Console.WriteLine(outfit.GetPrice());
Shoes shoes2 = new Shoes("loafers", 50);
Pants pants2 = new Pants("cutoffs", 20);
Top top2 = new Top("dress-shirt", 60);
Outfit outfit2 = new Outfit(shoes2, pants2, top2);
Console.WriteLine(outfit2.GetDescription());
Console.WriteLine(outfit2.GetPrice());
Xây dựng các class như mô hình UML sau:
Dựa vào mô hình UML ở trên tạo 2 class Book và Textbook theo yêu cầu sau:
Phương thức GetTitle() trả về tên của sách
Phương thức GeBookInfo() trả tên thông tin của sách theo định dạng sau: “title-price”
Lưu ý: phải cài đặt thêm phương thức khởi tạo và các phương thức nếu cần thiết.
Phương thức GetEdition() trả về thông tin số ấn bản - edition của Textbook
Phương thức GetBookInfo() trả về thông tin của Textbook theo định dạng sau: “title-price-edition”
Phương thức CanSubstituteFor() trả về true nếu thỏa mãn các 2 điều kiệu sau ngược lại trả về false:
Statement | Giá trị trả về (để trống nêu không có giá trị) |
Diễn giải |
---|---|---|
Textbook bio22 = new Textbook(“Biology”, 49.75, 2); | bio22 là 1 Textbook với title là “Biology” với price là 49.75, và có ấn bản edition là 2. | |
Textbook bio23 = new Textbook(“Biology”, 39.75, 3); | bio23 là 1 Textbook với title là “Biology” với price là 39.75, và có ấn bản edition là 3. | |
bio23.GetEdition() | 3 | Trả về ấn bản edition |
bio23.GetBookInfo() | “Biology-39.37-3” | Trả về chuỗi định dạng bao gồm title, price và edition |
bio23.CanSubstituteFor(bio22) | True | bio23 có thể thay thế hợp lệ cho bio22, ví chúng có cùng tên và edition của bio23 lớn hơn edion của bio22 |
bio22.CanSubstituteFor(bio23) | False | bio22 không thay thế được bio23 vì edition của bio22 nhỏ hơn edition của bio23. |
Textbook math = new Textbook("Calculus", 45.25, 1); | math là 1 Textbook với title là “Calculus” với price là 45.25, và có ấn bản edition là 1. | |
bio22.CanSubstituteFor(math) | False | bio22 không thay thế được cho math, vì title của bio22 không giống với title của math |
Máy lọc ly tâm là một loại máy lọc nước hoạt động bằng xăng. Người ta thuê máy sử dụng với đơn giá thuê 50.000 đồng/h. Mỗi máy lọc ly tâm có công suất lọc (m3/h) và tốc độ hao xăng (lít/h) khác nhau nhưng không đổi trong suốt thời gian hoạt động (h) của máy. Đơn giá xăng là 20.000 đồng/lít.
Máy lọc xúc tác là một loại máy lọc nước hoạt động bằng hóa chất. Người ta thuê máy với đơn giá thuê 80.000 đồng/h. Mỗi máy có công suất lọc (m3/h) khác nhau. Để lọc nước, ta cho một lượng hóa chất (g) vào từ đầu và sử dụng trong suốt thời gian sử dụng (h) của máy. Công suất lọc thực tế được tính theo hai trường hợp như sau:
Lượng nước mỗi máy lọc được = công suất lọc thực tế * thời gian hoạt động.
Chi phí thuê mỗi máy = đơn giá thuê * thời gian hoạt động.
Chi phí sử dụng máy = chi phí thuê + chi phí nhiên/vật liệu (đơn giá hóa chất là 10.000 đồng/g).
Một cái ao chứa M mét khối (m3) nước. Để lọc nước trong ao, người ta thuê N máy lọc (vừa xúc tác vừa ly tâm) để sử dụng. Thông tin các loại máy lọc và các công thức tính như đã được mô tả ở các phần 1 và 2 bên trên.
Bảng tóm tắt thông tin các loại máy lọc:Loại máy | Đơn giá thuê | Công suất lọc | Chi phí nhiên/vật liệu |
---|---|---|---|
Máy ly tâm | 50.000 đồng/h | Không đổi | Lượng xăng * 20.000 |
Máy xúc tác | 80.000 đồng/h | Thay đổi theo lượng hóa chất và thời gian sử dụng hóa chất | Lượng hóa chất * 10.000 |
Áp dụng các tính chất hướng đối tượng (đóng gói, kế thừa, đa hình) để thực hiện những việc sau:
Xây dựng các class như mộ hình UML như hình sau
Tạo lớp WordMatch như được mô tả trong mô hình UML ở phía trên, bạn cần cài đặt 2 phương thức ScoreGuess và FindBetterGuess sẽ được mô tả chi tiết trong phần a và b ở phía dưới
Tiền điều kiện
0 < guess.Length ≤ secret.Length
Score= Số lần xuất hiện chuỗi con × bình phương chiều dài chuỗi guess
WordMatch game = new WordMatch(“mississippi”);
Guess | Số lần xuất hiện chuỗi con | Score = Số lần xuất hiện chuỗi con × bình phường chiều dài của guess | Giá trị trả về game.ScoreGuess(guess) |
“i” | 4 | 4 * 12 = 4 | 4 |
“iss” | 2 | 2 * 32 = 18 | 18 |
“issipp” | 1 | 1 * 62 = 36 | 36 |
“Mississippi” | 1 | 1 * 112 = 121 | 121 |
WordMatch game = new WordMatch(“aaaabb”);
Guess | Số lần xuất hiện chuỗi con | Score = Số lần xuất hiện chuỗi con × bình phường chiều dài của guess | Giá trị trả về game.ScoreGuess(guess) |
“a” | 4 | 4 * 12 = 4 | 4 |
“aa” | 3 | 3 * 22 = 12 | 12 |
“aaa” | 2 | 2 * 32 = 18 | 18 |
“aabb” | 1 | 1 * 42 = 16 | 16 |
“c” | 0 | 0 * 12 = 0 | 0 |
Tiền điều kiện:
Phương thức FindBetterGuess trả về dự đoán tốt hơn của 2 tham số chuỗi guess1 và guest2. Nếu phương thức ScoresGuess của guess1 và guess2 trả về giá trị khác nhau, thì trả về guess có điểm cao hơn. Nếu phương thức ScoreGuess của guess1 và guess2 trả về cùng giá trị, thì trả về guess lớn hơn tính theo alphabet.
WordMatch game = new WordMatch(“concatenation”);
Gọi phương thức | Giá trị trả về | Giải thích |
game.ScoreGuess(“ten”); | 9 | 1 * 32 |
game.ScoreGuess(“nation”); | 36 | 1 * 62 |
game.FindBetterGuess(“ten”, “nation”); | “nation” | Vì ScoreGuess(“ten”) lớn hơn ScoreGuess(“nation”) nên trả về “nation” |
game.ScoreGuess(“con”); | 9 | 1 * 32 |
game.ScoreGuess(“cat”); | 9 | 1 * 32 |
game.FindBetterGuess(“con”, “cat”); | “con” | Vì ScoreGuess(“con”) bằng ScoreGuess(“cat”) và “cat” tính theo alphabet lớn hơn “con” nên trả về “con” |
Thư viện trường học là trung tâm văn hóa, khoa học của nhà trường nhằm mở rộng kiến thức, góp phần nâng cao hiệu quả dạy- học và nghiên cứu khoa học của giáo viên và học sinh. Một thư viện trường học cần quản lý danh sách các loại sách gồm 2 loại như sau:
Trước hết phải khẳng định, đất đai là nguồn tài nguyên vô cùng quý giá, là tài sản quan trọng của quốc gia, là tư liệu sản xuất,… Đặc biệt, đất đai là điều kiện cần cho mọi hoạt động sản xuất và đời sống. Ở nước ta, khi còn nhiều người sống nhờ vào nông nghiệp, thì đất đai càng trở thành nguồn lực rất quan trọng.
Muốn phát huy tác dụng của nguồn lực đất đai, ngoài việc bảo vệ đất của quốc gia, còn phải quản lý đất đai hợp lý, nâng cao hiệu quả sử dụng đất sao cho vừa đảm bảo được lợi ích trước mắt, vừa tạo điều kiện sử dụng đất hiệu quả lâu dài để phát triển bền vững đất nước.
Hiện nay, ở Việt Nam đất đai được phân chia thành 2 loại chính sau:
Quan điểm nhất quán của Đảng, Nhà nước và nhân dân ta đã được xác định từ năm 1980 đến nay là đất đai thuộc sở hữu toàn dân, do Nhà nước đại diện chủ sở hữu và thống nhất quản lý. Để góp phần nâng cao hiệu quả quản lý nhà nước về đất đai, mỗi thửa đất được nhà nước quản lý và cấp quyền sử dụng cho một hoặc nhiều người dân (nhà nước cho phép nhiều người dân có thể đồng sở hữu quyền sử dụng đất) có nhu cầu sử dụng (Giấy chứng nhận quyền sử dụng đất hay còn được gọi là Sổ hồng).
Áp dụng kiến thức lập trình hướng đối tượng (kế thừa, đa hình) thiết kế sơ đồ chi tiết các lớp đối tượng và khai báo các lớp để xây dựng chương trình thực hiện các yêu cầu sau:
Một trường đại học K cần quản lý danh sách các nhân viên cùng hưởng trợ trên tiêu chí cụ thể để đánh giá lao động tiên tiến.
Nhân viên bao gồm 3 loại: giảng viên, nghiên cứu viên và nhân viên văn phòng.
Mỗi nhân viên đều có: mã nhân viên, họ tên, ngày tháng năm sinh.
Như chúng ta đã biết, sức khỏe tốt là nền tảng góp phần cho một cuộc sống hạnh phúc, và việc tập luyện hằng ngày chính là một biện pháp cực kỳ hiệu quả để nâng cao cả về sức khỏe tinh thần và thể chất. Nắm bắt xu thế quan tâm sức khỏe của người dân, ngày 26/10/2018 vừa qua, trung tâm thể hình MTK của thị xã Dĩ An đã được khai trương và bắt đầu đón nhận khách hàng.
Mỗi khách hàng tham gia CLB của trung tâm có thể tùy chọn một trong 3 gói dịch vụ khác nhau là Premium (nâng cao), Basic (cơ bản), Non-member (không thành viên). Đây là phương thức mà trung tâm tiến hành để từng loại đối tượng khách hàng có thể dễ dàng tiếp cận các dịch vụ tương ứng.
Bên cạnh thể hình là dịch vụ mặc định, tùy gói dịch vụ mà khách hàng có thể đăng kí tham gia các lớp học được cung cấp xuyên suốt các thời gian trong ngày như:
Dịch vụ xông hơi và hỗ trợ từ huấn luyện viên cá nhân (PT) cũng sẽ được cung cấp.
Mỗi khách hàng khi đăng kí sẽ phải điền thông tin họ tên và số CMND và lựa chọn gói dịch vụ cũng như thời gian muốn sử dụng dịch vụ đó (theo tháng).
Đơn vị: Nghìn đồng
Premium | Basic | Non-member | |
---|---|---|---|
Phí cơ bản | 1 000 | 500 | 200 |
Chi phí lớp học | Miễn phí | 100 / lớp | Không có |
Dịch vụ xông hơi | Miễn phí | Không có | Không có |
Hỗ trợ PT | Miễn phí | 100 | 200 |
Lưu ý:
Miễn phí: Khách hàng không chi trả thêm tiền khi đăng ký tính năng này.
Không có: Khách hàng sẽ không được cung cấp tính năng này.