Reference no: EM132888629
Software Development Fundamentals
Learning Outcome 1 : Demonstrate a structured approach to algorithmic design and problem solving and exhibit professional development best practices in designing and developing robust, maintainable software;
Learning Outcome 2 : Illustrate and relate object-oriented concepts (encapsulation, inheritance, polymorphism) and employ them to solve practical, real-world problems;
Learning Outcome 3: Differentiate, select and utilise suitable application programming interfaces in the construction of software;
Learning Outcome 4: Discriminate between elements of object-oriented programming (abstract and nested classes, interfaces, access modifiers, etc.) and employ them appropriately in programme construction;
Assignment Detail
You have been asked to develop a JAVA application to demonstrate a "Vending Machine Application"
as a prototype (See picture of a typical Vending Machine at the end of the document) The Vending machine must include the following entities:
• Chocolate Bars (Various types, such as KitKat, Mars, etc.)
• Crisps (For example, Tayto, Walkers, etc.)
• Soft Drinks (For example, Coke, Pepsi, etc.)
When the JAVA application is initialized, it must dynamically create as follows:
• At least 25 chocolates of 5 distinct types . There are three rows in the vending machine that are reserved for chocolates.
• At least 25 crisps of various types (they cannot all be the same type). There are three rows in the vending machine that are reserved for crisps.
• At least 25 soft drinks of different types. There are three rows in the vending machine that are reserved for soft drinks.
You can assign unique names to various categories of chocolates, crisps and drinks. You will load the stock before starting operation of the vending machine. As the user buys items, the list of stock will be updated accordingly. When any item in the vending machine reaches a level of 1, a message must be generated to the user that this item is the last item, the maximum stock for each item type is 5. Generate randomly 5 items of various types at the start of the vending machine. A menu with all prices for the available items should be displayed at the start of the application.
For example, the price of each item can be set as 1.20 Euro for chocolates, 1.50 Euros for crisps and
for each soft drink. Further, you can also adjust the prices based on your choice for various items and It will be clearly documented in the application.
If a user selects one item of any type (e.g., chocolate, crisp and coke), charge the prices as mentioned in the menu. However, if a user selects any type of two items simultaneously, give 10 percent discount on these items. For example (2 drinks, 2 chocolates, give a discount of 10%).
Display the screenshot where you can provide an input for various options and the output generated by the Vending machine application. Five different input values and output generated by the application should be provided in the report along with this application.
Once all the entities have been created, the system should assign the items for each slot of the vending machine. You can allocate a maximum of five items for each category in the machine as a full stock. As the user selects the items and paid for them, the updated list of items will be displayed in the next round. You can set an option for the administrator to display the total amount collected (this should
update if more items are sold). Briefly explain the validation of input values entered by the user in the report.
The user should be able to:
FUNCTIONALITY
• List available items along with prices in the vending machine
• List of all chosen items selected by the user along with their prices and total price
• List of discounts on the chosen items
• List of items that are out of stock
EXTRA CHALLENGE IDEAS
• An automatic message for the user that this item is not available
• Ask again for the proper input value in the case of wrong input
• List of items sold along with total amount collected
In order to perform these tasks, you should implement APPROPRIATE data structures.
Attachment:- Software Development Fundamentals.rar