Q IMAT5101 Object Oriented Programming Assignment Help IMAT5101 Object Oriented Programming Assignment Help - Get Best IMAT5101 Object Oriented Programming Assignment Help Service From Miracleskills Tutors at Affordable Prices!! Previous << >> Next IMAT5101 Object Oriented Programming Assignment - De Montfort University, UK GET ASSURED A++ GRADE IN IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT - ORDER FOR ORIGINALLY WRITTEN SOLUTIONS! Learning Outcomes - LO1 - Have a comprehensive understanding of OO programming concepts: abstraction, encapsulation, inheritance, etc. LO2 - Be able to select appropriate API facilities in the design, implementation and testing of OO applications and applets. Assignment Details - Given a scenario for your assignment. This takes the form of a design description and a specification by way of a class diagram. You should gain an understanding of the scenario, implement the class diagram and produce the functionality listed within the use cases. You should implement each class to the expected standards as discussed and practiced during the module. Objectives - The objective of this assessment is for you to demonstrate your ability to design and implement an OO system consisting of a set of Java classes and a client program. In particular: a. To design and implement classes with suitable fields, constructors, accessor methods, and modifier methods. b. To conform to the standard conventions of Java. c. To implement classes that are associated by inheritance, delegation, composition and aggregation. d. To write a client application that uses your classes to show that they function correctly. Scenario: Shopping Cart Step 1 - When shopping for groceries online a Customer chooses a Product and places an Order for some quantity of it. The order is added to a Cart. A Date is set for the delivery. More orders can be added to the cart, and they can be changed up until checking out. It is possible for products to have a discount rate applied, i.e. a DiscountProduct. The contents of the shopping cart can be sorted in various ways. Orders within a cart can be iterated over. To support further features of the cart, orders and associated products can be tested for equality. The partial UML class diagram below shows the underlying data model you should use to achieve this scenario: NO PLAGIARISM POLICY - ORDER NEW IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT & GET WELL WRITTEN SOLUTIONS WITH FREE TURNTIN REPORT! The table below gives further guidance on the implementation of each class: Class Comment Name Simple name comprising a first name and family name. Date Simple date record with day/month/year fields. No validation. Customer A customer has a name, and a customer number. Product A product item has a unique product code, description, and price per unit. The price is given in pence. A product can be tested for equality by providing an appropriate overridden equals(...) method that assesses the equality of each field. Additionally, products are comparable, so they can be sorted into a natural order. They should firstly be compared by product code, if these are the same, then by description, and if these are the same, then by unit price. DiscountProduct A discount product is a product with a discount rate applied. The discount rate should be between 0 and 1.0, with 0.1 being a 10% discount, 0.2 being a 20% discount, etc. When retrieving the unit price of a discount product it should return the standard unit price with any discount applied. A discount amount should always drop to the nearest whole number, e.g. a calculated discount of 7.9 pence would apply as a discount of 7 pence on the unit price. Order An order is for a quantity of product. It is possible to increase and decrease the quantity. The cost of the order (i.e. unitPrice * quantity) can be retrieved with the getCost() method. An order can be tested for equality - an order is equal to another if its associated product is the same, i.e. quantity is ignored. Orders are comparable and should firstly be compared by their associated product, and if these are the same, then by their quantity. Cart A cart is for a customer and has a delivery date and a unique id. It consists of a list of product orders, and a set of methods to add or remove an order, retrieve an order so that it can be modified or printed on a receipt, for example. The total cost of the Cart is given by the getTotalCost() method. An order can be searched for by product code. A cart should also allow its orders to be sorted into their natural order via a sortOrders() method. It should provide an additional overloaded method sortOrders(Comparator<Order>) that accepts a custom comparator and applies this to the list of orders. The cart requires two further methods: containsOrder and removeOrder, as shown in the UML diagram, that will make use of an equality test. A cart should also provide an iterator over its orders. ENDLESS SUPPORT IN IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENTS WRITING SERVICES - YOU GET REVISED OR MODIFIED WORK TILL YOU ARE SATISFIED WITH OUR IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT HELP SERVICES! Use Cases: You should have a test class, with a main method, that should complete the following use cases for the "Shopping Cart System" to show it works as expected. Please clearly highlight where each use case is exercised in your test program with comments: CartTest UC1: A test program that creates an instance of Cart, populates it with several orders (for both products and discount products), and uses a for-each loop to produce a formatted listing of the orders with their price, the number of items in the cart and the overall total price. Note: You can either use a data file to dynamically read orders, or hardcode the order instances to add to the cart. UC2: Test each of the sort methods work as expected, as evidenced by appropriate output. For the sortOrders(Comparator<Order>) method, you should pass in a custom comparator that sorts by cost (asc) and if these are the same then by product (desc). UC3: Additionally, test the use of equality by using the contains and remove methods. Also, you should use a PrintWriter to produce a receipt for all of the orders and associated details of the cart, and output these into a text file Cart.txt. UC4: Add further code to show how each method of Cart can be used. In particular, increase and/or decrease the quantity of one or more of the products in the cart, and then re-print the updated cart listing. MIRACLESKILLS HELPING STUDENTS TO WRITE QUALITY IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT AT LOW COST! Step 2 - When shopping for groceries online a Customer can gain reward points. A reward processor holds a collection of each Product for which points should be awarded, and can process a shopping Cart to ascertain its contents and apply any necessary awards. The partial UML class diagram below shows some updates to the underlying data model. Please note: The Customer and Product classes should remain as before, but should include any additional implementation details as shown in the UML diagram. The table below gives further guidance: Class Comment Customer A customer now has a field to hold their reward points, a means of adding these, and retrieving their current quota of points. RewardProcessor A reward processor should store products, which can gain rewards for the customer if they are in their shopping cart. A hash set collection should be used for this. The rewardPoints(Cart) method checks if a rewardable product is in the cart, and if so adds points to the cart's customer. The number of points to be added should be the quantity of that particular order. The method should return the total number of reward points that have been awarded to the customer for this cart. Note: you may need to do some research into how to use a HashSet collection in Java. Use Cases: Add the following use case at the end of your existing code in your test program - you may need to update other code that has been affected by the additional changes. CartTest UC5: Create an instance of RewardProcessor, add a selection of products to it (but not all the same as those in your cart), and then test the rewardPoints method appropriately. GET READYMADE IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT SOLUTIONS - 100% PLAGIARISM FREE WORK DOCUMENT AT MIRACLESKILLS! Step 3 - When shopping, each Order has an associated PricePolicy. An order may have a default standard price policy, which does not affect the cost, or other price policies, such as buy one, get one free (B1G1F), or buy two, get one free (B2G1F), etc. The cost of the order would be reduced as a result of the price policy being applied. The partial UML class diagram below shows some updates to the underlying data model. Please note: The Order class should remain as before, but should include any additional implementation details as shown in the UML diagram. The table below gives further guidance: Class / Interface Comment PricePolicy The functional interface PricePolicy, contains a single abstract method called calculateCost, which accepts two integers representing quantity and unit price, and returns an integer representing the calculated cost, for the given price policy. Order As already stated, the standard cost of an order is calculated by multiplying a product's unit price by the quantity ordered. A default price policy would do just this. Other price policies can be set, resulting in the getCost() method applying that policy. Use Cases: Add the following use case at the end of your existing code in your test program - you may need to update other code that has been affected by the additional changes. CartTest UC6: Create four different Order object instances and ensure each has a different price policy - default, buy 1 get 1 free, buy 2 get 1 free, and buy 5 get 1 free. Calculate the cost of each to show the price policies are being applied correctly, and test each policy with different quantities. MOST RELIABLE AND TRUSTWORTHY IMAT5101 OBJECT ORIENTED PROGRAMMING ASSIGNMENT HELP & HOMEWORK WRITING SERVICES AT MIRACLESKILLS! Business and the Business Environment - Amazon Eye on Turkey Assignment Help Software Development BTEC Level 3 Health Promotion Assignment Help Software Engineering Assignment Help HND Diploma in Management - Sales and Marketing Unit 2 Professional Development for Strategic Managers Assignment Help - Pearson BTEC Level 7 Extended Diploma in Strategic Management and Leadership Advanced Management Accounting Assignment Help Undergraduate Course Unit 5 Management Accounting Assignment Help - Level 5 BTEC Higher National Diploma in Business Hospitality Business Enterprise Assignment Help Sport - BTEC Level 2 Diploma Constructional Features and Applications of Transformers Want to Excel in Course? Hire Trusted Writers for Help! —> https://miracleskills.com/ Login to Track Access multiple benefits of your account – access coupon code and track your order instantly! Account Login Submit New Assignment New user can place an assignnment order instantly and take full access of tutor's services. Order Now